60秒倒计时器单片机课程设计.docx
- 文档编号:10931679
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:24
- 大小:23.98KB
60秒倒计时器单片机课程设计.docx
《60秒倒计时器单片机课程设计.docx》由会员分享,可在线阅读,更多相关《60秒倒计时器单片机课程设计.docx(24页珍藏版)》请在冰豆网上搜索。
60秒倒计时器单片机课程设计
目 录
一、设计要求 ....................................................................................................... 3
二、设计的作用目的 ............................................................................................ 3
三、具体设计 ....................................................................................................... 4
1.问题分析 ...................................................................................................... 4
2.总体设计思想............................................................................................... 5
3.具体实现方法............................................................................................... 7
四、Proteus 调试过程及现象............................................................................. 14
五、调试问题及解决方法 .................................................................................. 15
六、设计的优缺点分析 ...................................................................................... 16
七、总结 ............................................................................................................. 16
八、参考文献 ..................................................................................................... 17
2
一、设计要求
由单片机接收小键盘阵列设定倒计时时间,倒计时的范围最大为 60 分钟,由 LED 显
示模块显示剩余时间,显示格式为XX(分):
XX(秒).X,精确到 0.1s 的整数倍。
倒
计时到,由蜂鸣器发出报警。
绘制系统硬件接线图,并进行系统仿真和实验。
画出程序流
程图并编写程序实现系统功能。
二、设计的作用目的
此次设计是我们更进一步了解基本电路的设计流程,提高自己的设计理念,丰富自己
的理论知识,巩固所学知识,使自己的动手动脑能力有更进一步提高,为自己今后的学习
和工作打好基础,为自己的专业技能打好基础。
通过解决实际问题,巩固和加深“单片机原
理与应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,
提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获得初步的应用经验,
为以后从事生产和科研工作打下一定的基础。
本次设计注重对单片机工作原理以及键盘控
制及显示原理的理解,以便今后自己在单片机领域的学习和开发打下基础,提高自己的动
手能力和设计能力,培养创新能力,丰富自己的理论知识,做到理论和实践相结合。
本次
设计的重要意义还在于对单片机的内部结构和工作状态做更进一步的了解,同时还对单片
机的接口技术,中断技术,存储方式和控制方式作更深层次的了解。
3
三、具体设计
1.问题分析:
在电子技术飞速发展的今天,电子产品的人性化和智能化已经非常成熟,其发展前景
仍然不可估量。
如今的人们需求的是一种能给自己带来方便的电子产品,当然最好是人性
化和智能化的,如何能做到智能化呢?
单片机的引入就是一个很好的例子。
单片机又称单
片微型计算机,也称为微控制器,是微型计算机的一个重要分支,单片机是 20 世纪 70 年
代中期发展起来的一种大规模集成电路芯片,是集 CPU,RAM,ROM,I/O 接口和中断系统
于同一硅片上的器件。
单片机的诞生标志着计算机正式形成了通过计算机系统和嵌入式计
算机系统两个分支。
目前单片机已渗透到我们生活的各个领域,几乎很难找到哪个领域没
有单片机的踪迹。
单片机已在广阔的计算机应用领域中表现得淋漓尽致电器因此,单片机
已成为电子类工作者必须掌握的专业技术之一。
单片机就是一个微型中央处理器,通过编
程即能完成很多智能化的工作 ,因此它的出现给电子技术智能化和微型化起到了很大的
推动作用。
本设计将采用 89C51 单片机,89C51 单片机是一种带 4K 字节闪烁可编程可擦除只读存
储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性
能 CMOS8 位微处理器,俗称单片机。
单片机自带 5 个中断,两个 16 位定时器 32 个 I/O 口,
可擦除只读存储器可以反复擦除多次,功能相当强大。
该器件采用 ATMEL 高密度非易失存
储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。
由于将多功能 8 位
CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 89C51 是一种高效微控制器。
89C 单片机为
很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
面对如此功能强大的单片机,结合本次设计要求,应该要用到单片机的内部时钟电路
以及外围的显示接口电路和报警电路。
对与时钟,它有两方面的含义:
一是指为保障系统正常工作的基准振荡定时信号,主
要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的
标准定时时钟,即定时时间,它通常有两种实现方法:
一是用软件实现,即用单片机内部
的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是
用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。
在显示方面,有着多种选择,但是 8 段 LED 数码管足以满足此次设计的要求了。
LED
数码显示器是一种有 LED 发光二极管组合显示字符的显示器件。
它使用了 8 个 LED 发光二
极管,其中 7 个用于显示字符,一个用于显示小数点,故通常称之为 8 段发光二极管数码
器。
4
其内部结构如下图(a)所示:
LED 数码显示器有如下两种连接方法:
共阳极接法:
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个
发光二极管的阴极通过电阻与输入端相连。
共阴极接法:
把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。
每个发
光二极管的阳极通过电阻与输入端相连。
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打
印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声
器件。
在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提
示或报警,比如按键按下、开始工作、工作结束或是故障等等。
由于蜂鸣器的工作电流一
般比较大,以致于单片机的 I/O 口无法直接驱动,所以要利用放大电路来驱动,一般使用
三极管来放大电流。
本设计采用 p3.0 口和三极管组成的电路来驱动蜂鸣器。
2.总体设计思想:
本设计是基于 AT89C51 单片机的键盘控制及显示电路设计,从系统的设计功能上看,
系统可分为两大部分,即键盘输入控制部分和显示部分,对于每一个部分都有不同的设计
方案,起初我对键盘和显示每个都拟订了下面两种方案:
5
键盘部分:
第一种方案:
采用扫描键盘,可以用普通按键构成4×4 矩阵键盘,直接接到 AT89C51
单片机的 P1 口,高四位作为行,低四位作为列,通过软件完成键盘的扫描和定位。
这种
方式相对下面的独立式键盘节省了很多的 I/O 口。
第二种方案:
键盘控制采用独立式按键,每个按键的一端均接地,另一端直接和 P1
口相连,在按键和 P1 口之间通过 10K 电阻与+5V 电源相连。
键盘通过检测输入线的电平状
态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较
适合按键较少或操作速度较高的场合,这种独立式接口的应用很普遍。
显示部分:
第一种方案:
显示部分采用静态显示方法,所谓静态显示,就是每一个显示器都要占
用一个独立的具有锁存功能的接口用于存储字形码。
这样单片机只要把要显示的字形代码
发送到接口电路,从而输送至各数码管显示。
被显示的数据只要输出一次,直到要显示新
的数据时,再发送新的字形码。
静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O
端口多,如驱动 5 个数码管静态显示则需要 5×8=40 根 I/O 端口来驱动,要知道一个 89S51
单片机可用的 I/O 端口才 32 个),实际应用时必须增加译码驱动器进行驱动,增加了硬件
电路的复杂性。
第二种方案:
显示部分采用动态显示。
数码管动态显示接口是单片机中应用最为广泛
的一种显示方式之一,动态驱动是将所有数码管的 8 个显示笔划"a,b,c,d,e,f,g,dp"的同
名端连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位选通由各自独立
的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那
个数码管会显示出字形,取决于单片机对位选通 COM 端电路的控制,所以我们只要将需要
显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分
时轮流控制各个数码管的的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。
动
态显示是利用人眼视觉暂留特性来实现显示的。
事实上,显示器上任何时刻只有一个数码
管有显示。
由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看
到的是连续显示的现象。
为防止闪烁延时的时间在 1ms 左右,不能太长,也不能太短。
本
设计可采用 P0 口直接驱动七段数码管显示。
此方案成本低,而且单片机的 I/O 口占用较
少,可以节约单片机接口资源,而且功耗更低。
由于本设计要求按键较少,且本次设计只是对所学知识的一次实践,设计要求简单,
容易实现,成本低廉。
比较以上各种设计方案,采用独立式键盘和动态显示两种方案配合,
成本低,占用单片机资源少,且容易实现,这样的设计比较适合本次设计,故最终决定选
用这样的一种搭配设计方案。
对于蜂鸣器,将采用 p3.0 口和三极管组成的外围电路驱动,
根据定时时间报警。
6
3.具体实现方法:
根据设计任务与要求,可初步将系统分为五大功能模块:
主电路、按键电路、显示电
路、报警电路。
进一步细说,主电路选用 AT89C51 作为中央处理器,系统采用 12MHZ 的晶
振;按键停控制电路由四个按键(复位键、启动/暂停键、设置键、+1 调时键)组成,键
盘采用软件扫描的方式设计,低电平有效;显示电路由六位七段共阴极数码管和一个 9 位
200 欧姆上拉电阻组成,显示内容有倒计时器的 0.1 秒位以及分秒的个、十位,数码管通过
P0 口直接输出数据;报警电路主要由蜂鸣器组成,通过电路与P3.0 口相连。
当 P3.0 口输
出高电平时,蜂鸣器响。
对于本次单片机课程设计,根据设计要求可以将功能分成如下 4 部分:
(1) 由于单片机内部振荡方式电路简单,时钟信号比较稳定,是独立的单片机应用系统
的首选,故本设计采用内部振荡方式,采用 12MHZ 的晶振。
图
(1)晶振电路图
(2) 本设计电路采用定时器 T0 产生定时中断,由于本设计需要 0.1s 的基本时间,故选
择其工作在定时方式 1 下。
这时定时器 T0 是一个 16 位的计时器,由它产生 50ms
的基本定时中断,两次中断后将得到 0.1s 的时间。
(3) 键盘电路有独立式键盘和矩阵式两种。
独立式键盘占用 I/O 口线较多,适用于按键
较少的情况。
矩阵式键盘占用的 I/O 口相对较少,适用于按键很多的情况。
图
(2)键盘电路图
(4) 报警电路将采用 p3.0 口驱动,当数码管显示 00.00.0 时 p3.0 口输出高电平,驱动
蜂鸣器达到报警的目的,只有当复位键按下后,蜂鸣器才会停止报警。
7
图(3)蜂鸣器报警电路图
(5) 对于显示电路,本设计采用 6 位 8 段共阴极 LED 数码管显示。
上电显示最大倒计时
时间 60.00.00-。
其中“-”位为系统状态标志位,当显示“-”时,表示系统处于
等待状态,按下开始键后将开始计数,开始计数后此数码管将关闭显示,以达到省
电的目的 ,当显示“E”时,表示系统正处于调时状态,此时只用两个调时键有用,
按下开始键或复位键将没有用。
图(4)显示电路图
8
系统的原理框图如下图:
晶振电路
显示电路
单片机
控制器
键盘电路报警电路
图(5)系统原理框图
9
图(6)硬件连线图
硬件连接说明:
本系统以 AT89C51 单片机为核心。
单片机采用内部振荡的方式。
通过 200
欧姆电阻与一个 6 位 8 段 LED 数码显示管相连。
从 P0 口输出 LED 数码管的字形码,从 P2
口输出 LED 数码管的位选码,高电平有效。
4 个功能按键和 P1 口相连,中间通过 10K 的电
阻与+5V 电源相连,按键另一端接地,P1 口低电平时表示按键被按下。
报警电路则与 P3.0
口相连,当 P3.0 口输出高电平时,蜂鸣器响。
在程序设计方面:
将键盘扫描程序置于主程序中,采用扫描方式检测键盘的按键情况,
主程序流程图见图(7)。
显示部分做成一个子程序,方便调用。
各个调时子程序由设置键
引倒进入,调时子程序流程图见图(8)。
计时方面,利用定时器 T0 产生的 0.5ms 基准时
间形成 0.1s 的最小倒计时时间单位并产生“-1”动作,T0 中断子程序流程图见图(9)。
10
开始主程序流程图
关闭定时器、蜂鸣器
标志位、显示管查表码初始化
开中断
定时器设置初始化
调用显示子程序
开始 / 暂停
键按下?
Y
调用消抖延时子程序
开始 / 暂停
键按下?
Y
N
N
N
复位键按下?
等待按键释放
N
N
Y
调用消抖延时子程序
Y
复位键按下?
开始/暂停标志位取反
20H.0=1?
Y
N
置位 P2.5
等待按键释放
N
P3.0=0?
N
调时设置键按下?
Y
Y
调用消抖延时子程序
启动定时器 T0
N
调时设置键按下?
Y
等待按键释放置位状态显示管标志位
调用调时子程序
11
图(7)
开始调时子程序流程图
调用显示子程序
N
N
P1.3=0?
Y
调用消抖延时子程序
Y
P1.2=0?
Y
调用消抖延时子程序
Y
N
N
P1.3=0?
Y
等待按键释放
P1.2=0?
Y
等待按键释放
44H=#06H?
Y
子程序返回
N
N
DEC R0 R0 为
#39H?
Y
N
R0=#44H?
Y
R0=#42H?
3
Y
R0=#43H?
3
Y
@R0 为
N
@R0 为
N
@R0 为
N
#06H?
Y
MOV @R0,#00H
#05H?
Y
INC @R0 MOV @R0,#00H
#09H?
Y
INC @R0 MOV @R0,#00H INC @R0
图(8)
开始T0 中断子程序流程图
40H=0?
Y
41H=0?
Y
N
N N
40H=0?
Y
42H=0?
N
DEC 41H 将 40H 置
N
41H=0?
9
Y
43H=0?
N
DEC 42H 将 40H 置
9
N
Y
42H=0?
将 41H 置
Y
Y
44H=0?
N
DEC 40H 将 40H、41H
置 9,42H 置
5
DEC 40H 将 40H、41H 43H
置 9,42H 置 5
N
N
43H=0?
Y
44H=0?
DEC 40H
SETB P3.0
DEC 40H
启动 T0
中断返回
图(9)
13
四、Proteus 调试过程及现象
上电后 LED 数码管显示最大倒计时值 60.00.0-,程序处于等待状态。
图(10)上电或者复位键被按下时
此时,主程序不断调用显示子程序以及扫描键盘按键情况,当检测到有键按下后,转
到相应的程序执行。
1. 开始/暂停键按下后程序开始减 1 计数直到 0,同时状态显示管熄灭,计数值到 0 后报
警器响。
若中途遇到开始/暂停键按下则,暂停倒计时。
若中途遇到复位键按下则将倒
计时器的倒计时值设置为最大值,并处于等待状态。
图(11)计数值到 0 时
图(12)开始/暂停键按下后
14
1. 复位键按下后,程序复位,系统处于等待状态,状态显示管显示“-”。
2. 当设置键被按下后,程序进入调时设置状态,同时状态显示管显示“ E”。
设置状态的
初始值位 00.00.0E,按下+1 调整键,可以将当前的计数单位值加 1,再次按下设置键
后,即进入了下个计数单位的调时状态,当按下 5 次设置键后将退出调时状态,若分
钟十位被设置为 6 并再次按下设置键后程序直接退出调时状态。
设置状态时开始/暂停
键和复位键无效,等退出调时状态后,设置状态时开始/暂停键和复位键恢复功能。
图(13)调时状态时
五、调试问题及解决方法
开始在主程序的循环中没有添加调用显示子程序的语句,导致在没有按键按下的情
况下 LED 数码管没有显示。
当在主程序循环检测按键的过程中添加了调用显示子程序的语
句后就解决了这一问题。
由于键盘需要消抖延时和等待按键释放,所以相似的情况又出现
了——按下按键后有一段时间 LED 数码管断续显示或者按下按键后不释放按键时 LED 数码
管没有显示。
仔细分析后发现,问题出现的原因还是一样的,由于本设计的 LED 数码管采
用了动态显示,故需要不断调用显示子程序,否则会导致 LED 数码管没有显示。
所以最终
做了以下改进:
1.按键的消抖延时选择调用两次显示子程序(每次显示子程序大约用时
5ms,两次即为 10ms 左右)来取代原来的 10ms 软件延时。
2.在等待按键释放时,使用循
环调用显示子程序来替代原来的循环等待。
经过上述两点的改进后,LED 数码管无显示或
者断续显示的问题就得到了彻底的解决。
15
六、设计的优缺点分析
本设计是一个采用了由内部振荡的时钟方式、程控扫描方式的独立式键盘、动态显示
LED 数码管和蜂鸣器式报警器组成的系统。
因此该系统使用的电子器件少、外围电路简单,
定时精准,使用的 I/O 少,系统消耗的功耗小,剩余的 I/O 口多便于扩展其他功能。
但是
另一方面,本系统由于使用了程控式的键盘和动态显示的 LED 数码管,所以对 CPU 的使用
率相对较高。
七、总结
初次看到本次的课程设计的题目时,感觉设计的难度不大,但是由于是第一次运用单
片机设计,在设计过程中又遇到了种种困难,又感觉到要完成此次设计还需要花费很大的
时间和精力。
但是经过本组同学的共同努力,运用科学的分析方法,最终顺利完成了本次
单片机课程设计。
从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。
生活
也是这样,汗水预示着结果也见证着收获。
劳动是人类生存生活永恒不变的话题。
通过实
习,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈设计员为我们的
社会付出。
我想说,设计确实有些辛苦,但苦中也有乐,在如今物欲很流的世界,很少有
机会能与大自然亲密接触,但我们可以,而且设计也是一个团队的任务,一起的工作可以
让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下,大学里一年的相处还
赶不上这十来天的实习,我感觉我和同学们之间的距离更加近了;我想说,设计确实很累,
但当我们的设计出现成果时,心中也不免产生兴奋,正所谓“三百六十行,行行出状元”
我认为无论干什么,只要人生活的有意义就可以。
同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须
发扬团结协作的精神。
某个人的离群都可能导致导致整项工作的失败。
实习中只有一个人
知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工
作失败。
团结协作是我们实习成功的一项非常重要的保证。
而这次实习也正好锻炼我们这
一点,这也是非常宝贵的。
另外,课堂上也有部分知识不太清楚,于是我又不得不边学边用,时刻巩固所学知识,
这也是我作本次课程设计的第二大收获。
整个设计我基本上还满意,由于水平有限,难免
会有错误,还望老师批评指正。
16
八、参考文献
[1] 曾屹.单片机原理与应用.湖南:
中南大学出版社,2009
[2] 丁元杰.单片微机原理及应用.3 版.北京:
机械工业出版社,2006
[3] 严天峰.单片机应用系统设计与仿真调试.北京:
北京航空航天大学出版社,2005
[4] 杨振江.流行单片实用子程序及应用实例.西安:
电子科技大学出版社,2002
17
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 60 计时器 单片机 课程设计