找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机定时器做的秒表器为什么有些数字显示不全?

[复制链接]
跳转到指定楼层
楼主
刚学定时器自己写了这样的程序,从0秒到9999秒的显示

单片机源程序如下:
#include<reg51.h>
#define uchar unsigned char#define uint unsigned int
uchar code duanma[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code xuanma[4]={0x08,0x04,0x02,0x01};
uint m=0;
void delayms(uint j)
{uchar i;
for(;j>0;j--)
{i=250;
while(--i);
i=249;
while(--i);
} }
void display()
{P0=0xff;
P2=xuanma[0];
P0=duanma[m%10];
delayms(2);
P2=xuanma[1];
P0=duanma[(m/10)%10];
delayms(2);
P2=xuanma[2];
P0=duanma[(m/100)%10];
delayms(2);
P2=xuanma[3];
P0=duanma[m/100/10];
delayms(2);}
void time0() interrupt 1 using 1
{uchar j;
j++;
if(j==20)
{
  m++;j=0;}
  TH0=(65535-50000)/256;
  TL0=(65535-50000)%256;
}
void main()
{EA=1;ET0=1;
TMOD=0X01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TR0=1;
while(1)
{display();}}

为什么用Proteus仿真会出现这种情况?求大佬不吝赐教

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

使用道具 举报

沙发
ID:824490 发表于 2021-4-28 16:30 | 只看该作者
显示不全查IO、查码表。
回复

使用道具 举报

板凳
ID:906945 发表于 2021-4-28 16:41 | 只看该作者
名字不是重点 发表于 2021-4-28 16:30
显示不全查IO、查码表。

啊啊问题已经解决,连线出了问题,谢谢谢谢
回复

使用道具 举报

地板
ID:213173 发表于 2021-4-28 16:42 | 只看该作者
排阻接错地方了,改接到P0口即可。
回复

使用道具 举报

5#
ID:684049 发表于 2021-4-28 17:31 | 只看该作者
上拉电路接错了吧
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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