中易网

52系列单片机

答案:2  悬赏:60  
解决时间 2021-02-16 23:22
求52单片机99秒倒计时(循环)
最佳答案
#include 

#define uchar unsigned char
#define uint unsigned int

sbit wela = P2^6; //位选
sbit dula = P2^5; //段选

uchar num, sec;

uchar code table1[] = { //段编码
0xc0, 0xcf, 0xa4, 0xb0,
0x99, 0x92, 0x82, 0xf8,
0x80, 0x90, 0x88, 0x83,
0xa7, 0xa1, 0x86, 0x8e};
uchar code table2[] = { //位编码
0x01, 0x02, 0x04, 0x08,
0x10, 0x20, 0x40, 0x80};

void delay(uint xms) {
uint i, j;

for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}

void display(uchar dat)
{
uchar shi, ge;

shi = dat / 10;
ge = dat % 10;

wela = 1;
P0 = table2[0];
wela = 0;
P0 = 0xff;
dula = 1;
P0 = table1[shi];
dula = 0;
delay(5);

wela = 1;
P0 = table2[1];
wela = 0;
P0 = 0xff;
dula = 1;
P0 = table1[ge];
dula = 0;
delay(5);
}

void main() {
TMOD = 0x01;
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
ET0 = 1;
TR0 = 1;
EA = 1;
sec = 0;

while(1)
{
display(sec);
if(num==20)
{
num = 0;
sec++;
if(sec==100)
sec = 0;
}
}
}

void timer0() interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
num++;
}晶振12M
全部回答
亲,你好!很高兴可以帮你回答。是这样的mcs-52系列单片机芯片比51芯片多了个定时寄存器,芯片的内存也比51大点,其它就没什么区别了。不多用个定时器二者程序都可以用没什么差别的。亲,希望我的回答对你有所帮助谢谢:)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
生日那天是农历八月十二 是什么星座的?
木盖图地址有知道的么?有点事想过去
有一个圆的水池,内直径是4米,外直径是5米6
川金CNG加气站地址在什么地方,想过去办事
品一足道在什么地方啊,我要过去处理事情
2015年rt二级取证考试结果查询
今晚贵阳有没有到四川南充的飞机
纵横融达投资担保公司我想知道这个在什么地方
潮汕砂锅粥(种子店)这个地址在什么地方,我要
具体解释大笔点染
大陆人想在香港租铺.需要什么证
长城哈佛H52.0前轮轴承几个
湖南永州新田卖鱼批发市场在那里,我想做鱼生
北京师范大学继续教育学院1996年毕业证国家承
平安银行跑贷款业务如何
推荐资讯
滴滴司机周围显示很多单,可为什么接不到单
圆舞曲是几拍子?
两台XP双机互连的密码问题(帮帮忙,急啊!)
如何判断任意项级数的敛散性
什么电影讲的是用科技改变生活的
志城百货在哪里啊,我有事要去这个地方
佳乐套装门厂地址在哪,我要去那里办事
阿尔巴西班牙国家队首秀是和哪个国家
去接进远的国家来攻打临近的国家有什么成语
家家爱床上用品厂怎么去啊,我要去那办事
蒲公英学习中心在什么地方啊,我要过去处理事
学软件开发和学网络营销哪个更好一些?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?