欢迎来到天天文库
浏览记录
ID:58704354
大小:26.00 KB
页数:6页
时间:2020-10-02
《单片机独立键盘.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、89C52单片机用数码管的前两位显示一个十进制舒,变化范围是00~59,开始时显示00,每按下S2键一次,数值加1,每按下S3键,数值减1,每按下S4键,数值归零;按下S5键,定时器功能开始自动加1,再次按下S5键数值停止自动加1,保持原数值。#include#defineuintunsignedint#defineucharunsignedcharsbitkey1=P3^4;sbitkey2=P3^5;sbitkey3=P3^6;sbitkey4=P3^7;sbitdula=P2^6;sbitwela=
2、P2^7;ucharnumt0,num,temp;ucharcodetable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00,0x73};voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voiddisplay(ucharnumdis){ucharshi,ge;shi=numdis/10;ge=numdis%10;dula=
3、1;P0=table[shi];dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delay(10);dula=1;P0=table[ge];dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delay(10);}voidinit(){TMOD=0x01;TH0=(65536-45872)/256;TL0=(65536-45872)%256;EA=1;ET0=1;}voidkeyscan(){TR0=temp;if(key1==0){delay(10);if(key1==0)
4、{num++;if(num==60)num=0;while(!key1);}}if(key2==0){delay(10);if(key2==0){if(num==0)num=60;num--;while(!key2);}}if(key3==0){delay(10);if(key3==0){num=0;while(!key3);}}if(key4==0){delay(10);if(key4==0){while(!key4);temp=~temp;}}}voidmain(){init();while(1){keyscan();
5、display(num);}}voidT0_time()interrupt1{TH0=(65536-45872)/256;TL0=(65536-45872)%256;numt0++;if(numt0==20){numt0=0;num++;if(num==60)num=0;}}
此文档下载收益归作者所有