基于单片机的智能电脑钟.docx
- 文档编号:7806790
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:36
- 大小:393.49KB
基于单片机的智能电脑钟.docx
《基于单片机的智能电脑钟.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能电脑钟.docx(36页珍藏版)》请在冰豆网上搜索。
基于单片机的智能电脑钟
东华理工大学长江学院
毕业设计
题目:
基于单片机的智能电脑钟
英文题目:
Microcontroller-basedintelligentcomputerclock
学生姓名:
李睿
学号:
08314314
专业:
电子信息工程
系别:
机械与电子工程系
指导老师:
余颖
二零一二年五月十六日
摘要
基于在对单片机研究的基础上,本文提出了一种以AT89C51为核心的单片机构成数字电脑钟的看法。
AT89C51芯片是美国ATMEL公司生产的低电压、高性能8位单片机,片内含2KB的可反复擦写的只读程序存储器128bytes的随机存储数据存储器(RAM),器件采用高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用中央处理器和flash存储单元。
因此,在此基础上进行了数字电脑钟设计的工作,给出数字电脑钟的软件和硬件的设计。
考虑到存在的各种干扰对系统的影响,从软件和硬件设计方面进行分析,采用相应的措施以增强系统的抗干扰能力。
该钟的显示电路采用LED数码管与AT89C51的外部I/O引脚,即采用P0口为输出口,P2口为位选,P1用来与外部输入按钮相连接,以用来控制数字钟的各个功能。
P0口要直接驱动8位LED是不够的,我们通过两片74LS245对功率进行放大,如果没有,LED管将不能正常显示。
关键词:
单片机、 数字钟、 抗干扰、 定时器
Abstract
Basedontheresearchonsinglechips,throughdeepanalysisonthedigitalclock,thethesistriedtoprobeintoarealizingmethodofmakingadigitalclockwithAT89C51asthecore-controllingchip.Thechip,whichismadebyATMELINC.intheUniteStates,isalowvoltage,highfunctional,8bitsinglechip.Itcontainsa2KbytesrewritableROManda128bytesRAM.ItspartsareproducedwithAtmen’sHighdensity,non-easy-losingsavingtechnology,andcompatiblewiththestandardMCS-51instructionsystem.Thechipenclosesacurrency8bytescentralprocessorandflashstorageunit.Itprovideswithaprogramdesignofthedigitalclockbothonhardwareandsoftwareinthispaper.Consideringtheeffectfromvariousinterferencesonthesystem,thethesisanalyzeinsoftwarehardwareandtakescorrespondingmeasurestoenhancetheanti-interferenceabilityofthesystem.
Todesignandapplicationofthedigitalclock,thedisplaypartusesLED.TheLEDisjoinedwithP0andP2.Obviously,itisnotadequatefortheI/Otodrive8-byteLED.Itneededtousetwo74LS245chips.Itcanenlargethepower.Withoutit,theLEDcan’tdisplaynormally.
Keywords:
singlechip、digitalclock、anti-interference、timer
目录
ABSTRACT
绪论
1.1本课题研究的目的和意义
1.2设计具体要求
2系统总体设计
2.1.1单片机芯片的选择方案和论证
2.1.2显示模块选择方案和论证
2.1.3时钟芯片的选择方案和论证
2.1.4总体方案及确定
3系统硬件设计
3.1系统硬件框图
3.1.1主控制模块
3.1.2时钟电路模块
3.1.3显示模块
3.1.4键盘接口模块
3.1.5电源模块
3.3部分重要元器件的介绍
3.3.1AT89C52芯片介绍
3.1.2DS1302时钟芯片
4其他芯片介绍
3系统的软件设计
3.1程序流程框图
3.1软件结构及流程
显示子程序程序流程图
阳历程序流程图
4.系统调试25
4.1硬件调试25
4.2软件调试25
结论26
致谢27
参考文献28
附录1程序清单29
附录2硬件图30
目录
摘要I
AbstractII
绪论1
1.系统方案选择和论证2
1.1本设计的主要任务2
1.2各模块方案选择和论证2
1.2.1计时方案的选择2
1.2.2主控模块的选择2
1.2.3显示模块的选择3
1.2.4控制按键的选择3
1.2.5系统各模块的最终方案3
1.3总体方案介绍4
1.3.1总体设计框图4
1.3.2设计原理4
2.系统硬件设计5
2.1系统硬件概述5
2.2主控制电路5
2.2.1主要元件单片机AT89C516
2.2.2AT89C51芯片引脚图6
2.2.3AT89C51主要特性6
2.2.4AT89C51管脚说明7
2.2.5AT89C51振荡器特性8
2.2.6AT89C51芯片擦除8
2.2.7AT89C51结构特点9
2.3显示电路9
2.3.1电路分析9
2.3.274LS245芯片介绍10
2.4复位电路11
2.4.1复位电路图11
2.4.2复位电路实现功能11
2.4.3复位电路的工作原理12
2.5电源电路14
2.5.1电源电路功能14
2.5.2电源电路芯片分析14
2.5.37805芯片14
2.5.4桥式整流器15
3.系统软件设计17
3.1系统软件概述17
3.2程序设计流程17
3.3系统初始化和键盘处理程序18
3.4定时器T0中断处理程序19
3.5定时器T1中断处理程序23
3.6外部中断0中断处理程序25
4.系统调试与脱机运行27
4.1硬件调试27
4.1.1脱机检查27
4.1.2联机调试27
4.2软件调试27
4.3脱机运行28
结论30
致谢31
参考文献32
绪论
电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。
随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。
在城市的主要营业场所、车站、码头等公共场所使用LCD数字电子钟已经成为一种时尚。
但目前市场上各式各样的LCD数字电子钟大多数用全硬件电路实现,电路结构复杂,功率损耗大等缺点。
因此有必要对数字电子钟进行改进。
随着科技的进步、生活的提高、生活节奏的加快,人们对于时间的定时、报时等功能的要求越来越高。
不仅要求时钟能在要求的时间报时,而且还要求每天能够按照一定顺序、预先设置好的时间表进行多次报时;除了基本的一般时钟的功能外,跑表功能也要包含在内,这样要不的设计功能更齐全、更人性化的智能钟。
这种智能钟主要利用89C51单片机内部的定时器,再附加上一些其他资源来构成,其功能是很强的。
智能钟系统可靠性高、体积小、成本低、功能强,有着良好的人机对话功能,易于推广,有着良好的应用前景。
目前单片机已渗透到生活的各个领域,几乎很难找到哪个领域没有单片机的足迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说全自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的工程师和科学家。
科技越发达,智能化的东西就越多。
基于单片机的智能电脑钟,利用单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。
除了基本的一般时钟功能外,还能设计出功能更齐全、更人性化的智能钟。
单片机即单片微型计算机,又称为微控制器,它的体积小,功能强,可靠性好,价格又便宜,成为传统工业技术改造和新产品更新换代的理想品种,具有广阔的发展前景,其中最具有代表性的就是Intel公司的89C51系列单片机。
本文在对单片机研究的基础上,以AT89C51为核心控制芯片设计出的智能钟具有更广泛的前景。
1.系统方案选择和论证
1.1本设计的主要任务
这次设计的主要任务是使用单片机编程的方法很好的实现多功能电脑钟的各项功能。
(1)能将用记时提供情报的作息时间表存入存储器,控制作息时间的要求定时找铃;
(2)具有定时功能;
(3)具有跑表功能;
(4)设置功能选择开关和相应的操作按键,时钟用6位数码管分别显示时、分、秒。
作跑表时显示分、十秒、秒、十毫秒和毫秒。
其要求:
(1)单片机采用89C51为主控制器;
(2)时钟可设置报时、校时;
(3)作定时可设置定时时间的启动;
(4)作跑表时可设置清零、启动和停止。
1.2各模块方案选择和论证
1.2.1计时方案的选择
方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大,所以不采用此方案。
方案二:
采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA。
综观上述两种方案的论证与比较,我们采用单片机软件控制作为本设计的计时方案。
1.2.2主控模块的选择
方案一:
用可编程逻辑器件设计。
可采用ALTERA公司的FLEX10K系列PLD器件。
设计起来结构清晰,各个模块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。
但是考虑到本设计的特点,EDA在功能扩展上比较受局限,而且EDA占用的资源也相对多一些。
从成本上来讲,用可编程逻辑器件来设计也没有什么优势。
方案二:
用凌阳16位单片机设计。
凌阳16位单片机有丰富的中断源和时基,方便本实验的设计。
它的准确度相当高,并且C语言和汇编兼容的编程环境也很方便来实现一些递归调用。
I/O口功能也比较强大,方便使用。
用凌阳16位单片机做控制器最有特色的就是它的可编程音频处理,可完成语音的录制播放和识别。
这些都方便对设计进行扩展,使设计更加完善。
成本也相对低一些。
但是,在控制与显示的结合上有些复杂,显示模组资源相对有限,而且单片机的稳定性不是很高。
方案三:
主控芯片使用51系列AT89C51单片机。
AT89C51算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
综观上述两种方案的论证与比较,我们采用AT89C51作为主控模块芯片。
1.2.3显示模块的选择
方案一:
使用液晶显示屏显示时间数字。
液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。
但是在显示时,特别是使用秒表功能时扫描速度跟不上,屏幕会有明显的闪烁,另外由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。
在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片,不易维护。
方案二:
相比液晶显示,8段数码管虽然操作比液晶显示略显繁琐,但可视范围十分宽,而且经济实惠,也不需要复杂的驱动程序。
所以最后选择LED数码管显示方案。
使用传统的LED数码管显示。
数码管具有:
低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度比较高,称重轻,精确可靠,操作简单。
方案三:
采用LED数码管动态扫描显示,价格低廉,不仅减少了对I/O口的浪费,而且能够同时驱动多个数码管。
其驱动程序容易编写和理解。
经过三种方案的比较,排除了前二种方案之后,最后选择方案三:
LED数码管动态扫描显示。
1.2.4控制按键的选择
方案一:
选取阵列式按键,减少了I/O口的使用,且扫描M×N个按键只需占用M+N个I/O口即可实现,但给编程带来了一定的困难,虽然节省了很多的口线,降低了成本,但在此设计中所用的按键要尽量少,因此排除此方案。
方案二:
独立式按键,每个按键实现一个功能,易于控制且编写程序简单,容易理解,虽然会占用一定的单片机I/O口资源,但是题目中要求使用的按键要尽量少。
通过以上两种方案比较,采用方案二。
1.2.5系统各模块的最终方案
经过方案论证与比较,本设计主要由单片机电路来实现,选择AT89C51作为主控,采用独立式按键控制,LED数码管动态扫描显示。
1.3总体方案介绍
按照系统设计功能的要求,初步确定系统由主控模块、时控模块、显示模块和键盘接口模块共4个模块组成,其中用AT89C52作为系统的主控模块,时钟电路用时钟芯片DS1302、显示模块用LED数码管。
电路系统构成框图如图所示。
智能电脑钟系统构成框图
图1总体设计框图
1.3.2设计原理
整个流程过程主要有显示部分,定时部分,计时部分三大部分,电源用+5V,AT89C51主控制器。
利用89C51片内定时器0定时发出中断,进行秒、分、时计时,并把计时时间送至显示器;利用定时器1,定时1毫秒发出中断,进行毫秒、秒、分计时。
电脑钟测试I/O上相应位的输入信号,决定计时的启、停。
2.系统硬件设计(少了键盘功能介绍)
2.1系统硬件概述
本系统的主要功能包括报时功能、定时功能和跑表功能。
具体来讲,报时是指按设定的时间表,到点时发出一个报时控制信号,去操作某一个装置,经过一段时间后,自动撤销报时控制信号,报结束。
可以按照固定的时间表进行报时,也可以按照随机存放的时间表报时[1]。
这种随机的时间表可由用户通过键盘输入到89C51片内RAM中。
定时功能与报时功能不同,定时控制信号是按照时间表交替起作用的。
时间表上的某一个设定时间到,则系统发出一控制信号,去接通(断开)某一设备;下一个设定的时间到,则系统再次发出控制信号,去断开(接通)上述设备。
本系统的跑表功能是通过操作相应的按键,实现清零、启动计时和停止计时,同时显示累计时间。
计时分辨率达1毫秒。
2.2主控制电路
主控制部分采用AT89C51为控制芯片。
其每个端口的功能分别如下:
本次设计输入都采用检测P1口的引脚电位的变化来实现的,其每个引脚的功能分别如下:
(S1)P1.0:
调整按钮,用来调整时间的。
每按下一次,可改变调整时间的位选,循环一周后回到显示时间界面。
P1.1:
加按钮,在调整时间或在设置定时过程中向上调整。
在秒表过程中,用来启动秒表。
P1.2:
减按钮,在调整时间或在设置定时过程中向下调整。
在秒表过程中,用来停止秒表。
P1.3:
显示日期按钮,当按下后显示当前日期,弹起回到显示时间界面。
P1.4:
定时按钮,按下后跳到调节定时时间界面,每按下一次,可改变定时时间的位选,循环一周后回到显示时间界面。
P1.5:
显示秒表按钮。
当按下后跳到显示秒表界面,当秒表停下后,再次按下此按钮回到显示时间界面。
本次设计采用P0口作为显示数据的输出口,P0口输出8位的显示数据送给74LS245进行功率放大后,再送给数码管显示。
P2口位位选口,同一时间只能一位位低电平,对应的该位显示输出。
每位轮流显示输出,在高速轮流反复显示下,根据视角暂留,就可以看到连续的显示。
P3.0和P3.1分别作为整点报时和定时时间到报警的闹铃驱动端[7]。
2.2.1主要元件单片机AT89C51
本设计主要运用的是单片机AT89C51作为核心原件以及外围电路构成,由于采用单片机,使得外围电路结构非常的简单,但功能并不比一般的时钟少。
89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C51是它的一种精简版本。
89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
2.2.2AT89C51芯片引脚图
图2At89c51芯片引脚图
2.2.3AT89C51主要特性
·与MCS-51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
2.2.4AT89C51管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写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口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
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:
来自反向振荡器的输出。
2.2.5AT89C51振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.2.6AT89C51芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
2.2.7AT89C51结构特点
8位CPU;
片内振荡器和时钟电路;
32根I/O线;
外部存贮器寻址范围ROM、RAM64K;
2个16位的定时器/计数器;
5个中断源,两个中断优先级;
全双工串行口;
布尔处理器;
2.3显示电路
电脑钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 智能 电脑
![提示](https://static.bdocx.com/images/bang_tan.gif)