找回密码
 立即注册

QQ登录

只需一步,快速开始

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

按照要求让数码管稳定显示数字变化,可是只有一位稳定变化,另一位闪烁变化急求高...

[复制链接]
跳转到指定楼层
楼主
ID:66970 发表于 2014-11-22 10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
急求高手看下这个程序,按照要求让数码管稳定显示数字变化,可是只有一位稳定变化,另一位闪烁变化。急求调试两天了,实在找不到问题所在
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint num;
uchar shi,fen,miao,s,g,shi,ge;
sbit du=P2^6;
sbit we=P2^7;
uchar table[]={
0x3F,0x06,0x5B,
0x4F,0x66,0x6D,
0x7D,0x07,0x7F,
0x6F,0x48//:
};
void delayms(uchar x)
{
  uchar i,j;
  for(i=x;i>0;i--)
  for(j=110;j>0;j--);
}
void timer()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void displays(uchar shi,uchar ge)
{
we=1;P0=0x7f;we=0;
du=1;P0=table[shi];du=0;
P0=0xff;delayms(5);

we=1;P0=0xbf;we=0;
du=1;P0=table[ge];du=0;
P0=0xff;delayms(5);
}
void main()
{   

   timer();
  while(1)
  {
   if(num==20)
   {
   num=0;
    miao++;
    if(miao==60)
    {
     miao=0;
    }
    s=miao%10;
    g=miao/10;
    displays(s,g);

   }
  }
}

void timer1() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
  }

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:19715 发表于 2014-11-22 11:02 | 只看该作者
void main()
{   
   timer();
  while(1)
  {  
    s=miao%10;
    g=miao/10;
    displays(s,g);
  }
}
void timer1() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
  if(num==20)
   {
    num=0;
    miao++;
    if(miao==60) miao=0;
   }
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:66970 发表于 2014-11-22 11:55 | 只看该作者
明白 发表于 2014-11-22 11:02
void main()
{   
   timer();

可以帮我解释下,我的程序错误原因吗?修改之后你的程序是正确的
回复

使用道具 举报

地板
ID:58502 发表于 2014-11-22 14:13 | 只看该作者
又一个使用拼音做变量的,这样一来时分秒的时是shi,个位十位的十也是shi,变量就冲突了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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