基于单片机的数字时钟.docx
- 文档编号:9539499
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:21
- 大小:218.57KB
基于单片机的数字时钟.docx
《基于单片机的数字时钟.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字时钟.docx(21页珍藏版)》请在冰豆网上搜索。
基于单片机的数字时钟
郑州科技学院
《单片机原理及应用》课程设计
目录
0引言3
1设计方案4
2系统设计7
2.1硬件原理12
2.2软件原理16
3实验与仿真19
4结论21
参考文献22
附录1程序23
附录2仿真电路图26
0引言
近年来,随着电子产品的发展,随着社会竞争的激烈,人们对数字时钟的要求越来越高。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间,忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
因此从人们的日常生活到工厂的自动控制,从民用时钟到科学发展所需的时钟,现代人对时间的精度和观察时间的方便有了越来越多的需求。
人们要求随时随地都能快速准确的知道时间,并且要求时钟能够更直观、更可靠、价格更便宜。
这种要求催生了新型时钟的产生。
除此之外,由于对社会责任的更多承担,人们要求所设计的产品能够产生尽量少的垃圾、能够消耗尽量少的能量。
因此人们对时钟的又有了体积小、功耗低的要求。
传统的机械表由于做工的高精细要求,造价的昂贵,材料的限制,时间指示精度的限制,使用寿命方面,以及其它方面的限制,已不能满足人们的需求。
另外,近些年随着科技的发展和社会的进步,人们对时钟的要求也越来越高,而使得新型电子钟表成了大势所趋。
另外单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
1设计方案
1.1任务及要求
①通过单片机内定时器控制走时,准确持续走时,调时不影响走时。
②在八个数码管上显示时、分、秒及两个小数点。
③含有闹钟功能,可以选择闹钟开关,可以设定闹铃时间。
④到达闹钟时刻蜂鸣器警报,可以关掉警报。
1.2系统功能说明
电子钟的格式为:
XX.XX.XX,由左向右分别为:
时、分、秒。
完成显示由秒01一直加1至59,再恢复为00;分加1,由00至01,一直加1至59,再恢复00;时加1,时由00加至23之后秒、分、时全部清清零。
该钟使用T0作250us的定时中断。
走时调整:
走时过程中直接调整且不影响走时准确性,按下时间选择键对“时、分、秒”显示进行调整,每按一下时间加,即加1,时间减,即减1。
2系统设计
本课题整体设计方案分为硬件设计和软件设计。
硬件电路设计主要是用单片机和LED显示屏连接组成,另外加入按键,开关,蜂鸣器等;软件编程设计室用C编程,KeilC51调试。
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件[1]:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过三代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强大的I/O功能及较好的结构兼容性方向发展。
其发展趋势不外乎以下几个方面:
(1)多功能
单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。
比如A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器---看家狗)、高速I/O口及计数器的捕获/比较逻辑等。
(2)高效率和高性能
为了提高执行速度和执行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:
单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制。
由于系统资源和系统复杂程度的增加,开始使用高级语言(如C语言)来开发单片机的程序。
使用高级语言可以降低开发难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。
(3)低电压和低功耗
单片机的嵌入式应用决定了低电压和低功耗的特性。
由于CMOS等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。
这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。
(4)低价格
单片机应用面广,使用数量大,带来的直接好处就是成本的降低。
目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低产品的价格。
单片机的主要应用领域:
(1)家用电器领域
用单片机控制系统取代传统的模拟和数字控制电路,使家用电器(如洗衣机、空调、冰箱、微波炉、和电视机等)功能更完善,更加智能化和易于使用。
(2)办公自动化领域
单片机作为嵌入式系统广泛应用于现代办公设备,如计算机的键盘、磁盘驱动、打印机、复印机、电话机和传真机等。
(3)商业应用领域
商业应用系统部分与家用和办公应用系统相似,但更加注重设备的稳定性、可靠性和安全性。
商用系统中广泛使用的电子计量仪器、收款机、条形码阅读器、安全监测系统、空气调节系统和冷冻保鲜系统等,都采用了单片机构成的专用系统。
与通用计算机相比,这些系统由于比较封闭,可以更有效地防止病毒和电磁干扰等,可靠性更高。
(4)工业自动化
在工业控制和机电一体化控制系统中,除了采用工控计算机外,很多都是以单片机为核心的单片机和多机系统。
(5)智能仪表与集成智能传感器
目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量系统,使得测量系统具有存储、数据处理、查询及联网等智能功能。
将单片机和传感器相结合,可以构成新一代的智能传感器。
它将传感器变换后的物理量作进一步的变化和处理,使其成为数字信号,可以远距离传输并与计算机接口。
(6)现代交通与航空航天领域
通常应用于电子综合显示系统、动力监控系统、自动驾驶系统、通信系统以及运行监视系统等。
这些领域对体积、功耗、稳定性和实时性的要求往往比商用系统还要高,因此采用单片机系统更加重要。
8052单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。
(1)中央处理器[3]:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
(2)数据存储器(RAM)
8052内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
图2-1单片机8052的内部结构
(3)程序存储器(ROM):
8052共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
(4)定时/计数器:
8052有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
(5)并行输入输出(I/O)口:
8052共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
(6)全双工串行口:
8052内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
(7)中断系统:
8052具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
(8)时钟电路:
8052内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8052单片机需外置振荡电容。
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。
Intel的MCS-52系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。
MCS-52系列单片机的内部结构示意图如下:
图2-2MCS-52系列单片机的内部结构
MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明。
图2-3单片机的引脚图
P0端口[P0.0-P0.7]:
P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。
作为输出口时能驱动8个TTL。
对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。
在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。
P1端口[P1.0-P1.7]:
P1是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收低8位地址信息。
P2端口[P2.0-P2.7]:
P2是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收高8位地址和控制信息。
在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。
而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。
P3端口[P3.0—P3.7]:
是一个带有内部上拉电阻的8位双向I/0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接控制信息。
除此之外P3端口还用于一些专门功能,见表1。
P3引脚
兼用功能
P3.0
串行通讯输入(RXD)
P3.1
串行通讯输出(TXD)
P3.2
外部中断0(INT0)
P3.3
外部中断1(INT1)
P3.4
定时器0输入(T0)
P3.5
定时器1输入(T1)
P3.6
外部数据存储器写选通WR
P3.7
外部数据存储器写选通RD
表1 P3端口引脚兼用功能表
Pin9:
RESET复位信号复用脚,当8052通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8052的初始态。
Pin30:
ALE/
当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。
而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。
更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微拉高,单片机执行外部程序时,应设置ALE禁止位无效。
Pin29:
当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
Pin31:
EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。
如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。
显然,对内部无程序存储器的8031,EA端必须接地。
2.1硬件设计
在性价比满足应用系统要求的情况下,选择更可靠,更熟悉的单片机缩短研制周期。
尽可能选择自己较为熟悉的应用电路,以提高系统的可靠性。
单片机内部的资源与外部的扩展资源应在满足系统设计的基础上留有余地,为进一步的升级和扩展提供方便。
应充分的结合软件方案考虑硬件的结构,通常硬件功能较完善,其相应的软件程序就简单,但硬件的成本较高,而功能较低,其相应的软件就复杂,其实际常用软件代替硬件来降低成本。
整个系统相关的器件尽可能的做到性能相匹配。
目前,我国生产很多型号的单片机,在此,我们采用型号为AT89C52的单片机。
因为AT89C52是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C52主要功能特性:
·兼容MCS51指令系统·8k可反复擦写(>1000次)FlashROM
·32个双向I/O口·256x8bit内部RAM
·3个16位可编程定时/计数器中断·时钟频率0-24MHz
·2个串行中断·可编程UART串行通道
·2个外部中断源·共8个中断源
·2个读写中断口线·3级加密位
·低功耗空闲和掉电模式·软件设置睡眠和唤醒功能LED数码管:
LED数码管是显示常用电子元器件,它是由发光二极管构成的,亦称半导体数码管。
将条状发光二极管按照共阴极(负极)或共阳极(正极)的方法连接,组成“8”字,再把发光二极管另一电极作笔段电极,就构成了LED数码管。
下面将介绍它的性能特点:
(1)能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容。
(2)发光响应时间极短(<0.1μs),高频特性好,单色性好,亮度高。
(3)体积小,重量轻,抗冲击性能好。
(4)成本低,寿命长,使用寿命在10万小时以上,甚至可达100万小时。
首先介绍一下七段数码管的引脚图
图2-4七段数码管引脚图
数码管使用条件:
A、段及小数点上加限流电阻。
B、使用电压:
段:
根据发光颜色决定;小数点:
根据发光颜色决定。
C、使用电流:
静态:
总电流80mA(每段10mA);
动态:
平均电流4-5mA峰值电流100mA。
LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
如图2-5
A、共阴极七段数码管B、共阳极七段数码管
将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。
以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。
当然,LED的电流通常较小,一般均需在回路中接上限流电阻。
假如我们将"b"和"c"段接上正电源,其它端接地或悬空,那么"b"和"c"段发光,此时,数码管显示将显示数字“1”。
而将"a"、"b"、"d"、"e"和"g"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。
其它字符的显示原理类同。
对于多位LED显示器,通常都是采用动态扫描的方法进行显示。
按键控制电路
本课程设计需要校对时间和设定闹钟,所以用三个按键来实现。
按hour来调节小时的时间,按min来调节分针的时间,按sec来调节秒的时间。
当用手按下一个键时,如图6所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况,这就是抖动。
这是使用按键控制不可避免的问题。
抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。
很容易想到,抖动问题不解决就会引起对闭合键的识别。
用软件方法可以解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,在读入按键码。
2.2软件设计
(1)软件程序设计
本设计的软件程序包括主程序、定时中断子程序、时钟显示子程序和延时子程序等等。
主程序是先开始执行的,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。
按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下;分按键如果按下,分就加1,如果没有按下,就检测时按键是否按下;时按键如果按下,时就加1,如果没有按下,就把时间显示出来。
定时器中断是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。
时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。
主程序流程图,如图2-6
图2-6源程序流程图
(2)定时中断程序设计
单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。
如果MCS-52采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。
这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。
MCS-52单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/计数器两种工作模式和4种工作方式。
定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。
TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX.
当定时器/计数器工作于方式1,为16位的计数器。
本设计师单片机多功能定时器,所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。
3实验与仿真
电路设计原理
(1)将整个硬件系统划分为若干功能单元电路,绘出整个系统逻辑电路图,注明各交单元电路间接口信号;
(2)完成各单元电路设计,包括选择合适的各类元器件和电路板设计(元件布局和走线)。
(3)整个硬件图由蓝色LED七段数码管、80C52单片机、按键、电容、电解电容、石英晶振、电阻、排阻、和蜂鸣器组成。
Proteus软件介绍
Proteus软件是LabcenterElectronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。
Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。
通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。
KeilC调试环境介绍
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
电路的引脚连接
P0.0-P0.7经过上拉电阻连接7SEG—MPX8—CA—BLUE显示器的A—G和DP控制数位(0—9),P2.0-P2.7连接7SEG—MPX8—CA—BLUE的1—8脚控制显示器的时、分、秒和中间空格发光二极管的发光循序。
4结论
首先从任务要求出发,分析如何实现功能,然后将其分为若干模块,将每个模块设计好以后,再进行总体设计,最后是将硬件电路焊好,并进行电路连接。
通过这次毕业课程的设计使我对单片机有了深入的认识,特别是对定时中断方式有了直观的认识,设计数字钟我们用单片机内部定时\计数器,通过设置定时器产生精确的定时中断,达到计时的目的。
用定时器可以产生250us的精确定时,然后,4000次中断后就得到了精确的1s的定时,60个1s,即产生了1分钟等等。
用延时也可以做电子钟,但产生的定时一般是近似值,走得时间久了,定时会产生较大的偏差,而用定时器中断做的电子钟就不会有这个问题,很准确。
这个数字钟还可以进一步的加入功能,在以后的设计中,逐渐增加其他的功能,比如说加温度控制,加秒表和显示日期和星期等来进一步完善这个电子钟。
参考文献
[1]张毅刚、彭喜元《单片机原理与应用设计》电子工业出版社
[2]李玉梅《基于MCS-51系列单片机原理的应用设计》国防工业出版社
[3]顾栤、赵伟军、王泰《单片机计算机原理开发应用》高等教育出版社
[4]张洪润、蓝清华《单片机应用技术教程》清华大学出版社
附录1:
程序
CS1EQUP1.3
SIDEQUP1.4
CLKEQUP1.5;LCD
CS12887EQU8000H
CS12887AEQU800AH
CS12887BEQU800BH
CS12887CEQU800CH
RG_DLYEQU2H;延时使用的工作寄存器
RG_KEYEQU30H;存储键盘值
RG_KNEQU33H;存储调节年月日星期的次数按钮。
RG_BT1EQU31H;需要显示的数据暂存RAM
RG_BT2EQU32H
BT_DSPBIT00H;控制显示时间或闹钟的标志位
BT_ALMBIT01H;控制闹钟是否响铃的标志位
BT_TM2BIT02H;控制显示时间的模式,1:
只显示时分,0:
还显示年月日,星期
BT_MNSCBIT03H;控制显示时间的分秒
RG_TSCEQU40H;时钟和闹钟暂存RAM,顺序同DS12C887中的RAM(秒)
RG_ASCEQU41H;秒闹钟
RG_TMNEQU42H;分
RG_AMNEQU43H;分闹钟)
RG_THREQU44H;小时时制
RG_AHREQU45H;闹钟时制
RG_WKEQU46H;星期
RG_DAYEQU47H;日
RG_MTHEQU48H;月
RG_YREQU49H;年
RG_MSEQU51H;
RG_IDLEQ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 时钟