找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1589|回复: 3
收起左侧

单片机串行控制七段数码管代码错误?

[复制链接]
ID:998050 发表于 2021-12-29 00:02 | 显示全部楼层 |阅读模式
本帖最后由 mentooo 于 2021-12-29 12:23 编辑

《实例解读51单片机完全学习与应用》程序8-15
目标:数码管显示1和5 1.jpg
原代码如下:Keil调试不正确!!新手求解
  1. ORG                00H                           
  2. START:
  3.         MOV                30H,#1                        ; 低位七段数码管DS0显示数据
  4.         MOV                31H,#5                        ; 高位七段数码管DS1显示数据
  5. MOV             R0,#30H                        ; R0=30H
  6.         MOV             R1,#40H                        ; R1=40H
  7. MOV             R2,#2                        ; R2=2
  8. DP10:   
  9. MOV      DPTR,#TABLE           ; 装表
  10. MOV             A,@R0                        ; 将R0所指的数据载入A
  11.         MOVC            A,@A+DPTR              ; 取表
  12.         MOV             @R1,A                        ; 把数据暂时保存在R1所指的地址中
  13. INC                R1                                ; R1自增1
  14. INC                R0                                ; R0自增1
  15.         DJNZ        R2,DP10                        ; 如果R2不等于0,说明没有取完两个段码,跳回DP10循环
  16.         MOV             R0,#40H               ; R0=40H,指向刚才保存段码的空间
  17.         MOV             R1,#2                  ; R1=2,段码共有2个字节数
  18. DP11:   
  19. MOV             R2,#8                  ; R2=8,每位显示数据共有8个段码,R2作计数器 
  20.         MOV             A,@R0                 ; 把R0指向的段码数据载入A
  21. DP12:   
  22. RLC                A                      ; 段码数据向左移动一位
  23.         MOV                P2.0,C                  ; 串行输出一位段码数据
  24.         CLR                P2.1                    ; 发送位移脉冲
  25.         SETB        P2.1                        ; 形成上升沿
  26.         DJNZ        R2,DP12                        ; 判断是否输出8位段码
  27.         INC                R0                                ; R0自增1
  28.         DJNZ        R1,DP11                        ; 判断是否输出两个显示数据
  29.         JMP                $

  30. TABLE:                                                ;七段数码管显示数据表(段码)
  31. DB                40H,79H,24H,30H,19H ;0,1,2,3,4
  32.         DB                12H,02H,78H,00H,10H ;5,6,7,8,9
  33.         END
复制代码




回复

使用道具 举报

ID:155507 发表于 2021-12-29 17:52 | 显示全部楼层
Keil没有问题呀
Keil-Proj001.jpg


你的Keil有什么错误?


回复

使用道具 举报

ID:998050 发表于 2021-12-29 22:00 | 显示全部楼层

这个程序 p2.0口 会一直输出0  ,因为RLC  A的值就是0
《实例解读51单片机完全学习与应用》第210页。
我再研究下。
回复

使用道具 举报

ID:624769 发表于 2021-12-30 09:55 | 显示全部楼层

        SETB        P2.1                        ; 形成上升沿
        CLR          P2.1                    ; 发送位移脉冲
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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