ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:628.70KB ,
资源ID:17543570      下载积分:6 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-17543570.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(红外遥控万年历本科毕设论文.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

红外遥控万年历本科毕设论文.docx

1、红外遥控万年历本科毕设论文请在此处放置您学校的LOGO!基于单片机制红外遥控万年历学院:_专业:_姓名:_学号:_2013年 月 日摘 要 本文介绍了一款能够实现可以遥控设置时间,日期,闹钟的电子万年历,该设计模型可以解决壁挂式电子万年历的时间,日期,闹钟调整不方便的问题。系统主要由STC89C52单片机控制模块,电源模块,DS1302时间生成模块,红外遥控模块,LCD12864显示模块组成。由电源模块提供保证整个系统的运行所城电压;由时间生成模块生成的时间日期通过单片机模块一系列处理后,通过液晶模块实时显示输出年,月,日,时,分,秒和星期等信息。配合红外遥控模块对时间日期的调整,使得该系统操

2、作简单方便,非常实用。关键词: 万年历、单片机STC89C52、DS1302、LCD12864、红外遥控目 录前言 4第一章 系统总体设计1.1 单片机主控系统设计方案 61.2 时钟芯片系统设计方案 61.3 按键控制系统设计方案 7 1.4 显示系统设计方案.81.5 系统设计原理框图 7第二章 红外遥控万年历的硬件设计 82.1 单片机最小系统设计 82.2 DS1302时钟模块设计 82.3 红外编解码模块设计: 92.4 LCD12864显示模块设计 10第三章 红外遥控万年历的软件设计 123.1 主程序设计 123.2 时钟模块驱动设计 143.3 阴历时间转换程序设计 143.

3、4 红外接收接码驱动设计 143.5 红外编码发射驱动设计 14第四章 系统调试 154.1 硬件系统调试 14 4.2 软件系统调试 14 参考文献 4附录 前言课题的背景万年历是我国古代传说中最古老的一部太阳历。为纪念历法编撰者万年的功绩,便将这部历法命名为“万年历”。而现在所使用的万年历,实际上就是记录一定时间范围内(比如100 年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用,与原始历法并无直接联系。随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠

4、性高,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。单片机的应用已经渗透到工业控制、家用电器、通信设备、信息处理、尖端武器等各个领域。而随着单片机的发展,人类用于计时的工具也在不断发展更新,单片机技术使得万年历有了新的发展方向。目前世界上单片机年产量已达十多亿片,通常是当年微处理器产量的4-5 倍以上。用最少的芯片就能实现最强大的功能,这是将来电子产品的主流方向,它将无可置疑地一步步取代其它同类产品,其数量之大和应用面之广,是其它任何类型的计算机所无法比拟的。以基于单片机的万年历作为设计的课题,因为它有很好的开放性和可发挥性,对本人我单片机的水平对应的要求比较高,不仅考察了

5、对单片机的掌握能力而且强调了对单片机扩展的应用。另外液晶显示的万年历已经越来越流行,特别适合在家庭居室、办公室、大厅、会议室、车站和广场等地方使用,它具有显示清晰直观、走时准确、可以进行夜视等功能,并且还可以扩展出其它多种功能,同时将其制成一份精致的成品可作实用的展品。所以,电子万年历作为设计课题很有价值。课题的主要工作本论文主要研究基于单片机的万年历设计。当程序执行后,LCM12864 显示即时时间、年月日、星期、天干地支、温度等。设置4 个操作键:KEY1,设置键;KEY2,跳出键;KEY3,上调键;KEY4,下调键。本设计的主要内容:1、了解单片机技术的发展现状,熟悉万年历各模块的工作原

6、理;2、选择适当的芯片和元器件,确定系统电路,绘制电路原理图,尤其是各接口电路;3、熟悉单片机使用方法和C 语言的编程规则,编写出相应模块的应用程序。设计目标设计目标:使基于STC89C52 单片机的万年历实现以下三个功能:1、具有年、月、日、星期、时、分、秒的显示功能;2、具备年、月、日、星期、时、分、秒的校准功能;3、具有闹钟时间的设置和报警提示功能,具有闹钟的打开关闭功能;4、具有整点报时的功能;5、具有用红外遥控器操作的功能。第一章 系统总体设计1.1 单片机主控系统设计方案单片机也被称为微控制器(Microcontroller),是以一个大规模集成电路为主组成的微型计算机,在一个芯片

7、内含有计算机的基本功能部件:中央处理器CPU、存储器和I/O 接口,CPU 通过内部的总线和存储器、I/O 接口相连。单片机以其卓越的性能,得到了广泛的应用,已深入到各个领域。单片机应用在控制领域中,具有如下特点:单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,成本低,可靠性高,种类多,型号全,抗干扰能力强和使用方便等独特优点,在数字、智能化方面有广泛的用途。最重要的是可以采用C 语言开发环境,具有友好的人机互交环境。大多数单片机都提供基于C 语言开发平台,并提供大量的函数供使用,这使产品的开发周期、代码可读性、可移植性都大为提高。综上:本系统的主控芯片选择80C51家族的

8、STC89C52RC单片机,它具备上面所述的所有特点,能以很高的性价比来满足我们的设计需求。1.2 时钟系统设计方案方案一: 不使用芯片,采用单片机的定时计数器 这种方法原理是利用单片机芯片的定时器来产生固定的时间,模拟时钟的时, 分,秒.如:利用AT80C52芯片,定时器用工作方式1,每50ms产生一个中断,循环20次,即1s周期.每一个周期加1,那么1min为60个周期,1h就是60*60=3600个周期,一天就是3600*24=86400个周期。此方法优点是可以省去一些外围的芯片,但这种方法只能适用于一些要求不是十分精确,不做长期保留的场合。 方案二: 并行接口时钟芯片 DS12887

9、特点:采和单片机应用系统并行总线(三总线)扩展的接口电路,采用这种接口电路具有操 作速度快,编程方便的优点。 但是对于80C52单片机来说,低位地址线要通过锁存器输出,还要地址译码器,而且并行口芯片的体积相对较大。方案三: 串行接口时钟芯片DS1302优点:它采用简单的三线制串行接口与单片机连接,使用简单,接口容易,与微型计算机连线较少等特点,在单片机系统尤其是手持式信息设备中己得到了广泛的应用。因次,我选择了串行时钟芯片DS1302。1.3 按键控制系统设计方案 在对日期和时间进行切换显示,对日期和时间进行调节校准,对闹钟进行设置的过程中,系统需要产生激励电流,因此需要用按键。按键设计一般有

10、两种方案: 方案一:使用独立式键盘。独立式键盘是指直接用I/O口线构成的单个按键电路。独立式按键硬件电路设置简单,软件程序编写也相对容易。如下图所示:图1.3.1 独立键盘原理图 方案二:矩阵键盘 ,它的缺点是占用IO口太多,如下图所示: 图1.3.2 矩阵键盘原理图根据现实需求,本系统创新性的抛弃这两种方案,采用红外遥控器做为系统的按键,红外遥控器可以不受位置的限制来对万年历功能进行调整 和设置,从而摆脱了壁挂式万年历操作不方便的缺点,最大限度的给人带来方便。红外1.4 显示模块选择 方案一: LED数码管显示特点:数码管显示比较常用的是采用CD4511和74LS138实现数码转换数码显示分

11、动态显示和静态显示,静态显示具有锁存功能,可以使数据显示得很清楚,但浪费了一些资源。目前单片机数码管普通采用动态显示,编程简单,但只能显示数字,不能显示中文。 方案二: LCD1602特点:能够显示英文和数字。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号。 方案三: LCD16824作为一种输出方式,液晶显示最大的特点就是能够实现友好的人机界面,它己经广泛应用于现代工业控制和智能化仪器仪表等领域,它己经成为单片机就用开发领域典型模块之一。能够方便的显示文字和数字。因此我选择LCD16824作为显示模

12、块。1.5 系统设计原理框图图1.4 红外遥控万年历系统原理框图第二章 红外遥控万年历硬件设计2.1 单片机最小系统设计2.1.1 STC89C52具有下列主要性能: 8KB可改编程序Flash存储器(可经受1000次的写入/擦除周期) 全静态工作:0Hz24MHz三级程序存储器保密1288字节内部RAM32条可编程I/O线2个16位定时器/计数器6个中断源可编程串行通道片内时钟振荡器2.1.2 STC89C52的引脚及功能STC89C52单片机的管脚分布如下图所示。图4-2 STC89C52的管脚2.1.3 晶振电路图2 晶振电路在晶振电路中,C1、C2为晶振的负载电容,分别接在晶振的两个脚

13、上和对地的电容,电路中取了30PF。晶振引脚的内部通常是一个反相器。在晶振输出引脚 XO 和晶振输入引脚 XI 之间用一个电阻连接, 很多芯片的引脚内部已经包含了这个电阻, 引脚外部就不用接了。这个电阻是为了使反相器在振荡初始时处与线性状态,反相器就如同一个有很大增益的放大器, 以便于起振。2.1.4 复位电路图3 复位电路单片机复位电路有上电自动复位和手动复位两种方式。上电复位要求接通电源后,自动进行复位操作。手动复位要求接通电源的前提下,在单片机运行的条件下,在单片机运行期间,用按钮开关操作使单片机进行复位的操作。这里采用的是手动复位。2.2 DS1302时钟模块设计2.2.1 DS130

14、2芯片介绍低功耗时钟芯片DS1302可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿等多种功能。(1) DS1302的性能特性实时时钟,可对年月日,时分秒,星期以及带闰年补偿的年进行计数;具有318位的RAM用于数据暂存;最少三个I/O引脚即可与MCU进行连接;较宽的电压工作东围 3.3 - 5.5 V;低电压时功耗极低;具有单字节或多字节(脉冲方式)两种数据读写传送方式;可选的慢速充电(至VCC1)的能力。 (2) DS1302管脚图图2.2.1 DS1302管脚图如果在传送过程中置RST为低电平,则会终止本次数据传送,并且I/O引脚变为高阻态。上电运行时,在VCC =2.3V之前

15、,RST脚必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。DS1302的管脚图如图4-3所示,内部结构图如图4-4所示,表4-2为各引脚的功能。图2.2.2 DS1302内部结构图表2-2-1 DS1302引脚功能表引脚号引脚名称功能1VCC2主电源2,3X1,X2振荡源,外接32768HZ晶振4GND地线5RST复位/片选线6I/O串行数据输入/输出端(双向)7SCLK串行数据输入端8VCC1后备电源DS1302的控制字如图4-5所示。控制字节的最高有效位(位7)必须是逻辑1;如果它为逻辑0,则不能把数据写入到DS1302中。位6如果为0,则表示存取日历时钟数据;为1表示存

16、取RAM数据。位51(A4A0)指示操作单元的地址。最低有效位(位0)如为0,表示要进行写操作;为1表示进行读操作。控制字节总是从最低位开始输入/输出。图2.2.3 控制字节的含义DS1302的数据读写时序如下图:图2.2.4 数据读写程序DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表3-3,其中奇数为读操作,偶数为写操作。表2.2.3 DS1302的日历、时钟寄存器及其控制字寄存器名命令字取值范围各位内容写操作读操作76543210秒寄存器80H81H00-59CH10SECSEC分钟寄存器82H83H00-590

17、10MINMIN小时寄存器84H85H01- 12或00-2312/24010APHRHR日期寄存器86H87H01-28,29,30,310010DATEDATE月份寄存器88H89H01-12000IOMMONTH周日寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR时钟暂停:秒寄存器的位7定义位时钟暂停位。当它为1时,DS1302停止振荡,进入低功耗的备份方式。通常在对DS1302进行写操作时(如进入时钟调整程序),停止振荡。当它为0时,时钟将开始启动。AM-PM/12-24小时方式:小时寄存器的位7定义为12或24小时方式选择位。它为高电平

18、时,选择12小时方式。在此方式下,位5是AM/PM位,此位是高电平时表示PM,低电平表示AM,在24小时方式下,位5为第二个10小时位(2023h)。2.2.2 DS1302 的应用实时时钟芯片DS1302采用串行数据传输,可为掉电保护电源提供可编程的充电功能,也可以关闭充电功能,芯片采用32768Hz晶振。要特别说明的是,备用电源BT1可以用电池或超级电容(10万F以上)。虽然DS1302在主电源掉电后耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。如果断电时间较短(几小时或几天),可以用漏电较小的普通电解电容代替(100F就可以保证1小时的正常走时)9。DS1302在第一次加电

19、后,需进行初始化操作。初始化后就可以按正常方法调整时间及闹铃。DS1302的时钟电路如图3-7所示。图2-2 DS1302时钟电路 2.3 红外编解码模块设计图2.3.1 HS0038 红外接收电路2.3.1 概述一体化接收头(HS0038)接收遥控器用来产生遥控编码脉冲,完成对遥控信号的放大、检波、整形、解调出遥控编码脉冲。遥控编码脉冲是一组串行二进制码,对于一般的红外遥控系统,此串行码输入到单片机,并由其内部CPU完成对遥控指令解码,并执行相应的遥控功能。2.3.2 SMOO38引脚功能 表2.3.1 HS0038引脚功能引脚符号功能说明1OUT输出一组串行二进制码遥控编码脉冲2VSS接电

20、源(+5V)3GND接地2.3.3 二进制码的解调图13 二进制码的解调过程红外接收头接收到遥控信号需先进行解调,其解调过程如图13所示,当接收到调制信号时,输出高电平,否则输出为低电平,是调制的逆过程。HS0038是一体化集成的红外接收器件,直接就可以输出解调后的高低电平信号。2.3.4 红外信号的调制和发射红外信号的调制和发射由单片机最小系统、矩阵编码键盘和红外信号发射电路组成。单片机最小系统在前面介绍中已经提到,这里就不再赘述。2.3.5 红外发射电路图15 红外发射电路如图所示,经单片机调制后的编码信号由单片机的P3.2口输出,经红外发射二极管D2发射出去。2.7.2 遥控器键盘编码电

21、路当单片机检测到有按键被按下时,就发射与之相对应的二进制编码信号,按键和二进制编码信号的对应关系见表5。二进制信号(如图a和b所示)的调制过程(如图c所示)由单片机来完成,它采用PPM编码 (如图d所示)。单片机把编码后的二进制信号调制成频率为38kHz 的间断脉冲串,相当于用二进制信号的编码乘以频率为38kHz 的脉冲信号得到的间断脉冲串,也即是调制后用于红外发射二极管发送的信号。 图a 二进制码1 图b 二进制码0图c 二进制信号的调制图d PPM编码格式表5 按键功能及其与遥控编码的关系按键编号对应的遥控编码值实现的功能S10x01用于选择设置的标志位S20x02确定所设定的值S30x0

22、3闹钟停闹(蜂鸣器停止响)与开启S40x04调节键 +S50x05调节键 -2.4 LCD显示模块设计带中文字库的128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192 个16*16 点汉字,和128 个16*8 点ASCII 字符 集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84 行1616 点 阵的汉字. 也可完成图形显示. 本设计中采用的LCD12864的各个功能引脚 如下:2.4.1 LCD12864内部结构图:图2.4

23、.1 LCD12864的逻辑电路图2.4.1 LCD12864应和电路图:图2.4.2 STC89C52与LCD12864液晶的接口电路根据以上电路原理图中液晶的各引脚与单片机的接法,可得本设计的液晶模块电路如图4-11所示。VSS接地;数字电源VDD接5V;对比度控制电压V0接电位器,可通过调节电位器调整液晶亮度;数据、指令选择信号RS接单片机P2.0口;读写选择信号R/W接单片机P2.1口;单片机读、写选通信号/RD、/WR通过与非门接液晶的读写使能信号E;DB0DB7分别接单片机的P0.0P0.7口;复位端RST接P2.4口、选屏显示端PSB接P2.6端口,背光正电源LEDA接5V;液晶

24、驱动电压VEE、背光负电源LEDK接地。第三章 红外遥控万年历软件设计.3.1 主程序设计主程序的功能: 以80C52为核心,处理外转电路传进来的信号,实现时钟数据的读取,保存,显示其及键盘操作。流程图如下所示:3.2 时钟模块DS1302驱动设计 3.3 阴历程序设计阴历程序的实现是要靠阳历日期来推算的。要根据阳历来推算阴历日期,首先要设计算法。推算方法是,根据阳历当前日期在一年中的天数来计算阴历日期。阳历一个月不是30天就是31天(2月除外,闰年2月为29天,平年2月为28天)。阴历一年有12个月或13个月(含闰月),一个月为30天或29天。如果把一个只有29天的月称为小月,用1为标志,把

25、30天的月称为大月,用0为标志,那么12位二进制就能表示一年12个月的大小。如果有闰月,则把闰月的月份作为一个字节的高4位,低4位表示闰月大小,大月为0,小月为1,这样一个字节就包括了所有闰月的信息。阴历春节和阳历元旦相差的天数也用一个字节表示。总共用4字节就可以存储一年中任何一天阳历和阴历的对应关系的有关数据,例如2004年的阴历和阳历对应关系如表4-1所示。表3-3 2004年的阴历和阳历对应关系表月份123456789101112闰2月大小小大大大小大小大小大小大小二进制1000101010101天数 293030302930293029302930十六进制4252212004年的春节和

26、元旦差21天,这样2004年的信息表示为:21,42H,52H,21H。其中表示12个月大小信息的字节,第4位和第7位不用,第1个字节为十进制,其它的都为十六进制。按此方法,50年的阳历和阴历对应关系表总共使用200字节。有了算法和数据以后,就可以设计软件了。先要根据当前阳历的日期,算出阳历为该年中的第几天。图5-3为计算阳历中任何一天在该年中为第几天的程序流程图。图4-3 计算阳历天数程序流程图计算出当前阳历日期为该年中的第几天后,再减去阳历该年春节和元旦的日差,如果够减,则相减的结果就是阴历在该年中的总第几天了。根据该数据就可以推算出具体的当前阴历日期;如果不够减,则表示当前阴历年为阳历年

27、的前一年。这种情况下,根据实际,当前阴历日期会处于阴历11月或12月,此时春节和元旦的日差减去前面计算出的当前阳历日期在阳历年为第几天的数据,其结果表示当前阴历日期离春节的天数。计算出的阳历天数为该年的第几天,存放在寄存器R2和R3中。计算出天数后,如果大于#FFH,则把#FFH存放在R2中,余值存放在R3中。也就是说在用寄存器R2和R3表示的天数信息中,R2充当主寄存器,数据先存满R2,再存R3。在整个转换程序中,这里面的数据不能被覆盖。计算出阳历总天数后,就可以根据它来推算阴历日期。推算方法是,先用总天数减去春节和元旦的日差,如果结果为1,则该天正好是春节(因为春节在元旦之后,在计算春节和

28、元旦的日差时,假设元旦为0天,春节为n天,则日差为n。而前面计算的阳历总天数是该天在该年中的第几天,是以元旦为1而得到的,与计算春节和元旦日差的这样方法相比,其数值少了1,所以要在原来本应该以0作为该天就是春节的依据的基础上加1,所以以1作为该天是春节的标志);如果结果小于1,则阴历应该是阳历的前一年;如果结果大于1,说明阳历和阴历为同一年。再根据查表所得的该年的阴历的闰年和大小月的信息,就可以推算出该天的阴历日期了。图4-4为由总天数推算出阴历日期的程序流程图。图4-4 推算阴历日期的程序流程图3.4 红外信号接收解码驱动设计红外信号的的接收通过外部中断1处理函数来完成的,中断函数中判断按键

29、的编码,然后执行相应的按键动作,比如检测到键S1被按下,则执行调节时间的动作。图19 红外发射程序流程图3.5 红外信号发射程序的设计红外发射程序和红外接收程序是独立的,红外信号的发射和接收分别由各自单片机来完成。红外信号的发射利用定时器12,每隔26us中断一次,主程序中等待按键被按下,若检测到有按键按下,就调用红外发射函数,发送相应的二进制编码。其程序流程图见图20。图20 红外发射程序流程图 3.6 时间调整子程序设计调整时间用五个调整按钮,一个作为设置键、控制用,一个作为退出设置按键,一个作为闹铃开关用,剩下两个是对设置位的加,减操作。图3-6 时间调整程序流程图第四章 系统调试系统调试包括软件调试和硬件调试。硬件调试的任务是排除所焊接电路故障。软件调试是利用开发工具进行在线仿真调试。调试的一般过程如下所示:系统调试的一般过程是上电运行后观察其运行状态,数码管是否点亮等。软件调试先是各个模块、各个子程序分

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2