打印

10S计数器怎么到200就清零了

[复制链接]
1719|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gentleman1358|  楼主 | 2010-10-14 21:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
麻烦大家帮忙看看,有没有哪里搞错了。
最大值应该是999才对啊,怎么到200就清零了?
程序如下:
/*以0.01s计数,在数码管上显示,最大测量值999*/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,
     0x92,0x82,0xf8,0x80,0x90};//显示段码//
uchar code wei[]={0x01,0x02,0x04,0x08,0x10,0x20};//位编码//
delay(uchar);
display(uchar);
uchar a,b,c,d,n;
void main()//主函数
{
EA=1;//10ms定时
ET0=1;
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TR0=1;
n=0;
while(n<1000) //最大计数999
{
  display(n);
}
}
void ds() interrupt 1 using 1//定时子函数
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
n++;
}
display(uchar n)//显示子函数
{
P3=0x00; //个位显示
P2=table[n%10];
P3=wei[5];
delay(50);
d=n/10;  //求高两位

P3=0x00; //十位显示
P2=table[d%10];
P3=wei[4];
delay(50);

P3=0x00; //百位显示
P2=table[d/10];
P3=wei[3];
delay(50);
}
delay(uchar c) //延时子函数
{
for(a=c;a>0;a--)
  for(b=100;b>0;b--);
}

相关帖子

沙发
wangyy608| | 2010-10-14 21:41 | 只看该作者
uchar n?

使用特权

评论回复
板凳
gentleman1358|  楼主 | 2010-10-15 10:45 | 只看该作者
能再明确点吗?

使用特权

评论回复
地板
ayb_ice| | 2010-10-15 10:54 | 只看该作者
uchar的取值范围

使用特权

评论回复
5
zjswuyunbo| | 2010-10-15 12:04 | 只看该作者
uchar n;
改为
uint  n

uchar 是0---255

使用特权

评论回复
6
ZLSWRH| | 2010-10-15 13:28 | 只看该作者
同5L

使用特权

评论回复
7
gentleman1358|  楼主 | 2010-10-15 17:48 | 只看该作者
哦!多谢了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

100

帖子

1

粉丝