欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3815|回復: 7
收起左側

0-30V電壓表頭 單片機匯編實例

[復制鏈接]
ID:1009425 發表于 2023-1-3 11:21 | 顯示全部樓層 |閱讀模式
0-30V電壓表頭匯編程序,難點:1. 90K的電阻需要多個串并才能達到;2. 四位十六進制轉換成四位BCD碼

電壓表頭接線圖

電壓表頭接線圖

電壓表頭匯編程序

電壓表頭匯編程序

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1009425 發表于 2023-1-3 11:24 | 顯示全部樓層
三位表頭,匯編語言程序包含四位轉換(沒有編譯)
  1.        ADC_CONTR   EQU 0BCH            ;ADC控制寄存器       ;;;IC:15L204EA,內部振蕩6M,不分頻,3.26V/256=0.0127V,0v-3.26v;;;;
  2.        ADC_RES     EQU 0BDH            ;ADC高8位結果
  3.        P1ASF       EQU 09DH            ;P1口第2功能控制寄存器
  4.                  JU1         DATA 32H
  5.                  JU2         DATA 33H
  6.                  JU3         DATA 34H
  7.                  JU4         DATA 35H
  8.                  JU5         DATA 36H
  9.        ORG   0000H
  10.        LJMP  MAIN1
  11.        ORG   0040H
  12. MAIN1:  MOV  SP,#7FH
  13.         LCALL INIT_ADC
  14. MAIN2:  LCALL GET_ADC_RESULT        ;讀取高8位結果
  15.        MOV   A,ADC_RES
  16.        MOV   B,#07FH                ;電壓比127,改變測量范圍,修改電壓比
  17.                  MUL   AB
  18.                  MOV   R0,A                  ;低8位結果
  19.                  MOV   R1,B                  ;高8位結果
  20.        ACALL BCD
  21. ;       MOV   A,JU2                 ;四位十進制數轉四位BCD碼顯示
  22. ;       MOV DPTR,#TAB              ;千分位數,P3.4
  23. ;              MOVC A,@A+DPTR
  24. ;                 MOV   P2,A
  25. ;                 MOV   P3,#0EFH
  26. ;                 ACALL YS3
  27.                  MOV   A,JU4               ;百分位數,P3.5
  28.        MOV DPTR,#TAB              
  29.               MOVC A,@A+DPTR
  30.                  MOV   P2,A
  31.                  MOV   P3,#0DFH
  32.                  ACALL YS3
  33.                  MOV   A,JU3              ;十分位數,P3.6
  34.        MOV DPTR,#TAB1              
  35.               MOVC A,@A+DPTR
  36.                  MOV   P2,A
  37.                  MOV   P3,#0BFH
  38.                  ACALL YS3
  39.                  MOV   A,JU5               ;個位數,P3.7
  40.        MOV DPTR,#TAB            ;個位數帶小數點顯示         
  41.               MOVC A,@A+DPTR
  42.                  MOV   P2,A
  43.                  MOV   P3,#7FH
  44.        ACALL YS3
  45.                  LJMP  MAIN2

  46. GET_ADC_RESULT:                 ;讀取ADC結果
  47.     PUSH  ACC
  48.     MOV   ADC_CONTR,#11101011B         ;ADC控制寄存器__開ADC電源1,最高轉換速度11,ADC_FLAG軟件標志位清0,
  49.                                      ;ADC_START啟動1,轉換通道001(P1.3)
  50.     NOP                         ;等待4個NOP
  51.     NOP
  52.     NOP
  53.     NOP
  54. WAIT:MOV   A,#00010000B           ;等待ADC轉換完成,判斷ADC_FLAG是否完成,等于1
  55.     ANL   A,ADC_CONTR
  56.     JZ    WAIT                   ;AD轉換未完成,繼續等待
  57.     ANL   ADC_CONTR,#11101011B  ;結束標志位ADC_FLAG清零,ADC_START位清零,停止A/D等待
  58.     POP   ACC
  59.     RET
  60. INIT_ADC:                       ;初始化ADC
  61.     MOV   P1ASF,#11B            ;設置P1.3口為AD口
  62.     MOV   ADC_RES,#0            ;清除結果寄存器
  63.     MOV   ADC_CONTR,#11101011B  ;ADC控制寄存器--開ADC電源,最高轉換速度11
  64.     MOV   A,#2                  ;ADC上電并延時
  65.     LCALL DELAY
  66.     RET
  67. DELAY:MOV   R2,A                   ;軟件延時
  68.     CLR   A
  69.     MOV   R0,A
  70.     MOV   R1,A
  71. DELAY1:
  72.     DJNZ  R0,DELAY1
  73.     DJNZ  R1,DELAY1
  74.     DJNZ  R2,DELAY1
  75.     RET
  76. YS3:     MOV R4,#40                ;延時程序2
  77. D2:      MOV R5,#250
  78.          DJNZ R5,$
  79.          DJNZ R4,D2
  80.          RET
  81. BCD:   MOV R2,#00h                 ;四位十六進制數轉五位十進制數
  82.        MOV R3,#00h
  83.        MOV R4,#00h
  84.        MOV R5,#16
  85. LOOP:  CLR C
  86.        MOV A,R0
  87.        RLC A
  88.        MOV R0,A
  89.        MOV A,R1
  90.        RLC A
  91.        MOV R1,A
  92.        MOV A,R4
  93.        ADDC A,R4
  94.        DA A
  95.        MOV R4,A
  96.        MOV A,R3
  97.        ADDC A,R3
  98.        DA A
  99.        MOV R3,A
  100.        MOV A,R2
  101.        ADDC A,R2
  102.        MOV R2,A
  103.        DJNZ R5,LOOP
  104.        MOV  A,R4
  105.        MOV  B,#16
  106.        DIV  AB
  107.        MOV  JU1,A
  108.        MOV  JU2,B
  109.        MOV  A,R3
  110.        MOV  B,#16
  111.        DIV  AB
  112.        MOV  JU3,A
  113.        MOV  JU4,B
  114.        MOV  JU5,R2
  115.        RET
  116. TAB:   DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
  117. TAB1:  DB 040H,079H,024H,030H,019H,012H,02H,078H,00H,010H
  118.     END
復制代碼

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:1048397 發表于 2023-1-13 08:22 | 顯示全部樓層
匯編寫的很專業,圖沒有看懂,MCU數碼管,信號源在哪接呀?
回復

使用道具 舉報

ID:1009425 發表于 2023-2-1 09:15 | 顯示全部樓層
MOV   ADC_CONTR,#11101011B         ;ADC控制寄存器__開ADC電源1,最高轉換速度11,ADC_FLAG軟件標
                                                         志位清0,
                                                        ;ADC_START啟動1,轉換通道001(P1.3)
回復

使用道具 舉報

ID:963310 發表于 2023-3-2 15:20 | 顯示全部樓層
能做個5位的就厲害了
回復

使用道具 舉報

ID:404454 發表于 2023-4-8 11:59 | 顯示全部樓層
還是用匯編的頭大。
回復

使用道具 舉報

ID:1072518 發表于 2023-4-18 19:40 | 顯示全部樓層
用匯編頭大。
回復

使用道具 舉報

ID:1072518 發表于 2023-4-18 19:41 | 顯示全部樓層
用匯編的高手,牛人呀。
回復

使用道具 舉報

9#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表