新聞中心

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

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

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

        ;此實現(xiàn)A/D轉(zhuǎn)換功能,應(yīng)用于pic單片機上,A/D采用中斷方式。該程序通過單片機的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的補碼

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

        ;************** ACCA取補子程序*****************
        NEG_A
        COMF ACCALO ;ACCALO取反加1
        INCF ACCALO
        BTFSC STATUS,Z ;低8位有進位嗎?
        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

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


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


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



        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 称多县| 中超| 顺平县| 眉山市| 沙田区| 越西县| 辽阳县| 偏关县| 卢氏县| 太原市| 黄陵县| 通渭县| 溧阳市| 苍梧县| 宜川县| 股票| 申扎县| 南开区| 彰化县| 康乐县| 武冈市| 东丰县| 山西省| 安西县| 神木县| 郁南县| 阿鲁科尔沁旗| 临汾市| 昭觉县| 灵璧县| 宣威市| 长沙县| 昭通市| 应用必备| 龙川县| 台北市| 灵丘县| 宁波市| 铜梁县| 金沙县| 四会市|