9282|9

30

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

Proteus 数码管显示不稳定,help。。。 [复制链接]

#define uc unsigned char
#define ui unsigned int
uc code num[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};  //字符编码
uc code tab[3]={0xf6,0xed,0xdb};   //数码管选择编码,分别表示时分秒的位选码
static uc hour=23;      //时
static uc minute=58;  //分
static uc second=0;  //秒
uc counter=0;
uc i,j; 
uc high,low=0;
uc segCode;
uc ms;

void display(uc time,uc bitCode)    //数码管显示

 high=time/10;
 low=time%10;
 segCode=num[high];    //计算将要送出的高低位数字
 segCode=segCode<<4;
 segCode+=num[low];
 P0=segCode;    //P0口输出段码
 P1=bitCode;   //P1口选择点亮数码管
 return;
 
}

void delay_ms(uc ms)
{
 while(ms--)
 {
  for(j=124;j>0;j--);
 }
 return;
}
 
void main()
{
TMOD=0x01;
EA=1;
ET0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
P1=0xff;
do
{
 display(hour,tab[0]); //时
 delay_ms(50);//延时
 P1=0xff;   
 display(minute,tab[1]); //分
 delay_ms(50);
 P1=0xff;
 display(second,tab[2]); //秒
 delay_ms(50);
 P1=0xff;
}while(1);
}

void timer1s(void) interrupt 1
{
  TH0=(65536-50000)/256;   //装初值,定时50MS
  TL0=(65536-50000)%256;
  counter++;
  if(counter!=20)     //计算定时中断次数20,即总计时1S
   return;
  else
  {
   counter=0;    //1S时间到,中断计数重新置零
   if(second<59)
   { 
    second++;
    return;
   }
   else
   {
    second=0;
    if(minute<59)
    {
     minute++;
     return;
    }
    else
    {
     minute=0;
     if(hour<23)
     {
      hour++;
      return;
     }
     else
     {
      hour=0;
      return;
     }
    }
   }
  }
  
}  

 

我用的是7.5版的,不知道为什么不能动态显示,如果把延时改小了就不正常了!!!

此帖出自单片机论坛

最新回复

看样子是仿真的时候慢了点,你换一台机器试一试。  详情 回复 发表于 2010-6-5 22:37
点赞 关注
 

回复
举报

30

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
为什么p会变成笑脸的???
此帖出自单片机论坛
 
 

回复

2万

帖子

74

TA的资源

管理员

板凳
 

回复 沙发 270862450 的帖子

两种方式可以避免笑脸:

左下角有一个 禁用smiles 勾选上

还有一个方式就是用发代码的格式发

此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

6366

帖子

4917

TA的资源

版主

4
 
显示不稳定是什么意思?
是不是数码管一会亮一会不亮?
此帖出自单片机论坛
 
 
 

回复

132

帖子

0

TA的资源

纯净的硅(高级)

5
 
你可以调一下动态扫描的时间
此帖出自单片机论坛
 
 
 

回复

30

帖子

0

TA的资源

一粒金砂(初级)

6
 
就是不能稳定的显示,如一串数字233456,
如果延时长了,就一个一个的显示,
如果延时短了,就会仿真失常。
怎么样才能稳定的显示233456呢(六个数码管)。
此帖出自单片机论坛
 
 
 

回复

1781

帖子

0

TA的资源

五彩晶圆(中级)

7
 
你电脑的配置怎么样啊?仿真的时候是否是CPU使用率非常高呢,你看一下PROTEUS左下角显示的时间,看是否是正常的以秒来计还是以毫秒来计???
此帖出自单片机论坛
 
个人签名只有求知欲,没有求偶欲的人是植物,只有求偶欲,没有求知欲的人叫动物,既没求知欲,又没求偶欲的人是矿物。
 
 

回复

30

帖子

0

TA的资源

一粒金砂(初级)

8
 
仿真时候,ISIS占用了50%
T4200,2G内存还不能够这个东西仿真吗?
那个计时是以毫秒来计时的,我改了几次仿真参数还是不行
要怎么才能改成以秒计时呢?
此帖出自单片机论坛
 
 
 

回复

1781

帖子

0

TA的资源

五彩晶圆(中级)

9
 

回复 8楼 270862450 的帖子

看样子是仿真的时候慢了点,你换一台机器试一试。
此帖出自单片机论坛
 
个人签名只有求知欲,没有求偶欲的人是植物,只有求偶欲,没有求知欲的人叫动物,既没求知欲,又没求偶欲的人是矿物。
 
 

回复

30

帖子

0

TA的资源

一粒金砂(初级)

10
 
上个星期发现是三极管的缘故,我吧三极管去掉就OK乐
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表