找回密码
 立即注册

QQ登录

只需一步,快速开始

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

我这数码管控制为啥不对呢

[复制链接]
跳转到指定楼层
楼主
ID:73640 发表于 2015-2-14 10:48 来自触屏版 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
我的是四位七段数码管,想显示99秒计时,现在秒的低位不显示,和高位变1低位也变1
程序如下
ORG 00H
START:
      MOV 30H,#40H
          MOV 31H,#79H
          MOV 32H,#24H
          MOV 33H,#30H
          MOV 34H,#19H
          MOV 35H,#12H
          MOV 36H,#02H
          MOV 37H,#78H
          MOV 38H,#00H
          MOV 39H,#10H          

          MOV 3AH,#40H    ;保存秒  10位
          MOV R7,#00H           ;秒10位数据保存
  YUN:MOV P1,#0FFH;将p1口置高电平
         
          
          
          
          MOV R0,#30H  ;把数码管显示数据表首地址传送到工作寄存器R0,R0作为数码管间接地址指针使用

          MOV R1,#10 ;作为p1.3数码管从0-9循环显示计数
  SAN:     ;此为计时p1.3从0-9循环显示子程序
      SETB P1.2;将p1.2置高电平,
      CLR P1.3 ;置低电平,准备向P1.3写入数据
       
      MOV P0,@R0;向p0写入数码管现实数据表第一位,也就是p1.3此时应该显示地址30h中的数据40h,此时数码管显示0
          SETB P1.3
          CLR P1.2
          MOV P0,3AH
          CLR P1.3
      INC R0
          CALL YAN
          DJNZ R1,SAN
          INC R7
          CALL MIAOSHI
          
          JMP YUN

YAN:  MOV R2,#100
   D1:MOV R4,#50
   D: MOV R3,#200
      DJNZ R3,$
          DJNZ R4,D
          DJNZ R2,D1
          RET

MIAOSHI:CJNE R7,#1,MIAO2
                MOV  3AH,31H
                SETB P1.3
                MOV P0,3AH
                CLR P1.3
                RET
MIAO2: CJNE R7,#2,MIAO3
                MOV  3AH,32H
                SETB P1.3
                MOV P0,3AH
                CLR P1.3
                RET      
MIAO3:  
  END
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:73640 发表于 2015-2-15 22:33 来自触屏版 | 显示全部楼层
ahshmj 发表于 2015-2-14 22:25
程序的文字说明太少。但可以看出好像P0是段码,不知道你的P1.2和P1.3是不是位控制?如果是,下面的两段程序 ...

是啊前辈,我就弄得测试,没写十位3以后的,我这个是开始显示00,过了十秒后就是p1.3位选秒的低位那个10次循环结束后显示11,然后再十次循环结束后显示22,能告诉我您的q吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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