




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河南科技学院 毕毕业业设设计计论论文文 论文题目论文题目:数字稳压电源设计 系 部 专 业 班 级 学生姓名 指导教师 学 号 目目 录录 软件介绍.1 设计任务.3 英文摘要.3 绪论.4 第一章、设计要求与方案论证第一章、设计要求与方案论证.5 1.1 设计要求.5 1.2 系统基本方案选择和论证.5 1.2.1单片机芯片的选择方案和论证.5 1.2.2 显示模块选择方案和论证.5 1.2.3 时钟芯片的选择方案和论证.6 1.2.4 温度传感器的选择方案与论证.6 1.3 电路设计最终方案决定.6 第二章、系统的硬件设计与实现第二章、系统的硬件设计与实现.7 2.1 电路设计框图.7 2
2、.2 系统硬件概述.7 2.3主要单元电路的设计.8 2.3.1单片机主控制模块的设计.8 2.3.2时钟电路模块的设计.11 2.3.3温度采集模块设计.12 2.3.4 电路原理及说明.13 2.3.5显示模块的设计.16 第三章、系统的软件设计第三章、系统的软件设计.22 3.1程序流程框图.22 3.2 子程序的设计.25 3.2.1 ds18b20温度子程序.25 3.2.2 读、写ds1302子程序.26 第四章、指标测试第四章、指标测试.28 4.1 测试仪器.28 4.2硬件测试.28 4.3软件测试.28 4.4测试结果分析与结论.29 4.4.1 测试结果分析.29 4.4
3、.2 测试结论.29 结束语结束语.30 致谢、参考文献致谢、参考文献.31 附录一原理图.32 附录二pcb图.32 摘摘 要要 设计一种基于单片机的电子时钟。针对题目要求,本系统电路设计采用 at89s51 单片机,作为液晶显示万年历的中心控制器件。按照硬件应用电路与软 件设计模块化的设计思路,依据设计方案的要求,本系统电路设计分为: at89s51 单片机最小系统、温度检测(ds18b20)电路模块,实时时钟 (ds12c887)电路模块,lcd 显示电路模块,按键控制电路模块等几个部分。这 样设计的结果使电路结构简洁,各种要求能完全保证,同时使系统电路的稳定性 得到提高。在显示控制的编
4、程中,查阅许多相关资料,经过最后的软件仿真与调 试,硬件电路的性能测试,证明是成功的。 关键词 单片机;lcd;实时时钟; ds18b20; ds12c887 绪 论 众所周知,科学技术的发展离不开实践,实践是促进科学技术发展的重要手 段,应用起来更加广泛,电子系统的功能越来越强大,电路图也越来越复杂,印 刷电路板的走线越来越复杂和精密。计算机的应用使得我们对各种复杂的电路设 计工作变得简单快捷。 “科学实践是科学理论的源泉” 。基于“基础研究,应用研 究,开发研究,生产研究”四个方面,如果结合得好的话,经济建设和国防建设 定会兴旺发达。 验证性实践和训练性的实践主要是针对电子技术本门学科范围
5、内的理论验证 和实际技能的培养。 综合性的实践,属于应用型实践,目的是培养学生综合运用所学的理论的能 力和解决比较复杂的实际问题的能力。 设计性实践,主要侧重于某些理论知识的灵活运用。随着电子技术的飞速发 展,各种新型电子器件和集成电路应用越集中,使得更好更复杂的电路得以实现。 电子设计自动化(electronics design automates,即 eda 技术)工具的集成设 计环境, protel99se、powerpcb、altium designer 等软件的运用使得设计电路 更加方便。 作为电子专业的学生,更应该熟练掌握各种电路编辑软件,作为专业必需的 技能更要及时地对这一类软件
6、的更新版本进行学习,其日趋强大的功能是对我们 专业技能的补充。 随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类 不断研究,不断创新纪录。本课题设计采用 at89s51 单片机作为核心。利用美国 dallas 公司的新型时钟日历芯片 ds12c887,它可以对年、月、日、时、分、秒 进行计时,而且 ds12c887 的使用寿命长,误差小。对于数字电子万年历采用直 观的数字显示,可以同时显示年、月、日、时、分、秒等信息,还具有时间校准 等功能。温度测量使用 ds18b20,它不仅检测温度灵敏度高而且可以设置温度上 下限报警。显示采用 1602 液晶模块显示,功耗小,能在 5v
7、的低压工作,使用方 便。 科学的进步要求我们在不断的实践中熟练各种制板的技术,并不断地总结经 验。这次毕业设计对我来说非常重要,这是对我的一次考验和挑战,好的开头是 成功的第一步,我更应该加倍努力去完成,尽力做到更好,为将来的学习奠定良 好的基础! 第一章设计要求与方案论证 1.11.1设计要求设计要求: ()基本要求 具有年、月、日、星期、时、分、秒等功能; 时间与阴、阳历能够自动关联; 具有温度计功能; 具备年、月、日、星期、时、分、秒校准功能; ( 2 ) 创新要求 具有上、下课响铃功能; 具有防御报警功能; 1.2 系统基本方案选择和论证 1.2.1 单片机芯片的选择方案和论证: 方案
8、一: 采用 89c51 芯片作为硬件核心,采用 flash rom,内部具有 4kb rom 存储空 间,能于 3v 的超低压工作,而且与 mcs-51 系列单片机完全兼容,但是运用于电路 设计中时由于不具备 isp 在线编程技术, 当在对电路进行调试时,由于程序的错 误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一 定的损坏。 方案二: 采用 at89s52,片内 rom 全都采用 flash rom;能以 3v 的超底压工作;同时 也与 mcs-51 系列单片机完全该芯片内部存储器为 8kb rom 存储空间,同样具有 89c51 的功能,且具有在线编程可擦除技术,当
9、在对电路进行调试时,由于程序 的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以 不会对芯片造成损坏。 所以选择采用 at89s52 作为主控制系统. 1.2.2 显示模块选择方案和论证: 方案一: 该系统采用 mcs-51 系列单片机 at89s51 作为控制核心。温度检测采用 ds18b20 温度传感器;利用单片机定时器实现时间计数走时;显示采用 16 个数码 管显示。该方案的特点是中小规模集成电路应用技术成熟,性能可靠,程序编写简 单,占用单片机的 i/o 口少。但是由于定时器实现,所以电路断电后,就不能计 时;并且运用数码管比较多电路连线比较复杂;制作过程工序比较烦
10、琐,产品体 积大。. 方案二: 该系统仍采用 mcs-51 系列单片机 at89s51 作为控制核心。温度检测仍采用 ds18b20 温度传感器;采用实时时钟芯片 ds12c887 计时,由于其内部自带锂电池, 断电后内部计数器仍在工作,可以防止突然断电,并且可以自动进行闰年调整和 设置定时时间。显示采用液晶显示模块 1602,其体积小,集成度高,耗电量小。 电路连线比较简单,并且制作产品体积小,便于控制和实现。整个系统具有极其 灵活的可编程性,能方便地对系统进行功能的扩张和更改性。 1.2.3 时钟芯片的选择方案和论证: 方案一: 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、
11、星期、 时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的 时间误差较大。所以不采用此方案。 方案二: 采用 ds1302 时钟芯片实现时钟,ds1302 芯片是一种高性能的时钟芯片,可自 动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位 的 ram 做为数据暂存区,工作电压 2.5v5.5v 范围内,2.5v 时耗电小于 300na. .2.4 温度传感器的选择方案与论证: 方案一: 使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利 用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进 行 a/d 转换。 。此设计
12、方案需用 a/d 转换电路,增加硬件成本而且热敏电阻的感 温特性曲线并不是严格线性的,会产生较大的测量误差。 方案二: 采用数字式温度传感器 ds18b20,此类传感器为数字式传感器而且仅需要一条 数据线进行数据传输,易于与单片机连接,可以去除 a/d 模块,降低硬件成本, 简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。 1.3 电路设计最终方案决定 综上各方案所述,对此次作品的方案选定: 采用 at89s52 作为主控制系统; ds1302 提供时钟;数字式温度传感器;1602 液晶显示模块显示方案。 第二章系统的硬件设计与实现 2.1 系统原理框图 图 2-1 系
13、统原理图 2.22.2 系统硬件概述系统硬件概述 本电路是由 at89s52 单片机为控制核心,具有在线编程功能,低功耗,能在 3v 超低压工作;时钟电路由 ds1302 提供,它是一种高性能、低功耗、带 ram 的 实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补 偿功能,工作电压为 2.5v5.5v。采用三线接口与 cpu 进行同步通信,并可采用 突发方式一次传送多个字节的时钟信号或 ram 数据。ds1302 内部有一个 31*8 的 用于临时性存放数据的 ram 寄存器。可产生年、月、日、周日、时、分、秒,具 有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保
14、存功能;温度的采 集由 ds18b20 构成;显示部份有 1602 模块进行显示。 2.32.3 主要单元电路的设计主要单元电路的设计 2.3.12.3.1 单片机主控制模块的设计单片机主控制模块的设计 at89s52at89s52 at89s52 主要性能 与 mcs-51 单片机产品兼容 、8k 字节在系统可编程 flash 存储器、 1000 次擦写周期、 全静态操作: 0hz33hz 、 三级加密程序存储器 、 32 个可编程 i/o 口线 、三个 16 位定时器/计数器 八个中断源 、全双工 uart 串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗 定时器 、双数据指
15、针 、掉电标识符 。 功能特性描述 at89s52 是一种低功耗、高性能 cmos8 位微控制器,具有 8k 在系 统可编程 flash 存储器。使用 atmel 公司高密度非 易失性存储器技术制造, 与工业 80c51 产品指令和引脚完 全兼容。片上 flash 允许程序存储器在系 统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位 cpu 和在 系统 可编程 flash,使得 at89s52 为众多嵌入式控制应用系统提 供高灵 活、超有效的解决方案。 at89s52 具有以下标准功能: 8k 字节 flash,256 字节 ram, 32 位 i/o 口线,看门狗定时器, 2 个数
16、据指针, 三个 16 位 定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口, 片内晶振及时钟电路。另外, at89s52 可降至 0hz 静态逻 辑操作,支持 2 种软件可选择节电模式。空闲模式下, cpu 停止工作,允许 ram、定时 器/计数器、串口、中断继续工 作。掉电保护方式下, ram 内容被保存,振 荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8k 字节在系统可编程 flash at89s52 p0 口:p0 口是一个 8 位漏极开路的双向 i/o 口。作为输出口,每位能 驱动 8 个 ttl 逻辑电平。对 p0 端口写“1”时,引脚
17、用作高阻抗输入。 当访问外部程序和数据存储器时, p0 口也被作为低 8 位地址/数据复用。 在这种模式下 ,p0 具有内部上拉电阻。 在 flash 编程时,p0 口也用来接收指令字节;在程序校验时,输出指令 字节。程序校验时,需要外部上拉电阻。 p1 口:是一个具有内部上拉电阻的 8 位双向 i/o 口,p1 输出缓冲器 能驱动 4 个 ttl 逻辑电平。对 p1 端口写“1”时,内部上拉电阻把端口拉高, 此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻 的原因,将输出电流( iil)。 此外,p1.0 和 p1.2 分别作定时器 /计数器 2 的外部计数输入 (p1.
18、0/t2)和时器/计数器 2 的触发输入( p1.1/t2ex)。 在 flash 编程和校验时, p1 口接收低 8 位地址字节。 引脚号第二功能 p1.0 t2(定时器/计数器 t2 的外部计数输入),时钟输出 p1.1 t2ex(定时器/计数器 t2 的捕捉/重载触发信号和方向控制) p1.5 mosi(在系统编程用) p1.6 miso(在系统编程用) p1.7 sck(在系统编程用) p2 口:p2 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p2 输出 缓冲器能驱动 4 个 ttl 逻辑电平。对 p2 端口写“1”时,内部上拉电阻把端 口拉高,此时可以作为输入口使用。作为输
19、入使用时,被外部拉低的引脚由于 内部电阻的原因,将输出电流( iil)。 在访问外部程序存储器或用 16 位地址读取外部数据存储器(例如执行 movx dptr)时,p2 口送出高八位地址。在这种应用中, p2 口使用很 强的内部上拉发送 1。在使用 8 位地址(如 movx ri)访问外部数据存 储器时,p2 口输出 p2 锁存器的内容。 在 flash 编程和校验时, p2 口也接收高 8 位地址字节和一些控制信号。 p3 口:p3 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p2 输出 缓冲器能驱动 4 个 ttl 逻辑电平。对 p3 端口写“1”时,内部上拉电阻把端 口拉高,此
20、时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于 内部电阻的原因,将输出电流( iil)。 p3 口亦作为 at89s52 特殊功能(第二功能)使用。 在 flash 编程和校验时, p3 口也接收一些控制信号。 端口引脚 第二功能 p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 into(外中断 0) p3.3 int1(外中断 1) p3.4 to(定时/计数器 0) p3.5 t1(定时/计数器 1) p3.6 wr(外部数据存储器写选通 ) p3.7 rd(外部数据存储器读选通 ) 此外,p3 口还接收一些用于 flash 闪存编程和程序校验的控制信
21、号。 rst复位输入。当振荡器工作时, rst 引脚出现两个机器周期以上 高电平将是单片机复位。 ale/prog当访问外部程存储器或数据存储器时, ale(地址锁存 允许)输出脉冲用于锁存地址的低8 位字节。一般情况下, ale 仍以时钟振 荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个ale 脉冲。 对 flash 存储器编程期间,该引脚还用于输入编程脉冲( prog)。 如有必要,可通过对特殊功能寄存器( sfr)区中的 8eh 单元的 d0 位 置位,可禁止 ale 操作。该位置位后,只有一条 movx 和 m
22、ovc 指令才能 将 ale 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ale 禁止位无效。 psen程序储存允许( psen)输出是外部程序存储器的读选通信号, 当 at89c52 由外部程序存储器取指令(或数据)时,每个机器周期两次 psen 有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两 次 psen 信号。 ea/vpp外部访问允许,欲使 cpu 仅访问外部程序存储器(地址为 0000h-ffffh),ea 端必须保持低电平(接地)。需注意的是:如果加密位 lb1 被编程,复位时内部会锁存 ea 端状态。 如 ea 端为高电平(接 vcc 端),cp
23、u 则执行内部程序存储器的指令。 flash 存储器编程时,该引脚加上 +12v 的编程允许电源 vpp,当然这 必须是该器件是使用 12v 编程电压 vpp。 at89s52 单片机为 40 引脚双列直插芯片,有四个 i/o 口 p0,p1,p2,p3, mcs-51 单片机共有 4 个 8 位的 i/o 口(p0、p1、p2、p3) ,每一条 i/o 线都能独 立地作输出或输入。 单片机的最小系统如下图所示,18 引脚和 19 引脚接时钟电路,xtal1 接外部晶 振和微调电容的一端,在片内它是振荡器倒相放大器的输入,xtal2 接外部晶振和 微调电容的另一端,在片内它是振荡器倒相放大器的
24、输出.第 9 引脚为复位输入端,接 上电容,电阻及开关后够上电复位电路,20 引脚为接地端,40 引脚为电源端。如图 2-2 所示 图 2-2 主控制系统 2.3.2 时钟电路模块的设计 图 2-3 所示出 ds1302 的引脚排列,其中 vcc1 为后备电源,vcc2 为主电源。 在主电源关闭的情况下,也能保持时钟的连续运行。ds1302 由 vcc1 或 vcc2 两者 中的较大者供电。当 vcc2 大于 vcc1+0.2v 时,vcc2 给 ds1302 供电。当 vcc2 小 于 vcc1 时,ds1302 由 vcc1 供电。x1 和 x2 是振荡源,外接 32.khz 晶振。 rs
25、t 是复位/片选线,通过把 rst 输入驱动置高电平来启动所有的数据传送。rst 输入有两种功能:首先,rst 接通控制逻辑,允许地址/命令序列送入移位寄存器; 其次,rst 提供终止单字节或多字节数据的传送手段。当 rst 为高电平时,所有 的数据传送被初始化,允许对 ds1302 进行操作。如果在传送过程中 rsts 置为低 电平,则会终止此次数据传送,i/o 引脚变为高阻态。上电动行时,在 vcc 大于 等于 2.5v 之前,rst 必须保持低电平。中有在 sclk 为低电平时,才能将 rst 置 为高电平,i/o 为串行数据输入端(双向) 。sclk 始终是输入端。 图 2-3 ds1
26、302 的引脚图 2.3.3 温度采集模块设计 ds18b20 介绍 dallas 最新单线数字温度传感器 ds18b20 简介新的“一线器件”体积更小、 适用电压更宽、更经济 dallas 半导体公司的数字化温度传感器 ds1820 是世界 上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点, 使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。ds18b20、 ds1822 “一线总线”数字化温度传感器 同 ds1820 一样,ds18b20 也 支持“一 线总线”接口,测量温度范围为 -55c+125c,在-10+85c 范围内,精度为 0.5c。ds1822
27、 的精度较差为 2c 。现场温度直接以“一线总线”的数字 方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如: 环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的 产品支持 3v5.5v 的电压范围,使系统设计更灵活、方便。而且新一代产品更便 宜,体积更小。 ds18b20、 ds1822 的特性 ds18b20 可以程序设定 912 位的分 辨率,精度为0.5c。可选更小的封装方式,更宽的电压适用范围。分辨率设 定,及用户设定的报警温度存储在 eeprom 中,掉电后依然保存。ds18b20 的性能 是新一代产品中最好的,性能价格比也非常出色! ds18
28、22 与 ds18b20 软件兼容, 是 ds18b20 的简化版本。省略了存储用户定义报警温度、分辨率参数的 eeprom, 精度降低为2c,适用于对性能要求不高,成本控制严格的应用,是经济型产 品。 继“一线总线”的早期产品后,ds1820 开辟了温度传感器技术的新概念。 ds18b20 和 ds1822 使电压、特性及封装有更多的选择,让我们可以构建适合自己 的经济的测温系统。 如图 2-4 所示。采用数字式温度传感器 ds18b20,它是数字式温度传感器, 具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传 输,使用0.7 与 ds18b20 的 i/o 口连接加一
29、个上拉电阻,vcc 接电源,vss 接地。 图 2-4 ds18b20 温度采集 2.3.4 电路原理及说明 (一)ds18b20 产品特点 (1) 只要求一个端口即可实现通信。 (2) 在 ds18b20 中的每个器件上都有独一无二的序列号。 (3) 实际应用中不需要外部任何元器件即可实现测温。 (4) 测量温度范围在55。c 到125。c 之间。 (5) 数字温度计的分辨率用户可以从 9 位到 12 位选择。 (6) 内部有温度上、下限告警设置。 (二)ds18b20 的引脚分布 to92 封装的 ds18b20 的引脚排列见下图,其引脚功能描述见下表。(底视 图)ds18b20 详细引脚
30、功能描述 序 号 名称引脚功能描述 1gnd 地信号 2dq 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源 下,也可以向器件提供电源。 3vdd 可选择的 vdd 引脚。当工作于寄生电源时,此引脚必须接地。 (三)ds18b20 的使用方法 由于 ds18b20 采用的是 1wire 总线协议方式,即在一根数据线实现数据的 双向传输,而对 at89s51 单片机来说,硬件上并不支持单总线协议,因此,我们 必须采用软件的方法来模拟单总线的协议时序来完成对 ds18b20 芯片的访问。 由于 ds18b20 是在一根 i/o 线上读写数据,因此,对读写的数据位有着严格 的时序要求。d
31、s18b20 有严格的通信协议来保证各位数据传输的正确性和完整性。 该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将 主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主 机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机 需启动读时序完成数据接收。数据和命令的传输都是低位在先。 (四) 时钟芯片 ds1302 的工作原理: ds1302 在每次进行读、写程序前都必须初始化,先把 sclk 端置 “0” ,接 着把 rst 端置“1” ,最后才给予 sclk 脉冲;读/写时序如下图 4 所示。图 5 为 ds1302 的控制字,此控制
32、字的位 7 必须置 1,若为 0 则不能把对 ds1302 进行读 写数据。对于位 6,若对程序进行读/写时 ram=1,对时间进行读/写时,ck=0。 位 1 至位 5 指操作单元的地址。位 0 是读/写操作位,进行读操作时,该位为 1; 该位为 0 则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表 6 为 ds1302 的日历、时间寄存器内容:“ch”是时钟暂停标志位,当该位为 1 时, 时钟振荡器停止,ds1302 处于低功耗状态;当该位为 0 时,时钟开始运行。 “wp” 是写保护位,在任何的对时钟和 ram 的写操作之前,wp 必须为 0。当“wp”为 1 时,写保护位
33、防止对任一寄存器的写操作。 (五) ds1302 的控制字节 ds1302 的控制字如表 2-1 所示。控制字节的高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 ds1302 中,位 6 如果 0,则表示存取日历时 钟数据,为 1 表示存取 ram 数据;位 5 至位 1 指示操作单元的地址;最低有效 位(位 0)如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最 低位开始输出 ram rd 1 a4 a3 a2 a1 a0 / ck /wr 表 2-1 ds1302 的控制字格式 (六) 数据输入输出(i/o) 在控制指令字输入后的下一个 sclk 时钟的
34、上升沿时,数据被写入 ds1302, 数据输入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 sclk 脉冲的下降沿读出 ds1302 的数据,读出数据时从低位 0 位到高位 7。如下图 2-5 所示 图 2-5 ds1302 读/写时序图 (七) ds1302 的寄存器 ds1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据 位为 bcd 码形式,其日历、时间寄存器及其控制字见表 2-2。 表 2-2 ds1302 的日历、时间寄存器 此外,ds1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存 器及与 ram 相关的寄存器等。时钟突
35、发寄存器可一次性顺序读写除充电寄存器 外的所有寄存器内容。 ds1302 与 ram 相关的寄存器分为两类:一类是单个 ram 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 c0hfdh,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 ram 寄存器,此方式下可一次性读写所有的 ram 的 31 个字节,命令控制字为 feh(写)、ffh(读)。 2.3.5 显示模块的设计 16x2 字符型带背光液晶显示模块 外形尺寸:外形尺寸:pcbpcb 外形:外形:36.4*8036.4*80 毫米毫米 液晶屏金属黑框:液晶屏金属黑框:34.2*7234.2*72 毫米毫米
36、 液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多 优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。 这里介绍的字符型液晶模块是一种用 5x7 点阵图形来显示字符的液 晶显示器,根据显示的容量可以分为 1 行 16 个字、2 行 16 个字、2 行 20 个字等等,这里以常用的 2 行 16 个字的 1602 液晶模块来介绍它的 编程方法。 1602 采用标准的 16 脚接口,其中: 第 1 脚:vss 为地电源 第 2 脚:vdd 接 5v 正电源 第 3 脚:v0 为液晶显示器对比度调整端,接正电源时对比度最弱 接地电源时对比度最高,对比度过高时会产生“鬼影” ,使用时
37、可以 通过一个 10k 的电位器调整对比度。 第 4 脚:rs 为寄存器选择,高电平时选择数据寄存器、低电平时选择 指令寄存器。 第 5 脚:rw 为读写信号线,高电平时进行读操作,低电平时进行写操 作。当 rs 和 rw 共同为低电平时可以写入指令或者显示地址,当 rs 为 低电平 rw 为高电平时可以读忙信号,当 rs 为高电平 rw 为低电平时可 以写入数据。 第 6 脚:e 端为使能端,当 e 端由高电平跳变成低电平时,液晶模块执 行命令。 第 7-14 脚:即 d0-d7 为 8 位双向数据线。 第 1516 脚:空脚 1602 液晶模块内部的字符发生存储器(cgrom)已经存储了
38、160 个不同 的点阵字符图形,如表 2-3 所示,这些字符有:阿拉伯数字、英文字 母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定 的代码,比如大写的英文字母“a”的代码是 01000001b(41h) ,显示 时模块把地址 41h 中的点阵字符图形显示出来,我们就能看到字母 “a” 表 2-3 cgrom 和 cgram 中字符代码与字符图形对应关系 液晶模块内部的控制器共有 11 条控制指令,如表 2-3 所示, 表 2-4 控制指令表 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 (说明: 1 为高电平、0 为低电平)1602 液晶模块内部的控制器共有 11 条
39、控制 指令,如表 2-4 所示: 表 2-5 控制指令表 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 (说明: 1 为高电平、0 为低电平)1602 液晶模块内部的控制器共有 11 条控制 指令,如表 2-5 所示, 表 2-6 控制指令表 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 (说明:1 为高电 平、0 为低电平) 指令 1:清显示,指令码 01h,光标复位到地址 00h 位置; 指令 2:光标复位,光标返回到地址 00h; 指令 3:光标和显示模式设置 i/d:光标移动方向,高电平右移,低电平左移 s: 屏幕上所有文字是否左移或者右移。高电平表示有效,低电
40、平则无效; 指令 4:显示开关控制; 指令 5:光标或显示移位 s/c:高电平时移动显示的文字,低电平时移动光标; 指令 6:置功能; 指令 7:置字符发生存储器地址; 指令 8:置数据存储器地址; 指令 9:读忙标志或地址; 指令 10:写数据到 cgram 或 ddram; 指令 11:读数据。 dm-162 液晶显示模块可以和单片机 at89c51 直接接口,电路如图 2-6 所示。 图 2-6 at89c51 与 dm-162 接口图 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙 标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地 址,也就
41、是告诉模块在哪里显示字符,表 2-6 是 dm-162 的内部显示地址。 比如第二行第一个字符的地址是 40h,那么是否直接写入 40h 就可以将光标定位 在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 d7 恒定为高电平 1 所以实际写入的数据应该是 01000000b(40h)+10000000b(80h)=11000000b(c0h) 以下是在液晶模块的第二行第一个字符的位置显示字母“a”的程序: org 0000h rs equ p3.7;确定具体硬件的连接方式 rw equ p3.6 ;确定具体硬件的连接方式 e equ p3.5 ;确定具体硬件的连接方式 mov
42、 p1,#00000001b ;清屏并光标复位 acall enable;调用写入命令子程序 mov p1,#00111000b ;设置显示模式:8 位 2 行 5x7 点阵 acall enable ;调用写入命令子程序 mov p1,#00001111b ;显示器开、光标开、光标允许闪烁 acall enable ;调用写入命令子程序 mov p1,#00000110b ;文字不动,光标自动右移 acall enable ;调用写入命令子程序 mov p1,#0c0h ;写入显示起始地址(第二行第一个位置) acall enable ;调用写入命令子程序 mov p1,01000001b
43、;字母 a 的代码 setb rs ;rs=1 clr rw ;rw=0 ;准备写入数据 clr e ;e=0 ;执行显示命令 acall delay ;判断液晶模块是否忙? setb e ;e=1 ;显示完成,程序停车 ajmp $ enable: clr rs ;写入控制命令的子程序 clr rw clr e acall delay setb e ret delay: mov p1,#0ffh ;判断液晶显示器是否忙的子程序 clr rs setb rw clr e nop setb e jb p1.7,delay ;如果 p1.7 为高电平表示忙就循环等待 ret end 程序在开始时对
44、液晶模块功能进行了初始化设置,约定了显示格式。 注意显示字符时光标是自动右移的,无需人工干预,每次输入指令都 先调用判断液晶模块是否忙的子程序 delay,然后输入显示位置的地 址 0c0h,最后输入要显示的字符 a 的代码 41h。 第三章系统的软件设计 3.13.1 程序流程框图程序流程框图 开始 初始化 读、写日期、时间和温度 分离日期时间温度显示值 显示子程序 定时闹铃子程序 图图 3-13-1 主程序流程图主程序流程图 图 3-2 计算阳历程序流程图计算阳历程序流程图 农历自动更新子程序 日期、时间修改子程序 闰月子程 返回 图 3-3 时间调整程序流程图 图 3-4 阴历程序流程图
45、 3.2 子程序的设计 3.2.1 ds18b20 温度子程序 config12 equ 7fh temph equ 21h templ equ 20h reg2 equ 22h reg3 equ 23h reg4 equ 24h dat equ p0.7 toutou: lcall chushi lcall rdtemp mov a,templ anl a,#11110000b mov templ,a mov a,temph anl a,#00000111b orl a,templ swap a mov 25h,a mov a,25h mov b,#64h div ab mov a,b mo
46、v b,#0ah div ab swap a orl a,b mov 10h,a ret chushi: lcall reset mov a,#0cch lcall write111 mov a,#4eh lcall write111 mov a,#config12 lcall write111 ret rdtemp: lcall reset mov a,#0cch lcall write111 mov a,#44h lcall write111 lcall dl1ms lcall reset mov a,#0cch lcall write111 mov a,#0beh lcall write
47、111 lcall erad111 mov templ,a lcall erad111 mov temph,a ret reset: la: setb dat mov 52h,#200 lb: clr dat djnz 52h,lb setb dat mov 52h,#30 lc: djnz 52h,lc clr c orl c,dat jc lb mov 58h,#80 ld: orl c,dat jc lp djnz 58h,ld sjmp la lp: mov 52h,#250 lf: djnz 52h,lf ret write111: mov 53h,#8 w51ha: setb da
48、t mov 54h,#8 rrc a clr dat w52ha: djnz 54h,w52ha mov dat,c mov 54h,#30 w53ha: djnz 54h,w53ha djnz 53h,w51ha setb dat ret erad111: clr ea mov 58h,#8 rd1a: clr dat mov 54h,#6 nop setb dat rd2a: djnz 54h,rd2a mov c,dat rrc a mov 55h,#30 rd3a: djnz 55h,rd3a djnz 58h,rd1a setb dat ret 3.2.2 读、写 ds1302 子程
49、序 ;写 1302 程序 write: clr sclk nop setb rst nop mov a,32h mov r4,#8 write1: rrc a ;送地址给 1302 nop nop clr sclk nop nop nop mov io,c nop nop nop setb sclk nop nop djnz r4,write1 clr sclk nop mov a,31h mov r4,#8 write2: rrc a nop ;送数据给 1302 clr sclk nop nop mov io,c nop nop nop setb sclk nop nop djnz r4,
50、write2 clr rst ret ;读 1302 程序 read: clr sclk nop nop setb rst nop mov a,32h mov r4,#8 read1: rrc a ;送地址给 1302 nop mov io,c nop nop nop setb sclk nop nop nop clr sclk nop nop djnz r4,read1 mov r4,#8 read2: clr sclk nop ;从 1302 中读出 数据 nop nop mov c,io nop nop nop nop nop rrc a nop nop nop nop setb scl
51、k nop djnz r4,read2 mov 31h,a clr rst ret 第四章指标测试 4.1 测试仪器 序号名称型号 1 pc 机 lxb-hf769a 2 双路直流稳压电源 ca17303d 3 v8 通用单片机仿真器 v8/l 4 数字万用表 dt9208 5 isp 在线编程器 4.硬件测试 电子万年历的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系 统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多, 对于各种锋利的引脚要注意处理,否则会刺被带有包皮的导线,则会对电路造 成短路现象。 在本成电子万年历的设计调试中遇到了很多的问题。回想这些问题只要认
52、 真多思考都是可以避免的,以下为主要的问题: ()led 数码管的断码错乱,原因出于没有认真看清a、b 、c 等引脚信 息。 解决:重新排列 74ls47 的输出端,相应接入 led 数码管,即可解决出现在 的断码或乱码,sclk、ret 端。 ( 2)对万年历修改时间或日期时,有时 led 数码管被屏蔽掉,造成不亮 现象。 解决:根据仪器的测试,发现电路的驱动能力不足,最后在 ds1302 时钟芯 片的/cs、接入 5.1k 的上拉电阻后,电路的驱动能力才能满足,即可解决不亮现 象。 4.软件测试 电子成年历是多功能的数字型,可以看当前日期(阴、阳历),时间,还有 温度的仪器。电子成年历功能
53、很多,所以对于它的程序也较为复杂,所以在编写 程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一 步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下: 1烧入程序后,led 数码管显示闪动,而且亮度不均匀。 解决:首先对调用的延时进行逐渐修改,可以解决显示闪动问题。其次,由 于本作品使作动态扫描方式显示的数字,动态扫描很快,人的肉眼是无法看出, 但是调用的显示程序时,如果不在反回时屏蔽掉最后的附值,则会出现很亮的 现象,所以在显示的后面加了屏蔽子令,最后解决了此问题。 2修改时间、日期时没有农历没有自动对应上。 解决:把不相关的程序暂时屏蔽,地农历的子程序独立
54、调试,发现在调用农 历自动更新时,对十进制和十六进制处理不好,所以会造成错乱。最后把相应 的十进制进行修改,使得可以与十六进制对应,最后解决了此问题. 3加入温度的程序后,进行修改时间、日期时相应的数码管位没有按要求闪 动。 解决:由于 ds18b20 是串行通信数据,只用一个口线传输,在处理采集的模 拟信号时需要一定的时间,当把万年历的程序相接入时,会对延时有很大的影 响。所以在调用温度子程序时,先关闭定时器 1 中断允许,在温度子程序反回 时再打开定时器 1 中断允许。最终解决了此问题。 4.测试结果分析与结论 4.1 测试结果分析 (1) 在测试中遇到发光二极管、led 数码管为不显示时
55、,首先使用试测仪对电 路进行测试,观察是否存在漏焊,虚焊,或者元件损坏. (2) led 数码管显示不正常,还有亮度不够,首先使用试测仪对电路进行测 试,观察电路是否存在短路现象。查看烧写的程序是否正确无误,对程序进行认 真修改。 4.4.2 测试结论 经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高 了设计能力与及对电路的分析能力.同时在软件的编程方面得到更到的提高,对 编程能力得到加强.同时对所学的知识得到很大的提高与巩固. 结束语 经过不懈努力,在老师和同学们的大力帮助下,我终于按时、按质、按量 完成了这次毕业设计,并且成功制作出电子产品。本课题涉及的内容十分广泛。 但
56、无论是软件还是硬件,仍有许多需要改进和完善的地方,也有许多可以扩展 的地方。这次毕业设计给我的感受很深刻,总结起来有一下几个方面: 以前的学习多重于理论方面,而且知识面不够宽,通过这次毕业设计,使 我又一次系统全面的回顾了大学三年所学的课程。 从中我还体会到了所学理论 知识的重要性。再有学会查阅资料和利用工具书是非常重要。通过这次毕业设 计,发现自己在专业方面还有很多欠缺和不足。例如,在编程方面还不够熟练, 这些都是在今后值得注意和需要改进的。 实践过程中,我深刻体会到在设计过程中,只有静下心,反复试验和测试, 解决各种存在的问题,才能不断提高。总体来说,这次设计我受益匪浅。培养 了我的设计思
57、维,增加了实际操作能力。在让我体会到了设计电路的艰辛的同 时,更让我体会到成功的喜悦。通过这次毕业设计,更进一步提高我的电路设 计能力,加强设计电路的动手能力。通过这次设计,不仅加深了对学到的知识 的理解消化,同时通过实践,提高了自身的理论向实践成果转化的能力。不仅 如此,在这一过程中,我更加熟练运用 protel99se 这一强大电路设计软件,为 以后的学习和工作奠定了坚实的基础。 同时我对单片机的知识也有了更进一步的学习和掌握。虽然这次的设计任 务较简单,但真正做一个板子不是想象中的那么简单,在实际设计过程中要考 虑很多的因素。由于要求的知识非常丰富,查找了许多的参考文献,清楚地明 白本设
58、计的工作过程以及各个电器元件在本电路的作用,让理论和实际真正地 结合到了一起,同时进一步使我们体会到电子电路在实践中的工程技术特点, 提高了我们的科学素质,树立了我们工程和技术的观点。 我经过这次系统的毕业设计,了解了对一课题进行系统研究、设计及制作 的全过程。这些认识使我们在将来的工作和学习当中都会有很大的帮助。在往 后加以吸收利用,以提高自己的应用能力,而且还能增长自己见识补充最新的 知识。毕业设计培养了严肃认真和实事求是的科学态度。而且培养了吃苦耐劳 的精神以及严谨的作风,提高了交流沟通和团体协作能力。这些对我以后的工 作都非常有帮助的。作为一个即将就将步入社会的大学生来说,提高自己的动
59、 手能力是很重要的,相信在走进社会以后,经过我的不断努力,一定会使得自 己的能力更加充实。 致谢词 在这次毕业设计过程中,得到许多老师和同学的帮助与鼓励,使我能够顺 利地完成毕业设计,我在此对他们表示衷心的感谢。 首先,我诚挚地感谢我的指导老师孔慧君老师。他严谨的治学态度、对知 识不懈的追求,必将使我受益终身。孔老师在我毕业设计过程中给予了我谆谆 教诲和无私帮助;自己设定题目、取材、组织论文,给了我很大的创造空间, 使我的各方面能力得到了提高。孔老师能在繁忙的工作中,腾出时间来对我的 毕业设计指导和评定,耐心地指出产品存在的问题和进行科学有效的指导,使 我少走弯路,也使我养成了严谨的学习态度,
60、这些对我以后的学习和生活有着 重要的指导意义。本论文从选题到系统调试成功到最后成文,无不倾注着孔老 师的心血。在此论文脱稿之际,我再一次向他致以最诚挚的谢意。 其次,感谢我的同学。他们能在我遇到困难时及时给予我真诚的帮助,为 我解决难题。还要感谢参考文献中作者对著作的倾心编著,正是有了他们的著 作,我的论文及电路制作才成功按时完成。本次设计实践过程中遇到了很多困 难,我借鉴了一些网络上的优秀资源,在此一并表示感谢。 参考文献 1 谭浩强.c 语言程序设计.第二版 2 卢结成编. 电子电路实验及应用课题设计.北京:中国科学技术大学出版社,2002 3 扬刚主编. 电子系统设计与实践.北京:电子工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 硕士论文防线策略
- 石家庄学院《艺术理念》2023-2024学年第一学期期末试卷
- 江西省景德镇市珠山区2025届数学三下期末综合测试试题含解析
- 上海市延安实验初级中学2025届初三第三次模拟练习数学试题含解析
- 山西省运城市2024-2025学年3月初三开学考试物理试题含解析
- 四川省南充市阆中学2025届下学期初三期末考试语文试题含解析
- 内蒙古呼伦贝尔市市级名校2025届初三下学期第二次学情调研语文试题试卷含解析
- 山西铁道职业技术学院《生物制药专业实验(下)》2023-2024学年第二学期期末试卷
- 南京工业职业技术大学《公路施工组织及概预算》2023-2024学年第二学期期末试卷
- 内蒙古杭锦后旗四校联考2025年中考总复习小题量基础周周考化学试题含解析
- 2024年宁夏固原农村电力服务有限公司招聘笔试参考题库含答案解析
- 2024年上海铁路局集团招聘笔试参考题库附带答案详解
- 医患沟通技巧与人文关怀课件
- 招投标顾问服务协议
- 《Unit2Myfavoriteseason》教学设计课件
- 苏教版二年级下册数学《认识角》教学设计(市级公开课)
- 过水箱涵施工方案
- 2023年上半年教师资格证考试《高中音乐专业面试》真题及答案
- 生产加工型小微企业安全生产管理人员:安全生产管理
- 互联网思维中的用户思维
- 70岁以上老人考驾照,三力测试题库答案
评论
0/150
提交评论