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