您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于89C51单片机的秒表课程设计
课程设计任务书学生姓名:池孙煌专业班级:电信1204指导教师:陈德军工作单位:信息工程学院题目:基于51单片机的秒表设计初始条件:具备Keil编程能力和Proteus仿真能力;熟悉定时器/计数器的实现原理;提供编程所需要的计算机一台要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、用定时器/计数器设计一个简单的秒表,能显示计时状态和结果。2、进行电路实验或仿真,并使用C语言进行程序的开发。3、完成符合学校要求的设计说明书时间安排:一周,其中3天程序设计,2天程序调试指导教师签名:年月日系主任(或责任教师)签名:年月日武汉理工大学《单片机应用实践》课程设计说明书1摘要单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计内容为以8051单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计内容以硬件电路设计,软件设计和制作三电路板部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LCD1602液晶以及按键来设计计时器。将软、硬件有机地结合起来,使它拥有正确的计时、暂停、清零、所计时间的存储和查看、并同时可以用液晶显示,在现实生中应用广泛。关键词:秒表;8051;定时器武汉理工大学《单片机应用实践》课程设计说明书11.概述《单片机应用实践》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。本次设计内容为以8051单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计内容以硬件电路设计,软件设计和制作三电路板部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LCD1602液晶以及按键来设计计时器。将软、硬件有机地结合起来,使它拥有正确的计时、暂停、清零、所计时间的存储和查看、并同时可以用液晶显示。武汉理工大学《单片机应用实践》课程设计说明书22.理论分析2.1设计内容开始时,显示“00:000”,按下按钮1后开始从0计时,显示精度为0.001s;共有5个功能按键,第1个按键开始计时,第2个按键暂停,第3个按键复位,第4个按键记录时间,第五个按键查看时间。根据8051芯片的的工作原理和工作方式,对LCD1602液晶进行显示控制,并能用按钮实现秒表起动、停止、复位、所计时间的存储和查看、清零功能,精确到0.001秒。要求选用定时器的工作方式,画出使用单片机控制LCD1602液晶显示的电路图,并实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零等功能。2.2具体步骤单片机电子秒表需要解决三个主要问题:一是有关单片机定时器的使用;二是如何实现LCD1602液晶的显示;三是如何对键盘输入进行编程。定时器:51有4种工作方式,本方案采用工作方式1,即为16位定时器。在高八位和低八位分别置数。由于定时器做的是加法计数,则应该将要定时的数以补码的形式,存放在定时器中。LCD1602液晶:液晶用RS、RW、EA三个控制端口进行显示等控制。D0-D7口分别接单片机的P0并行口,进行数据的传输。液晶的具体显示方式及其时序图在其资料中进行查阅并应用。键盘:键盘函数可以作为一个子程序,在main函数中循环查找调用,根据按键的功能,我们在按键中写入相应的程序,在按键1中开中断,并且对定时器进行设初值。即可实现开始计时。在按键2中关中断,则可实现计时暂停。按键3即为复位键,则可复位为初始值00:000。按键4即为记录键,对时间进行记录。按键5即为查看键,对所记录的时间进行查看。武汉理工大学《单片机应用实践》课程设计说明书33程序设计3.1设计思路单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、I\O接口、外围扩展的功能电路。软件系统包括监控程序和各种应用程序。在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的时钟电路如图3.1所示以及扩展的存储器和I\O接口,使单片机应用系统能够运行。在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。3.2设计过程3.2.1系统设计思路及描述本设计在LCD1602液晶上显示时间,则可利用MCS-51系列单片机的芯片AT89C52的P3.0,P3.1,P3.2,P3.3作为按键的入口;定时器T0作为每0.001秒加一的定时器;其中“开始”按键按下时开始计时,按下按键2则暂停;按下按键3对时间进行记录,按下按键4对所记录的时间进行查看。“清零”按键即为复位按键,复位清零,此时若再按下按键1则又可重新开始计时。武汉理工大学《单片机应用实践》课程设计说明书43.3程序流程及实验效果3.3.1程序流程图YNYNYNYN图3.1主程序流程图计时开始液晶初始化开始计时暂停计时器暂停记录存储时间查看调用记录液晶显示武汉理工大学《单片机应用实践》课程设计说明书53.3.2源程序及说明#includereg51.h#includestring.h#includestdio.h#includestdlib.h#defineucharunsignedchar#defineuintunsignedintvoidInitialize_LCD();voidShowString(ucharx,uchary,uchar*str);sbitK1=P3^2;//K1表示开始计时sbitK2=P3^3;//暂停sbitK3=P3^4;//记录sbitK4=P3^5;//查看ucharcodeprompt[]=PRESSK1START;uchara[]=00:000;intk3=0;intnumb;voidDelayxms(uintms){uchari;while(ms--){for(i=0;i120;i++);}}voidkeyscan(){if(K1==0)//计时开始{Delayxms(1);if(K1==0){TMOD=0x11;TH0=(65536-1000)/256;//赋计数初值TL0=(65536-1000)%256;EA=1;//开总断ET0=1;//开启定时器中断TR0=1;//启动定时器while(!K1);//等待按键释放}武汉理工大学《单片机应用实践》课程设计说明书6}if(K2==0)//暂停{EA=0;ET0=0;TR0=0;}if(K3==0)//时间的记录{intk;Delayxms(50);for(k=0;k6;k++){b[k3][k]=a[k];}k3++;while(!K3);}if(K4==0)//查看所记录的时间{ucharc[6];intnum;Delayxms(50);if(K4==0){while(1){for(num=0;num6;num++){c[num]=b[0][num];}ShowString(1,1,c);Delayxms(50);if(K4==0){Delayxms(50);if(K4==0){while(1){for(num=0;num6;num++){c[num]=b[1][num];}ShowString(1,1,c);}}}}}武汉理工大学《单片机应用实践》课程设计说明书7}}voidmain(){Initialize_LCD();while(1){keyscan();ShowString(1,0,prompt);ShowString(1,1,a);}}voidtime()interrupt1{TH0=(65536-1000)/256;TL0=(65536-1000)%256;a[5]++;//初值为0if(a[5]==0X3A){a[5]=0X30;a[4]++;}if(a[4]==0X3A){a[4]=0X30;a[3]++;}if(a[3]==0X3A){a[3]=0X30;a[1]++;}if(a[1]==0X3A){a[1]=0X30;a[0]++;}if(a[0]==0X3A){a[]=00:000;武汉理工大学《单片机应用实践》课程设计说明书8}}//************1602***********//#includereg52.h#includeintrins.h#includestring.h#defineucharunsignedchar#defineuintunsignedintsbitRS=P0^7;sbitRW=P0^6;sbitEN=P0^5;voidDelayms(uintms){uchari;while(ms--){for(i=0;i120;i++);}}ucharBusy_Check(){ucharLCD_Status;RS=0;RW=1;EN=1;Delayms(1);LCD_Status=P0;EN=0;returnLCD_Status;}voidWrite_LCD_Command(ucharcmd){while((Busy_Check()&0x80)==0x80);//读写操作使能位检测RS=0;RW=0;EN=0;P0=cmd;EN=1;武汉理工大学《单片机应用实践》课程设计说明书9Delayms(1);EN=0;}voidWrite_LCD_Data(uchardat){while((Busy_Check()&0x80)==0x80);RS=1;RW=0;EN=0;P0=dat;EN=1;Delayms(1);EN=0;}voidInitialize_LCD(){Write_LCD_Command(0x38);//功能选择Delayms(1);Write_LCD_Command(0x01);//清屏Delayms(1);Write_LCD_Command(0x06);//增量显示,整体不移屏Delayms(1);Write_LCD_Command(0x0c);//开显示,关消影,关闪烁Delayms(1);}voidShowString(ucharx,uchary,uchar*str){uchari=0;uinta=0;a=strlen(str);if(y==0)Write_LCD_Command(0x80|x);if(y==1)Write_LCD_Command(0xc0|x);for(i=0;ia;i++){Write_LCD_Data(str[i]);}}武汉理工大学《单片机应用实践》课程设计说明书104.仿真效果通过最后软件对程序的编译,组建,执行,还有最终生成.hex文件,把.hex下载到TX-1C开发板的STC89C52RC单片机上的最终效果图如下:(1)开始从“00:000”图4.1复位从“00:000”计时(2)开始计时图4.2开始计时武汉理工大学《单片机应用实践》课程设计说明书11(3)暂停功能:图4.3暂停功能(4)及时归零:图4.4复位归零武汉理工大学《单片机应用实践》课程设计说明书125.心得体会通过对本次课程的课程设计,使自己深刻的认识到自己的很多不足之处,在实际动手操作能力的不足,在进行程序编程时,自己需要,认真审题,看懂题目的要求!对于软件编程不益太简单或者太难。做到既能把课题完成又能锻炼自己的能力!根据课题要求,复习相关的知识,查询相关的资料。根据课程条件,找到适合的方案,找到需要的元器件及工具,准
本文标题:基于89C51单片机的秒表课程设计
链接地址:https://www.777doc.com/doc-2567974 .html