51单片机定时器的应用proteus仿真本人喜好单片机设计,精通单片机编程和硬件电路设计,在空余之际编一些小程序与大家分享,有哪位路过,请多多指教,希望大家在一起能互相学习,互相进步。这里的程序已经测试通过。发表出来,一来可以帮助同样爱好单片机的朋友们,二来,希望能结交一些同道中人,共同学习。实例原理:用定时器设计一个秒表,其中设有一个按键,定时器T0工作在方式1。当第一次按下按键时,定时器开始计时。第二次按下按键时,停止计时并计算第一次按下键盘与第二次按下键盘的时间,送人P0口和P2口并将时间显示出来,P0口显示十位,P2口显示各位。第三次按下键盘时使定时器清零,等待下一次按键。源程序:#includereg51.h#defineucharunsignedcharsbitkey=P3^0;sbitge=P2^7;sbitshi=P2^6;uchartime=0,count=0;ucharcodedis[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};ucharcodedis_dot[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};voiddelay(ucharN){uchari,j;for(i=0;iN;i++)for(j=0;j125;j++);}voiddisplay(void){P0=dis[time%10];ge=0;delay(3);ge=1;P0=dis_dot[time/10];shi=0;delay(3);shi=1;}voidmain(){TMOD=0x01;TH0=0x3c;TL0=0xb0;IE=0x82;//定时器T0工作在方式1while(1){while(key==1)display();TR0=1;EA=1;while(key==0)display();while(key==1)display();EA=0;while(key==0);display();while(key==1)display();time=0;while(key==0)display();}}voidT0_time()interrupt1{count++;if(count==2){time++;count=0;if(time==99)time=0;}TH0=0x3c;TL0=0xb0;}仿真结果图:如果您想做项目开发,或者是做课题,或者您只是有一个想法,亲联系我们,我们会尽最大努力帮您完成,您的需要就是我们奋斗的方向!本人有给学生做课程设计的经验,欢迎亲们来本店咨询哦淘宝店铺地址:://koolm.taobao.comQQ:1203026348;496617571邮箱:1203026348@qq.com;496617571@qq.com电话:小陈:15225093569小张:15838040206阿里旺旺:tb3569_1968;zwjyln我们拥有40G!!超大容量!!!是单片机入门者的首选经典资料!!!您在单片机方面有任何问题,请及时和我们联系,我们会竭诚为您服务!!承接单片机项目开发,同时包括软件开发和硬件开发。我们是一组拥有扎实的单片机基础知识的大学生,我们可以给您提供从项目开始到项目的完成整个过程的技术支持,其中包括原理图的设计、电路图的proteus软件仿真、程序的编写以及相关软件的使用等软件类和单片机板子、相关元器件或者是整个硬件的设计。