单片机课程设计报告一、实验题目秒表系统设计——用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。二、系统总体功能用两个数码管来显示秒表数据,一个显示秒,另一个显示十分之一秒。有一个按键来启动秒表的开始和结束。增加一个清零按钮,计时结束后可以清零。三、实验目的1、利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。2、综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。3、通过本次课程设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。4、通过本次试验,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。四、系统设计方案本实验利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。模拟利用AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计数的开启/暂停/继续与复位!其中有两个数码管用来显示数据,一个数码管显示秒(两位),另一个数码管显示十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。计秒数码管采用两位的数码管,当计数超过范围是所有数码管全部清零重新计数。五、试验设计所需硬件(模拟硬件)Atmel89C51单片机芯片一个、LED数码显示管三个,低压电源、开关(按钮)两个、电阻、电容及导线若干。由于条件限制本实验采用软件模拟硬件系统,采用proteus软件进行模拟设计及调试工作。图1七段数码管引脚图图2Atmel89C51单片机外部引脚图六、试验设计原理图图3试验设计电路图七、软件设计分析程序流程图:是否是否手动开关定时器溢出中断对定时器重新赋值进行加一操作后重新计算时间往P0口和P2口送显示时间数码管显示中断返回主函数对定时器/计数器初始化始化程序开始判断P0^4口是否有低电平信号开中断并启动定时器开始、暂停或者继续计数置零判断P0^7口是否有低电平信号实验程序清单:#include{sbitsta_end=P3^4;sbitreset=P3^7;unsignedcharcodetable0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharcodetable1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};/*声明second10用于计数十分之一秒变化,second1用于记录秒的个*//*位,second2用于记录秒的十位*/unsignedintsecond10,second1,second2;bitbdataflag;/*以下是设置延时功能的函数*/voiddelay(){unsignedchari,j;for(i=90;i>0;i--)for(j=200;j>0;j--);}}/*以下是设置时间的函数*/voidsetTime(){second10++;if(second10==10)/*当十分之一秒计数到十后从零重新计时*/{second10=0;/*同时秒计时个位加一*/second1++;if(second1==10)/*当秒计数个位到十后从零重新计时*/{second1=0;second2++;/*同时秒计时十位加一*/if(second2==6)second2=0;}}}/*以下是向LED管输数据并使之显示的函数*/voiddispact(){P3=0xfe;P0=table1[second1];delay();P3=0xfd;P0=table1[second2];delay();P2=table0[second10];}/*以下是设置时间函数和输数据函数被此函数调用实现,利用定时器中断*//*十分之一秒刷新一次,实现十分之一秒进一*/Timer0()interrupt1using1{TH0=(65535-50000)/256;TL0=(65535-50000)%256;if(flag)setTime();dispact();}voidmain(void){TMOD=0x01;TH0=(65535-50000)/256;/*定时器赋初值*/TL0=(65535-50000)%256;flag=0;EA=1;/*cpu开中断*/TR0=1;/*利用定时器0*/ET0=1;/*外部中断允许*/do{if(!sta_end){if(flag==0)flag=1;elseflag=0;}if(!reset)/*复位设置,全部清零*/{flag=0;second10=0;second1=0;second2=0;}}while(1);}八、试验设计总结通过这一周的课程设计,我对一些专业知识和电子设计有了更深的了解,同时也尝试着去应用自己的所掌握的知识。本次电子课程设计主要是对已学习的模拟电子技术、数字电子技术和单片机的综合应用,同时加上电路等知识,设计完成了利用软件模拟的秒表。经过几天的奋战,我感受很深.我和刘傲辉、龙贤三个人一块儿讨论设计了此次试验...