找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2075|回复: 2
打印 上一主题 下一主题
收起左侧

屏幕怎么不显示数据 求帮助

[复制链接]
跳转到指定楼层
楼主
LED1 EQU 30H                    ;初始化定义 LED2 EQU 31H LED3 EQU 32H                    ;存放三个数码管的段码 ADC  EQU 35H                   ;存放转换后的数据 ST  BIT  P3.2 OE  BIT  P3.0 EOC BIT P3.1                       ;定义ADC080... LED1 EQU 30H                    ;初始化定义
LED2 EQU 31H
LED3 EQU 32H                    ;存放三个数码管的段码
ADC  EQU 35H                   ;存放转换后的数据
ST  BIT  P3.2
OE  BIT  P3.0
EOC BIT P3.1                       ;定义ADC0809的功能控制引脚
ORG 0000H
LJMP MAIN                        ;跳转到主程序执行
ORG 0030H
MAIN: MOV LED1,#00H
      MOV LED2,#00H
      MOV LED3,#00H              ;寄存器初始化
      CLR P3.4
      SETB P3.5
      CLR P3.6                    ;选择ADC0809的通道2
WAIT: CLR ST
      SETB ST
      CLR ST                     ;在脉冲下降沿启动转换
      JNB EOC,$                  ;等待转换结束
      SETB OE                   ;允许输出信号
      MOV ADC,P1               ;暂存A/D转换结果
      CLR OE                    ;关闭输出
      MOV A,ADC                ;将转换结果放入A中,准备个位数据转换
      MOV B,#50                 ;变换个位调整值50送B
      DIV AB
      MOV LED1,A               ;将变换后的个位值送显示缓冲区LED1
      MOV A,B                   ;将变换结果的余数放入A中,准备十分位变换
      MOV B,#5                  ;变换十分位调整值5送B
      DIV AB
      MOV LED2,A               ;将变换后的十分位值送LED2
      MOV LED3,B               ;最后的余数作百分位值送LED3
      LCALL DISP                ;调用显示程序
      AJMP WAIT
DISP:MOV R1,#LED1              ; 显示子程序
     CJNE @R1,#5,GO             ;@R1=5V?是往下执行,否,则到GO
     MOV LED2,#0H              ;是5V,即最高值,将小数的十分位清零
     MOV LED3,#0H              ;将小数的百分位清零
  GO:MOV R2,#3                  ;显示位数赋初值,用到3位数码管
     MOV R3,#0FDH              ;扫描初值送R3
DISP1:MOV P2,#0FFH                 ;关闭显示,目的防止乱码
     MOV A,@R1                    ;显示值送A
     MOV DPTR,#TAB                ;送表首地址给DPTR
    MOVC A,@A+DPTR              ;查表取段码
     CJNE R2,#3,GO1                 ;判断是否个位数码管?否则跳到GO1
     ORL A,#80H                     ;将整数的数码管显示小数点
GO1:MOV P0,A                      ;送段码给P0口
     MOV A,R3
     MOV P2,A                      ;送位码给P2口
     LCALL DELAY                  ;调用延时
     MOV R3,A
     RL A                           ;改变位码
     MOV R3,A
     INC R1                         ;改变段码
     DJNZ R2,DISP1                  ;三位是否显示完?否则调到DISP1
     RET
DELAY:MOV R6,#10                   ;延时5S程序:
   D1:MOV R7,#250
      DJNZ R7,$
      DJNZ R6,D1
      RET
TAB: DB 3FH, 06H,5BH,4FH,66H;共阴极数码管显示0-4    ;显示数据表:
     DB 6DH,7DH,07H,7FH,6FH;显示5-9
     END
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:311315 发表于 2018-5-17 17:25 | 只看该作者
毕业设计_基于Proteus的数字电压表的设计_new要点.doc免费全文阅读  https://max.book118.com/html/2016/0516/43107556.shtm
回复

使用道具 举报

板凳
ID:311315 发表于 2018-5-17 17:28 | 只看该作者
和网上的显示不一样    我是哪里错了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表