《单片机实验二 定时器实验程序.docx》由会员分享,可在线阅读,更多相关《单片机实验二 定时器实验程序.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机实验二定时器实验程序实验二定时器实验一、实验目的1数码管动态显示技术2定时器的应用3按键功能定义二、实验实现的功能通过按键能够设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。三、系统硬件设计实验所需硬件:电脑一台;开发板一块;串口通信线一根;USB线一根;四、系统软件设计实验所需软件:编译软件:keiluvision3;程序下载软件:STC_ISP_V480;所编程序:#includesbitW1=P00;sbitW2=P01;sbitW3=P02;sbitW4=P03;sbitD9=P32;sbitD10=P33;sbitD11=P34;sbitD12=P
2、35;sbitDP=P17;sfrP1M1=0x91;sfrP1M0=0x92;/codeunsignedchartable=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E;codeunsignedchartable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;sbitH1=P36;sbitH2=P37;sbitL1=P05;sbitL2=P06;sbitL3=P07;
3、unsignedcharkeynum;unsignedintlasttime=100;bitbset=0;unsignedcharkeyscan();voiddisplay();unsignedchargetkey();voidset();voidmain()TMOD=0X01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;ET0=1;EA=1;P1M1=0x00;P1M0=0xff;while(1)keynum=keyscan();display();set();voidtimer0()interrupt1staticunsignedch
4、arcount=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=20)count=0;if(bset=0)if(lasttime)lasttime-;elseP2=P2;D9=!D9;D10=!D10;D11=!D11;D12=!D12;unsignedchargetkey()H1=1;H2=1;L1=1;L2=1;L3=1;H1=0;if(L1=0)return1;elseif(L2=0)return2;elseif(L3=0)return3;H1=1;H2=0;if(L1=0)return4;elseif(L2=0
5、)return5;elseif(L3=0)return6;H2=1;return0;unsignedcharkeyscan()staticunsignedintct=0;staticunsignedcharlastkey=0;unsignedcharkey;key=getkey();if(key=lastkey)ct+;if(ct=1000)/按键反响太灵敏改这里,越小越灵敏,越大越慢ct=0;lastkey=0;returnkey;elselastkey=key;return0;voidset()if(keynum=1)bset=bset;if(bset=1)if(keynum=2)lasttime+;if(lasttime=1000)lasttime=100;if(keynum=3)if(lasttime)lasttime-;voiddisplay()staticintct1=0;unsignedchara=0;当前位置:文档视界单片机实验二定时器实验程序单片机实验二定时器实验程序出来了扫描键盘的方法。2、如何实现按一下按键,数码管显示的数值加1或者减1?解决方法:首先本人试了试很多种方法,但无论怎样都无法实现此功能,最后通过询问同学才知道,在按下按键时要才用“松手检测的方法,即当按下按键时数码管一直显示当前值,此方法用while语句实现。