在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            PIC單片機AD轉換匯編程序

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

            ;*********軟件延時子程序****************
            DELAY
            MOVLW 0XFF
            MOVWF DEYH
            AGAIN1 MOVLW 0XFF
            MOVWF DEYL
            AGAIN2 NOP
            DECFSZ DEYL
            GOTO AGAIN2
            DECFSZ DEYH
            GOTO AGAIN1
            RETURN

            ;*************** A/D中斷服務子程序*****************
            INTSERVE
            BCF PIR1,ADIF ;清除A/D轉換標志
            MOVF ADRESH,W
            MOVWF INDF0 ;讀取并存儲A/D轉換結果的高兩位
            INCF FSR0L
            MOVF ADRESL,W
            MOVWF INDF0
            INCF FSR0L ;讀取并存儲A/D轉換結果的低8位
            DECF TIMES,1 ;A/D轉換次數(shù)減1
            MOVLW 0X02
            MOVWF DEY
            LOOP13 DECFSZ DEY,1
            GOTO LOOP13 ;給予一定的延時,保證兩次A/D轉換期間
            ;2Tad的間隔時間和電容的采樣時間
            BSF ADCON0,2 ;啟動下一次A/D轉換
            RETFIE ;中斷返回

            ;********** LED閃爍報警子程序*************
            ALARM
            MOVLW 0X01
            XORWF FLAG,1
            BTFSS FLAG,0
            CALL DISPLAY0 ;調用顯“0”子程序
            NOP
            BTFSC FLAG,0
            CALL DISPDARK ;調用顯“DARK”子程序
            RETURN

            ;**********顯全0子程序*************
            DISPLAY0
            TRANSMIT ;SPI發(fā)送顯示子模塊
            CLRF PORTA ;LACK送低電平,為鎖存做準備
            MOVLW 0X08
            MOVWF TIMES
            LOOP80 MOVLW 0XC0 ;顯示值為0,C0H為0的段碼
            MOVWF SSPBUF ;啟動發(fā)送
            WAIT
            BTFSS PIR1,SSPIF
            GOTO WAIT ;等待發(fā)送結束
            BCF PIR1,SSPIF ;清除中斷標志
            DECFSZ TIMES
            GOTO LOOP80 ;一次要發(fā)送完8個數(shù)據(jù)
            BSF PORTA,5 ;最后給一個鎖存信號,代表一次顯示任務完成
            RETURN

            ;**********顯示全DARK子程序*************
            DISPDARK
            TRANSMIT1 ;SPI發(fā)送顯示子模塊
            CLRF PORTA ;LACK送低電平,為鎖存做準備
            MOVLW 0X08
            MOVWF TIMES
            LOOP8D MOVLW 0XFF ;顯示值為0,F(xiàn)FH為DARK的段碼
            MOVWF SSPBUF ;啟動發(fā)送
            WAIT1
            BTFSS PIR1,SSPIF
            GOTO WAIT1 ;等待發(fā)送結束
            BCF PIR1,SSPIF ;清除中斷標志
            DECFSZ TIMES
            GOTO LOOP8D ;一次要發(fā)送完8個數(shù)據(jù)
            BSF PORTA,5 ;最后給一個鎖存信號,代表一次顯示任務完成
            RETURN

            ;*********A/D轉換主程序************
            ;轉載請保留文章原始出處http://www.51hei.com 單片機網(wǎng)
            MAIN NOP
            CALL INITIAL ;初始化
            LOOP
            MOVLW 0X80 ;轉換結果右移,及ADRESH寄存器的高6位為"0"
            ;且把RA2口設置為模擬量輸入式(注意后面要把
            ; RA5改成數(shù)據(jù)I/O方式,以輸出顯示瑣存信號)
            MOVWF ADCON1
            MOVLW BEGFSR
            MOVWF FSR0L ;給出間接尋址時FSR的初值
            MOVLW 0X0A
            MOVWF TIMES ;每一輪A/D連續(xù)采樣10次
            BSF INTCON,GIE ;總中斷打開,及可以進行A/D轉換中斷
            BSF ADCON0,2 ;啟動A/D轉換
            LOOP1 MOVF TIMES,W
            BTFSS STATUS,Z
            GOTO LOOP1 ;等待A/D轉換中斷
            BCF INTCON,GIE ;A/D轉換次數(shù)到10次,關閉中斷
            NOP
            CLRF ACCBHI
            CLRF ACCBLO ;雙精度加法的結果寄存器清0,為后面準備
            MOVLW 0X0A
            MOVWF TIMES
            MOVLW BEGFSR
            MOVWF FSR0L
            LOOP15 MOVF INDF0,W
            MOVWF ACCAHI
            INCF FSR0L
            MOVF INDF0,W
            MOVWF ACCALO
            INCF FSR0L
            CALL D_ADD
            DECFSZ TIMES
            GOTO LOOP15
            NOP ;計算得到10次A/D轉換的和
            MOVLW 0X84
            MOVWF ADCON1 ;把RA5設成數(shù)字I/O,以輸出顯示鎖存信號
            MOVLW 0X14
            MOVWF ACCAHI
            CLRF ACCALO
            CALL D_SUB ;通過雙精度減判斷模擬量是否達到報警限
            ;度(1400H=200H*0AH,200H與2.5V對應)
            BTFSS ACCBHI,7
            CALL ALARM ;若ACCBHI的最高位為1,則證明減法結
            ;果為負,即直流電壓值超過2.5V,則報警
            NOP
            BTFSC ACCBHI,7
            CALL DISPLAY0 ;若沒有超過2.5V,則不報警,8個LED
            ;同時顯示0
            CALL DELAY ;軟件延時,使電壓檢測不要過于頻繁
            GOTO LOOP ;重復檢測輸入的直流電壓值
            END

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


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


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



            上一頁 1 2 下一頁

            評論


            相關推薦

            技術專區(qū)

            關閉