永发信息网

设计一段单片机c程序。实现技术功能。从0到9999,一位数时前面三位不显

答案:1  悬赏:0  手机版
解决时间 2021-01-21 11:27
  • 提问者网友:遁入空寂
  • 2021-01-21 08:17
设计一段单片机c程序。实现技术功能。从0到9999,一位数时前面三位不显
最佳答案
  • 五星知识达人网友:忘川信使
  • 2021-01-21 08:27
#include
#define uchar unsigned char
uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};  //0到9
uchar num,nn=0;
uchar led[]={10,10,10,0};
unsigned int dat=0;
sbit key=P1^0;
bit flag=0;
void t0isr() interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
switch(num)
{
case 0:P2=0x01;break;
case 1:P2=0x02;break;
case 2:P2=0x04;break;
case 3:P2=0x08;break;
default:break;
}
P0=~tab[led[num]];
num++;
num&=0x03;
}
void t1isr() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
nn++;
nn%=5;
if(nn==0)dat++;
if(dat>9999)dat=0;
led[0]=dat/1000;
led[1]=(dat%1000)/100;
led[2]=(dat%100)/10;
led[3]=dat%10;
if(dat<1000)led[0]=10;
if(dat<100)led[1]=10;
if(dat<10)led[2]=10;
}
main()
{
TMOD=0x11;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
ET1=1;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(key==0)
{
while(key==0);
TR1=~TR1;
}
}
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯