毕业设计(论文)-基于AT89S52单片机的红外遥控万年历的设计.doc_第1页
毕业设计(论文)-基于AT89S52单片机的红外遥控万年历的设计.doc_第2页
毕业设计(论文)-基于AT89S52单片机的红外遥控万年历的设计.doc_第3页
毕业设计(论文)-基于AT89S52单片机的红外遥控万年历的设计.doc_第4页
毕业设计(论文)-基于AT89S52单片机的红外遥控万年历的设计.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计说明书(论文) 第 1 页 共 49 页 红外遥控万年历的设计 摘要:本文介绍了一款能够实现可以遥控设置时间日期的电子万年历,该模 型可以解决壁挂式电子万年历的时间日期调整问题,系统主要由 at89s52 单片机控 制模块、电源模块、时间生成模块、遥控模块、显示模块组成。由电源模块提供保 证整个系统的运行所需电压;由时间生成模块生成的时间日期通过单片机模块一系 列处理后,通过液晶模块实时显示输出年、月、日、时、分、秒和星期等信息。配 合红外遥控模块对时间日期的调整。使得该系统操作简单方便,非常实用。 关键词:at89s52 单片机;ds1302 时钟芯片;红外遥控 design of an infrared remote control calendar abstract:abstract: in this paper, an infrared remote control calendar is introduced, which can set the time and date by remote operation. the model can solve the wall-mounted electronic calendar date and time adjustment problem. the system mainly comprises at89s52 microcontroller control module, power module, the time generation module, remote module and display module. the power supply module provides a required voltage to run the whole system. after the time and the date generated by time generation module are processed by microcontroller module, the information of year, month, day, hour, minutes, seconds and day of week are displayed in lcd module. by using infrared remote control module to adjust time and the date, the system becomes easy, simple and extremely practical. keykey words:words: at89s52 microcontroller;ds1302 clock chip;infrared remote control 毕业设计说明书(论文) 第 2 页 共 49 页 目 录 前 言1 第一章 系统总体设计.3 1.1 技术指标.3 1.2 设计方案确定.3 1.2.1 时间生成系统方案.3 1.2.2 显示系统方案4 1.2.3 红外遥控系统方案.4 第二章 系统硬件设计.5 2.1 单片机控制电路.5 2.1.1at89s52 芯片简介.5 2.1.2 单片机最小系统图.8 2.2 红外遥控电路.9 2.2.1 红外遥控简介9 2.2.2 红外遥控电路设计.10 2.3 液晶显示电路.11 2.3.1 1602 的功能简介.11 2.3.2 显示输出电路设计12 2.4 时间生成电路.13 2.4.1 ds1302 的简介与结构功能13 2.4.2 时间生成电路设计.15 2.5 电源电路.16 第三章 红外遥控万年历的软件设计.18 3.1 软件总体设计.18 3.2 主程序设计18 毕业设计说明书(论文) 第 3 页 共 49 页 3.3 红外按键扫描程序设计19 3.4 红外遥控解码程序设计20 3.5 时间生成程序设计22 3.6 显示程序设计.22 第四章 红外遥控万年历的调试.24 4.1 硬件调试.24 4.1.1 portel 简介.24 4.1.2 调试中出现的问题及解决方法.24 4.2 软件调试.25 4.2.1 keil uvision3 简介25 4.2.2 子程序调试.27 4.2.3 主程序调试.28 4.3 芯片固化28 参考文献.29 致谢.30 附录一:电路原理图31 附录二:实物照片.32 附录三:程序33 附录四:元器件清单45 毕业设计说明书(论文) 第 4 页 共 49 页 前 言 20 世纪 80 年代以来,随着电子信息技术的迅速发展,单片机的应用越来越广泛, 各类新产品不断涌现。单片机通过汇编语言或者 c 语言,配以滴定的外围电路,可以 实现不同情况下、不同电路系统的自动控制,用它可以开发各种智能玩具,如机器人、 遥控飞机、智能车等,实际生活中的很多电器也用到了单片机系统,例如电冰箱、空 调、电子日历等,还有很多测量仪器以及高科技的空间探测、宇宙探索等都已单片机 为开发中心。可以说实现生活中大多数的智能物品都用到单片机的相关知识。围绕单 片机系统形成的电子产业将会是一个持续发展的高科技产业,电子行业将会更具有魅 力和发展潜力。 传统的遥控器大多数采用了无线电遥控技术,但是随着科技的进步,红外线遥控 技术的成熟,红外也成为了一种被广泛应用的通信和遥控手段。继彩电、录像机之后, 在录音机、音响设备、空调机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。 工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可 靠而且能有效地隔离电气干扰。所以采用单片机进行遥控系统的应用设计,遥控装置 将同时具有编程灵活、控制范围广、体积小、功耗低、功能强、成本低、可靠性高等 特点,因此采用单片机的红外遥控技术具有广阔的发展前景。 红外遥控是当前使用最为广泛的通信和控制手段之一,由于其结构简单、体积 小、功耗低、抗干扰能力强、可靠性高及成本低等优点而广泛应用于家电产品、工业 控制和智能仪器系统中。然而市场上的绝大部分遥控器都是针对各自特定的遥控对象 设计的,不能直接应用于通用的智能仪器研发及其更一般的控制场合。通常情况下, 一般家庭所使用的电视机、空调、vcddvd 等家用电器都使用了红外遥控器,而这些 红外遥控器都是针对各自产品所设计的,从而导致了一般家庭中拥有数个遥控器,那 么,能否将这些遥控器的功能进行复用,进而减少遥控器的数量,使遥控器的功能更 加强大,就显得十分必要了。电源开关广泛应用于家庭、工厂、仓库、以及办公室等 场所。传统的机械式电源开关存在接触电阻大、易磨损、可靠性低以及寿命短等缺点, 毕业设计说明书(论文) 第 5 页 共 49 页 特别是当家用电器的遥控器繁多的情况下,如果能借助这些遥控器设计开关用于代替 传统的机械式电源开关,不仅节约了成本,而且操作方便。使用电视机等家用电器的 遥控器实现开关操作,安装和代换都很方便,可以用它代换家居中非常普及的墙壁开 关,从而提高遥控器在家电领域的实用价值。 本课题设计一个红外遥控万年历。系统主要由系统主要由 at89s52 单片机控制模 块、电源模块、时间生成模块、遥控模块、显示模块组成。红外接收头接收到的编码 信息通过单片机处理,单片机根据不同的遥控器按键信息进行处理并在液晶上显示相 应的时间日期。本文介绍了系统的软硬件件设计方法,和调试过程。 毕业设计说明书(论文) 第 6 页 共 49 页 第一章 系统总体设计 本次设计的红外遥控万年历是通过液晶显示,并能通过红外遥控器对时间进行设 置调整。它的基本功能是准确的显示年、月、日、星期及准确的实时时间。本文讲述 了红外遥控万年历的工作原理以及其各个组成部分,以及设计过程中各个部分的设计 思路和对它们的调试,并最终得到结果。 1.1 技术指标 1采用液晶显示输出; 2准确计时,年的时间误差小于一分钟; 3准确显示无误差的星期; 4红外遥控来对数字钟进行调整; 5具有断电保护功能。 1.2 设计方案确定 1.2.11.2.1 时间生成系统方案时间生成系统方案 方案一:采用时钟芯片 ds13012。 ds1302 时钟芯片是 dsallas 公司推出的串行接口实时时钟芯片。它既提供实时时 钟,又把关键的数据储存于 ram。芯片书用简单,外部连接少,在自动化控制中应用广 泛。 方案二:采用单片机内部时钟系统1。 单片机 at89s52 内部设有 3 个定时器,可以通过对定时器设定初值,当计数器溢 出后产生定时中断,可用变量对中断次数进行累计,即对时间的累计,从而实现即时 的功能。 本设计采用方案一,由于方案二中计时系统采用单片机单一的电源供电,断电后 系统复位,当再次供电后,时钟将恢复原始值,需重新调整时间。而采用方案一,由 于 ds1302 芯片采用双引脚电源,若系统断电,芯片可由备份电源继续供电,芯片仍可 以工作,断电后无需设置时间,系统即可继续显示时间。 毕业设计说明书(论文) 第 7 页 共 49 页 1.2.21.2.2 显示系统方案显示系统方案 方案一:采用数码管显示时间。 方案二:采用 1602 液晶作为显示屏。 本设计采用方案二,用数码管显示时间,虽然数字清晰明朗,但是硬件连接复杂, 如果按照要求显示所有电子日历信息,则需要的数码管比较多,从而增加了焊接的难 度,也增加了系统的质量。而采用液晶作为显示器,弥补了数码管的所有不足,大大 减轻了系统复杂难度,大大简化了硬件电路,节省了电路的耗能。 1.2.31.2.3 红外遥控系统方案红外遥控系统方案 红外遥控系统采用 pt2262-pt2272 红外遥控发射/接收芯片,红外信号的接收、放 大、解调,不需要任何外接元件,就能完成从红外线接收到输,它适合于各种红外线 遥控和红外线数据传输,中心频率 38.0khz。接收器对外只有 3 个引脚: out、gnd、vcc 与单片机接口非常方便。 毕业设计说明书(论文) 第 8 页 共 49 页 第二章 系统硬件设计 硬件系统的主要可分为以下几大部分:单片机控制电路、红外遥控电路、时间生 成电路、显示电路以及电源电路。系统框图如图 21 所示。 按按键键 红红外外遥遥控控 at89s52 液晶1602 ds1302 一一体体化化红红外外接接收收头头 电源电路 图2-1 系统框图 2.1 单片机控制电路 2.1.1at89s522.1.1at89s52 芯片简介芯片简介 at89s52 是高性能 cmos 8 位单片机,片内含 8k bytes 的可反复擦写的只读程序存 储器(perom)和 256 bytes 。的随机存取数据存储器(ram),器件采用高密度、非 易失性存储技术生产,与标准 mcs-51 指令系统及 8052 产品引脚兼容,片内置通用 8 位中央处理器(cpu )和 flash 由存储单元,功能强大 at89s52 单片适用于许多较为 复杂控制应用场合。 at89s52 提供以下标准功能:8 字节 flash 闪速存储器,256 字节内部 ram , 32 个 i/o 口线,3 个 16 位定时/计数器,一个 6 向量两级中断结构,一个全双工串行通 信口,片内振荡器及时钟电路。同时,at89s52 可降至 ohz 的静态逻辑操作,并支持两 种软件可选的节电上作模式。空闲方式停止 cpu 的工作,但允许 ram,定时/计数 器串行通信口及中断系统继续工作。掉电方式保存 ram 中的内容,但振荡器停止工 毕业设计说明书(论文) 第 9 页 共 49 页 作并禁止其它所有部件工作直到下一个硬件复位。 功能引脚说明2: 1.vcc:电源电压; 2.gnd:地; 3.p0:p0 口是一组 8 位漏极开路型双向 1/o 口,也即地址/数据总线复用口。作 为输出口用时每位能吸收电流的方式驱动 8 个 ttl 逻辑门电路,对端口 p0 写“1” 时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时 转换地址(低 8 位)和数据总线复用,在访问期间激活内部 上拉电阻。在 flash 由编 程时,p0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉 电阻; 4.p1 口:pi 是一个带内部上拉电阻的 8 位双向 i/o 口,pl 的输出缓冲级可驱动 (吸收或输出电流)4 个 ttl 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端 口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻某个引脚 被外部信号拉低时会输出一个电流 iil。与 at89c51 不同之处是,pl.0 和 p1.1 还可分 别作为定时/计数器 2 的外部计数输入(pl.0/t2 )和输入(p1.1/t2ex); 5.p2 口:p2 口 是一个带有内部上拉电阻的 8 位双向 i/o 口,p2 的输出缓冲级可 驱动(吸收或输出电流)4 个 ttl 逻辑电路。对端口 p2 写“l“,通过内部的上拉电阻 把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某 个引脚被外部信号拉低时会输出一个电流(llt)。在访问外部程序存储器或 16 位地 址的外部数据存储器(例如执行 movxdptr 指令)时,p2 送出高 8 位地址数据。在访 问 8 位地址的外部数据存储器、如执行 movxri 指令)时,p2 口输出 p2 锁存器的内容。 flash 编程或校验时,p2 亦接收高位地址和一些控制信号; 6.p3 口:p3 口是一组带有内部上拉电阻的 8 位双向 i/o 口。p3 口输出缓冲级可驱 动(吸收或输出电流)4 个 ttl 逻辑门电路。对 p3 口写入“1”时,它们被内部上拉电 阻拉高并可作为输入端口。此时,被外部拉低的 p3 口将用上拉电阻输出电流(iil)。 p3 口除了作为一般的 i/0 口线外,更重要的用途是它的第二功能,如下所示: p3.0 rxd(串行输入口); p3.1 txd(串行输出口); p3.2 into(外中断 0); p3.3 into(外中断 l); 毕业设计说明书(论文) 第 10 页 共 49 页 p3.4 to (定时计数器 0 ); p3.5 tl (定时计数器 l ) ; p3.6 wr(外部数据存储器写选通); p3.7 rd(外部数据存储器读选通) ; 此外,p3 口还接收一些用于 flash 闪速存储器编程和程序校验的控制信号。 7.rst:复位输入。当振荡器工作时,rst 引脚出现两个机器周期以上高电平将使 单片机复位; 8.ale/prog:当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉 冲用于锁存地址的低 8 位字节一般情况下,ale 仍以时钟振荡频率的 1/6 输出固定的 脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据 存储器时将跳过一个 ale 脉冲。如有必要,可通过对特殊功能寄存器(sfr)区中的 8eh 单元的 d0 位置位可禁止 ale 操作。该位置位后,只有一条 movx 和 movc 指令才 能将 ale 激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ale 禁止 位无效; 9.psen:程序储存允许 psen 输出是外部程序存储器的读选通信号,当 at89c52 由 外部程序存储器取指令(或数据)时,每个机器周期两次 psen 有效,即输出两个脉冲。 在此期间,当访问外部数据存储器,将跳过两次 psen 信号; ea/vpp:外部访问允许。欲使 cpu 仅访问外部程序存储器(地址为 0000h-ffffh ) , ea 端必须保持低电平(接地)需注怠的是:如果加密位 lbi 被编程,复位时内部会锁 存 ea 端状态。如 ea 端为高电平(接 vcc 端), cpu 则执行内部程序存储器中的指令。 10.xtal1:振荡器反相放大器的及内部时钟发生器的输入端; 11.xtal1:振荡器反相放大器的输出端; 特殊功能寄存器:在 at89s52 片内存储器中,80h-ffh 共 128 个单元为特殊功能寄 存器(sfe ) , sfr 的地址空间映象如表 2 所示。并非所有的地址都被定义,从 80h- ffh 共 128 个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元 读写将是无效的,读出的数位将不确定,而写入的数据也将丢失。不应将数据“1“写入 未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复 位后这些单元数值总是“0”。 at89s52 最小系统组成设计3: 1时钟电路:时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为 毕业设计说明书(论文) 第 11 页 共 49 页 基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电 路的质量也直接影响单片机系统稳定性。 电路中的电容典型值通常选择 20pf 左右,该电容大小会影响振荡器频率的高低、 振荡器的稳定性、起振的快速性和温度的稳定性。晶振的振荡器频率的范围通常在 1.212mhz 之间,晶体的频率越高,则系统得时钟频率也就变高,单片机的运行速度 也就越快。但反过来运行速度快,对存储器的速度要求就高。对印刷电路板的工艺要 求也高,即要求浅间的寄生电容要小;晶体和电容应尽可能安装得与单片机芯片靠近, 以减少寄生生活,更好的保证振荡器稳定,可靠地工作。本设计采用 12mhz 晶振,并 联两个 22pf 瓷片电容 c1 及 c2 构成时钟电路,如图 2-2 所示。 图 2-2 单片机晶振电路 2复位电路:复位电路设计中除了单片机自身需要复位外,此外,单片机还有外 接复位电路,为保证系统电路稳定,可能会用到外接复位电路,单片机复位电路如图 2-3 所示。 图 2-3 单片机复位电路 工作原理如图 2-3 所示:电容值为 10uf,电阻值为 1k,复位时间为 1ms。当 vcc 上电时,c 充点,在 1k 电阻上出现电压,使得单片机复位;几个毫秒后,c 充满,10k 电阻上电流降为 0,电压也为 0,使得单片机进入工作状态。工作期间,按下 s,c 放 电【13】。s 松手,c 又充点,在 1k 电阻上出现电压,使得单片机复位。几个毫秒后,单 毕业设计说明书(论文) 第 12 页 共 49 页 片机进入工作状态。如图 2-3 为复位电路图,其中 rst 与单片机的第 9 引脚相连接, 即单片机的 rst 相连。其中 vcc 与+5v 电源连接。 2.1.22.1.2 单片机最小系统图单片机最小系统图 单片机最小系统图如图2-4所示。 图2-4 单片机最小系统 图2-4是单片机最小系统连接图。单片机的最小系统中18引脚和19引脚接时钟电路, xtal1接外部晶振和电容的一端,xtal2接外部晶振和电容的另一端,两个电容均采用 22pf的。第9引脚为复位输入端,接上电容、电阻后能够上电复位,20引脚为接地端,40 引脚为电源端。复位电路采用上电复位方式。 2.2 红外遥控电路 2.2.12.2.1 红外遥控简红外遥控简介介 红外遥控部分采用 pt2262-pt2272 红外遥控发射/接收芯片。pt2262/2272 是一对 带地址、数据编码功能的红外遥控发射/接收芯片。其中发射芯 pt2262-ir 将载波振荡 器、编码器和发射单元集成于一身,使发射电路变得非常简洁。 采用脉宽调制的串行码,以脉宽为 0.565ms、间隔 0.56ms、周期为 1.125ms 的组 合表示二进制的“0” ;以脉宽为 0.565ms、间隔 1.685ms、周期为 2.25ms 的组合二进 制的“1” ,其波形如图 2-5 所示。 毕业设计说明书(论文) 第 13 页 共 49 页 图2-5 遥控码的“0”和“1”(注:所有波形为接收端的与发射相反) 其中程序部分采用定时器对脉冲进行定时,再读取 t0 定时器的长度,如果是 1.125ms 就认为是“0” ;将其存入数组中,如果是 2.25ms 就认为是“1” ,将其存入数 组中。 遥控器在按键按下后,周期性地发出同一种 32 位二进制码,周期约为 108ms。一 组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在 45ms63ms 之间,图 2-6 为发射波形图。 图2-6 遥控连发信号波形 2.2.22.2.2 红外遥控红外遥控电路设计电路设计 红外遥控与单片机的连接原理图4如图 2-6 所示。 图2-7 红外遥控与单片机的连接原理图 毕业设计说明书(论文) 第 14 页 共 49 页 图2-7是单片机与红外遥控的连接图。一体化红外接收头的1号端与单片机的p3.2 口(into端)相连,2号端与电容的一端相连并接地,3号端与电容的另一端相连并接到 电源端,其中电容采用10uf的电容。红外信号输出到单片机的p3.2 ,该口对应的第二 功能是外部中断0(int0),利用该口的第二功能,一旦红外线信号到来,p3.2被拉低,单片 机中止当前的工作转移到接收、处理红外信号。开启中断功能的目的,既减轻了单片机 的工作负担,又保证接收到的红外信号的完整性,同时在手动工作状态下,单片机进入 睡眠后,利用外部中断功能完成对单片机的唤醒。 2.3 液晶显示电路 显示器是最常用的输出设备,其种类繁多,但在单片机系统设计中最常用的是发光 二极管显示器(led)和液晶显示器(lcd)两种。由于这两种显示器结构简单,价格 便宜,接口容易实现,因而得到广泛的应用,本次方案采用了 1602 液晶显示器5。 2.3.12.3.1 16021602 的功能简介的功能简介 1.40 通道点阵 lcd 驱动; 2.可选择当作行驱动或列驱动; 3.输入/输出信号:输出,能产生 202 个 lcd 驱动波形;输入,接受控制器送出的串 行数据和控制信号,偏压(v1v6); 4.通过单片机控制将时间信息显示出来。 具体引脚功能见表 2-1: 表2-1 1602引脚和指令功能 引脚符号名称功能 1vss 接地 0v 2vdd 电路电源5v(正负 10%) 3vee 液晶驱动电压 v0 为液晶显示器对比度调整端,接 正电源时对比度最弱,接地电源时对比 度最高。 4rs 寄存器选择信号 高电平时选择数据寄存器、低电平 时选择指令寄存器。 5r/w 读/写信号高电平时进行读操作,低电平时进 毕业设计说明书(论文) 第 15 页 共 49 页 行写操作。当 rs 和 rw 共同为低电平时 可以写入指令或者显示地址,当 rs 为低 电平 rw 为高电平时可以读忙信号,当 rs 为高电平 rw 为低电平时可以写入数据。 6e 片选信号 当 e 端由高电平跳变成低电平时, 液晶模块执行命令。 7-14db0-db7 数据线 d0d7 为 8 位双向数据线。 2.3.22.3.2 显示输出电路设计显示输出电路设计 显示液晶连接原理图如图 2-8 所示 图2-8 显示液晶连接原理图 图 2-8 是单片机与 1602 的连接图。其中,d0-d7(图中 8-15 脚)为 1602 数据口, 分别接单片机的 p0.0-p0.7 口,由于单片机的 p0 口是漏极输出,需接上拉电阻拉高高 电平,才具有基本 io 口正常驱动能力,电阻同时起限流作用;单片机的 p2.0 口接 1602 的复位脚 rs;单片机的 p2.1 口接 1602 的读/写控制脚 rw;单片机的 p2.2 口接 1602 的使能端 e;通过一个 10k 的电位器调整 vee 电压改变液晶对比度,对比度调节不 当时会产生“鬼影” 。通过这种连接方式,就可以实现单片机对 1602 控制显示时间、星 期以及日期。 毕业设计说明书(论文) 第 16 页 共 49 页 2.4 时间生成电路 2.4.12.4.1 ds1302ds1302 的简介与结构功能的简介与结构功能 ds1302 时钟芯片包括实时时钟/日历和 31 字节的静态 ram。它经过一个简单的串 行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对 于小于 31 天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可 以采用 24h 或带 am(上午)/pm(下午)的 12h 格式。采用三线接口与 cpu 进行同步 通信,并可采用突发方式一次传送多个字节的时钟信号或 ram 数据。ds1302 有主电源/ 后备电源双电源引脚:vcc1 在单电源与电池供电的系统中提供电源,并提供低功率的 电池备份;vcc2 在双电源系统中提供主电源,在这种运用方式中 vcc1 连接到备份电, 以便在没有主电源的情况下能保存时间信息以及数据。ds1302 由 vcc1 或 vcc2 中较大 者供电。当 vcc2 大于 vcc10.2v 时,vcc2 给 ds1302 供电;当 vcc2 小于 vcc1 时, ds1302 由 vcc1 供电。 1.ds1302 的性能特性: (1)实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数; (2)用于高速数据暂存的 318 位 ram; (3)最少引脚的串行 i/o; (4)2.55.5v 电压工作范围; (5)2.5v 时耗电小于 300na; (6)用于时钟或 ram 数据读/写的单字节或多字节(脉冲方式)数据传送方式; (7)简单的 3 线接口; (8)可选的慢速充电(至 vcc1)的能力。 2.ds1302 数据操作原理: ds1302 在任何数据传送时必须先初始化 ,把 rst 脚置为高电平,然后把 8 位地址 和命令字装入移位寄存器,数据在 sclk 的上升沿被输出。无论是读周期还是写周期 , 开始 8 位指定 40 存器中哪个将被访问到。在开始 8 个时钟周期,把命令字节装入移 位寄存器之后,另外的始终周期在读操作时输出数据 ,在写操作时写入数据。时钟脉 冲的个数在单字节方式下为 8 加 8,在多字节方式下为 8 加字节数,最大可达 248 字数。 如果在传送过程中置 rst 脚为低电平,则会中止本次数据传送,并且 i/o 引脚变 毕业设计说明书(论文) 第 17 页 共 49 页 为高阻态。上电运行时,在 vcc 2.5v 之前,rst 脚必须保持低电平。只有在 sclk 为低电平时,才能将 rst 置为高电平。ds1302 的引脚图如图 2-9 所示。 图 2-9 ds1302 的引脚 ds1302 的控制字如表 2-2 所示。控制字节的最高有效位(位 7)必须是逻辑 1;如 果它为 0。则不能把数据写入到 ds1302 中。位 6 如果为 0。则表示存取日历时钟数据; 为 1 表示存取 ram 数据。位 51(a4a0)指示操作单元的地址。最低有效位(位 0)如为 0,表示要进行写操作;为 1 表示进行读操作。控制字节总是从最低位开始输 入/输出。 表2-2 时钟芯片ds1302控制字的位 ramram 1 ck a4a3a2a1a0 k 为了提高对 32 个地址的寻址能力(地址/命令位 15 = 逻辑 1),可以把时钟/日 历或 ram 寄存器规定为多字节(burst)方式。位 6 规定时钟或 ram,而位 0 规定读或写。 在时钟/日历寄存器中的地址 931 或 ram 寄存器中的地址 31 不能存储数据。在多字 节方式中,读或写从地址 0 的位 0 开始。必须按数据传送的次序写最先的 8 个寄存器。 但是,当以多字节方式写 ram 时,为了传送数据不必写所有 31 字节,不管是否写了全部 31 字节,所写的每一字都将传送至 ram。 控制字节的最高位为有效位,必须为 1;位 6 为 0,表示存取日历时钟数据,为 1; 表示存取 ram 数据,位 5 至位 1 表示操作单元地址,最低位如果为 0,表示写操作,为 1 表 示读操作。控制字总是从低位开始输入。 采用 ds1302 时钟芯片,是由于 ds1302 采用双引脚电源,若系统断点后,芯片可 由备份电源继续供电,芯片仍可以工作,断点后无需设置时间,系统即可继续显示正常时 间。时钟芯片 ds1302 引脚功能见表 2-3。 表2-3 ds1302引脚功能 毕业设计说明书(论文) 第 18 页 共 49 页 引脚号引脚名称功能 1vcc2主电源 2,3x1,x2震荡源,外接 32.768khz 晶振 4gnd地线 5rst复位/片选线 6i/o串行数据输入/输出端(双向) 7sclk串行数据输入端 8vcc1后备电源 图2-10 ds1302数据读/写时序 ds1302 共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 bcd 码形式。其中奇数为读操作,偶数为写操作,时钟芯片 ds1302 读/写数据时序图如 图 2-10 所示。 时钟暂停:秒寄存器的位 7 定义位时钟暂停位。当它为 1 时,ds1302 停止振荡, 进入低功耗的备份方式。通常在对 ds1302 进行写操作时(如进入时钟调整程序) ,停 止振荡。当它为 0 时,时钟将开始启动。 2.4.22.4.2 时间生成电路设计时间生成电路设计 时钟芯片与单片机的连接如下图 2-11 毕业设计说明书(论文) 第 19 页 共 49 页 图2-11 时钟芯片与单片机的连接 图 2-11 是单片机与时钟芯片的连接图。ds1302 时钟芯片采用 32.768khz 外部晶振 便于时钟的生成。采用 1 号和 8 号引脚双电源供电,保证了系统断电后时钟芯片仍可处 于工作状态,以便再次上电后不需要设置时间。利用 ds1302 时钟芯片独立于单片机来 计时,在提高计时进度的同时也提高了整个系统的抗干扰能力。ds1302 通过 sclk、i/o、rst 端口和单片机 at89s52 进行通信。sclk 接至单片机 p3.7 口,在读写操 作时给 ds1302 提供相应的时钟脉冲;i/o 接至 p3.6 用于传送数据;rst 接至单片机 p3.7 用于单片机与时钟芯片间的数据传送的开始与结束。 2.5 电源电路 由于单片机系统的工作电压只要 5v 就可以了,所以可用最简单的降压稳压电路6。 其原理框图如图 2-12 所示。 220v 电压 变压 器 桥堆 整流 稳压 输出 电容 滤波 输 出 图 2-12 稳压电源电路原理框图 +5v 直流稳压电源的工作电路,采用集成三端稳压器 7805 构成【7】。集成三端稳 压器因其稳压精度高、工作稳定可靠、外围电路简单、容易设计和制作、体积小、重 量轻、成本低、维修简单等优点。 +5v 直流稳压电路原理5图如图 2-13 所示。ic 采用采用集成三端稳压器 7805。c1、c2 分别为输入端和输出端滤波电容。 毕业设计说明书(论文) 第 20 页 共 49 页 图2-13 稳压电源电路原理图 图 2-13 中变压器将交流电网 220v 的电压变为 12v 的交流电压,然后通过全波整 流将交流电压变成脉动的直流电压,电压值约为 20v。由于此脉冲的直流电压还含有较 大的纹波,必须通过滤波电容 c1 加以滤除,从而得到平滑的直流电压。但这样的电压 还随电网电压波动(一般左右的波动) 、负载和温度的变化而变化。因而在全%10 波整流、滤波之后,还需接入集成三端稳压器 7805 进行稳压,使输出的直流电压值为 +5v。 毕业设计说明书(论文) 第 21 页 共 49 页 第三章 红外遥控万年历的软件设计 本章节主要介绍了电路的软件设计,整个系统主程序、红外遥控按键扫描程序、 红外遥控解码程序、时间生成程序程序和显示程序组成,本文将对这几个子程序的设 计做介绍。 3.1 软件总体设计 图 3-1 为软件设计概要图8。软件部分包括主程序、红外遥控按键扫描程序、红 外遥控解码程序、时间生成程序程序和显示程序。 软件结构 红外驱动lcd驱动 时间生成 驱动 按键扫描信息设置 提取时间信 息 设置信息 图3-1 软件设计概要图 3.2 主程序设计 毕业设计说明书(论文) 第 22 页 共 49 页 开始 初始化 是否调整模式?遥控按键检测时间信息调整 正常时间显示 是否调整完? n y y n 图3-2 主程序流程图 图 3-2 为主程序流程图。系统上电后进行初始化并打开液晶显示,然后再判断是 否进入调整模式,调整模式即时间调整日期调整模式,若未进入模式判断则正常显示; 若进入调整模式则对遥控按键进行检测并作出响应,对时间其日期信息进行调整,最 后通过液晶显示【9】。 3.3 红外按键扫描程序设计 毕业设计说明书(论文) 第 23 页 共 49 页 设定标志位count count=1? count=2? count=3? count=4? count=5? count=6? count=7? 保存信息 结束 对秒进行调整 对分进行调整 对时进行调整 对星期进行调整 对日进行调整 对月进行调整 对年进行调整 n n n n n n n y y y y y y y 图 3-3 红外扫描按键程序流程图 图 3-3 为红外扫描按键程序流程图。红外遥控按键扫描程序,进入按键程序后对 count 进行判断,当 count 为 1 时,对秒进行调整;当 count 为 2 时,对分进行调整; 当 count 为 3 时,对时进行调整;当 count 为 4 时,对星期进行调整;当 count 为 5 时,对日进行调整;当 count 为 6 时,对月进行调整;当 count 为 7 时,对年进行调 毕业设计说明书(论文) 第 24 页 共 49 页 整。 3.4 红外遥控解码程序设计 关中断 开定时器t0 p32=1? 关定时器t0 关中断 8ms低电平? 开定时器t0 p32=1? 开定时器t0 3ms低电平? 32位码到了吗? 开中断 返回 开定时器t0 p32=1? 关定时器t0 0.56ms低电平? 开定时器t0 p32=1? 关定时器t0 0.56ms低电平? 数组赋值 “0” 数组赋值 “1” n y n y y n y n y n n y y n y y n 图 3-4 红外遥控解码流程图 毕业设计说明书(论文) 第 25 页 共 49 页 图3-4为红外遥控解码流程图。开定时器t0对9ms低电平,判断是否为9ms。接着开 关器判断4.5ms高电平。接收发送码正确,循环32次把32位码保存在一个数组中10。 其中程序部分采用定时器对脉冲进行定时,再读取t0定时器的长度,如果是 1.125ms就认为是“0”,将其存入数组中,如果是2.25ms就认为是“1”,将其存入数 组中。 3.5 时间生成程序设计 开始 写入允许 写1302地址 向地址写初 始数据 禁止写入 写入允许 写入地址 向地址写入数据 允许读数据 读数据地址 读数据 (a) ds1302 初始化流程图 (b) ds1302 写数据流程图 (c) ds1302 读程序流程图 图3-5 时间生成程序流程图 图 3-5 为时间生成程序流程图,首先时钟芯片进行初始化,判断时钟芯片是否关 闭,然后允许写入,写时钟芯片 ds1302 地址,向地址写入数据,最后禁止写入。 3.6 显示程序设计 毕业设计说明书(论文) 第 26 页 共 49 页 获取时间日 期信息 时间格式转 换 日期格式转 换 确定显示位 置 显示输出 图3-6 显示流程图 图 3-6 为显示流程图。进入显示程序,先获取时钟芯片的时间日期数据,然后确 定液晶字符显示位置,最后将字符串通过液晶显示出来12。显示流程图如图 3-6 所示。 时间、日期信息的转换: 1.ds1302 写时间日期信息的转换: ds1302 里的时间是以 bcd 码形式存放的。编程时要把数据存在 ds1302 里时,把时 间日期数据转换成压缩的 bcd 码。 如:(x/10)build target,对当前工 程进行连接,如如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产 生目标代码:如果选择 rebuild all target files 将会对当前工程中的所有文件重新进行编 译然后再连接,确保最终产生的目标代码是最新的,而 translate项则仅对该文件进 行编译,不进行连接。 以上操作也可以通过工具栏按钮直接进行。图 4-1 是有关编译、设置的工具栏按 钮,从左到右分别是:编译、连接、全部重建、停止编译和对工程进行设置。 编译过程中的信息将出现在输出窗口的 build 页中,如果源程序中有语法错误, 会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复修改之后,最 终会得到如图 4-2 所示的结果,提示获得了名为 exam 1.hex 的文件,该文件即可被编 程器读入并写到芯片中,同时还产生了一些其它相关的文件,可被用于 keil 的仿真与 调试,这时可以进入下一步调试的工作。 3. 调试主要方法和技巧 (1)常用调试命令 在对工程成功进行汇编、连接以后,按 ctrl+5 或者使用菜单 debug-start/stop debug session 即可进入调试状态,keil 内建立一个仿真 cpu 来模拟执行程序,该仿 真 cpu 功能强大,可以在没有硬件和仿真机的情况下进行程序的调试。 进入调试状态后,界面与编辑状态相比有明显的变化,debug 菜单项中原来不能用 的命令现在可以使用了,工具栏会多出一个用于运行和调试的工具条,debug 菜单上 的大部分命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单 步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、 反汇编窗口、观察窗口、代码作用范围分析、性能分析、工具按钮等命令。 学习程序调试,必须明确两个重要的概念,即单步执行与全速运行。全速执行是 指一行程序执行完以后紧接着执行下一行程序,中间不停止,这样程序执行的速度很 快,并可以看到该段程序执行的总体效果,即最终结果正确还是错误,但如果程序有 错,则难以确认错误出现在哪些程序行。单步执行是每次执行一行程序,执行完改行 程序以后即停止,等待命令执行下一行程序,此时可以观察该行程序执行完以后得到 的结果,是否与我们写该行程序所想得到的结果相同,借此可以找到程序中的问题所 在。程序调试中,这两种运行方式都要用到。 (2)在线汇编 毕业设计说明书(论文) 第 31 页 共 49 页 在进入 keil 的调试环境以后,如果发现程序有错,可以直接对源程序进行修改, 但是要使修改后的代码起作用,必须先退出调试环境,重新进行编译、连接后再次进 入调试,如果只是需要对某些 进行测试,或仅需要对源程序进行临时的修改,这样的 过程未免有些麻烦,为此 keil 软件提供了在线汇编的能力,将光标定位于需要修改的 程序行上,用菜单 debug-inline assambly.即可出现如图 4-3 的对话框,在 enter new 后面的编辑框内直接输入需要更改的程序语句,输入完后键入回车将自动指向下 一条语句,可以继续修改,如果不再需要修改,可以点击右上角的关闭按钮关闭窗口。 图 4-3 在线汇编窗口 (3)断点设置 程序调试时,一些程序行必须满足一定的条件才能被执行到,这些条件往往是异 步发生或难以预先设定的,这类问题使用单步执行的方法是很难调试的,这时就要使 用到程序调试中的另一种非常重要的方法断点设置。断点设置的方法有多种,常用 的是在某一程序行设置断点,设置好断点后可以全速运行程序,一旦执行到该程序行 停止,可在此观察有关变量值,以确定问题所在。在程序行设置/移除断点的方法是将 光标定位于需要设置断点的程序行,使用菜单 debug-insert/remove breakpoint 设置或 移除断点:debug-enable/disable breakpoint 是开启或暂停光标所在行的断点功能: debug-disable all breakpoint 暂停所有断点:debug-kill all breakpoint 清除所有的 断点设置。这些功能也可以用工具条上的快捷按钮进行设置。 软件调试主要有以下两种方法: 1.将整个联合起来调试,对整个软件的功能进行验证; 2.分开调试,就是将系统分成独立的小模块,然后分别对这些小模块写入程序调 试。 一般采用第二种软件调试方法,可以提高调试效率,也容易解决调试中出现的问 题。 4.2.24.2.2 子程序调试子程序调试 毕业设计说明书(论文) 第 32 页 共 49 页 在调试主程序时,必然要调用相关的功能子程序。因此,首先应明确子程序的具 体功能,通过对子程序的分析,确定子程序的入口、出口参数及相关标识位的状态, 然后再满足入口的条件下,设法检查从主程序进入子程序,再由子程序返回到主程序 的运行过程。可采取跟踪运行的方法,检查从主程序进入子程序内部程序的运行过程, 再通过单步运行等方法检查子程序内部的运行情况和返回主程序的过程14。 4.2.4.2.3 3 主程序调试主程序调试 主程序运行后,在无任何按键输入时观察有无显示,液晶显示屏是否工作,年、 月、日、星期、时、分以及秒显示是否正确。若运行结果不正确,首先应根据程序运 行的实际现象分析判断哪些因素可能引起相关故障,再通过调试方法逐一认证和排故。 例如:若定时/计数器的初始化出错,则时钟不能工作;若显示程序出错,则将不能正 确显示时钟信息;若定时/计数器中断子程序出错,则显示时间信息规律不正常。 4.3 芯片固化 先把 aedk51hb15单片机仿真机接上计算机,把仿真机上的三个接口,分别接到电 源的地、+5v、12v。把 89s52 插入仿真机的卡槽内,通过软件编译程序,并连接仿 真机,在工具菜单下、芯片固化栏内,擦除、查空、固化,就完成了程序的烧入。 烧片时应注意的问题: 1.芯片的放置要正确,否则有可能造成芯片烧坏。 2.配置芯片时要注意选对芯片型号,例如用 stc89s5216就要选:mcu stc89s52。 3.在烧片之前,应该先擦除芯片,防止芯片内原有遗留程序的影响。 毕业设计说明书(论文) 第 33 页 共 49 页 参考文献 1 万福君,潘松峰,刘芳等.单片机原理及接口m.北京:清华大学出版社,2008. 2 龚运新,胡长胜.单片机实用技术教程m.北京:北京师范大学出版社,2002. 3 胡汉才.单片机原理及其接口技术m.北京:清华大学出版社,2004. 4 何立民.单片机应用技术选编m.北京:北京航空大学出版社,1998. 5 吴锋,吴皓东.单片机控制简易数字钟j.电子制作,2004,(07):24-26. 6 王文辉,刘淑英,蔡胜乐等.电路与电子学(第 3 版)m.北京:电子工业出版社, 2009. 7 杨拴科.模拟电子技术m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论