电子产业一站式赋能平台

PCB联盟网

搜索
查看: 2065|回复: 2
收起左侧

百米跨栏计时器,这代码有啥问题,十分百分计数有问题。

[复制链接]

604

主题

970

帖子

5115

积分

四级会员

Rank: 4

积分
5115
发表于 2023-5-16 11:42:49 | 显示全部楼层 |阅读模式
void timer0() interrupt 1{TH0=(65536-50000)/256;//重新赋初值TL0=(65536-50000)%256;a++;b++;//中断一次变量aa的值加1if(b==2)           //中断2次后,定时时间为2*50ms=100ms=0.01s,将变量temp0的值加1{b=0;temp0++;if(temp0==100)   //秒表到达1s后回零{temp0=0;}baifen=temp0%100/10;shifen=temp0%10;     //分离十分位和百分位}if(a==20)           //中断20次后,定时时间为20*50ms=1000ms=1s,将变量temp1的值加1{a=0;temp1++;if(temp1==60)   //秒表到达60s后回零{temp1=0;}shi=temp1%100/10;ge=temp1%10;     //分离个位和十位}}
回复

使用道具 举报

0

主题

804

帖子

517

积分

二级会员

Rank: 2

积分
517
发表于 2023-5-16 11:42:57 | 显示全部楼层
个位和十位计时没问题,就是后面的百分位和十分位计时不对,感觉代码没问题啊想不明白
百米跨栏计时器,这代码有啥问题,十分百分计数有问题。-1.png
回复 支持 反对

使用道具 举报

0

主题

804

帖子

517

积分

二级会员

Rank: 2

积分
517
发表于 2023-5-16 11:43:21 | 显示全部楼层
void timer0() interrupt 1
{
TH0=(65536-50000)/256;//重新赋初值
TL0=(65536-50000)%256;
a++;
b++;//中断一次变量aa的值加1
if(b==2)           //中断2次后,定时时间为2*50ms=100ms=0.01s,将变量temp0的值加1
{
b=0;
temp0++;
if(temp0==100)   //秒表到达1s后回零
{
temp0=0;
}
baifen=temp0%100/10;
shifen=temp0%10;     //分离十分位和百分位
}
if(a==20)           //中断20次后,定时时间为20*50ms=1000ms=1s,将变量temp1的值加1
{
a=0;
temp1++;
if(temp1==60)   //秒表到达60s后回零
{
temp1=0;
}
shi=temp1%100/10;
ge=temp1%10;     //分离个位和十位
}
}
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表