新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC單片機(jī)AD轉(zhuǎn)換匯編程序

PIC單片機(jī)AD轉(zhuǎn)換匯編程序

作者: 時間:2012-12-11 來源:網(wǎng)絡(luò) 收藏

;此實現(xiàn)A/D轉(zhuǎn)換功能,應(yīng)用于pic單片機(jī)上,A/D采用中斷方式。該程序通過單片機(jī)的RA2模擬通道送入
;一直流電壓,當(dāng)送入的直流電壓大于2.5V時,8個LED閃動,當(dāng)直流電壓恢復(fù)到2.5V以下
;時,LED停止閃動。為了防止干擾,本程序?qū)χ绷麟妷翰蓸?0次后再作判斷,中間的采樣結(jié)
;果用間接尋址的方式存取。

LIST P=18F458
INCLUDE "P18F458.INC"

TIMES EQU 0X20
DEY EQU TIMES+1
ACCALO EQU TIMES+2 ;ACCA為雙精度加數(shù)寄存器
ACCAHI EQU TIMES+3
ACCBLO EQU TIMES+4 ;ACCB為雙精度加法的結(jié)果寄存器
ACCBHI EQU TIMES+5
FLAG EQU TIMES+6
DEYH EQU TIMES+7
DEYL EQU TIMES+9
BEGFSR EQU 0X30 ;間接尋址FSR的起始值(宏定義方式給出)

ORG 0X0000
GOTO MAIN
ORG 0X0008
GOTO INTSERVE ;轉(zhuǎn)向中斷服務(wù)子程序
ORG 0X30

;***雙字節(jié)減法子程序,入口地址ACCB-ACCA,出口地址ACCB***
D_SUB
CALL NEG_A ;求ACCA的補(bǔ)碼

;***雙字節(jié)加法子程序,入口地址ACCB+ACCA,出口地址ACCB***
D_ADD
MOVF ACCALO,0 ;ACCB和ACCA低半字節(jié)相加
ADDWF ACCBLO
BTFSC STATUS,C ;有進(jìn)位否?
INCF ACCBHI ;有,ACCB高字節(jié)加1,再加ACCAHI
MOVF ACCAHI,0 ;ACCA、ACCB高半字節(jié)相加
ADDWF ACCBHI
RETURN ;子程序返回

;************** ACCA取補(bǔ)子程序*****************
NEG_A
COMF ACCALO ;ACCALO取反加1
INCF ACCALO
BTFSC STATUS,Z ;低8位有進(jìn)位嗎?
DECF ACCAHI ;有,ACCAHI減1,再取反
COMF ACCAHI ;否則ACCAHI直接取反
RETURN ;子程序返回

;*********初始化子程序***************
INITIAL
CLRF INTCON ;禁止總中斷和外圍中斷
MOVLW 0X51
MOVWF ADCON0 ;選擇AD通道為RA2,且打開A/D轉(zhuǎn)換器
;在工作狀態(tài),且使時鐘為8Tosc
MOVLW 0X80
MOVWF ADCON1 ;轉(zhuǎn)換結(jié)果右移,即ADRESH寄存器的高6
;位為"0",且把RA2口設(shè)置為模擬量輸入式
;(注意后面要把RA5改成數(shù)據(jù)I/O方式,以
;輸出顯示瑣存信號)
BCF PIR1,ADIF ;清除A/D轉(zhuǎn)換標(biāo)志
BSF PIE1,ADIE ;A/D轉(zhuǎn)換中斷允許
BSF INTCON,PEIE ;外圍中斷允許
BSF IPR1,ADIP ;B口變位中斷高優(yōu)先級
BSF RCON,7 ;使能中斷優(yōu)先級
BSF TRISA,2 ;設(shè)置RA2為輸入方式
BCF TRISA,5 ;置RA5為輸出方式,以輸出鎖存信號
BCF TRISC,5
BCF TRISC,3 ;設(shè)置SCK與SDO為輸出方式
MOVLW 0XC0
MOVWF SSPSTAT ;設(shè)置SSPSTAT寄存器
MOVLW 0X30
MOVWF SSPCON1 ;設(shè)置SPI的控制方式,允許SSP方式,并
;且時鐘下降沿發(fā)送,與"74HC595當(dāng)其
;SCLK從低到高電平跳變時,串行輸入數(shù)據(jù)
;(DI)移入寄存器"的特點相應(yīng)
CLRF FLAG
RETURN

單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理



上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉