基于单片机的电子时钟Word格式文档下载.docx
《基于单片机的电子时钟Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子时钟Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
![基于单片机的电子时钟Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/25/c26c5208-74e7-4e24-ba97-b95a10bccb4e/c26c5208-74e7-4e24-ba97-b95a10bccb4e1.gif)
seconds"
digitaldisplaytimingdevice.Digitalclockaccuracy,stability,farmorethantheoldmechanicalclocks.Inthisdesign,weuseaLEDdigitaltubedisplayhours,minutes,seconds,year,month,day,andaccordingtotheprinciplesofdigitaltubedisplayshows12MHztheCrystaloscillationpulse,timercounts.Inthedesignofthecircuitshavedisplayedtheirfunctionandadjustmentcanbeachievedontime,thealarmsettings.Digitalclockisitscompact,lowcost,highaccuracy,easeofuse,featuresandmore,istheconsumer'
sfavoriteeaseofintegration,ithasbeenwidelyused.
Keywords:
ElectronicclockSingle-chipmicrocomputer
目录
1电子时钟方案的设计与选择…………………………………………………………4
1.1方案论证与比较………………………………………………………………4
1.1.1数字方案时钟方案………………………………………………………4
1.1.2数码管显示方案…………………………………………………………4
2电子时钟的设计过程……………………………………………………………….5
2.1系统设计……………………………………………………………………..5
2.1.1单片机的选择………………………………………………………….5
2.1.2元器件的介绍………………………………………………………….5
2.2电子时钟电路设计……………………………………………………………9
2.2.1元器件的选取…………………………………………………………9
2.2.2电路流程说明…………………………………………………………9
2.2.3电路流程框图………………………………………………………..10
2.2.4电源设计……………………………………………………………..10
2.2.5复位电路………………………………………………………………10
2.2.6程序下载接口…………………………………………………………11
2.2.7位选部分………………………………………………………………11
2.2.8段选部分………………………………………………………………12
2.2.9数码管连接电路……………………………………………………..12
2.2.10LED流水灯部分…………………………………………………….13
2.2.11蜂鸣器部分………………………………………………………..13
2.2.12控制部分……………………………………………………………13
2.2.13原理图………………………………………………………………14
2.3软件设计………………………………………………………………………….15
2.3.1程序流程图……………………………………………………………….15
2.3.2设计程序………………………………………………………………….18
3心得体会………………………………………………………………………….28
3.1课程设计总结…………………………………………………………….28
3.2收获与体会………………………………………………………………..28
基于单片机的电子时钟设计
1电子时钟方案的设计与选择
1.1方案的论证与比较
1.1.1数字方案时钟方案
数字时钟是本设计的最主要的部分。
根据需要,可利用两种方案实现。
方案一:
本方案采用Dallas公司的专用时钟芯片DS,1302。
该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。
为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。
当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。
而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。
方案二:
本方案完全用软件实现数字时钟。
原理为:
在单片机内部存储器设就个字节分别存放时钟的时、分、秒、年、月、日、定时、定分、定秒信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;
若秒值达到60,则将其清零,并将相应的分字节值加1;
若分值达到60,则清零分字节,并将时字节值加1;
若时值达到24,则将十字节清零,日子节加1,同理还有月子节、年字节。
该方案用四个键来调整时间、设置定时时间,当定时时间到后蜂鸣器响,led灯闪烁。
该方案具有硬件电路简单的特点。
但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。
而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。
基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。
1.1.2数码管显示方案
静态显示。
所谓静态显示,就是每个数码管的每一个段码都由一个单片机的I/O埠进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5×
8=40根I/O埠来驱动。
故实际应用时必须增加驱动器进行驱动,增加了硬体电路的复杂性。
动态显示。
数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"
a,b,c,d,e,f,g,dp"
的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。
从节省I/O口和降低能耗出发,本设计采用方案二。
2电子时钟的设计过程
2.1系统设计
2.1.1单片机的选择
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。
其发展趋势不外乎以下几个方面:
1、多功能
单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。
比如A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器---看家狗)、高速I/O口及计数器的捕获/比较逻辑等。
有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量。
例如,有的芯片以51内核为核心,集成了USB控制器、SMARTCARD接口、MP3解码器、CAN或者I*I*C总线控制器等,LED、LCD或VFD显示驱动器也开始集成在8位单片机中。
2、高效率和高性能
为了提高执行速度和执行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:
单片机的时钟频率得到提高;
同样频率的单片机运行效率也有了很大的提升;
由于集成度的提高,单片机的寻址能力、片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制。
由于系统资源和系统复杂程度的增加,开始使用高级语言(如C语言)来开发单片机的程序。
使用高级语言可以降低开发难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。
3、低电压和低功耗
单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。
由于CMOS等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。
这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。
4、低价格
单片机应用面广,使用数量大,带来的直接好处就是成本的降低。
目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。
2.1.2元器件的介绍
元器件介绍
7805介绍
H7805系列为3端正稳压电路,TO-220封装,能提供很多种固定的输出电压,应用范围广。
内涵过流、过热和过载保护电路。
带散热片时,输出电流可达1A.。
虽然是固定稳压电路,但是用外接元件,可获得不同的电压和电流。
主要特点:
输出电流可达1A
输出电压有5V过热保护
短路保护
单片机介绍
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
AT89C52单片机是美国ATMEI公司生产的低电、高性能CMOS8位单片机,具有丰富的内部资源:
4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量阴级中断结构、2个全I双工的串行、具有4.25~5.50V的电压工作范同和0~24MHz工作频率,使用AT89C52单片机时无须外扩存储器。
AT89C2051芯片的20个引脚功能为:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能存储器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C52的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,
/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石英振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.2电子时钟电路设计
2.2.1元器件的选取
单片机AT89C52;
三极管8050,电阻1k,10k;
电容33pf1uf;
变压器;
整流桥;
7805;
发光二极管;
蜂鸣器;
晶体振荡器12MHz.
2.2.2电路流程说明
利用单片机(AT89S52)制作简易电子时钟,由八个LED数码管分别显示小时十位、小时个位、一横、分钟十位、分钟个位、一横、秒钟十位、秒钟个位,还有年月日的十位和个位。
位选芯片74HC138控制八个数码管的亮灭,四个按键用于时间调整,设置定时,当定时时间到时,LED流水灯闪烁,蜂鸣器响。
2.2.3电路流程框图
8个共阴极发光二极管
2.2.4电源设计
AT89C52单片机需要的电源是5v直流电源,我们所用的电是220v50赫兹,这要需要交流电源220v转换5v直流电源,利用变压器的原理220v进行降压,单片机控制系统以及外围芯片供电采用7805系列三端稳压器件,通过全波整流,然后进行滤波,然后进行滤波稳压,使用电容滤去交流,电路如图1.1所示。
2.2.5复位电路
2.2.6程序下载接口
如图所示,由AT89SISP构成的一排十针下载口,板图上有一个小方框,为1号引角;
下载线的凸口为正方向,凸口的右侧边的第一个插孔为1号引角。
2.2.7位选部分
图为位选电路,74HC138译码器可接受3位二进制加权地址输入(A0,A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。
74HC138特有3个使能输入端:
两个低有效(E1和E2)和一个高有效(E3)。
除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。
当P2口为0时,第一个数码管亮,当P2为1时,第二个数码管亮,以此类推,当P2口为7时,第八个数码管亮。
2.2.8段选部分
图是一个段选的引脚图,主要有锁存器74HC573组成。
2.2.9数码管的连接电路
图为数码管的引脚图,每位的段(a,b,c,d,e,f,g,dp)分别与1个8位的锁存器输出相连,由AT89S52控制组合0-9十个数据,如令其显示1则b,c引脚(即2,3引脚)送高电平,此时数码管显示1。
由于各位的段码线并联,8位I/O口输出段码对各个显示位来说都是相同的。
2.2.10LED流水灯部分
图为LED流水灯的引脚图,由八个共阴极的发光二极管组成,当P1口为低电平时发光管将会发光。
2.2.11蜂鸣器部分
图为蜂鸣器引脚图。
当P1^6为高电平时,蜂鸣器响。
2.2.12控制部分
2.2.13原理图
2.3软件设计
2.3.1程序流程图
这次的电子时钟设计用到很多子程序,它们的流程图如下所示。
主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。
主程序流程图
按键处理是先检测秒按键是否按下,主按键如果按下,num值就加1;
如果num值等于10则num值清零。
如果num值等于1,则对分值进行编辑;
如果num值等于2,则对秒值进行编辑;
如果num值等于3,则对时值进行编辑;
如果num值等于4,怎对日值进行编辑;
如果num值等于5,则对月值进行编辑;
如果num值等于6,则对年值进行编辑;
如果num值等于7,则对定秒进行编辑;
如果num值等于8,则对定分进行编辑;
如果num值等于9,则对定时值进行编辑;
如果num值为0,则重新显示时间。
按键处理流程图
定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;
如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;
如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间,同理,年月日也是如此。
定时器中断流程图
时间显示是按秒个位计算显示、秒十位计算显示、分个位计算显示、分十位显示、时个位计算显示、时十位显示、日个位显示、日十位显示、月个位显示、月十位显示、年个位显示、年十位显示、定秒个位显示、定秒十位显示、定分个位显示、定分十位显示、定时个位显示、定时十位显示。
当num值为1~3,则显示时分秒;
当num值为4~6,则显示年月日;
当num值为7~9,则显示定时定分定秒。
图4-4时