找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3270|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

0-30V電壓表頭 單片機(jī)匯編實(shí)例

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1009425 發(fā)表于 2023-1-3 11:21 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
0-30V電壓表頭匯編程序,難點(diǎn):1. 90K的電阻需要多個(gè)串并才能達(dá)到;2. 四位十六進(jìn)制轉(zhuǎn)換成四位BCD碼

1672715579678.png (60.97 KB, 下載次數(shù): 197)

電壓表頭接線圖

電壓表頭接線圖

1672715616391.png (74.72 KB, 下載次數(shù): 158)

電壓表頭匯編程序

電壓表頭匯編程序

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1009425 發(fā)表于 2023-1-3 11:24 | 只看該作者
三位表頭,匯編語(yǔ)言程序包含四位轉(zhuǎn)換(沒(méi)有編譯)
  1.        ADC_CONTR   EQU 0BCH            ;ADC控制寄存器       ;;;IC:15L204EA,內(nèi)部振蕩6M,不分頻,3.26V/256=0.0127V,0v-3.26v;;;;
  2.        ADC_RES     EQU 0BDH            ;ADC高8位結(jié)果
  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位結(jié)果
  15.        MOV   A,ADC_RES
  16.        MOV   B,#07FH                ;電壓比127,改變測(cè)量范圍,修改電壓比
  17.                  MUL   AB
  18.                  MOV   R0,A                  ;低8位結(jié)果
  19.                  MOV   R1,B                  ;高8位結(jié)果
  20.        ACALL BCD
  21. ;       MOV   A,JU2                 ;四位十進(jìn)制數(shù)轉(zhuǎn)四位BCD碼顯示
  22. ;       MOV DPTR,#TAB              ;千分位數(shù),P3.4
  23. ;              MOVC A,@A+DPTR
  24. ;                 MOV   P2,A
  25. ;                 MOV   P3,#0EFH
  26. ;                 ACALL YS3
  27.                  MOV   A,JU4               ;百分位數(shù),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              ;十分位數(shù),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               ;個(gè)位數(shù),P3.7
  40.        MOV DPTR,#TAB            ;個(gè)位數(shù)帶小數(shù)點(diǎn)顯示         
  41.               MOVC A,@A+DPTR
  42.                  MOV   P2,A
  43.                  MOV   P3,#7FH
  44.        ACALL YS3
  45.                  LJMP  MAIN2

  46. GET_ADC_RESULT:                 ;讀取ADC結(jié)果
  47.     PUSH  ACC
  48.     MOV   ADC_CONTR,#11101011B         ;ADC控制寄存器__開(kāi)ADC電源1,最高轉(zhuǎn)換速度11,ADC_FLAG軟件標(biāo)志位清0,
  49.                                      ;ADC_START啟動(dòng)1,轉(zhuǎn)換通道001(P1.3)
  50.     NOP                         ;等待4個(gè)NOP
  51.     NOP
  52.     NOP
  53.     NOP
  54. WAIT:MOV   A,#00010000B           ;等待ADC轉(zhuǎn)換完成,判斷ADC_FLAG是否完成,等于1
  55.     ANL   A,ADC_CONTR
  56.     JZ    WAIT                   ;AD轉(zhuǎn)換未完成,繼續(xù)等待
  57.     ANL   ADC_CONTR,#11101011B  ;結(jié)束標(biāo)志位ADC_FLAG清零,ADC_START位清零,停止A/D等待
  58.     POP   ACC
  59.     RET
  60. INIT_ADC:                       ;初始化ADC
  61.     MOV   P1ASF,#11B            ;設(shè)置P1.3口為AD口
  62.     MOV   ADC_RES,#0            ;清除結(jié)果寄存器
  63.     MOV   ADC_CONTR,#11101011B  ;ADC控制寄存器--開(kāi)ADC電源,最高轉(zhuǎn)換速度11
  64.     MOV   A,#2                  ;ADC上電并延時(shí)
  65.     LCALL DELAY
  66.     RET
  67. DELAY:MOV   R2,A                   ;軟件延時(shí)
  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                ;延時(shí)程序2
  77. D2:      MOV R5,#250
  78.          DJNZ R5,$
  79.          DJNZ R4,D2
  80.          RET
  81. BCD:   MOV R2,#00h                 ;四位十六進(jìn)制數(shù)轉(zhuǎn)五位十進(jìn)制數(shù)
  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
復(fù)制代碼

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:1048397 發(fā)表于 2023-1-13 08:22 | 只看該作者
匯編寫(xiě)的很專(zhuān)業(yè),圖沒(méi)有看懂,MCU數(shù)碼管,信號(hào)源在哪接呀?
回復(fù)

使用道具 舉報(bào)

地板
ID:1009425 發(fā)表于 2023-2-1 09:15 | 只看該作者
MOV   ADC_CONTR,#11101011B         ;ADC控制寄存器__開(kāi)ADC電源1,最高轉(zhuǎn)換速度11,ADC_FLAG軟件標(biāo)
                                                         志位清0,
                                                        ;ADC_START啟動(dòng)1,轉(zhuǎn)換通道001(P1.3)
回復(fù)

使用道具 舉報(bào)

5#
ID:963310 發(fā)表于 2023-3-2 15:20 | 只看該作者
能做個(gè)5位的就厲害了
回復(fù)

使用道具 舉報(bào)

6#
ID:404454 發(fā)表于 2023-4-8 11:59 | 只看該作者
還是用匯編的頭大。
回復(fù)

使用道具 舉報(bào)

7#
ID:1072518 發(fā)表于 2023-4-18 19:40 | 只看該作者
用匯編頭大。
回復(fù)

使用道具 舉報(bào)

8#
ID:1072518 發(fā)表于 2023-4-18 19:41 | 只看該作者
用匯編的高手,牛人呀。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表