色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)多路數(shù)據(jù)采集匯編源程序

          單片機(jī)多路數(shù)據(jù)采集匯編源程序

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

          程序在下面

          單路采集程序:
          MOV DPTR,#0F8FFH
          MOV R0,#00H ;將存儲器的首地址存在R0,R1兩個(gè)寄存器中
          MOV R1,#00H
          MOV R2,#200D ;設(shè)置循環(huán)
          MOV R3,#4
          MOV R4,#8D

          本文引用地址:http://cafeforensic.com/article/171458.htm

          MAIN:
          CLR P1.1 ;選中ADC0809
          PUSH DPL ;DPTR入棧
          PUSH DPH
          MOVX @DPTR,A ;啟動AD轉(zhuǎn)換
          ACALL DELAY ;延時(shí)5ms 保證采集數(shù)據(jù)頻率為200HZ
          MOVX A,@DPTR ;讀數(shù)據(jù)
          SETB P1.1 ;選中存儲器
          MOV DPL,R0 ;將存儲器的地址給DPTR
          MOV DPH,R1
          MOVX @DPTR,A ;存數(shù)據(jù)
          INC DPTR ;指向下一存儲單元
          MOV R0,DPL ;將該單元地址重新存入寄存器中
          MOV R1,DPH
          POP DPH ;DPTR出棧
          POP DPL

          DJNZ R2,MAIN
          DJNZ R3,MAIN
          DJNZ R4,MAIN
          SJMP $

          DELAY: ;延時(shí)程序 延時(shí)5ms
          MOV R5,#100D
          MOV R6,#24D
          LA:DJNZ R5,$
          DJNZ R6,LA
          RET

          END
          循環(huán)采集程序:
          MOV 30H,#00H ;將八塊存儲器的首地址分別存在30-3F共16個(gè)內(nèi)部存儲單元
          MOV 31H,#00H
          MOV 32H,#00H
          MOV 33H,#20H
          MOV 30H,#00H ;將八塊存儲器的首地址分別存在30-3F共16個(gè)內(nèi)部存儲單元
          MOV 31H,#00H
          MOV 32H,#00H
          MOV 33H,#20H
          MOV 34H,#00H
          MOV 35H,#40H
          MOV 36H,#00H
          MOV 37H,#60H
          MOV 38H,#00H
          MOV 39H,#80H
          MOV 3AH,#00H
          MOV 3BH,#0A0H
          MOV 3CH,#00H
          MOV 3DH,#0C0H
          MOV 3EH,#00H
          MOV 3FH,#0E0H

          MOV R2,#200D ;設(shè)置外循環(huán)200*40共8000次
          MOV R3,#40D

          MAIN: MOV DPTR,#0F8FFH ;0通道的地址
          MOV R0,#30H ;R0,R1作為存儲器地址的中間變量
          MOV R1,#31H
          MOV R4,#8 ;設(shè)置內(nèi)循環(huán)

          LOOP: CLR P1.1 ;選中ADC0809
          PUSH DPL ;DPTR入棧
          PUSH DPH
          MOVX @DPTR,A ;輸入一個(gè)數(shù)啟動AD轉(zhuǎn)換
          ACALL DELAY ;等待延時(shí)以達(dá)到每秒采集200個(gè)數(shù)據(jù)
          MOVX A,@DPTR ;讀數(shù)據(jù)
          SETB P1.1 ;選中存儲器
          MOV DPL,@R0 ;將存儲器的地址給DPTR
          MOV DPH,@R1
          MOVX @DPTR,A ;存數(shù)據(jù)
          INC DPTR ;指向下一存儲單元
          MOV @R0,DPL ;將該單元地址重新存入內(nèi)部數(shù)據(jù)存儲單元
          MOV @R1,DPH
          INC R0 ;指向下一塊存儲器的地址
          INC R0
          INC R1
          INC R1
          POP DPH ;DPTR出棧
          POP DPL
          INC DPH ;指向下一通道地址
          DJNZ R4,LOOP ;內(nèi)循環(huán)

          DJNZ R2,MAIN ;外循環(huán)
          DJNZ R3,MAIN
          SJMP $

          DELAY: ;延時(shí)程序 延時(shí)600us
          MOV R5,#100
          MOV R6,#3
          LA:DJNZ R5,$
          DJNZ R6,LA
          RET

          END



          評論


          相關(guān)推薦

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

          關(guān)閉