proteus论坛|仿真论坛
直播中

wuxuesong007

9年用户 15经验值
擅长:可编程逻辑 电源/新能源 嵌入式技术
私信 关注
[问答]

利用单片机AT89C51与ADC0809设计一个数字电压表,测量0-5V之间的直流电压值,四位数码显示。

360反馈意见截图16511008104250.png 如图    大神有会做的不~

程序:ADC         EQU        50H
       ORG         0000H
       AJMP        MAIN
       ORG         000BH
       AJMP        INT0
       ORG         0030H
MAIN:  MOV        TMOD,#02H;       ;初始化脉冲信号
       MOV         TH0,#250;
       MOV         TL0,#250;
       SETB        EA
       SETB        TR0
       SETB        ET0
       MOV         R4,#8
START1:MOV        DPTR,#7FF0H  ;指向0通道
       MOVX       @DPTR,A      ;读取转换数值
       JB         P3.4,AAA1
       LCALL      DELAY        ;调用延时程序
       JB         P3.4,AAA1 ;判断是否按下按钮并开始转换数值
       SETB       P3.2          ;P3.2给高电平锁存地址
       INC        R4
       CJNE       R4,#9,AAA2
       MOV        R4,#1
AAA2:  INC       R5             ;显示所选通道
       INC        DPTR        ;指向下一通道
       MOV        B,R5         ;显示通道并重新锁存地址
       MOV        P0,B
       CLR        P3.2
       JNB        P3.4,$
AAA1:  CLR       P2.4
       SETB       P2.4
       CLR        P2.4
       JNB        P2.5,$
       SETB       P2.6
       MOVX       A,@DPTR ;读取转换数据开始转化为工程量
       MOV        ADC,A
       CLR        P2.6
       LCALL      CONV    ;调用转换子程序
       LCALL      DISP    ;调用显示子程序
       LCALL      DELAY   ;调用延时程序
       LJMP       START1
CONV:  MOV      A,ADC             ;数值转换子程序
          MOV       B,#51
   DIV       AB
   MOV       R1,A
   MOV       A,B
   MOV       B,#2
   MUL       AB
   MOV       B,#10
   DIV       AB
   MOV       R2,A
   MOV       R3,B
       RET
DISP:MOV     DPTR,#TABLE    ;数码显示子程序
     MOV    A,R4
     MOVC   A,@A+DPTR
     CLR    P2.3
     MOV    P1,A
     LCALL  DELAY
     SETB   P2.3
     MOV    A,R3
     MOVC   A,@A+DPTR
     CLR    P2.0
     MOV    P1,A
     LCALL  DELAY
     SETB   P2.0
     MOV    A,R2
     MOVC   A,@A+DPTR
     CLR    P2.1
     MOV    P1,A
     LCALL  DELAY
     SETB   P2.1
     MOV    A,R1
     MOVC   A,@A+DPTR
     CLR    P2.2
     ORL    A,#80H
     MOV    P1,A
     LCALL  DELAY
     SETB   P2.2
     RET
INT0:CPL P3.3
     REti
DELAY:MOV    R6,#1     ;延时1ms子程序
D1:   MOV   R7,#250
      DJNZ  R7,$
      DJNZ  R6,D1
      RET
TABLE:    DB  3FH,06H,5BH,4FH,66H
   DB   6DH,7DH,07H,7FH,6FH
能实现要求的功能就可以~

回帖(6)

武力戡乱

2015-6-26 01:06:02
汇编吗,真不会,估计也不会有人帮你做汇编。
如果你感觉c可以的话,也可以参考以下链接里面的ad转换类仿真。
https://bbs.elecfans.com/forum.p ... p;extra=#pid3496263
举报

笑A小顽童

2015-12-28 15:01:01
6666,真心不错哟

举报

h1654155908.9031

2015-12-29 18:33:25
hao hao hao hao hao hao hao hao hao hao hao hao hao hao
举报

dmdz2015

2016-7-30 22:33:38
真心不错哟真心不错哟
举报

东门轮台月

2017-5-22 18:16:41
不错不错
举报

许健

2018-5-18 23:06:18
HAO
XIEXIE
XIEXIE
XIEXIE
举报

更多回帖

发帖
×
20
完善资料,
赚取积分