欢迎来到天天文库
浏览记录
ID:17903445
大小:22.50 KB
页数:5页
时间:2018-09-09
《数码管动态显示及编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#include#defineuintunsignedint//宏定义#defineucharunsignedchar//宏定义uchartemp,aa,bai,shi,ge;sbitdula=P2^6;//段选信号位定义sbitwela=P2^7;//位选信号未定义ucharcodetable[]={//共阴极数码管编码表0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddisplay(ucharb
2、ai,ucharshi,ucharge);//显示程序voiddelay(uintz);//延时程序voidinit();//初始化程序voidmain()//主程序{init();//初始化子程序while(1){if(aa==20)//每隔1s数码管加一{aa=0;temp++;if(temp==100){temp=0;}bai=temp/100;//将temp分离出来分别显示出来shi=temp%100/10;ge=temp%10;}display(bai,shi,ge);}}voiddelay(uintz)//延时程序大概1ms
3、{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voiddisplay(ucharbai,ucharshi,ucharge){dula=1;//这里的段选和位选全P0=table[bai];//部有P0口输入,所以dula=0;//用两个锁存器来帮助P0=0xff;wela=1;P0=0xfe;wela=0;delay(5);dula=1;P0=table[shi];dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delay(5;dula=1;P0=table[ge];
4、dula=0;P0=0xff;wela=1;P0=0xfb;wela=0;delay(5);}voidinit(){wela=0;dula=0;temp=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}voidtimer0()interrupt1//用定时器0来进行定时{TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;}
此文档下载收益归作者所有