日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
PIC系列單片機(jī)數(shù)據(jù)存儲(chǔ)器的特點(diǎn)和功能
PIC系列單片機(jī)數(shù)據(jù)存儲(chǔ)器的特點(diǎn)和功能
 更新時(shí)間:2008-8-4 5:20:26  點(diǎn)擊數(shù):8
【字體: 字體顏色


    

PIC系列單片機(jī)品種雖多,但各產(chǎn)品內(nèi)部硬件資源的數(shù)據(jù)存儲(chǔ)器設(shè)置仍是很有規(guī)律的。筆者以PIC16C71A和PIC16C63/65/65A兩個(gè)品種為實(shí)例,查看它們片內(nèi)數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu),找出它們的特點(diǎn)并說(shuō)明某些寄存器的主要功能,以供用戶快速編程。表1和表2分別是PIC16C71A和PIC16C63/65/65A產(chǎn)品片內(nèi)數(shù)據(jù)存儲(chǔ)器的資源表,其它系列產(chǎn)品的片內(nèi)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)的資源與表1、表2資源都很相似,其差別僅僅是片內(nèi)功能部件的種類(lèi)和數(shù)量不同(PIC16C57/58有4個(gè)存儲(chǔ)體)。筆者從下述幾個(gè)方面介紹表1和表2的特點(diǎn)和主要功能。

  1統(tǒng)一編址 PIC系列單片機(jī)各類(lèi)數(shù)據(jù)存儲(chǔ)器都是以寄存器方式工作和尋址的。專(zhuān)用寄存器包括了定時(shí)寄存器TMRO、選擇寄存器OPTION(又稱(chēng)為項(xiàng)選寄存器)、程序計(jì)數(shù)器PCL、狀態(tài)寄存器STATUS、間接尋址寄存器INDF和FSR、端口I/O寄存器(如PORTA、PORTB…)和相對(duì)應(yīng)的端口I/O控制寄存器(又稱(chēng)為端口I/O數(shù)據(jù)方向寄存器,如TRIAS、TRISB…)、保持寄存器PCLATH和中斷控制寄存器INTCON等。上述的專(zhuān)用寄存器都是PIC16C63/65/65A和PIC16C71A共同有的,它們不僅是寄存器名稱(chēng)、功能相同,而且寄存器的地址也完全相同。如果再查看其它PIC單片機(jī),如PIC16C62/62A/64/64A、PIC16C71/72/73/73A/74/74A、PIC16C8X……它們的專(zhuān)用寄存器名稱(chēng)凡是與以上相同者其地址也完全與上述相同,可見(jiàn)盡管PIC系列單片機(jī)品種多,但掌握它們的規(guī)律后,學(xué)習(xí)是不難的。
  型號(hào)不同的PIC單片機(jī),其數(shù)據(jù)存儲(chǔ)器的內(nèi)部資源僅僅是功能種類(lèi)和多少的不同。如PIC16C71A型,其引腳為18腳,主要功能是帶有8位的A/D轉(zhuǎn)換部件,有4個(gè)A/D通道模擬輸入,所以在表1中與其A/D轉(zhuǎn)換部件有關(guān)的專(zhuān)用寄存器ADRES(用于存放A/D轉(zhuǎn)換的數(shù)值結(jié)果)、A/D控制寄存器ADCON0(用于控制A/D轉(zhuǎn)換器的操作)和A/D控制寄存器ADCON1(用于控制選擇A/D引腳的功能)等。對(duì)PIC16C65/65A型,其引腳是40腳的,其功能比PIC16C71A強(qiáng),因而數(shù)據(jù)存儲(chǔ)器表2中的專(zhuān)用寄存器的種類(lèi)就比表1的增加了很多。
  專(zhuān)用寄存器的每個(gè)寄存單元都有相對(duì)應(yīng)的固定用途,它們可分成兩類(lèi):一類(lèi)用于供CPU操作(如INDF和FSR、STATUS、PCL……);另一類(lèi)用于控制外圍功能芯片的操作。

學(xué)習(xí)PIC單片機(jī)數(shù)據(jù)存儲(chǔ)器時(shí),不僅要了解各寄存器單元的功能,而且還應(yīng)在編制程序時(shí)會(huì)調(diào)用它們完成編程目的。下面筆者將以編程實(shí)例說(shuō)明它們的用途。
  2間接尋址寄存器INDF和FSR 位于PIC數(shù)據(jù)存儲(chǔ)器的最頂端、地址00單元(地址碼最。┑拈g接尋址寄存器INDF是一個(gè)空的寄存器。它只有地址碼,在物理上不是一個(gè)真正的寄存器。它的功能常常與寄存器FSR(又稱(chēng)寄存器選擇寄存器)配合工作,實(shí)現(xiàn)間接尋址目的。初學(xué)專(zhuān)用寄存器INDF和FSR時(shí),記住下述的邏輯關(guān)系對(duì)編程是有幫助的:使用寄存器INDF的任何指令,在邏輯上都是對(duì)寄存器FSR所指向的RAM進(jìn)行訪問(wèn),即對(duì)INDF(本身)進(jìn)行間接尋址(訪問(wèn)),讀出的應(yīng)是FSR內(nèi)容。以下的一個(gè)簡(jiǎn)單程序是用間接尋址方式清除RAM地址20h~2Fh單元寄存器內(nèi)容的實(shí)例。
   MOVLW 0x20 ;20h→w,對(duì)指向RAM單元的指針
          ;初始化
   MOVWF FSR ;20h→FSR,FSR指向RAM
LOOP CLRF INDF ;清除INDF,即清除FSR內(nèi)容所指
         ;向的單元20h→2Fh
   INCF   FSR ;(指針)FSR內(nèi)容加1
   BTFSS FSR,4;判別(指令)FSR的D3位,若為零
         ;執(zhí)行下條循環(huán)指令;若為1間跳
         ;執(zhí)行。
  GOTO LOOP;跳轉(zhuǎn)到LOOP(循環(huán))
CONTINUE…    ;已完成功能,繼續(xù)執(zhí)行程序
  由上述指令看出,因寄存器INDF和FSR的配合工作,達(dá)到了對(duì)RAM地址20h~2Fh的寄存器清零目的。由于完成上述功能的指令數(shù)很少,這就會(huì)簡(jiǎn)化指令系統(tǒng),使PIC單片機(jī)的指令集得以精簡(jiǎn)。
  說(shuō)明:上述各條指令易于看懂,所以無(wú)需再?gòu)?fù)述,但其中的一條判別指令“BTFSS FSR,4”比較關(guān)鍵。該條指令是保證題設(shè)中要選擇RAM地址單元上限值2Fh時(shí),其對(duì)應(yīng)的二進(jìn)制數(shù)為00101111B,此時(shí)FSR的第4位恰為1。所以上述指令中用了一條判斷指令;BTFSS FSR,4,判斷FSR的D3位值是否為1,若不為1而為0,則執(zhí)行下條循環(huán)指令GOTO LOOP,使FSR中的地址不斷加1,直到寄存器FSR的D3位為1時(shí),這時(shí)它的內(nèi)容代表的RAM地址恰為2Fh。
  由此可見(jiàn),學(xué)習(xí)PIC單片機(jī)數(shù)據(jù)存儲(chǔ)器中的專(zhuān)用寄存器時(shí),不必要對(duì)每個(gè)產(chǎn)品的專(zhuān)用寄存器進(jìn)行學(xué)習(xí),只需先學(xué)習(xí)它們的共同點(diǎn),然后選中一個(gè)產(chǎn)品型號(hào)的專(zhuān)用寄存進(jìn)行詳細(xì)分析,有條件時(shí)進(jìn)行必要的相關(guān)指令操作,就能完全掌握單片機(jī)技術(shù)。

3   A/D轉(zhuǎn)換寄存器 這里摘錄一段筆者從網(wǎng)上下載的用PIC16F877芯片(帶Flash存儲(chǔ)器的)完成有關(guān)A/D轉(zhuǎn)換的源程序部分指令,并用它說(shuō)明有關(guān)A/D轉(zhuǎn)換寄存器在指令中的用法。這里先引用部分源程序,源程序中的注釋是筆者按照指令在程序中的作用所加的注釋(不是某條指令的直接功能),這是初學(xué)者讀以下指令時(shí)應(yīng)注意的。A/D轉(zhuǎn)換器部分源程序清單如下:
  DEMO 877ASM
  List P=16F877
  org   0x00    ;復(fù)位向量
  NOP        ;空操作
Start Banksel  PORTC   ;選擇PORTC所在
              ;數(shù)據(jù)存儲(chǔ)器的存儲(chǔ)
             ;體(實(shí)為Bank0)
  CLRF     PORTC   ;對(duì)RC口清零
  MOVLW B′01000001′  ;A/D轉(zhuǎn)換時(shí)鐘選
             ;擇FOSC/8,打開(kāi)
             ; A/D轉(zhuǎn)換器
  MOVWF ADCON0   ;設(shè)定了A/D轉(zhuǎn)換
             ;操作部分參數(shù)
  Banksel  OPTION_REG ;選擇OPTION所在
              ;數(shù)據(jù)存儲(chǔ)器的存儲(chǔ)             ;體(實(shí)為Bank1)
  MOVLW B′10000111′  ;設(shè)置預(yù)分頻器TM
             ; R0,分頻率1∶256
  MOVWF OPTION   ;完成上條指令設(shè)置
  CLRF  TRISC     ;設(shè)定RC口(8位)
             ;為輸出
  MOVLW B′0001110′  ;選中模擬量通道1
             ;(RA1/AN1)
  MOVWF ADCON1    ;模擬基準(zhǔn)電壓
VREF為芯片電源電壓,選擇通道1(RA1/AN1)完成
main …
  要閱讀上述的指令,讀者還需了解以下必要的補(bǔ)充知識(shí)。
  (1)關(guān)于用PIC16F877作A/D轉(zhuǎn)換器。PIC16F877單片機(jī)是具有多通道模擬量輸入的8位A/D轉(zhuǎn)換器。上述的源程序是利用該P(yáng)IC產(chǎn)品作A/D轉(zhuǎn)換的一種實(shí)驗(yàn)程序,其實(shí)驗(yàn)?zāi)康氖怯肞IC16F877來(lái)實(shí)現(xiàn)一個(gè)通道的8位A/D轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果以二進(jìn)制形式經(jīng)RC口輸出再由LED顯示。實(shí)驗(yàn)的電路原理如附圖(筆者根據(jù)源程序而繪出的PIC16F877A/D轉(zhuǎn)換硬件電路圖)所示。
  (2)編制與A/D轉(zhuǎn)換器有關(guān)的專(zhuān)用寄存器指令。要讀懂上述的源程序,應(yīng)根據(jù)以下的線索:1)把握源程序的編寫(xiě)慣例;2)選擇RC口和對(duì)它清零;3)給A/D控制寄存器ADCON0的各位置數(shù),達(dá)到A/D轉(zhuǎn)換時(shí)選擇A/D位的采樣時(shí)間,即注釋中的A/D時(shí)鐘選擇;4)選擇專(zhuān)用寄存器Option并給它各位置數(shù),達(dá)到選擇預(yù)分頻器TMR0和確定其分頻率(1∶256);5)設(shè)定RC口為輸出,以保證LED顯示;6)給A/D控制器ADCON1的各位置數(shù),以確定PIC1F877的RA1口為模擬量的輸入通道。并選中芯片電源作基準(zhǔn)電壓。讀者若需深入了解A/D控制寄存器ADCON0和ADCON1的各位詳細(xì)功能,請(qǐng)參看有關(guān)PIC單片機(jī)書(shū)籍的詳細(xì)介紹。
  A/D轉(zhuǎn)換的主程序(main)約有13條,將在本版PIC系列專(zhuān)題的后期結(jié)合實(shí)驗(yàn)板的編程器介紹。PIC系列單片機(jī)的其它專(zhuān)用寄存器,如TRISA、STATUS Bank等,本報(bào)在前幾期有關(guān)PIC的文中均已介紹過(guò)。  


 

 

 

 

 

 

 

原作者:成都 丁錦元




  • 上一篇: 常用PIC系列8位單片機(jī)芯片引腳符號(hào)的功能
  • 下一篇: NIOS軟核處理器的Linux引導(dǎo)程序U-boot設(shè)計(jì)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1