at89c251单片机电子时钟淘宝卖家推荐.docx
- 文档编号:2194075
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:34
- 大小:509.53KB
at89c251单片机电子时钟淘宝卖家推荐.docx
《at89c251单片机电子时钟淘宝卖家推荐.docx》由会员分享,可在线阅读,更多相关《at89c251单片机电子时钟淘宝卖家推荐.docx(34页珍藏版)》请在冰点文库上搜索。
at89c251单片机电子时钟淘宝卖家推荐
周口科技职业学院
毕业论文(设计)
题目《基于51单片机的多功能电子钟设计》
教学系电子工程系
专业班级10级电子1班
学生姓名
学生学号2010010100
指导教师
2012年11月11日
目录
1数字钟的系统概述3
1.1总体方案设计3
3AT89C2051单片机及其引脚说明4
3.1内部结构4
3.2程序保密5
3.3软硬件的开发5
3.4引脚说明5
3.5主要性能6
4电路的硬件设计6
4.1复位电路6
4.2时钟电路7
4.3按键电路8
4.4数码管显示电路8
4.4.1LED数码管结构及工作原理8
4.4.2显示原理10
4.578L05稳压电路10
5软件设计11
5.1主程序系统结构11
5.2软件任务分析12
5.3软件流程图12
6安装与调试13
6.1安装、焊接元件到电路板上13
参考文献14
致谢14
附录114
附录223
附录323
附录425
基于AT89C2051六位数字钟
应用电子技术专业学生张金玉指导教师孟庆勋
摘要:
本设计论文介绍了用AT89C2051单片机控制的数字钟的硬件结构与软件设计。
此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能。
电路由时钟脉冲发生器、时钟计数器、译码驱动电路和数字显示电路以及时间调整电路组成。
用晶体振荡器产生时间标准信号,这里采用石英晶体振荡器。
根据60秒为1分、60分为1小时、24小时为1天的计数周期,分别组成两个60进制(秒、分)、一个24进制(时)的计数器。
构成秒、分、时的计数,实现计时的功能。
显示器件选用LED七段数码管。
在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。
针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。
关键词:
单片机AT89C2051数字钟计时
引言:
钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
随着数字集成电路的出现和飞速发展,以及石英晶体振荡器的广泛应用,使得数字钟的精度稳定度远远超过了老式的机械表,用数字电路实现对“时”、“分”、“秒”数字显示的数字钟在数字显示方面,目前已有集成的计数、译码电路,它可以直接驱动数码显示器件,也可以直接采用才COMS--LED光电组合器件,构成模块式石英晶体数字钟。
本设计主要是用中、小规模集成电路设计的一台能显示时、分、秒的数字电子钟。
是由晶振电路产生1HZ标准信号,分、秒为00--59六十进制计数器,时为00--23二十四进制计数器,可手动校正。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
1数字钟的系统概述
1.1总体方案设计
数字电子钟是用数字电路实现“时”、“分”、“秒”数字显示的计时装置,主要由振荡器、分频器、计数器、译码显示器、校时电路等部分组成。
而数字钟想准确的计时则是由振荡器产生的时脉冲送到分频器,分频电路将时标信号分成每秒一次的方波信号。
秒脉冲发生器产生频率稳定很高的秒脉冲,秒脉冲被送到一个六十进制秒计数器计数,将计数结果送至秒个位和十位译码器,译码结果分别由两只七段数码管以十进制数形式显示来。
当秒六十进制计数器累计到第59秒时,若再来一个秒脉冲,秒计数器的进位输出就产生进位脉冲(分计数脉冲),同时,秒计数器的十位和个位都复位到零。
分计数脉冲又被送到分六十进制计数器计数,经译码电路译码后数码管显示相应的分数。
当计满59分59秒时,若再来一个秒脉冲,则分计数器便向时计数器送出时计数脉冲,同时,分、秒计数器均复位到零。
时计数器是一个二十四进制计数器,当计数显示23时59分59秒时,若再来一个秒脉冲,则时、分、秒计数器都应回到零,并显示(00:
00:
00)表示已到达午夜零点,第二天开始继续计数。
其主要的功能模块如图2-1所示。
六位数码管显示
图2-1系统结构框图
3AT89C2051单片机及其引脚说明
AT89C2051是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含2kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C2051单片机在电子类产品中有广泛的应用。
图3-1AT89C2051
3.1内部结构
AT89C2051是一带有2K字节闪速可编程可擦除只读存储器(EEPROM)的低电压,高性能8位CMOS微处理器。
它采用ATMEL的高密非易失存储技术制造并和工业标准MCS-51指令集和引脚结构兼容。
通过在单块芯片上组合通用的CPLI和闪速存储器,ATMEL的AT89C2051是一强劲的微型处理器,它对许多嵌入式控制应用提供一定高度灵活和成本低的解决办法。
AT89C2051提供以下标准功能:
2K字节闪速存储器,128字节RAM,15根I/O口,两个16位定时器,一个五向量两级中断结构,一个全双工串行口,一个精密模拟比较器以及两种可选的软件节电工作方式。
空闲方停止CPU工作但允许RAM、定时器/计数器、串行工作口和中断系统继续工作。
掉电方式保存RAM内容但振荡器停止工作并禁止有其它部件的工作到下一个硬件复位。
3.2程序保密
AT89C2051设计有2个程序保密位,保密位1被编程之后,程序存储器不能再被编程除非做一次擦除,保密位2被编程之后,程序不能被读出。
3.3软硬件的开发
AT89C2051可以采用下面两种方法开发应用系统。
1.由于89C2051内部程序存贮器为Flash,所以修改它内部的程序十分方便快捷,只要配备一个可以编程89C2051的编程器即可。
调试人员可以采用程序编辑-编译-固化-插到电路板中试验这样反复循环的方法,对于熟练的MCS-51程序员来说,这种调试方法并不十分困难。
但是做这种调试不能够了解片内RAM的内容和程序的走向等有关信息。
2.将普通8031/80C31仿真器的仿真插头中P1.0~P1.7和P3.0~P3.6引出来仿真2051,这种方法可以运用单步、断点的调试方法,但是仿真不够真实,比如,2051的内部模拟比较器功能,P1口、P3口的增强下拉能力等等。
3.4引脚说明
图3-4AT89C20151
1.VCC:
电源电压。
2.GND:
地。
3.P1口:
P1口是一个8位双向I/O口。
口引脚P1.2~P1.7提供内部上拉电阻,P1.0和P1.1要求外部上拉电阻。
P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(ANI0)和反相输入(AIN1)。
P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。
当P!
口引脚写入“1”时,其可用作输入端,当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。
当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流。
4.P3口:
P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的七个双向I/O口引脚。
P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。
P3品缓冲器可吸收20mA电流。
当P3口写入“1”时,它们被内部上拉电阻拉高并可用作输入端。
用作输入时,被外部时拉低的P3口脚将用上拉电阻而流出电流。
P3口还接收一些用于闪速存储器编程和程序校验的控制信号。
5.RST:
复位输入。
RST一旦变成高电平所有的I/O引脚就复位到“1”。
当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。
每一个机器周期需12个振荡器或时钟周期。
6.XTAL1:
作为振荡器反相器的输入和内部时钟发生器的输入。
7.XTAL2:
作为振荡器反相放大器的输出。
3.5主要性能
1.和MCS-51产品兼容;
2.2KB可重编程FLASH存储器(10000次);
3.2.7-6V电压范围;
4.全静态工作:
0Hz-24MHz;
5.2级程序存储器保密锁定;
6.128*8位内部RAM;
7.15条可编程I/O线;
8.两个16位定时器/计数器;
9.6个中断源;
10.可编程串行通道;
11.高精度电压比较器(P1.0,P1.1,P3.6);
12.直接驱动LED的输出端口。
4电路的硬件设计
4.1复位电路
AT89C2051单片机的复位是由外部的复位电路来实现的。
复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。
为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
图4-1复位电路
上电自动复位是通过外部复位电路的电容充电来实现的。
只要VCC的上升时间不超过1ms,就可以实现自动上电复位
4.2时钟电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:
一种是内部时钟方式,另一种为外部时钟方式。
本文用的是内部时钟方式。
图4-2时钟电路
AT89C2051单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL0和XTAL1分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部方式的时钟电路如图3-9所示,在XTAL0和XTAL1引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
单片机晶振两个电容的作用:
这两个电容叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,一般在几十pf。
它会影响到晶振的谐振频率和输出幅度。
晶振的负载电容=[(Cd*Cg)/(Cd+Cg)]+Cic+△C式中Cd,Cg为分别接在晶振的两个脚上和对地的电容,Cic(集成电路内部电容)+△C(PCB上电容)经验值为3至5pf。
4.3按键电路
该设计只用了一个键盘,但实现的功能却是比较完善,减少了硬件资源的损耗,该键盘可以实现小时和分钟的调节以及控制是否进入省电模式。
当按键按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。
达到时间调节的目的。
图4-3按键电路
。
4.4数码管显示电路
4.4.1LED数码管结构及工作原理
LED数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
每一笔划都是对应一个字母表示DP是小数点。
下图为常用LED数码管内部引脚图。
图4-4-1LED数码管正面个字段引脚
LED数码管根据LED的接法不同分为共阴和共阳两类
共阳极LED数码管的内部结构原理图:
图4-4-2共阳极LED数码管的内部结构原理图
共阴极LED数码管的内部结构原理图:
图4-4-3共阴极LED数码管的内部结构原理图
LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。
1.静态显示驱动
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位*器*进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5×8=40根I/O埠来驱动,要知道一个89S51单片机可用的I/O埠才32个呢。
故实际应用时必须增加*驱动器进行驱动,增加了硬体电路的复杂性。
2.动态显示驱动:
数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。
4.4.2显示原理
显示部分主要器件为3只两位一体共阳极数码管,驱动采用PNP型三极管驱动,各端口配有限流电阻,驱动方式为动态扫描,占用P3.0~P3.5端口,段码由P1.0~P1.6输出。
冒号部分采用4个Φ3.0的红色发光二极管,驱动方式为独立端口P1.7驱动。
图4-4-4数码管电路
4.578L05稳压电路
78L05是一个线性的稳压器,不论其输入端接多少伏电源,其输出是固定的5伏,主要给小容量的器件提供电源。
因为是线性稳压,所以其输出波形杂波比较严重,而且其输出会复制输入的波形出来。
所以前后都要滤波,在输入端加电容时相当于平滑电容。
起到一个滤波的作用,提高IC工作稳定性。
输出端加电容是为本地器件提供能量的存储器件,它能使稳压器的输出均匀化,降低负载需求。
图4-5稳压电路
本设计采用了单片机AT89C2051为核心器件,它与C51相比除少了P0、P2口外指令完全相同。
在电路中P1口输出段码数据,接六位数码管的段码引脚,P3口作扫描控制,控制各位数码管的显示情况!
并配合所有的外围电路,具有上电复位的功能,无手动复位功能。
5软件设计
5.1主程序系统结构
图5-1软件系统结构
5.2软件任务分析
软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了[9]。
软件任务分析环节是为软件设计做一个总体规划。
从软件的功能来看可分为两大类:
一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。
这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。
软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。
在各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。
各执行模块规划好后,就可以监控程序了。
首先根据系统功能和键盘设置选择一种最适合的监控程序结构。
相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。
这如同当一名操作工人比较容易,而当一个厂长就比较难了。
软件任务分析的另一个内容是如何安排监控软件和各执行模块。
整个系统软件可分为后台程序(背景程序)和前台程序。
后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。
也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。
5.3软件流程图
图5-3程序设计流程图
程序里先定义两个中断定时器T0和T1,一个作为秒记数用,另一个做为调整时闪烁用。
编程时先将P1和P3口数据清零,然后P1和P3口作动态扫描显示,由于人的眼睛有延迟性,当扫描频率非常高时人就感觉数码管一直亮着,而同时记数器在遵循时间的变化方式执行着秒到了60分加一,分到了60小时加一,小时到了24就归零。
P3.7作为时间调整按钮当长按按住2秒以上进入校准时间状态及换档和退出,快速点触用于调节时间数值,归零是复位按钮。
6安装与调试
6.1安装、焊接元件到电路板上
按照先低后高,先小后大,先卧式后立式的顺序,正确插入元件,其高低、极性要符合规定。
1.先从最低元件安装。
应先安装、焊接跳线机及电阻,用电阻多余的脚做跳线,电阻引脚不分正负,焊接时间最好控制在2-3秒。
2.安装、焊接瓷片电容。
瓷片电容部分正负极。
3.安装、焊接轻触开关
4.安装、焊接三极管。
三极管的外形基本一样,注意分青,且方向要和电路板上的方向一致。
5.安装、焊接12MHZ晶振。
晶振没有正负极。
6.安装、焊接电解电容,装的时候要躺着安装,立着会影响发光二极管的显示不整齐。
7.安装、焊接20脚IC插座,从用一小缺口或小圆点标记的地方以逆时针数依次为1-20脚,安装时要注意缺口和电路上的缺口相一致。
20只引脚都插到位后,先用手指按住,固定对角两只引脚,防止插入的引脚掉出来,再把板放到桌面上把剩下的引脚焊好。
焊好后不要急于插入单片机芯片,因为还有其他元件焊接,防止电烙铁带静电击坏单片机芯片。
8.安装、焊接LED。
LED和普通二极管一样,有正负极之分,不能装错。
安装、焊接数码管。
认识数码管内部结构。
7结束语
经过大量查找资料和老师的不断指点,我将所设计的六位数码管电子钟焊接成功,虽然不是很稳定,但在这个过程中,我了解了各个元器件的识别与测量,也了解了AT89C2051单片机及其引脚功能。
同时明白了六位数码管电子钟的工作原理并实现了其功能。
通过这次的毕业设计,我对自己的动手能力有了信心。
面临着就业,我将充分发挥我的主观能动性和在学校学到的一切知识。
为母校添砖加瓦,为自己的前程奋斗!
这次毕业设计的顺利进行,我深刻明白了理论知识与社会实践相结合的道理,从总得到了以前书本知识所不曾得到的知识。
更加明白了如今信息时代电子技能知识的重要性。
增强了我对实际工艺技术、电子技术和设备技术等方面的认识,掌握了分析处理方法,调试、计算等基本技能的训练,并具备了一定程度的实际工作能力。
参考文献
[1]石生,电路基本分析[M]高等教育出版社.2008,9:
64~66.
[2]何立民,高级单片机教程[M]北航出版社.2009,6:
218~220.
[3]李振声,实验电子技术[M]国防工业出版社.2007,7:
73~75.
[4]李全利,单片机原理与应用技术[M]高等教育出版社.2009,6:
81~84.
[5]刘守义,单片机应用技术[M]西安电子科技大学出版社.2008,4:
7~19.
[6]任为民,电子技术基础课程设计[M]中央广播电视大学出版社.2003,10:
80~87.
[7]ATMEL,MicrocontrollerDatabook[M].2002,9:
38~41.
[8]Mark1,Montrose.PRINTEDCircuitBoardDesignTechniquesforEMC
compliance.IEEPressseries[M].2000,11:
44~48.
致谢
在这四年的学习生活中,学校严谨的治学作风、良好的学习氛围、老师们认真的工作态度,都给我留下了非常深刻的印象。
在这里我真诚地向那些曾经帮助过我、关心过我的老师、同学和朋友们说一声:
谢谢!
祝愿他们一生平安!
附录1
程序主要代码:
#include
codesenen_seg[10]={0x81,0xe7,0x92,0xa2,0xe4,0xa8,0x88,0xe3,0x80,0xa0};
bitkey1_enter=0,key2_enter=0,key3_enter=0,countdown_mark=0,stopwatch_mark=0,count_mark=0,bell_mark=0;
unsignedcharprogram=0,program_variable=0,count_bit=0,count=0;
unsignedcharhour=10,minute=10,second=0;
unsignedchardelayed_hour=22,delayed_minute=10,delayed_second=0;
unsignedcharcount_hour=0,count_minute=0,count_second=0;
unsignedcharcount_time=0,count_count=0;
voiddelay(unsignedintt)
{
unsignedinti,j;
for(i=0;i for(j=0;j<10;j++); } voidtime0_init(void){ EA=0; TR0=0; TMOD=0x01; TH0=0xec; TL0=0x73; ET0=1; TR0=1; EA=1; } staticvoidtimer0_isr(void)interruptTF0_VECTORusing1 { TR0=0; TH0=0xec; TL0=0x73; TR0=1; count_time++; if(count_time>=199){ count_time=0; second++; if(second>=60){ second=0; minute++; if(minute>=60){ minute=0; hour++; if(hour>=24)hour=0; } } } if(delayed_hour==hour&&delayed_minute==minute&&second<4)P3_7=0; elseP3_7=1; if(countdown_mark==1){ count_count++; if(count_count>=199&&(count_second! =0|count_minute! =0|count_hour! =0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- at89c251 单片机 电子 时钟 淘宝 推荐
![提示](https://static.bingdoc.com/images/bang_tan.gif)