新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機AD轉換匯編程序

        PIC單片機AD轉換匯編程序

        作者: 時間:2012-12-11 來源:網絡 收藏

        ;此實現A/D轉換功能,應用于pic單片機上,A/D采用中斷方式。該程序通過單片機的RA2模擬通道送入
        ;一直流電壓,當送入的直流電壓大于2.5V時,8個LED閃動,當直流電壓恢復到2.5V以下
        ;時,LED停止閃動。為了防止干擾,本程序對直流電壓采樣10次后再作判斷,中間的采樣結
        ;果用間接尋址的方式存取。

        LIST P=18F458
        INCLUDE "P18F458.INC"

        TIMES EQU 0X20
        DEY EQU TIMES+1
        ACCALO EQU TIMES+2 ;ACCA為雙精度加數寄存器
        ACCAHI EQU TIMES+3
        ACCBLO EQU TIMES+4 ;ACCB為雙精度加法的結果寄存器
        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 ;轉向中斷服務子程序
        ORG 0X30

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

        ;***雙字節加法子程序,入口地址ACCB+ACCA,出口地址ACCB***
        D_ADD
        MOVF ACCALO,0 ;ACCB和ACCA低半字節相加
        ADDWF ACCBLO
        BTFSC STATUS,C ;有進位否?
        INCF ACCBHI ;有,ACCB高字節加1,再加ACCAHI
        MOVF ACCAHI,0 ;ACCA、ACCB高半字節相加
        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轉換器
        ;在工作狀態,且使時鐘為8Tosc
        MOVLW 0X80
        MOVWF ADCON1 ;轉換結果右移,即ADRESH寄存器的高6
        ;位為"0",且把RA2口設置為模擬量輸入式
        ;(注意后面要把RA5改成數據I/O方式,以
        ;輸出顯示瑣存信號)
        BCF PIR1,ADIF ;清除A/D轉換標志
        BSF PIE1,ADIE ;A/D轉換中斷允許
        BSF INTCON,PEIE ;外圍中斷允許
        BSF IPR1,ADIP ;B口變位中斷高優先級
        BSF RCON,7 ;使能中斷優先級
        BSF TRISA,2 ;設置RA2為輸入方式
        BCF TRISA,5 ;置RA5為輸出方式,以輸出鎖存信號
        BCF TRISC,5
        BCF TRISC,3 ;設置SCK與SDO為輸出方式
        MOVLW 0XC0
        MOVWF SSPSTAT ;設置SSPSTAT寄存器
        MOVLW 0X30
        MOVWF SSPCON1 ;設置SPI的控制方式,允許SSP方式,并
        ;且時鐘下降沿發送,與"74HC595當其
        ;SCLK從低到高電平跳變時,串行輸入數據
        ;(DI)移入寄存器"的特點相應
        CLRF FLAG
        RETURN

        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兖州市| 鹤庆县| 绥滨县| 修武县| 定陶县| 新宾| 开江县| 贺州市| 文成县| 盐边县| 清徐县| 新昌县| 神农架林区| 资中县| 合山市| 南岸区| 丹巴县| 广东省| 乐昌市| 武隆县| 上饶市| 长治县| 大足县| 高唐县| 怀来县| 察哈| 博罗县| 长治县| 玉溪市| 辽宁省| 昌宁县| 左云县| 个旧市| 信丰县| 霍城县| 顺平县| 婺源县| 江陵县| 绥阳县| 加查县| 大荔县|