久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 單片機ADC0809中斷與查詢檢測與8路數(shù)據(jù)采集的仿真與匯編源碼 [打印本頁]

作者: 綿里藏針    時間: 2018-1-19 14:53
標題: 單片機ADC0809中斷與查詢檢測與8路數(shù)據(jù)采集的仿真與匯編源碼
ADC0809仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. ;本程序用到單元(30H~34H,3DH,3EH)
  2. ;(30H~34H)用于存放顯示數(shù)據(jù),(30H~33H)用于存放測量數(shù)據(jù),34H用于存放通道號
  3. ;R1用于存放0809檢測出來的8個數(shù)據(jù)
  4. ;(3DH、3EH)用于存放0809檢測出來數(shù)據(jù)計算結果
  5.       ORG 0000H
  6.       AJMP MAIN
  7.       ORG 0013H
  8.       AJMP INT1
  9.       ORG 0030H
  10. ;======================================
  11. ;主程序
  12. MAIN: MOV R0,#30H      ;存放數(shù)據(jù)首地址
  13.       MOV R2,#0FH      ;計算數(shù)據(jù)存放單元個數(shù)
  14.       CLR A
  15. QING: MOV @R0,A        ;將數(shù)據(jù)存放單元清零
  16.       INC R0
  17.       DJNZ R2,QING
  18.       MOV R4,#08H      ;8路計數(shù)初值
  19.       MOV 34H,#00H     ;初始通道顯示單元為1號通道
  20.       SETB IT1         ;INT1置為邊沿觸發(fā)
  21.       SETB EA          ;開中斷
  22.       SETB EX1         ;允許INT1中斷
  23.       MOV DPTR,#7FF8H  ;指向0809通道0
  24.       MOV A,#00H       ;此指令可缺省
  25.       MOVX @DPTR,A     ;啟動A/D轉換
  26. HERE: ACALL JI_SUAN
  27.       AJMP HERE        ;等待中斷
  28. ;==========================================
  29. ;中斷子程序
  30. INT1: CLR EX1
  31.       PUSH PSW         ;保護現(xiàn)場
  32.       MOVX A,@DPTR     ;讀A/D轉換結果
  33.       MOV R1,A         ;存數(shù)據(jù)
  34.       INC DPTR         ;更新通道
  35.       MOV A,34H
  36.       INC A
  37.       MOV 34H,A
  38.       DJNZ R4,LOOP     ;巡回未完繼續(xù)
  39.       MOV R4,#08H      ;重新賦初值
  40.       MOV DPTR,#7FF8H
  41. LOOP:
  42.       MOVX @DPTR,A     ;啟動A/D轉換
  43.       POP PSW
  44.       RETI             ;返回中斷

  45. ;========================================
  46. ;數(shù)據(jù)計算
  47. JI_SUAN:
  48.       MOV A,R1
  49.       MOV B,#20        ;基準電壓為5伏,分辨率為5/256約為20毫伏
  50.       MUL AB           ;顯示數(shù)值單位為毫伏
  51.       MOV R7,A         ;測量出來的數(shù)據(jù)乘20毫伏即為實際電壓值,但還是十六進制
  52.       MOV A,B          ;高位存放在R6里,低位存放在R7里
  53.       MOV R6,A
  54.       MOV R5,#16
  55. ;=========================================
  56. ;雙字節(jié)十六進制轉雙字節(jié)BCD碼
  57. SBIN_SBCD:
  58.       MOV 3DH,#00H     ;數(shù)據(jù)計算結果清零
  59.       MOV 3EH,#00H
  60. SBIN_SBCD1:
  61.       MOV A,R7  ;R7左移一位并送回
  62.       RLC A
  63.       MOV R7,A
  64.       MOV A,R6  ;R6左移一位并送回
  65.       RLC A
  66.       MOV R6,A
  67.       MOV A,3DH
  68.       ADDC A,3DH
  69.       DA A       ;T_S乘2并調整后送回
  70.       MOV 3DH,A
  71.       MOV A,3EH
  72.       ADDC A,3EH
  73.       DA A       ;T_M乘2并調整后送回
  74.       MOV 3EH,A
  75.       DJNZ R5,SBIN_SBCD1 ;循環(huán)運行24次得到BCD碼結果
  76. ;=====================================
  77. ;雙字節(jié)BCD碼制轉4個單字節(jié)BCD碼
  78. SBCD_DBCD:
  79.       MOV A,3DH
  80.       MOV B,A
  81.       ANL A,#0FH ;將T_S里面的數(shù)據(jù)存放寄存器B里后再進行與操作得到低四位
  82.       MOV 30H,A  ;并存放到數(shù)碼管顯示的第一位地址40H里面
  83.       MOV A,B
  84.       SWAP A     ;從寄存器取回原來保存的數(shù),再進行高低位互換
  85.       ANL A,#0FH ;進行與操作后得到高四位
  86.       MOV 31H,A  ;最后存放到數(shù)碼管顯示的第二位地址41H里面
  87.       MOV A,3EH  ;同上
  88.       MOV B,A
  89.       ANL A,#0FH
  90.       MOV 32H,A
  91.       MOV A,B
  92.       SWAP A
  93.       ANL A,#0FH
  94.       MOV 33H,A

  95. ;=======================================
  96. ;顯示子程序

  97. DIS:     MOV R5,#50      ;顯示循環(huán)次數(shù),即改變顯示延時刷新時間
  98. DIS1:    MOV R1,#30H      ;把顯示數(shù)據(jù)第一位放在R0里
  99.          MOV R2,#04H      ;把顯示的位碼放在R1里
  100.          MOV R3,#05H      ;把顯示的長度放在R2里
  101. DIS2:    MOV A,@R1
  102.          ANL A,#0FH       ;屏蔽顯示數(shù)據(jù)的高四位
  103.          MOV B,A
  104.          MOV A,R2
  105.          ANL A,#0FH       ;屏蔽位碼的高四位
  106.          SWAP A
  107.          ORL A,B
  108.          MOV P0,A         ;送總顯示數(shù)據(jù)到P0顯示
  109.          LCALL DELY4ms    ;調用延時4ms
  110.          INC R1           ;取下一個顯示數(shù)據(jù)
  111.          DEC R2
  112.          DJNZ R3,DIS2     ;四位顯示晚后重新開始顯示
  113.          DJNZ R5,DIS1
  114.          MOV A,34H        ;顯示完后判斷通道好是否為8
  115.          CJNE A,#08H,HUI
  116.          MOV 34H,#00H
  117. HUI:     SETB EX1         ;顯示完畢再允許中斷
  118.          RET
  119. ;=====================================
  120. ;延時子程序
  121. DELY4ms: MOV R6,#8         ;延時4毫秒
  122. D1:      MOV R7,#248
  123.          DJNZ R7,$
  124.          DJNZ R6,D1
  125.          RET
  126.          END
復制代碼

所有資料51hei提供下載:
ADC0809.rar (46.85 KB, 下載次數(shù): 34)







作者: lxa0    時間: 2018-1-19 23:08
看到匯編格外親~~~~~~~~~




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品久久久久久二区 | 69av在线视频 | 久久久久久网站 | 日韩av免费在线电影 | 黑色丝袜三级在线播放 | 欧美日韩国产精品 | 天天搞天天操 | 亚洲色综合 | av香港经典三级级 在线 | 亚洲国产精品一区二区久久 | 国产一区精品 | 成人伊人 | 午夜精品久久 | 日本高清aⅴ毛片免费 | 久久久久一区 | 午夜视频在线免费观看 | 欧美日韩三级视频 | 91精品国产91久久久久久吃药 | 欧美激情久久久 | 国产视频久久 | 午夜免费精品视频 | 亚洲久久在线 | 韩日在线观看视频 | 91传媒在线观看 | 国产 欧美 日韩 一区 | 亚洲一区二区三区在线免费观看 | 欧美精品在线免费观看 | 特级黄色毛片 | 天天躁人人躁人人躁狂躁 | 国产精品国产馆在线真实露脸 | 欧美一区二区成人 | 一区二区三区在线免费观看 | 欧美精品一区二区免费视频 | 岛国毛片 | 高清视频一区二区三区 | 日韩三级在线观看 | 国产一区二区三区在线看 | 亚洲国产成人精品女人久久久 | 日韩免费高清视频 | 99精品国产成人一区二区 | 最新毛片网站 |