




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.PAGE . - - - 可修编-课程设计任务书学生:池煌专业班级: 电信1204指导教师: 德军工作单位: 信息工程学院 题 目:基于51单片机的秒表设计初始条件: 具备Keil编程能力和Proteus仿真能力;熟悉定时器/计数器的实现原理;提供编程所需要的计算机一台要求完成的主要任务:包括课程设计工作量及其技术要求,以及说明书撰写等具体要求1、用定时器/计数器设计一个简单的秒表,能显示计时状态和结果。2、进展电路实验或仿真,并使用C语言进展程序的开发。3、完成符合学校要求的设计说明书时间安排:一周,其中3天程序设计,2天程序调试指导教师签名: 年 月 日系主任或责任教师签名: 年 月 日
2、. - - 可修编-摘要单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,平安性高,使用方便等优点。本次设计容为以 8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计容以硬件电路设计,软件设计和制作三电路板局部来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LCD1602液晶以及按键来设计计时器。将软、硬件有机地结合起来,使它拥有正确的计时、暂停、清零、所计时间的存储和查看、并同时可以用液晶显示,在现实生中应用广泛。关键词:秒表;8051;定时器. - - 可修编-. 1.概述“单片机应用实践“课程设计是学好本门
3、课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以到达稳固消化课程的容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的根本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。本次设计容为以 8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计容以硬件电路设计,软件设计和制作三电路板局部来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LCD1602液晶以及按键来设计计时器。将软、硬件有机地结合起来,使它拥有正确的计时、暂停、清零、所计时间的
4、存储和查看、并同时可以用液晶显示。2理论分析2.1 设计容开场时,显示“00:000,按下按钮1后开场从0计时,显示精度为0.001s;共有5个功能按键,第1个按键开场计时,第2个按键暂停,第3个按键复位,第4个按键记录时间,第五个按键查看时间。根据8051芯片的的工作原理和工作方式,对LCD1602液晶进展显示控制,并能用按钮实现秒表起动、停顿、复位、所计时间的存储和查看、清零功能,准确到0.001秒。要求选用定时器的工作方式,画出使用单片机控制LCD1602液晶显示的电路图,并实现其硬件电路,并编程完成软件局部,最后调试秒表起动、停顿、清零等功能。2.2 具体步骤单片机电子秒表需要解决三个
5、主要问题:一是有关单片机定时器的使用;二是如何实现LCD1602液晶的显示;三是如何对键盘输入进展编程。定时器:51有4种工作方式,本方案采用工作方式1,即为16位定时器。在高八位和低八位分别置数。由于定时器做的是加法计数,则应该将要定时的数以补码的形式,存放在定时器中。LCD1602液晶:液晶用RS、RW、EA三个控制端口进展显示等控制。D0-D7口分别接单片机的P0并行口,进展数据的传输。液晶的具体显示方式及其时序图在其资料中进展查阅并应用。键盘:键盘函数可以作为一个子程序,在main函数中循环查找调用,根据按键的功能,我们在按键中写入相应的程序,在按键1中开中断,并且对定时器进展设初值。
6、即可实现开场计时。在按键2中关中断,则可实现计时暂停。按键3即为复位键,则可复位为初始值00:000。按键4即为记录键,对时间进展记录。按键5即为查看键,对所记录的时间进展查看。3 程序设计3.1设计思路单片机应用系统由硬件系统和软件系统两局部组成。硬件系统是指单片机以及扩展的存储器、IO 接口、外围扩展的功能电路。软件系统包括监控程序和各种应用程序。 在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进展控制。与单片机配套的有相应的时钟电路如图3.1所示以及扩展的存储器和 IO 接口,使单片机应用系统能够运行。在一个单片机应用系统中,往往都会输入信息和显示信息,
7、这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个 LED 指示灯就可以进展处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。3.2设计过程3.2.1系统设计思路及描述 本设计在LCD1602液晶上显示时间,则可利用MCS-51系列单片机的芯片AT89C52的P3.0,P3.1,P3.2,P3.3作为按键的入口;定时器 T0 作为每 0.001 秒加一的定时器;其中“
8、开场按键按下时开场计时,按下按键2则暂停;按下按键3对时间进展记录,按下按键4对所记录的时间进展查看。“清零按键即为复位按键,复位清零,此时假设再按下按键1则又可重新开场计时。3.3 程序流程及实验效果3.3.1 程序流程图开场液晶初始化Y开场计时计 时N计时器暂停暂 停 YN存储时间记 录 YN调用记录查 看 YN液晶显示图3.1 主程序流程图3.3.2 源程序及说明#include reg51.h#include string.h#include stdio.h#include #define uchar unsigned char#define uint unsigned intvoid
9、 Initialize_LCD();void ShowString(uchar *,uchar y,uchar *str);sbit K1 = P32; /K1表示开场计时sbit K2 = P33; /暂停sbit K3 = P34; /记录sbit K4 = P35; /查看uchar code prompt=PRESS K1 START ;uchar a=00:000;int k3=0;int numb;void Delay*ms(uint ms) uchar i;while(ms-) for(i=0;i120;i+);void keyscan()if(K1=0) /计时开场Delay*
10、ms(1);if(K1=0)TMOD=0*11;TH0=(65536-1000)/256; /赋计数初值TL0=(65536-1000)%256;EA=1; /开总断ET0=1;/开启定时器中断TR0=1;/启动定时器while(!K1);/等待按键释放if(K2=0)/暂停EA=0;ET0=0;TR0=0;if(K3=0) /时间的记录 int k; Delay*ms(50); for(k=0;k6;k+) bk3k=ak; k3+; while(!K3);if(K4=0) /查看所记录的时间uchar c6;int num;Delay*ms(50);if(K4=0) while(1) fo
11、r(num=0;num6;num+) cnum=b0num; ShowString(1,1,c);Delay*ms(50);if(K4=0) Delay*ms(50);if(K4=0) while(1)for(num=0;num6;num+) cnum=b1num; ShowString(1,1,c);void main()Initialize_LCD();while(1)keyscan();ShowString(1,0,prompt);ShowString(1,1,a);void time() interrupt 1TH0=(65536-1000)/256;TL0=(65536-1000)%
12、256;a5+;/初值为0if(a5=0*3A) a5=0*30;a4+;if(a4=0*3A) a4=0*30;a3+;if(a3=0*3A)a3=0*30;a1+;if(a1=0*3A)a1=0*30;a0+;if(a0=0*3A)a=00:000;/*1602*/#include #include #include #define uchar unsigned char#define uint unsigned intsbit RS = P07;sbit RW = P06;sbit EN = P05;void Delayms(uint ms) uchar i;while(ms-) for
13、(i=0;i120;i+);uchar Busy_Check()uchar LCD_Status;RS = 0;RW = 1;EN = 1;Delayms(1); LCD_Status = P0;EN = 0;return LCD_Status;void Write_LCD_mand(uchar cmd) while(Busy_Check()&0*80)=0*80); /读写操作使能位检测RS = 0;RW = 0;EN = 0;P0 = cmd;EN = 1;Delayms(1);EN = 0;void Write_LCD_Data(uchar dat) while(Busy_Check()
14、&0*80)=0*80);RS = 1;RW = 0;EN = 0;P0 = dat;EN = 1;Delayms(1);EN = 0;void Initialize_LCD() Write_LCD_mand(0*38);/功能选择Delayms(1);Write_LCD_mand(0*01);/清屏Delayms(1);Write_LCD_mand(0*06);/增量显示,整体不移屏Delayms(1);Write_LCD_mand(0*0c);/开显示,关消影,关闪烁Delayms(1);void ShowString(uchar *,uchar y,uchar *str) uchar i
15、 = 0;uint a=0;a = strlen(str);if(y = 0)Write_LCD_mand(0*80 | *);if(y = 1)Write_LCD_mand(0*c0 | *);for(i=0;ia;i+) Write_LCD_Data(stri);4.仿真效果通过最后软件对程序的编译,组建,执行,还有最终生成.he* 文件,把.he*下载到T*-1C开发板的 STC89C52RC 单片机上的最终效果图如下:1开场从“00:000图4.1 复位从“00:000计时2开场计时图4.2 开场计时3暂停功能:图4.3 暂停功能4及时归零:图4.4 复位归零5.心得体会通过对本次课程
16、的课程设计,使自己深刻的认识到自己的很多缺乏之处,在实际动手操作能力的缺乏,在进展程序编程时,自己需要,认真审题,看懂题目的要求!对于软件编程不益太简单或者太难。做到既能把课题完成又能锻炼 自己的能力!根据课题要求,复习相关的知识,查询相关的资料。根据课程条件,找到适合的方案,找到需要的元器件及工具,准备课程。根据课程设计的要求和自己所要增加的功能写好程序流程图,在程序流程图的根底上,根据芯片的功能写出相应的程序和增加额外的功能程序。然后再进展 程序调试和相应的修改,以到达能够实现所要求的功能的目的。还要根据课程的实际情况,添加些额外程序来使系统更加的稳定,如开关的去抖采用延迟。程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。该课程设计的程序可以参考 MCS-51 系列单片机,也可自己根据自己熟悉的方 法来编程如单片机 C 语言。在设计控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论