洛阳理工学院实验报告系别计算机系班级B140503学号B14050304姓名代利娟课程名称单片机原理及其应用实验日期2016.04.21实验名称电子秒表显示器成绩实验目的:掌握中断和定时/计数器的工作原理,熟悉C51编程与调试方法。实验原理:实验电路原理图如图1所示,由共阴极数码管LED1和LED2、P0口、P2口、上拉电阻R2-R8以及Vcc组成的输出电路;由C1、C2、晶振X1、引脚XTAL1、XTAL2与接地点组成的时钟电路;由C3、R1、引脚RST和Vcc组成的上电复位电路;由Vcc和引脚EA____组成的片内ROM选择电路。(元件参数见表1)图1电路原理图表1实验元件清单实验电路在软件配合下,要求实现如下功能:数码管的初始显示值为“00”;当1s产生时,秒计数器加1;秒计数到60时清0,并从“00”重新开始,如此周而复始进行。软件编程原理为:采用T0定时方式1中断法,其中1s定时采用20次50ms定时中断的方案实现,变成流程图如图2所示。图2软件流程图仿真结果:图3仿真结果源程序:#includereg51.hunsignedcharcodeled[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedchari=0,j=0;//定义中断次数i,秒表计数j并赋初值voidtimer0()interrupt1{//T0中断声明i++;if(i==20){//20次中断,i清零,j加1i=0;j++;}if(j==60)j=0;P0=led[j/10];//P0与P2是分别对应的led显示数值P2=led[j%10];TH0=0x3c;//T0重装载计数初值TL0=0xb0;}voidmain(void){//主函数声明TMOD=0X01;//T0定时50ms方式1初始化TH0=0x3c;//T0赋计数初值TL0=0xb0;P0=led[j/10];//LED1与LED2显示“00”P2=led[j%10];ET0=1;//启动T0EA=1;//开启中断TR0=1;while(1);//进入无限循环}实验小结:经过这次的上机实验,我掌握了中断定时/计数器的工作原理,熟悉C51单片机的编程与调试方法,掌握ProteusISIS模块的原理图绘图方法及及单片机系统仿真运行方法。同时在实现电子秒表显示器的功能时提高了程序的编写及调试能力,学会了用中断函数的程序进行仿真运行来实现电子秒表显示器的功能,把在课堂上学到的科学理论知识在实践中得以运用,使学习成为一件更加的有趣与生动的事。