《基于单片机的万年历设计(安工程毕业设计).doc》由会员分享,可在线阅读,更多相关《基于单片机的万年历设计(安工程毕业设计).doc(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、安徽工程大学毕业设计(论文)基于单片机的万年历设计摘 要进入二十一世纪,电子技术无处不在,电子产品给我们生活带来便利的同时也改变着我们的世界。基于单片机技术的电子产品已经遍及社会的每个角落。电子万年历以其体积小,携带方便、实用,美观等优势一直占领着广阔的市场,同时也给人们的生活带来诸多方便。本设计由硬件设计和软件设计两大部分组成。硬件设计上,以AT89C51单片机为控制核心,通过DS1302与DS18B20通信获得实时时间和实时环境温度,并将得到的数据通过1602液晶显示出来,同时通过相应的按键调整相应的值。硬件部分详细介绍了本设计所应用的各硬件接口技术和各个接口模块的功能。软件设计上,本设计
2、采用C语言进行软件设计,在硬件的基础上来进行各功能软件模块的编写。同时软件的设计采用模块化结构,使程序设计的逻辑关系更加简单易懂。由于该设计用液晶为载体来显示,所以具有良好的人机交互界面与友好的操作,可以显示时间、日期、星期、温度并具有闹铃功能。关键词:AT89C51单片机;万年历;液晶技术;DS1302;DS18B20Design of Multifunctional digital Perpetual Calendar Based on MCUAbstractEnters for the 21st century, the electronic technology is ubiquito
3、us, the electronic products live for us bring the convenience at the same time also to change our world.Already spread social based on the monolithic integrated circuit technology electronic products each quoin.The electronic ten thousand calendars are small by its volume, the carryhome is convenien
4、t, is practical, artistic and so on the superiority are seizing the broad market continuously, simultaneously also gives peoples life to bring conveniently many.This design designs major part two by the hardware design and the software is composed.The hardware designs, take AT89C51 monolithic integr
5、ated circuit as the control core, obtains the real-time time and the real-time ambient temperature through DS1302 and the DS18B20 correspondence, and will obtain data through 1602 liquid crystal displays, simultaneously through corresponding pressed key adjustment corresponding value.The hardware pa
6、rt introduced in detail this design applies various hardware connection technology and each interface module function.The software designs, this design uses the C language to carry on the software design, carries on various functions software module in the hardware foundation the compilation.Simulta
7、neously the software design uses the modular structure, makes the programming the logical relations to be simpler easy to understand.Because this design demonstrated with the liquid crystal for the carrier, therefore has the good man-machine interaction contact surface and the friendly operation, ma
8、y demonstrate the time, the date, the week, the temperature and have the noisy bell function.Keywords: AT89C51 monolithic integrated circuit; Ten thousand calendars; Liquid crystal technology; DS1302; DS18B20目录目录III插图清单VII表格清单IX引言1第1章 绪论21.1 课题的背景与意义21.2 电子万年历的现状与发展21.3 设计的主要工作及章节安排31.4 本章小结4第2章 设计方
9、案论证52.1 电子万年历系统概述52.2 设计任务和主要内容52.3 设计方案论证62.3.1 计时方案62.3.2 测温方案62.3.3 显示方案62.4 本章小结7第3章 系统硬件设计83.1 AT89C51单片机介绍83.2 LCD1602液晶显示103.3 DS1302时钟芯片介绍123.3.1 DS1302有关日历时间的寄存器133.3.2 DS1302控制字介绍133.3.3 DS1302单字节读写时序介绍143.3.4 DS1302操作指令介绍143.3.5 DS1302与单片机接口电路153.4 DS18B20芯片介绍153.5 语音闹铃模块183.6 按键接口193.7 单
10、片机最小系统电路设计193.8 本章小结20第4章 系统软件设计214.1主程序流程图214.2按键扫描程序流程图214.3从1302读取日期和时间程序流程图224.4 农历转换程序设计234.4.1 公历转农历算法研究234.4.2 公历转农历程序244.5 公历与星期的换算方法254.6 本章小结27第5章 调试仿真285.1 Keil Vision软件简介285.2 Proteus软件简介295.3电子万年历的Proteus软件仿真305.4 系统功能测试31结论与展望33致谢34参考文献35附录36附录A电子万年历系统整体仿真电路图36附录B电子万年历系统PCB电路图37附录C 参考文
11、献摘要38附录D 源程序清单40 插图清单图2- 1 系统硬件结构框图5图3- 1 AT89C51引脚图10图3- 2 LCD1602内部结构11图3- 3LCD1602电路图12图3- 4DS1302引脚介绍12图3- 5 DS1302单字节读写时序介绍14图3- 6 DS1302与单片机接口电路15图3- 7 DS18B20的引脚16图3- 8 DS18B20与单片机的接口电路18图3- 9 蜂鸣器与单片机的接口电路18图3- 10 按键接口电路19图3- 11 单片机最小系统电路图19图4-1 主程序流程图21图4- 2 按键设置子程序流程图22图4- 3 1302读取时间流程图22图4
12、- 4 星期计算流程图26图5- 1 Keil Vision3的程序完成界面29图5- 2 查找 HEX文件30图5- 3 实现仿真电路图31图5- 4 系统功能实现图32表格清单表3- 1 P3口的第二功能图13表3- 2 LCD1602管脚排列及功能说明15表3- 3 DS1302有关日历时间的寄存器17表3- 4 DS1302控制字介绍17表3- 5 DS18B20的引脚功能描述21- 67 -引 言电子技术是十九世纪末、二十世纪初开始发展起来的新兴技术,二十世纪发展最迅速,应用最广泛,成为近代科学技术发展的一个重要标志。进入二十一世纪,高科技的广泛应用使社会生产力和经济获得了空前的发展
13、。现代电子技术在国防、科学、工业、医学、通讯及文化生活等各个领域中都起着巨大的作用。现在的世界,电子技术无处不在,电子手表、手机、数码相机、电视、计算机、机器人、大规模生产的工业流水线、因特网、航天飞机、宇宙探测等等。可以说,人们现在生活在电子世界中,一天也离不开它。随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究创新。为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势。伴随着电子技术的迅速发展,特别是大规
14、模集成电路出现,电子技术给我们的生活带来了根本性的改变。尤其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便,作为一种附加功能,现在越来越广泛的被应用于各种电子产品中,具有广阔的市场前景。通过以往的相关课程学习和理解,独立的完成了电子万年历的设计。电子万年历作为电子类小产品不仅是市场上的宠儿,也是单片机设计中一个很实用的题目。因为这个课题有很好的开放性和可发挥性,对制作者的要求比较高,不仅考察了对单片机的掌握能力,而且要求设计的电子万年历在操作上简洁,功能上尽量齐全,显示界面也要出色。所以,电子万年历制作无论从实用目的,还是从培养能力的角度来看都是很有价值的
15、毕业设计课题。本电子万年历的设计在硬件方面主要采用AT89C51单片机作为主控核心,由DS1302时钟芯片提供时钟、1602LCM点阵液晶显示屏显示。AT89C51单片机是由Atmel公司推出,功耗小,电压可选用46V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的LCD液晶显示屏来直观的数字显示,可以同时显示年、月、日、星期、时、分、秒等信息。此外,该电子万年历还具有时间校准等功能。此万年历具有读取方便、显示直观、功
16、能多样、电路简洁、成本低廉等诸多优点。在软件方面,主要包括日历程序、时间调整程序,显示程序等。所有程序编写完成后,在Keil软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。最后在老师同学的帮助以及自己的努力下完成了此次电子万年历的设计。第1章 绪论1.1 课题的背景与意义很早以前,我们的先人就用“逝者如斯夫,不舍昼夜”这样的话来感叹时光流逝,教育后人要珍惜时光,有所作为。随着人类社会的进步和科技的发展,人们计量时间的流逝,从最初的观太阳到摆钟、机械表到现在电子钟,人们不断研究,不断创造纪录。现在,电子技术日新月异,各种关系到人们生活的电子产品琳琅满目,我们已经快告别
17、活跃很久的纯机械时代,并且逐渐由机械化仪器转型为电子仪器。从前的摆钟、机械手表已经被电子表,数字万年历所替代。近观近年来我国经济的发展局势,经济发展的支柱产业电子产业获得快速良好的发展,各种电子产品应接不暇充次着我们的生活,大街小巷随处可见,几乎人手一部的手机,从最初的打电话发短信,到现在无所不能的智能机也更新了好几代。随着电子产品的更新速度的加快,各种功能更加强大,款式新颖的电子产品也在不断地问世。单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能I
18、C卡、电子宠物等,这些都离不开单片机。单片机是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。 基于单片机的电子万年历便是这一发展潮流中最经典的缩影,电子万年历满足了人们对于获取准确时间的要求。电子万年历的出现给人们的生活带来了巨大方便。生活在步伐加快竞争压力巨大的社会里,时间就是金钱,时间就是生命,时间对人们显得特别的宝贵,其所拥有的作用更是可以不言而喻。它在学校里、车站里、港口中、剧院中、医院中、办公室里等许多公共场所的应用是非常广泛的。但传统的数字万年
19、历除显示时间之外,功能过于简单,不能很好地满足人们的需求,逐渐失去了往日的市场。为了跟上电子技术的更新和发展,为了人们对生产、生活的需求,各种功能强大的新式万年历不断涌现出,它的功能更全面而且更加人性化。电子万年历作为电子产品,以其体积小,携带方便、实用,美观等优势一直占领着广阔的市场,与此同时它也一直成为单片机设计培训中很常用的一个课题。基于这个课题有极好的的开发思维和发挥想象力的作用,并且它还可以通过逻辑实现许多功能,因此往往对我们设计者的要求很高,有一定的难度,电子万年历的设计不仅考察了我们对单片机知识的掌握能力,而且也更加突出了对单片机的扩展应用知识的掌握。并且还要求设计的电子万年历在
20、使用上简单,功能上要齐全,人机交互友好美观人性化。因此基于单片机的电子万年历无论从实用的方面还是培养能力的方面来看都有巨大的价值。1.2 电子万年历的现状与发展二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。这次毕业设计通过对它的学习
21、,应用,从而达到学习、设计、开发软、硬的能力。目前,单片机技术已经进入了我们的产业中,家用电器、汽车电子行业,工业自动化等都有单片机的存在,单片机已经融入企业,融入人们每一天的生活。而电子万年历不过只是单片机最突出的代表,它最被人们所熟知,所接受,它优化着人们与家庭和环境的整体关系,电子万年历向着超微型、超高效的方面发展,而且他已经越来越微型化,越来越集成化,这些都为电子万年历上的集中控制提供了必不可缺的基础。目前,市场上有出售的各种各样数字万年历,它们品种很多而且实现了各种功能,其中绝大部分是基于单片机设计的电子控制系统。它们一般都是由输入脉冲电路、单片机芯片、晶振和复位电路、外部存储器和L
22、CD显示电路组成。当今,电子万年历主要还是用于帮助人们计时、能自动报时、定时、供人们查询日期以及能自动控制等方面。因为单片机技术和数字集成电路技术的迅速发展和采用了最先进的石英技术,使得如今我们所认识和接触的电子万年历都具有体积小、省电、计时准确、性能稳定、方便维护、携带方便等诸多优点。除此之外,现在市场上已经有开发的电子万年历集成电路芯片出售,而且价格便宜,使用起来也比一般的电子万年历方便许多。从日历的发展历程来看,已经有数千年的历史。现代日历已经很少接触到那些纸质的或者不常见的类型。因为随着我们对日历的使用范围的不断扩大,功能也会日益增加,种类更是会越来越多。从80年代开始,万年历随着单片
23、机和超大规模集成芯片的快速发展,为电子万年历的完美诞生奠定了最根本的基础,其中有物质基础也有思想的基础。而近几年来,电子万年历的发展方向已经不是追求多样了,而是朝着精密的走时、良好的稳定性、使用很方便、耗电量很小、走时延续的时间长、体积小、功能多、制造成本较低等方向发展。我所见过最新的电子万年历,它除了具有了我们常见万年历功能外,而且还具有倒计时、多点的定时、语音报时、音乐播放、实时温度测量和显示等功能。在硬件设计方面它并没有太大的变化,主要是通过增加诸多软件部分来实现所需要的一些高级功能。我们不难想像,在科学技术飞速发展的同时,各种各样的高新技术的出现已经被广泛应用到我们的生活中。电子万年历
24、产品也必是将沿着体积小、耗电少、性能稳定、计时准确、维护方便、携带方便等方向发展。我想通过本次设计能实现公历显示,时间显示、实时温度显示、闹钟等功能。主要的工作量在软件调试部分,设计的程序在电子万年历设计系统中实现我需要的功能。1.3 设计的主要工作及章节安排本设计主要围绕对电子万年历系统的设计为主线展开,主要包括硬件部分设计,软件部分设计。其中硬件部分设计包括复位电路的设计、时钟电路的设计、按键电路的设计、单片机控制电路设计、电子万年历的显示电路设计等。软件部分要设计出各个功能模块的控制程序。本设计所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容及工作重点包括以下几个方面:(1
25、)选用电子万年历芯片时,应重点考虑性能稳定、使用方便、低功耗、抗断电的器件。(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。(3)通过编程、编译、调试,把程序下载到单片机上运行,实现本设计的功能。(4)在硬件设计时,结构要尽量简单实用、易于实现,系统电路尽量简单。(5)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。1.4 本章小结 本章说明了本设计的选题来源及研究的意义,讲述了电子万年历系统在国内外的发展过程及当前的现状,其中叙述了电子万年历系统的特点和优点,根据本次设计的要求,明确了后续章节主要研究的内容。第2章 设计方案论证2.1 电子万年历系
26、统概述 本设计是利用按键输入控制信号,将控制指令传送给AT89C51主控单片机,通过单片机处理数据,配合复位电路和时钟电路来驱动LCD的显示、温度采集和闹铃播放,从而实现电子万年历的各项功能。单片机是整个设计的核心部分,它既是协调整个系统工作的控制器,又是数据处理器。Atmel公司的AT89S系列能完成本次设计所需要求的所有功能,所以选用单片机AT89C51;时钟芯片采用DALLAS公司的DS1302时钟芯片,采用锂电池为DS1302供电,掉电保护,保证时间数据不会丢失;按键电路采用四个按键,分别实现调整时间和日期、设置闹钟、显示时间温度等;显示电路采用LCD1602字符液晶显示器,显示字体清
27、晰。本设计选用简单的蜂鸣器来播放音乐。本设计的基本结构框图如下所示: 晶振电路LCD1602显示器AT89C51 单片机DS18B20温度传感器DS1302时钟芯片 报警模块设置模块(按键)图2- 1 系统硬件结构框图2.2 设计任务和主要内容 本设计是基于单片机的电子万年历设计,控制核心为AT89C51单片机,采用模块化的设计,设计了诸多功能模块,主要包括单片机核心控制系统、实时时钟显示模块、环境温度实时检测模块、语音输出模块、人机接口通信模块等。1、 单片机控制模块是整个系统的核心部分,它既是协调整机工作的控制器,又是数据处理器。它由单片机、复位电路、晶振电路、时钟电路等外围电路组成。2、
28、 实时时钟芯片采用的是带 RAM的时钟芯片DS1302。该芯片可以进行时分秒的计数,具有10000年日历查询和显示,可以编程接口,通过加入外部电池供电可以实现掉电保存功能,并且可以加入报警功能。3、 温度检测模块采用的是DALLAS公司所生产的单线数字温度传感器DS18B20,它具有独特的单线总线接口方式,具有接口简单、抗干扰能力强、工作稳定可靠、精度高、使用方便等优点。4、 语音输出模块是提示用户系统的闹钟定时状态或对系统进行操作时所发出错误警告,语音输出模块可提供定点闹铃的音乐输出等功能。为了满足这些功能需求,本次设计采用的是简单的蜂鸣器作为语音输出。5、 人机接口通信模块采用四个普通控制
29、按键,液晶显示输出。液晶显示体积小,重量轻,辐射小,功耗低,轻便防震。由于本次设计显示的信息输出比较多也很复杂,采用液晶显示界面为了更加清晰和美观,操作更加地方便,显示信息更加丰富,本设计采用的是LCD1602能显示出所需要的各种输出信息。2.3 设计方案论证2.3.1 计时方案方案(1):AT89C51单片机内部带有定时/计数功能,此定时功能是通过对外部晶振的脉冲进行计数,从而达到计时功能,只要使用11.0592M的晶振就能实现零误差的计时,因此可以利用此功能实现计时,但因为只有单一的计时功能要实现“万年历”的功能需要较复杂的程序,而且如果单片机掉电无法继续进行计时,所以使用不便。方案(2)
30、:DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少,程序简单。综合上述两种方案,宜采用方案(2)实现实时计时功能。2.3.2 测温方案方案(1):热敏电阻是开发早、种
31、类多、发展较成熟的敏感元器件热敏电阻由半导体陶瓷材料组成,利用的原理是温度引起电阻变化。通过一定的电路可以将周围环境的温度变化转化成电压的变化,通过AD转化器件将信号传输给单片机进行分析,从而测出当前环境温度,但误差大,不稳定,对环境要求较高。方案(2):DS18B20是美国DALLAS公司生产的数字温度传感器,采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯。 单总线具有抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。测量温度范围宽,测量精度高 ,在使用时不需要任何外围元件,
32、支持多点组网功能多个DS18B20可以并联在惟一的单线上,实现多点测温,供电方式灵活DS18B20可以通过内部电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。因此非常适合本系统使用。综上比较上述两种方案,宜采用方案(2)构成本设计的实时温度采集模块。2.3.3 显示方案方案(1):数码管是利用发光二极管的特性组合而成数字显示器件,通过控制相应的二极管的状态显示相应的数字。要使数码管正常显示就得有驱动电路驱动相应的段码,数码管的显示方式可分为静态显示和动态显示,静态显示方式只适合显示单个的数字,因此本设计应采用动态显示方式。由
33、于动态显示方式利用的是人眼视觉暂留的特性,扫描的时间应不大于20毫秒,占用系统资源大,而且显示的个数和字型有限,在本设计中不宜采用。方案(2):1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。1602的驱动电路带有11条指令,可以方便的控制液晶的显示效果如:清屏、左移右移、光标显示。而且1602显示的字符在下一条指令到来之前不会改变,也就是能够维持显示的字符,1602液晶占用的系统资源也少。综合比较上述
34、两种方案,应采用1602液晶组成本设计的显示模块。报警模块采用无源蜂鸣器实现,只要编写相应的程序即可实现发出声音。因设置模块只需编写相应的程序外加相应的按键即可实现,实现方法较简单,在此不再论述。2.4 本章小结本章主要围绕电子万年历这一整套系统为主线展开,首先讲述了电子万年历系统的组成,然后讲述了几种主要电路方案的设计与论证,比较了两种方案的不同以及优缺点,然后确定所设计的电子万年历采用的方案。第3章 系统硬件设计 本系统以AT89C51单片机为控制核心,通过与DS1302和DS18B20通信获取实时时间和实时环境温度,并将得到的数据通过1602液晶显示出来,同时通过相应的按键调整相应的值。
35、因此本设计可分为显示模块、实时时间计算模块、实时环境温度采集模块、报警模块、设置模块(时间设置模块、最高温度设置模块、闹钟设置模块)。下面从系统硬件的各个组成部分一一做介绍。3.1 AT89C51单片机介绍 本系统采用的是美国ATMEL公司生产的AT89C51单片机,首先我们来熟悉一下AT89C51单片机的外部引脚和内部结构。1.单片机的引脚功能AT89C51单片机有40个引脚。l Vcc:电源电压+5Vl GND:接地l P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据
36、存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线服用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。l P1口:P1口是一个带内部上拉电阻的8位双向I/O,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 Flash 编程和程序校验期间,P1接收低8位地址。l P2口:P2口是一个带内部上拉电阻的8位双向I/O,P2的输出缓冲级可驱动(吸收或输出电
37、流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(MOVX Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash 编程和程序校验期间,P2亦接收低高位地址和其他控制信号。l P3口:P3口是一组带内部上拉电阻的8位双向I/O,P3的输出缓冲级可驱动(吸收或输出电流)4个T
38、TL逻辑门电路。对P3口写入“1”时,它们被内部的上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,见表3-1所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。表3- 1 P3口的第二功能图端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计时器0外部输入)P3.5T1(定时/计时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通) l RST:复位
39、输入。当振荡器工作时,RST引脚出现两个机器周期以上的高电平将使单片机复位。WDT溢出将使引脚输出高电平,设置SFR、AUXR的DISRTO可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。l ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存器允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过多特殊功能寄存器(SFR
40、)区中的8EH单元的D0位置,可禁止ALE操作。该位置后,只有一条MOVX和MOVC指令ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。l PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。l EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(
41、接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的变成电压Vpp.l XTAL1:振荡器反相放大器及内部时钟发生器的输入端。l XTAL2:振荡器反相放大器的输出端。2.AT89C51单片机内部结构AT89C51是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供
42、高灵活、超有效的解决方案,AT89C51引脚图如图3.1所示。图3- 1 AT89C51引脚图3.2 LCD1602液晶显示点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H
43、)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面详细介绍LCD1602字符型液晶内部构造和引脚功能。忙碌标志:本标志(BF)用以表示当时LCD的状态,若BF=1,则表示处于忙碌状态,无法接受外部指令或数据;若BF=0,则可接受外部指令或数据。显示数据存储器:本存储器(DDRAM)存储所要显示的数据。实际上本存储器里存放的是要显示数据的ASCII码,再以A
44、SCII码为地址,到CGRAM里找到该字型的显示编码。此外还包括字型产生器,光标闪烁控制电路,偏压电路,时序电路等等。 COM 16 SEG 40 SEG 40 CONTROL SIGNALS 4 LCDCONTROLLERLSI16*2 LCD PANELDB7-DB0ER/WRSVssSEGMENT DRIVERVcc VeeBACK LIGHTAK图3- 2 LCD1602内部结构寄存器选择控制,1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符。LCD1602管脚排
45、列及功能说明如表3-2所示:表3- 2 LCD1602管脚排列及功能说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据/命令选择端12D5Data I/O5R/W读/写选择端13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极指令集 1602通过D0D7的8位数据端传输数据和指令。显示模式设置(初始化)001110000x38设置162显示,57点阵,8位数据接口;显示开关及光标设置:(初始化) 00001DCBD显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)。000001NS N=1(读或写一个字符后地址指针加1并且光标加1),N=0(读或写一个字符后地址指针减1并且光标减1),S=1且N=1(当写一个字符后,整屏显示左移),S=0当写一个字符后,整屏显示不移动。数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)。其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0) 。LCD1602电路图如图3-3所示,其中D0-D7接RP1(图中未标出),RP1
限制150内