51单片机秒表计时器课程设计报告(含C语言程序)..
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXXXXX学院
51单片机系统设计课程设计报告
题目:秒表系统设计
专业、班级:
学生姓名:
学号:
指导教师:
分数:
[摘要]本设计是一个秒表计时器,采用51单片机实现。电路包括以下几部分:
单片机最小系统部分,数码管显示部分,摁键开关部分部分。电路选用共阴型4位数码管组成时钟显示电路;时钟的增减控制以及清零部分主要由轻触开关构成的摁键系统组成;信号接收和处理部分主要由单片机来执行。接通电源后,秒表计时器处于初始状态,4位数码管显示000.0。当摁下“开始”开关时,秒表开始计时,数码管显示当前状态的时间。当再次摁下开关时,数码管停止计时。摁下“清零”键后,系统重新回到初始状态。
[关键词]单片机最小系统秒表计时摁键控制
1、任务
设计一个秒表计时器,在51单片机的控制作用下,采用4个LED数码管显示时间,计时范围设置为00.0~60.0秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。
2、设计要求
(1)开始时显示00.0。每按下S1键一次,数值加1s;
(2)每按下S2键一次,数值减1s;
(3)每按下S3键一次,数值清零;
(4)每按下S4键一次,启动定时器使数值开始自动每秒加1,
再次按下S4键,数值停止自动加1,保持显示原数。
3、发挥部分
(1)开关按键3:“复位60.0”按键(用来60秒倒计时)。按键按下去时数码管复位为“60.0”(用于倒计时)。
(2)开关按键4:倒计时“逐渐自减”按键。按键按下去则是数码管开始“逐渐自减”倒计时。
(3)开关按键5:倒计时初始值“增加”按键。
(4)开关按键6:倒计时初始值“减小”按键。
4、课程设计的难点
单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现LED 的动态扫描显示;三是如何对键盘输入进行编程。
5、课程设计仪器
集成电路芯片STC89C52,八段数码管,MCS-51系列单片机微机仿真课程系统中的软件(keil uvision2)。
摘要 (2)
关键词 (2)
任务书 (3)
1、设计任务目的 (5)
2、设计方案选取与论证 (5)
2.1 系统总体设计方案 (5)
2.2 系统整体框图 (5)
3、电路设计 (6)
3.1 单片机最小系统设计 (6)
3.2 数码管显示模块设计 (6)
3.3 摁键控制系统模块设计 (6)
3.4 程序设计 (6)
4、制作及调试过程 (11)
5、结果分析和总结 (12)
参考文献 (12)
附录a 秒表计时器原理图 (13)
附录b 元器件清单 (14)
附录c 秒表计时器实物图 (15)
1、设计任务目的
1.
根据单片机课程所学内容,结合其他相关课程知识,设计电子秒表,以加深对单片机知识的理解,锻炼实践动手能力,为以后的毕业设计和工作打下坚实基础;
2. 熟悉汇编语言或C 语言的程序设计方法,熟悉51系列单片机的使用;
3. 掌握单片机的内部功能模块的应用,如定时器/计数器、中断、I/O 口、串行口通讯等功能;
4. 掌握单片机应用系统的软硬件设计过程、方法及实现。
2、 设计方案选取与论证
2.1系统总体设计方案
使用STC89C51单片机作为核心控制部件,采用12M 晶体振荡器及30PF 微小电容构成振荡电路;用1个四位一体共阴极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的计时、清零、停止、增减初始时间等各项功能。
2.2 系统总体整体框图
图2.2 系统设计框图
3、 电路设计
3.1 单片机最小系统设计
图3.1 单片机最小系统
STC89C52单片机最小系统模块
独立摁键控制模块
4位数码管显示模块
1. 时钟电路
在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。在本设计中采用的12M 的石英晶振。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。当采用石英晶振时,电容可以在20 ~ 40pF 之间选择。
2. 复位电路
复位操作通常有两种基本形式:上电自动复位和开关复位。上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。
3. EA/VPP(31 脚)的功能和接法
51 单片机的EA/VPP(31 脚)是内部和外部程序存储器的选择管脚。当EA 保持高电平时,单片机访问内部程序存储器;对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。
4. P0 口外接上拉电阻
51 单片机的P0 端口为开漏输出,内部无上拉电阻。所以在当做普通I/O 输出数据时,由于V2 截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。
3.2 数码管显示模块设计
显示部分采用动态显示。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的共阴极增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的位选通端,就使各个数码管轮流受控显示,这就是动态驱动。动态显示是利用人眼视觉暂留特性来实现显示的。事实上,显示器上任何时刻只有一个数码管有显示。由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。为防止闪烁延时的时间在1ms左右,不能太长,也不能太短。
3.3 摁键控制系统模块设计
由P1口作为独立摁键信号的输入端控制时钟的加1s、减1s、复位60.0s等操作。用外部中断0作为秒表计时器的开启和暂停的操作。且所有摁键均为低电平有效。其中部分摁键为单刀双掷开关用于控制增计时或减计时以及限60.0s计时和60.0s外计时。
3.4 程序设计如下:
#include