基于单片机的万历设计毕业论文.doc

上传人:仙人指路1688 文档编号:3939784 上传时间:2023-03-28 格式:DOC 页数:57 大小:3.16MB
返回 下载 相关 举报
基于单片机的万历设计毕业论文.doc_第1页
第1页 / 共57页
基于单片机的万历设计毕业论文.doc_第2页
第2页 / 共57页
基于单片机的万历设计毕业论文.doc_第3页
第3页 / 共57页
基于单片机的万历设计毕业论文.doc_第4页
第4页 / 共57页
基于单片机的万历设计毕业论文.doc_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《基于单片机的万历设计毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的万历设计毕业论文.doc(57页珍藏版)》请在三一办公上搜索。

1、XXX学院毕 业 论 文课题名称: 基于单片机的万年历设计 作 者: XXX 学 号: XXX 系 别:_ 电子工程系 专 业:_ 电子信息工程技术_ 指导教师:_ XXX XX年 XX 月 XX 日摘 要本设计以单片机芯片STC89C52为中心,通过外挂接DS12C887作为时钟芯片,为系统实时的更新时间、日历等。DS18B20作为温度传感器芯片,用于实时采集当前所处的环境温度。1602液晶作为实时显示器件,显示单片机采集的所有数据。当在公共场所时,为了方便调节时间,外加红外遥控和键盘两种方式调时功能。于此,构成了一个实时时钟万年历系统。最后,通过软件对其原理图进行绘制和程序的编写,并且调试

2、运行。关键词:单片机芯片STC89C52;DS12C887芯片;DS18B20温度传感器;LCD1602液晶;红外遥控AbstractThe design on the single chip computer chip STC89C52 as the center, through the plugin meet DS12C887 as the clock chip, real-time updates for the system time, calendar, etc. As the temperature sensor DS18B20 chip to the real-time dat

3、a acquisition at this temperature environment. 1602 LCD as real-time display device, shows all of the data collection single chip microcomputer. When in a public place, in order to facilitate the regulating time, plus infrared remote control and keyboard two ways when the function. In this, and form

4、 a real time clock calendar system. Finally, through the software to its principle chart draw and the writing of the program, and debug operation.Keywords: single chip microcomputer chip STC89C52; DS12C887 chip ;DS18B20 temperature sensor; LCD1602 liquid crystal ;infrared remote control目 录 1 引言11.1课

5、题的来源和意义11.2系统总体方案介绍22 方案论证22.1 时钟芯片的选择22.2显示器件的选择43 单元电路设计43.1 DS12C887时钟电路设计43.1.1 DS12C887时钟芯片概述43.1.2 时钟精度53.1.3 时钟、日历和闹钟单元53.1.4 控制寄存器63.1.5 基本原理83.1.6典型工作电路113.1.7工作时序113.1.8主要程序分析133.2 1602液晶显示电路设计14 3.2.1 1602液晶概述14 3.2.2 1602液晶基本原理15 3.2.3 1602液晶工作时序16 3.2.4 指令说明17 3.2.5 1602液晶主要程序分析183.3红外遥

6、控电路设计19 3.3.1红外发射系统19 3.3.2红外接收系统203.3.3主要程序分析21 3.4 DS18B20温度传感器电路设计23 3.4.1 DS18B20温度传感器概述23 3.4.2 DS18B20温度传感器的主要特性23 3.4.3 DS18B20温度传感器基本原理23 3.4.4 DS18B20温度传感器配置寄存器23 3.4.5 DS18B20温度传感器暂存器中温度数值的储存形式24 3.4.6 DS18B20温度传感器工作时序25 3.4.7 控制器对DS18B20操作流程26 3.4.8 DS18B20芯片内部ROM操作指令27 3.4.9 DS18B20温度传感器

7、芯片内部存储器RAM操作指令27 3.4.10 DS18B20温度传感器典型工作方式28 3.4.11 温度传感器DS18B20主要程序分析28 3.5键盘调时电路设计314 总体设计与制作31 4.1总体原理图绘制31 4.2 软件开发与调试32 4.2.1使用Keil软件编写系统程序32 4.2.2 系统调试33 4.3 搭建系统实物34 4.4系统实物展示35 5 收获与体会35 6 结论36附录A 37附录B 38附录C 49参考文献50致谢51 1 引言电子是推动人类社会文明、进步与发展的巨大动力,随着电子产品的飞速发展,现已将人类带入了智能化的生活。传统的机械表由于做工的高精细要求

8、,造价的昂贵,材料的限制,时间指示精度的限制,使用寿命,以及其它方面的限制,已不能满足人们的需求。另外从人们的日常生活到工厂的自动控制,从民用时钟到科学发展所需的时钟,现代人对时间的精度和观察时间的方便有了越来越多的需求。人们要求随时随地都能快速准确的知道时间,并且要求时钟能够更直观、更可靠、价格更便宜。这种要求催生了新型电子时钟的产生。1.1课题的来源和意义 电子技术的飞速发展,微机已开始向社会的各个领域渗透,同时大规模集成电路获得高速发展,单片机的应用正在不断地走向深入,由传统的8位单片机发展到后来的16位,诸如AVR系列、PIC系列、430系列等,再到如今的高级单片机ARM体系下配合操作

9、系统实现智能化,这无疑体现了单片机在我们生活中已占据了核心的地位。本设计核心控制芯片采用了STC89C52微控制芯片,该芯片具有功能强、体积小、功耗低、价格便宜,工作可靠,使用方便等优点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器、仪表、数据采集、军工产品以及家用电器等各个领域。另外,单片机的重要运用意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件的方法来实现了,这种软件替代硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路

10、技术实现的时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛运用于个人家庭、车站、码头、办公室等公共场所,成为了人们日常生活中必不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛运用,使得数字钟的精度,远远超过老式钟表。钟表的数字化给人们生活带来了极大的方便,而且大大地扩展了钟表原先的报警功能,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动开关路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启动等。所有这些,都是以时钟为基础的。因

11、此,研究数字时钟具有非常的现实意义。1.2系统总体方案介绍本设计以核心控制芯片AT89C52为中心,外挂接美国DALLAS公司生产的DS12C887实时时钟芯片和DS18B20温度传感器装置,实时时钟为系统提供实时的时间。温度传感器为系统实时反馈当前环境下的温度。在大型公共场所,当不方便使用调时键盘直接调时时,红外遥控装置用于方便远距离调时。1602液晶实时的为MCU处理的数据进行显示。系统总框图如图1.2 1.2系统总框图2方案论证2.1时钟芯片的选择方案一:采用单片机本身作为时钟控制芯片来模拟时钟时间。单片机在工作时,需要外接一个石英晶体振荡器来为单片机提供一个脉冲信号,振荡电路产生的振荡

12、脉冲的频率为f(也可称为主频OSC),其并不直接使用,而是经过分频后为系统所用,振荡脉冲在片内通过一个时钟发生器二分频后才作为系统的时钟信号,时钟脉冲信号的频率为f/2;时钟脉冲六分频后为机器周期,由此可见,一个机器周期的频率为f/12,那么一个机器周期单片机执行一条指令,则每执行一条指令定时/计数器数值加1;因此,利用单片机内部定时/计数器可以实现秒脉冲信号,然后通过编程来模拟时钟。这种方案的好处是外围元器件少,电路简单清晰,设计方便易于实现,出问题的故障几率小。但是这种方案需由大量的程序来模拟时、分、秒、年、月、日等的更新,编程相对来说较为复杂。另外由于单片机内部时钟产生的秒脉冲容易受到温

13、度漂移的影响和执行复杂程序时的延时的影响,而使得定时/计数器会产生不定的误差,即使设计时间误差补偿程序也很难实现提供准确的时间的功能。并且这种设计还有一个最大的缺点就是如果单片机断电,时间就会停止,再次上电后时间又会回到初始设定的时间,又要对其调时,比较麻烦。方案二:采用美国DALLAS公司生产制造的DS1302实时时钟芯片作为系统时钟芯片。DS1302是由美国DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/P

14、M 指示决定采用24或12小时格式。DS1302与单片机间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)RES(复位),(2)I/O(数据线),(3)SCLK(串行时钟),从而解决了由并行时钟芯片使得电路复杂的问题。时钟/RAM的读/写数据以一个字节或多达 31 个字节的字符组方式通信,DS1302 工作时功耗很低,保持数据和时钟信息时功率小于 1mW。但是,DS1302时钟芯片没有内置电池,在电路掉电的情况下不能继续计时,而且在上电的时候需要校准时间。其内部也没有振荡器,需要外接时钟震荡器方可使用,从而使得外围电路较为复杂 。方案三:采用美国DALLAS公司生产制造的DS12C

15、887实时时钟芯片作为系统时钟芯片。DS12C887是美国DALLS公司生产的一款实时时钟芯片,该器件提供RTC日历、定时闹钟、三个可屏蔽的中断和一个通用的中断输出、可编程方波以及114字节电池备份的静态RAM。少于31天的月份,月末可自动调整,其中包括闰年补偿。该器件还可以工作于24小时或带AMPM指示的12小时格式。一个精密的温度补偿电路用来监视VCC的状态,一旦主电源故障,或断电,该器件可以自动切换到内部锂电池供电,保证了时钟的正常工作,不至于使时间出乱。该器件支持Intel和Motorola两种总线模式,内部集成了石英晶体震荡器和涓流充电的锂离子电池,极大的减少了外围电路,且使用起来方

16、便。因此在嵌入式、电表、安全系统、网络集线器、网桥、路由器等等方面得到了广泛的运用。比较以上三种方案可以看出,第三种方案更加准确而外围硬件电路设计也相对简单,软件设计也相对简洁,因此决定选择第三种方案。2.2显示器件的选择方案一:采用由长沙太阳人电子有限公司设计生产制造的LCD液晶。该器件重量轻、体积小、功耗低(约10-15Mw)、显示内容丰富、指令功能强(可组合成各种输入、显示、移位方式以满足不同的设计需求)、接口简单方便(可与8位处理器或微控制器相连)、工作温度宽(0-50)、可靠性高(寿命为50000小时(25时)等优点;该器件在显示上更加灵活,而且改变显示时只要改变显示程序就可以,不用

17、改变硬件电路的设计,易于电路功能的扩展。但是唯一的缺点是要是显示内容较少时,价格略显得昂贵些。方案二:采用普通的8位LED数码管作为显示器件。该器件显示较为明显清晰反应速度较快,价格便宜,在显示位数较少时性价比较高。但是,如果显示内容较多时,LED数码管显得较为麻烦,软件设计较为复杂,电路设计较为复杂,占用单片机I/O口较多,且耗能较强,显示位数有限,不利于电路的扩展。比较以上两种方案可以看出,第一种方案较为适合。无论从现实灵活方面、耗能等方面。因此本设计采用第一种方案。3.单元电路设计3.1 DS12C887时钟电路设计3.1.1 DS12C887时钟芯片概述DS12C887是美国DALLS

18、公司生产的一款实时时钟芯片,该器件提供RTC日历、定时闹钟、三个可屏蔽的中断和一个通用的中断输出、可编程方波以及114字节电池备份的静态RAM。少于31天的月份,月末可自动调整,其中包括闰年补偿。该器件还可以工作于24小时或带AMPM指示的12小时格式。一个精密的温度补偿电路用来监视VCC的状态,一旦主电源故障,或断电,该器件可以自动切换到内部锂电池供电,保证了时钟的正常工作(在没有VCC的+25环境下,电池容量可为振荡器和寄存器供电长达五年之久),不至于使时间出乱。该器件支持Intel和Motorola两种总线模式,内部集成了石英晶体震荡器和涓流充电的锂离子电池,极大的减少了外围电路。3.1

19、.2.时钟精度时钟精度依赖于石英晶体精度和振荡器电路容性负载与石英晶体震荡容性负载之间的匹配度,温度变化所引起的石英晶体频率漂移会导致额外的误差,耦合到振荡器电路中的外部电路噪声会使时钟速度加快,本时钟出厂时经过校准,在+25环境下运行每月误差为1分钟。3.1.3时钟、日历和闹钟单元时钟和日历信息可以通过读取相应寄存器字节获得,通过写相应的寄存器字节对时钟进行初始化,存储时间、日历和闹钟的10个字节内容可以是二进制格式如图3.1.1(a),也可以是BCD码格式如图3.1.1(b),星期寄存器在午夜加1,从1递增到7,夏时令功能用到了星期寄存器,因此1被定义为星期天,少于30天的月份,月末可自动

20、调整,其中包括闰年补偿。在写内部时钟、日历和闹钟寄存器前,须将寄存器B的SET位设为逻辑1,以防止意外的读写操作引起时钟的更新,除了所选的格式写入10个字节的时钟、日历和闹钟寄存器外,寄存器B的数据模式位(DM)必须置为适当的逻辑值。所有10个时钟、日历和闹钟字节必须使用相同的数据模式,写入数据模式后寄存器B的SET位应该清0,以允许RTC更新时钟和日历数据,一旦初始化完成,RTC将使用所选的模式更新所有的数据。将闹钟的时间正确写入时、分、秒闹钟单元,且闹钟使能位设为高,则每天在指定的时间都会触发闹钟中断。在此模式中,闹钟寄存器和相应的时钟寄存器“0”位必须总是写入0. 3.1.1图(a)3.

21、1.1图(b)3.1.4.控制寄存器DS12C887有4个控制寄存器,在任何时间都可以进行访问,即使处于更新周期。控制寄存器A :(1)第0位到3位:为速率选择器,这四个速率选择位用来选择15级分频器的13种分频之一或禁止分频器输出。(2)第4位到6位:用来启动或关闭振荡器,并复位计时链。010是唯一打开振荡器并允许RTC计时的位组合形式,11组合使能振荡器,但将计时链保持在复位状态,010写入DV0、DV1、DV2后500ms进行下一次更新。(3)第7位:该位是可监视的状态标志位,改位为1时,立即进行更新传输,该位为0时在至少244uS的时间内不会进行更新传输。该位为0时RAM中的时钟、日历

22、和闹钟信息都可以访问,UIP位是只读的,而且不受RST信号影响,将寄存器B的SET位置1时,禁止任何更新传输并且清除UIP位。控制寄存器B :(1)第0位:夏时令使能位,DSE位是可读/写位,置1时产生两次夏时令调整,四月的第一个星期天,时间从1:59:59 AM调整到3:00:00 AM。十月的最后一个星期天,时间从1:59:59 AM调整为1:00:00 AM。如果DSE使能,内部逻辑会在午夜时判断第一/或最后一个星期天的条件,如果判断时DSE位没有置位,夏时令功能不会起作用,当DSE清0时,这些调整不会有效。该位不受DS12C887内部功能或RST的影响。(2)第1位:24/12小时选择

23、位,1代表24小时模式,0代表12小时模式。该位是可读/写位,不受DS12C887内部功能或RST影响。(3)第2位:数据模式(DM),该位表示时钟和日立信息格式位二进制还是BCD码。DM位通过程序设置为适当格式,如果需要可以读出。该位不受任何DS12C887内部功能或RST的影响。DM=1时代表二进制格式,DM=0时BCD码格式。(4)第3位:方波使能(SQWE),该位置1时,SQW引脚输出一个方波信号,频率由寄存器A中的速率选择位RS3-RS0设定,SQWE位清0时,SQW引脚保持低电平。SQWE位是可读/写位,能由RST信号清除。禁止时SQWE为低,当VCC低于Vpf时,变为高阻状态,R

24、ST信号将SQWE位清0。(5)第4位:更新结束中断使能(UIE),UIE位是可读/写位,允许寄存器C中的更新结束中断标志(UF)驱动产生IRQ信号。RST引脚变低或SET位变高将清除UIE位,UIE位不受任何DS12C887内部功能的影响,但会由RST信号清0.(6)第5位:闹钟使能(AIE),AIE位是可读/写位,置为1时,允许寄存器C中的闹钟中断标志(AF)位驱动产生IRQ信号,在三个时钟字节与三个闹钟字节相等的每一时刻,都会产生一个闹钟中断,如果AIE位清0,AF位并不触法IRQ信号。AIE不受任何DS12C887内部功能的影响,但会由RST信号清0。(7)第6位:周期性中断使能(PI

25、E),PIE位为可读/写位,允许寄存器C中的周期性中断标志(PF)位将IRQ引脚驱动为低电平PIE位置1时,以寄存器A中RE3-RS0位指定的速率将IRQ引脚驱动为低电平,并产生周期性中断。PIE位清0时,阻止周期性中断驱动IRQ输出,但PF位仍以该速率周期性置位。PIE不受任何DS12C887内部功能的影响,但会由RST信号清0。(8)第7位:SET,SET位清0时,更新传输功能正常运行,计数每秒加1,SET位写1时,禁止任何更新传输,程序可对时钟和日历字节进行初始化,而不会再初始化过程中发生数据更新。SET位为可读/写位,不受RST信号或DS12C887的内部功能影响。控制寄存器C :(1

26、)第0位到第3位:未使用,这些位读取值为0,但不能被写入。(2)第4位:更新结束中断标志位(UF),每次更新结束后,UF位都将置1。如果UF位置1,则UF位的1状态会使IRQF位置1,并且使IRQ引脚有效。该位可通过读取寄存器C或RST信号清除。(3)第5位:闹钟中断标志位(AF),AF位为1时,表明此时当前时间和闹钟时间相匹配。如果ALE位也为1,则UF位的1状态会使IRQF位置1,并且使IRQ引脚有效。该位可通过读取寄存器C或RST信号清除。(4)第6位:周期性中断标志(PF),该位为只读位,当分频器电路中所选的分支检测到一个边沿信号时该位置1。RS3-RS0设置周期频率。PF置1与PIE

27、位的状态无关。PF与PIE位均为1时,IRQ信号有效并且IRQF置1。该位可通过读取寄存器C或RST信号清除。(5)第7位:中断请求标志位(IRQF),当下列任何一个条件成立时,此位置1:PF=PIE=1;AF=AIE=1;UF=UIE=1;每次IRQF位为1时,IRQ引脚会变低。该位可通过读取寄存器C或RST信号清除。控制寄存器D :(1)第0位到6位:这些位未使用。这些位读取时为0,但不能被写入。(2)第7位:RAM和时钟有效(VRT),该位不能写入,而且读取时应该总为1,如果出现0,则说明内部锂电池电能耗尽,RTC和RAM的数据均不可靠。该位不受RST信号影响。3.1.5.基本原理(1)

28、实物图如下图3.1.5(a),原理图如下图3.1.5(b) 实物图3.1.5(a)原理图3.1.5(b)(2)各引脚的功能和作用:(a)1脚(MOT):Motorola或Intel总线时序选择端。利用此引脚选择两种总线类型中的一种,连接到Vcc时选择Motorola总线时序,连接GND或悬空时选择Intel总线时序。该引脚内部有一个下拉电阻。(b)2和3脚(NC):空脚,不用连接。(c)4脚到11脚(AD):双向地址/数据复用总线。地址于总线周期的开始发送到总线上,并由AS信号的下降沿锁存到DS12C887内部。所写的数据由DS信号的下降沿(Motorola时序),或RW信号的上升沿(Inte

29、l时序)锁存。读周期中,DS12C887于DS信号后期(Motorola时序中的DS和RW均为高,Intel时序中DS位低,RW为高)将数据发送到总线上。读周期结束后,总线恢复高阻状态,同时DS在Motorola时序中变低,在Intel时序中变高。(d)12脚(GND):地,参考电压为0V;(e)13脚(CS):片选信号输入。片选信号低电平有效,在访问DS12C887的总线周期内必须保持低电平。在Motorola时序中DS和AS信号工作期间,Intel时序中DS和RW信号工作期间,CS必须保持有效。在CS信号无效的情况下,总线操作将锁存地址,但不能访问芯片。当Vcc低于Vpf时,DS12C88

30、7内部通过禁止CS输入来拒绝访问。此举旨在断电时保护RTC数据和RAM数据。(f)14脚(AS):地址选通输入。由低变高的地址选通脉冲用来分离总线的信号。在AS的下降沿,将地址锁存到DS12C887内部,无论CS信号是否有效,AS的下一个上升沿都将清除地址。地址选通信号必须先于每个读或写访问。如果在CS信号无效的情况下执行了读或写操作,则必须在CS信号有效时且在读写访问前,重新发送一次地址选通信号。(g)15脚(RW):读/写输入。RW引脚有两种操作模式。在MOT引脚接Vcc的MOtorola的时序中,RW电平用来指示当前周期是读还是写。DS位高时,RW为高电平时表示读周期,RW为低电平则表示

31、写周期。在MOT引脚接GND的的Intel时序中,RW为低电平有效。在此模式下,RW引脚与普通的RAM的写使能信号(WE)工作方式类似。在此信号的上升沿锁存数据。(h)16脚(NC):空脚,不用连接。(i)17脚(DS):数据选通或读输入。DS引脚根据MOT引脚电平有两种模式。MOT引脚接Vcc时,选择Motorola总线时序,在此模式下,总线周期的后期DS为正脉冲,称作数据选通脉冲。在读周期中,DS表明DS12C887将要驱动双向总线。在写周期中,DS信号的下降沿使DS12C887锁存所写的数据。当MOT接GND时,选择Intel总线时序,DS表示读取DS12C887数据驱动总线的时间周期,

32、此模式下,DS引脚与普通RAM的输出使能信号(OE)工作类似。(j)18脚(RST):复位输入。低电平有效,该引脚对时钟、日历或RAM不起作用,上电时可将RST引脚首先保持低电平,以等待电源稳定下来。保持低电平的时间可根据应用需要而定,但是,如果上电时使用RST信号,RST保持低电平的时间应当超过200ms,以保证控制DS12C887上电的内部定时器定时结束。当RST为低电平,而且Vcc大于Vpf时,将产生以下操作: A:周期性中断使能(PIE)位清0B:闹钟中断使能(AIE)位清0C:更新结束中断使能(UIE)位清0D:周期性中断标志(PF)位清0E:闹钟中断标志(AF)位清0F:更新结束中

33、断标志(UF)位清0G:中断请求状态标志(IRQF)位清0H:IRQ引脚置为高阻状态I:直到RST恢复为高电平才能访问器件J:方波输出使能(SQWE)位清0在典型的应用中,可将RET与Vcc连接。使得DS12C87在进入或退出电源失效状态时不影响任何控制寄存器是的值。(k)19脚(IRQ):中断请求输出。DS12C887的IRQ引脚低电平有效,可用作处理器的中断申请输入,只要引起中断的状态置位,并且相应中断使能位也置位,IRQ将一直保持低电平。处理器程序通常读取C寄存器来清除IRQ引脚输出。RST引脚也会清除未处理的中断,没有中断发生时IRQ位高阻状态,可将多个中断器件连接到一条IRQ总线上,

34、只要他们均为漏极开路输出。IRQ引脚为为漏极开路输出,需要使用一个外接上拉电阻与Vcc相连。(l)20脚到22脚(NC):空脚,不用连接;(m)23脚(SQW):方波输出。SQW引脚能提供RTC内部15级分频器的13个分频比之一。可通过对寄存器A编程来控制SQW引脚的输出信号频率,SQW信号可通过设置寄存器B的SQW位打开或关闭。当Vcc低于Vpf时,SQW信号无法输出。(n)24脚(VCC):主电源的DC电源引脚。VCC在正常范围内时,可访问器件的所有功能,并且进行数据的读写。如果VCC低于Vpf,则禁止读和写。3.1.6.典型工作电路如下图3.1.6图3.1.6如图AD0-AD7为数据和地

35、址复用的双向总线,CS为片选信号,AS为地址选通输入,RW为读写输入,DS位为数据选通或读输入,IRQ位为闹铃中断,它们分别于MCU的不同I/O口连接。3.1.7.工作时序:Motorola总线读/写工作时序如下图3.1.7(a),Intel总线写时序图3.1.7(b)Intel总线读时序图3.1.7(c)工作持续时间如图(d)。由于本设计使用的是Intel总线模式,所以Motorala总线模式在此不做详细的介绍,如下图3.1.7(b)写时序中,当片选信号CS为低,AS为高,DS为高,RW为高时将地址放到总线上,一个AS下降沿将地址锁存到DS12C887内部。当片选信号CS为低,AS为低,DS

36、为高,将数据放到总线上,一个RW上升沿将数据写入DS12C887内部。如下图3.1.7(c),当片选信号CS为低,AS为高,DS为高,RW为高将地址放到总线上,一个AS下降沿将地址锁存到DS12C887内部。当片选信号CS为低,AS为低,DS为低,RW为高,一个DS上升沿将数据读走。 Motorola总线读/写时序图3.1.7(a)Intel总线写时序图3.1.7(b) Intel总线读时序图3.1.7(c) 工作持续时间图3.1.7(d)3.1.8主要程序分析:void write_time(uchar add,uchar date)/该程序的作用是向DS12C887内部写地址或数据time

37、_cs=0;/片选开time_as=1;/拉高AStime_ds=1;/ 拉高DStime_rw=1;/ 拉高RWP1=add;/向总线放地址time_as=0;/AS下降沿将地址锁存time_rw=0;/ 拉低RWP1=date;/ 向总线放数据time_rw=1;/ RW上升沿将数据写入time_as=1;/ 拉高AStime_cs=1;/ 片选关reader_time(uchar add) /该程序的作用是从DS12C887内部读数据time_cs=0;/ 片选开time_as=1;/ 拉高AStime_ds=1;/ 拉高DStime_rw=1;/ 拉高RWP1=add;/ 向总线放地址

38、time_as=0;/ AS下降沿将地址锁存time_ds=0;/ DS拉低ee=P1;/读总线time_ds=1;/ DS上升沿将数据读出time_as=1;/ 拉高AStime_cs=1;/ 片选关return(ee);/将数据返回3.2 1602液晶显示电路设计3.2.1 1602液晶概述本设计采用SMC1602A LCM液晶芯片,由长沙太阳人电子有限公司设计生产,它具有重量轻、体积小、功耗低、显示内容丰富、可自编8(57)或(510)种字符、指令功能强;可组合成各种输入、显示、移位方式以满足不同的设计需求;接口简单方便,可与8位处理器或微控制器相连;工作温度0-50;可靠性高,寿命为5

39、0000小时(25);3.2.2 1602液晶基本原理实物如图3.2.2(a),原理图如图3.2.2(b) 实物图3.2.2(a) 原理图3.2.2(b)该液晶有16个管脚,典型工作电路如图3.2.2(c)工作电路3.2.2(c)下面分析每个管脚的不同作用:(a)1脚(Vss):接地,电压为0V;(b)2脚(VDD):芯片电路电源正极,正常工作电压值为(5V10%);(c)3脚(VL):液晶显示偏压信号,外接10K电位器到地,用于调节液晶显示亮度;(d)4脚(RS);数据或命令选择端(HL),高电平选择数据,低电平选择命令;(e)5脚(RW):读、写选择端(HL),高电平选择读数据,低电平选择

40、写数据;(f)6脚(E)信号使能端;(g)7-14脚(D0-D7):双向分时数据、命令引脚;(h)15脚(BLA):液晶显示驱动电压正压信号(为了防止液晶屏过压损毁常外接10欧左右的限流电阻);(i)16脚(BLK):液晶显示驱动电压负压信号;3.2.3 1602液晶工作时序读操作时序如下图3.2.3(d),写操作时序如下图3.2.3(e),时序参数如下图3.2.3(f); 读操作指令时序图3.2.3(d)写操作指令时序图3.2.3(e) 时序参数图3.2.3(f)下面详细分析:由于本设计仅仅用于显示,因此对于该器件读操作不作详细介绍,由图3.2.3(e)可知:(a)写数据:由3.2.3(e)

41、图知,当RS为高电平RW为低电平时,为向液晶内写数据,然后当拉高E时,将数据写入液晶;(b)写命令:由3.2.3(e)图可知,当RS为低电平RW为低电平时,为向液晶内些命令,当拉高E时,将命令写入液晶;3.2.4指令说明(a)显示模式:(b)显示开关及光标设置:(c)数据指针设置:(d)其它设置;3.2.5 1602液晶主要程序分析(参照读、写指令时序,因为我们不读取液晶,所以初始化中将WR始终拉低)void write_com(uchar com)该程序的作用是向1602液晶内写指令lcdrs=0;rs拉低时表明向1602内写指令delay(5); 延时5msP0=com; 将指令放到数据线

42、上delay(5); 延时5mslcden=1; 将en拉高delay(5); 延时5mslcden=0;将en拉低后指令写入void write_data(uchar date)该程序的作用是向1602液晶内写数据lcdrs=1; rs拉低时表明向1602内写数据delay(5); 延时5msP0=date; 将数据放到数据线上delay(5); 延时5mslcden=1; 将en拉高delay(5); 延时5mslcden=0; 将en拉低后数据写入3.3红外遥控电路设计3.3.1红外发射系统 红外发射系统主要采用一些特定的编码芯片,将不同的按键进行编码,然后经38kHz的载频进行二次调制

43、以提高发射效率,达到降低电源功耗的目的然后再通过红外发射二极管产生红外线向空间发射例如下图3.3.1(a)典型的LM7461M芯片构成的红外发射系统: 图3.3.1(a)由于本设计不涉及红外发射系统的原理分析,因此在此不作详细分析,下面主要来看看它所发出的红外波形图3.1.1(b): 图3.3.1(b)该波形一共有三部分构成分别由引导码、用户码、键控码组成,其中引导码由9ms高电平和4.5ms低电平组成,接着就是8位用户码和8位用户反码,8位键控码和8位键控反码;3.3.2红外接收系统红外接收过程实际就是发射的逆过程,下面详细分析(a)红外一体化接收头,实物如图3.3.2(c),原理图如图3.

44、3.3(d); 图3.3.2(c) 图3.3.2(d)图中3脚为供电端(参考电压为5.0V);2脚接地端;1脚为数据端口,为了提高灵敏度,常常在1脚上接4.7k上拉电阻;(b)由红外接收头接收到的波形如图所示3.3.2(e) 图3.3.2(e)由接收到的波形图可以看出,它和发射波形在高低电平上刚好相反,任然由引导码、用户码、键控码组成,因此可通过单片机对其进行解码操作!(e)解码操作:解码的关键是如何识别“0”和“1”如图3.3.2(f),可以利用单片机的定时计数器来对红外码进行时间的监控。 图3.3.2(f)从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽

45、度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.68ms+0.56ms)/2=1.12ms最为可靠,一般取持续时间大于1.12ms为1,持续时间小于1.12ms为0。3.3.3主要程序分析uint low_ir_time()/此程序的作用是检测低电平的时间TH0=0;/定时器/计数器装初值TL0=0;/定时器/计数器装初值TR0=1;/启动定时器/计数器while(!ir);/等待TR0=0;/关闭定时器/计数器return TH0*256+TL0;/返回低电平持续时间uint high_ir_time()/此程序的作用是检测高电平的时间TH0=0; /定时器/计数器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号