预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

//动态显示 #include<reg52.h> #include<intrins.h> #defineuintunsignedint #defineucharunsignedchar ucharaa,shi,fen,miao,shi1,shi2,fen1,fen2,miao1,miao2; ucharcodetable[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; voidinit();//初始化函数 voiddisplay(ucharshi1,ucharshi2,ucharfen1,ucharfen2,ucharmiao1,ucharmiao2);//显示函数 voiddelay(uintz);//延时函数 voidmain()//主函数 { init(); while(1)//等待中断,并不停地动态扫描,定时器的时间到了,则中断发生,然后时间数值变化一次,时间不到则不停动态扫描。 { shi1=shi/10;//数值变化 shi2=shi%10; fen1=fen/10; fen2=fen%10; miao1=miao/10; miao2=miao%10; display(shi1,shi2,fen1,fen2,miao1,miao2);//显示函数 } } voiddelay(uintz)//延时子函数 {uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } voidinit()//初始化变量,开启中断 {shi=0; fen=0; miao=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } voiddisplay(ucharshi1,ucharshi2,ucharfen1,ucharfen2,ucharmiao1,ucharmiao2)//显示子函数 { P2=0x02;//位选 P0=table[shi1];//段选 delay(1); P2=0x03; P0=table[shi2]; delay(1); P2=0x04; P0=table[fen1]; delay(1); P2=0x05; P0=table[fen2]; delay(1); P2=0x06; P0=table[miao1]; delay(1); P2=0x07; P0=table[miao2]; delay(1); } voidT0_time()interrupt1//中断服务程序 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; if(aa==20)//一秒钟 { aa=0; miao++; if(miao==60)//秒钟 { miao=0; fen++; if(fen==60)//分钟 { fen=0; shi++; if(shi==24)//时钟 { shi=0; } } } } }