资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
思路说明:将显示程序放入定时器中断,设定一闪烁标志位。定时时间为2MS,定时时间到则将标志位取反,同时也可以将按键扫描程序放入该定时器,则在视觉上可以看到要求位的闪烁。#include#define uchar unsigned char#define uint unsigned intuchar code num=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar dbuf4;uchar outnum;bit flashflag=0;uchar flashbit=0;sbit key1=P32;void setint()TMOD=0X01;TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=1;void delayus(uint z)uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);void display()if(flashflag=1&flashbit=1)P0=0xff;else P0=numdbuf0;P1=0x01;delayus(20);P1=0x00;if(flashflag=1&flashbit=2)P0=0xff;else P0=numdbuf1;P1=0x02;delayus(20);P1=0x00;if(flashflag=1&flashbit=3)P0=0xff;else P0=numdbuf2;P1=0x04;delayus(20);P1=0x00;if(flashflag=1&flashbit=4)P0=0xff;else P0=numdbuf3;P1=0x08;delayus(20);P1=0x00;void keynum()uchar temp;P2=0x0f;if(P2!=0xf0)delayus(10);if(P2!=0xf0)P2=0xf7;delayus(10);temp=P2;switch(temp)case 0xe7:flashbit=1;break;case 0xd7:flashbit=2;break;case 0xb7:flashbit=3;break;case 0x77:flashbit=4;break;default :P2=0xfb;temp=P2;switch(temp)case 0xeb:outnum=1;break;case 0xdb:outnum=5;break;case 0xbb:outnum=9;break;case 0x7b:outnum=13;break;default:P2=0xfd;temp=P2;switch(temp)case 0xed:outnum=2;break;case 0xdd:outnum=6;break;case 0xbd:outnum=10;break;case 0x7d:outnum=14;break;default:P2=0xfe;temp=P2;switch(temp)case 0xee:outnum=3;break;case 0xde:outnum=7;break;case 0xbe:outnum=11;break;case 0x7e:outnum=15;break;default:break;/*if(!key1)delayus(50);if(!key1)outnum=5;while(!key1);delayus(50); */void main()setint();while(1)dbuf0=outnum/10;dbuf1=outnum%10;dbuf2=2;dbuf3=3;void timer1() interrupt 1TH0=(65536-10000)/256;TL0=(65536-10000)%256;keynum();display();flashflag=flashflag;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号