<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          ;此實現(xiàn)A/D轉(zhuǎn)換功能,應用于pic單片機上,A/D采用中斷方式。該程序通過單片機的RA2模擬通道送入
          ;一直流電壓,當送入的直流電壓大于2.5V時,8個LED閃動,當直流電壓恢復到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)換標志
          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當其
          ;SCLK從低到高電平跳變時,串行輸入數(shù)據(jù)
          ;(DI)移入寄存器"的特點相應
          CLRF FLAG
          RETURN

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


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


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



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();