成绩评定表学生姓名班级学号专业题目基于STC89C52时钟设计评语组长签字:成绩日期年月日任务书学院专业学生姓名班级学号课程设计题目基于STC89C52时钟设计实践教学要求与任务:要求:1.能正确认识元器件2.能读懂电路原理图3.能正确掌握PCB图和原理图的关系4.掌握基本焊接技巧,保证不能出现断路、短路、极性元件焊反等情况,以便保证下一步调试程序的正常进行。5.使用STC89C52完成和PC机的串口通信,并将接收内容显示在PC机串口精灵上。工作计划与进度安排:12月16日—12月18日:电路板焊接调试,熟悉电路原理及掌握PCB图和原理图的关系。12月20日—12月22日:熟悉Keil软件开发平台,熟练掌握其运用方法,并针对设计题目进行软件编程,进行调试并下载到开发板运行。12月25日—12月27日:完成设计论文,验收、答辩。指导教师:年月日专业负责人:年月日学院教学副院长:年月日摘要当今社会,单片机已经普及到我们生活、工作的各个方面,已经发展成为一门比较成熟的技术。定时器时钟原理在日常生活工作、工业控制、交通灯管理、检测、报警等方面的应用越来越广泛。本课题设计一个基于STC89C52定时器的时钟,软件采用模块化结构,C语言编程。系统通过4片8段数码管显示数据,可以显示时分,秒闪烁用小数点表示。关键字:定时器时钟STC89C52数码管目录1课程设计目的........................................................................................................................12设计要求.................................................................................................................................13软硬件环境............................................................................................................................13.1软件环境keil简介........................................................................................................13.2硬件环境.........................................................................................................................24定时器时钟系统设计.......................................................................................................24.1时钟电路.........................................................................................................................24.2显示电路.........................................................................................................................34.3系统程序.........................................................................................................................55STC89C52单片机的介绍.............................................................................................106程序设计...............................................................................................................................116.1流程图....................................................................................................................................117结论..........................................................................................................................................118.参考文献..............................................................................................................................12沈阳理工大学课程设计专用纸张11课程设计目的1)掌握电路原理,了解原理图及PCB图的关系。2)熟悉单片机原理及应用,掌握软硬件开发平台2设计要求1)能正确认识元器件2)能读懂电路原理图3)能正确掌握PCB图和原理图的关系4)掌握基本焊接技巧,保证不能出现断路、短路、极性元件焊反等情况,以便保证下一步调试程序的正常进行。5)根据实践要求使用STC89C52完成和PC机的串口通信,并将接收内容显示在串口精灵上3软硬件环境3.1软件环境keil简介Keil[1]公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。Keil公司由两家私人公司联合运营,分别是德国慕尼黑的KeilElektronikGmbH和美国德克萨斯的KeilSoftwareInc。Keil公司制造和销售种类广泛的开发工具,包括ANSIC编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-timekernel)。有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。其KeilC51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等沈阳理工大学课程设计专用纸张2在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。KeilC51单片机软件开发系统的整体结构,C51工具包的整体结构,其中uVision与Ishell分别C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。3.2硬件环境串口调试助手是串口调试相关工具,有多个版本。串口调试助手,支持常用的110-25600bps波特率及自定义波特率,可以自动识别串口,能设置校验、数据位和停止位,能以ASCII码或十六进制接收或发送任何数据或字符,可以任意设定自动发送周期,并能将接收数据保存成文本文件,能发送任意大小的文本文件。硬件连接方面,传统台式PC机支持标准RS232接口,当下带有串口的PC很少见,所以需要USB/232转换接口,并且安装相应驱动程序。4定时器时钟系统设计4.1时钟电路内部时钟电路如图所示,在XTAL1和XTAL1引脚上外接定时元件,内部振荡电路就产生自激振荡。定时元件是石英晶体和电容组成的并联谐振回路,晶体振荡器选择11.0532MHz,电容采用30PF.沈阳理工大学课程设计专用纸张3图1时钟电路图4.2显示电路此电路用4片LG3611BH数码管显示数据,可以显示时分,秒闪烁用小数点表示。数码管阴极极通过A1036G排阻与STC89C52RC的P0口连接,数码管阳极是数码管驱动电路并与单片机P2口连接。图2显示电路图沈阳理工大学课程设计专用纸张41)实验板原理图:2)STC89C52单片机3)串口电路沈阳理工大学课程设计专用纸张54.3系统程序#includereg52.h#includeabsacc.h#defineunitunsignedint#defineucharunsignedcharuchardatatimer_count,cm,cf,cs,f;/*定时器计数变量*/ucharcodeduma[]={0x28,0xF9,0x4C,0x58,0x99,0x1A,0x0A,0xF8,0x08,0x18};//共阴的数码管段选.将值送给P0口沈阳理工大学课程设计专用纸张6ucharcodewema[]={0xEF,0xDF,0xBF,0x7F};//P1口的片选位unsignedcharled_buf[]={0,0,0,0};delay(uchartime)//time=1时延时10ms{uchari,j,k,q;for(q=time;q0;q--)//10*timemsfor(i=10;i0;i--)//10ms{for(j=2;j0;j--)//1ms{for(k=60;k0;k--);}//154*3.255=500us}}voiddisplay(void){unsignedchari=0;led_buf[0]=cm%10;led_buf[1]=cm/10;led_buf[2]=cf%10;led_buf[3]=cf/10;for(i=0;i4;i++){switch(i){case0:P2=0x7F;break;case1:P2=0xBF;break;case2:P2=0xDF;break;沈阳理工大学课程设计专用纸张7case3:P2=0xEF;break;default:P2=0xEF;break;}if(i==2){if(f==1){P0=duma[led_buf[i]]|0x08;}else{P0=duma[led_buf[i]]&0xf7;}}else{P0=duma[led_buf[i]];}delay(1);}}voidmain(void){timer_count=0;//初始化端口cm=0;沈阳理工大学课程设计专用纸张8cf=0;cs=0;EA=1;ET0=1;TMOD=0x01;/*T0方式1计时*/TH0=-46080/256;//定时器T0的高四位赋值TL0=-46080%256;TR0=1;/*开中断,启动定时器*/f=0;for(;;){display();}}/*定时计数器0的中断服务子程序*/voidtimer0(void)interrupt1using1{TH0=-46080/256;TL0=-46080%256;timer_count=t