带温度显示的万年历设计_第1页
带温度显示的万年历设计_第2页
带温度显示的万年历设计_第3页
带温度显示的万年历设计_第4页
带温度显示的万年历设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

本科毕业设计(论文)分类号 密级 1U D C 1中国地质大学江城学院毕业论文(设计)带温度显示的万年历设计姓 名: 专 业:班 级:学 号:指导教师:本科毕业设计(论文)摘 要该方案通过 AT89S52 单片机读取实时时钟芯片 DS1302 和数字温度芯片 DS18B20 的内部数据,并进行处理后送到 1602 液晶显示来实现全部功能。DS1302 涓流充电计时芯片包含实时时钟及日历和 31 字节的静态 RAM 。它可以与微处理器通过简单的串行接口实现通信。实时时钟/日历提供秒,分钟,小时,日期,月份,和一年的信息。本月底日期会自动调整,包括更正为闰年。时钟可以运行在 24 小时或 12 小时格式,并且带有上午/下午标志。对温度的测量,采用 DS18B20,该温度芯片是一种数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,显示部分采用的是 1602 液晶来显示,可以同时显示年、月、日、周、时、分、秒和温度等信息。此外,还有三个按键来实现时间和日期的调整功能。关键词:单片机 时钟芯片 温度芯片 液晶显示屏 电源电路 本科毕业设计(论文)ABSTRACTThat clock mainly adopts the AT89S52 single-chip microcomputer as the main control core, provides clock through the DS1302 clock chip, collects and converts temperature through the DS18B20 temperature chip and shows through LCD1602.The DS1302 trickle-charge timekeeping chip contains a real-time clock/calendar and 31 bytes of static RAM. It communicates with a microprocessor via a simple serial interface. The real-time clock/calendar provides seconds, minutes, hours, day, date, month, and year information. The end of the month date is automatically adjusted for months with fewer than 31 days, including corrections for leap year. The clock operates in either the 24-hour or 12-hour format with an AM/PM indicator.Interfacing the DS1302 with a microprocessor is simplified by using synchronous serial communication. Only three wires are required.Key words: Single-chip microcomputer Clock chip Temperature chip Liquid Crystal Display Power electric circuit Clock electric circuit本科毕业设计(论文)目 录1 引言 .11.1 课题开发的背景 .11.2 设计的意义 .22 设计要求与方案论证 .32.1 设计要求 .32.2 系统方案选择和论证 .32.3 电路设计最终方案决定 .43 系统硬件的设计与实现 .53.1 系统硬件总体设计 .53.1.1 系统硬件概述 .53.1.2 系统硬件电路的设计 .53.2 系统硬件各模块的设计与实现 .63.2.1 主控电路的设计 .63.2.2 时钟电路模块设计 .63.2.3 温度采集模块设计 .93.2.4 显示模块的设计 .143.2.5 电源模块的设计 .183.2.6 键盘模块的设计 .184 系统软件的设计 .184.1 C 语言开发单片机的优势 .194.2 程序流程框图及程序 .194.2.1 主程序流程图 .194.2.2 液晶驱动流程 .204.2.3 DS18B20 驱动程序 .215 调试与结果 .225.1 调试 .225.1.1 硬件调试 .225.1.2 软件调试 .225.1.3 调试结论 .235.2 结果 .23本科毕业设计(论文)结束语 .24致谢 .25参考文献 .26附录 .27本科毕业设计(论文)1 引言1.1 课题开发的背景20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。现在是一个知识爆炸的新时代,新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人,而数字化的钟表给人们带来了极大的方便。由于单片机具有灵活性强、成本低、功耗低、保密性好等特点,所以电子日历时钟一般都以单片机为核心,外加一些外围设备来实现。近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,再根据具体硬件结构,以及针对具体应用对象的特点与软件结合,以作完善。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是电子万年历,电子万年历是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。电子万年历是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人家本科毕业设计(论文)庭、车站、 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得电子万年历的精度,远远超过老式的计时方法, 电子万年历的数字化给人们生产生活带来了极大的方便,而且大大地扩展了原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些都是以钟表数字化为基础的。因此,研究电子万年历及扩大其应用,有着非常现实的意义。1.2 设计的意义电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。所以,电子万年历无论作为竞赛题目还是毕业设计题目都是很有价值。本科毕业设计(论文)2 设计要求与方案论证2.1 设计要求(1)基本要求可以准确显示时间和日期;可以显示当前的温度; 具备年、月、日、星期、时、分、秒校准功能;(2)附加要求把温度传感器采集到的温度通过串行通信送到上位机显示。实现温度的上下限报警,和精准定时报警。2.2 系统方案选择和论证(1)单片机芯片的选择方案和论证:方案:采用 AT89S52,片内 ROM 全都采用 Flash ROM;能以 3V 的超底压工作;同时也与 MCS-51 系列单片机完全该芯片内部存储器为 8KB ROM 存储空间,同样具有89C51 的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用 AT89S52 作为主控制系统 .(2)显示模块选择方案和论证:方案一:采用 LED 数码管动态扫描 ,LED 数码管的数量多且不直观,对于单片机的信号需译码才能显示,所以不采用 LED 数码管作为显示。方案二:采用 LCD1602 液晶显示屏,液晶显示屏显示功能强大直观, 液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示黑色,这样即可显示出图形,可显示大量符号,图形,显示多样,清晰可见,需要的接口线不多,所以在此设计中采用 LCD1602 液晶显示屏.(3)时钟芯片的选择方案和论证方案一:采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案,并且掉电后时间停止,要实现下次时间的正确显示,需要手动调节,麻烦。方案二: 采用 DS1302 时钟芯片实现时钟,DS1302 芯片是一种高性能的涓流充电本科毕业设计(论文)时钟芯片,可自动对 2100 年之前的秒、分、时、日、月、周、年计算以及闰年自动补偿等功能,且精度高,内含一个实时时钟/日历和 318 位暂存数据存储 RAM,简单地采用同步串行方式与单片机通信,仅需三个口线: RST、I/O、SCLK;工作电压 2.05.5V范围内,工作电流 2.0V 时耗电小于 300nA,因此采用此方案。方案三:采用 DS12887 时钟芯片实现时钟,DS12887 芯片是一种高性能的时钟芯片,并行通信,驱动简单。可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的 RAM 做为数据暂存区,工作电压 2.5V5.5V 范围内,2.5V时耗电小于 300nA.内部集成有锂电池和晶振,因此不需要接外围电路。并可以通过中断实现定时报警功能。(4)温度传感器的选择方案与论证方案一:使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D 转换。 。此设计方案需用 A/D 转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。方案二:采用数字式温度计 DS18B20,为数字式传感器而且仅需要一条数据线进行数据传输,即采用 1-wire 总线接口,易于与单片机连接,可以去除 A/D 模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广(-55125)等优点。(5)电源电路:方案一:采用市电接变压器,桥式整流,流波,稳压,退耦的传统线性直流电源提供 5v 的直流电。此方案缺点太多,首先成本高,再者携带不方便。方案二:采用电脑的 USB 头供电,由于现在电脑随处可见,使得 USB 供电十分方便。并且节省成本。2.3 电路设计最终方案决定综上各方案所述,对此次作品的方案选定: 采用 AT89S52 作为主控制系统; DS1302 和DS12c887 提供时钟;DS18B20 采集温度;LCD1602 液晶显示屏作为显示。本科毕业设计(论文)3 系统硬件的设计与实现3.1 系统硬件总体设计图3.1 系统电路设计框图3.1.1 系统硬件概述本电路是以 AT89S52 单片机为控制核心。它是一个低功耗、高性能的含有 8KB Flash ROM 的 8 位 CMOS 单片机,能在 3V 超低压工作;时钟电路由 DS1302HH 和 DS12C887 提供,DS1302 是一种高性能带有 318 位的用于临时性存放数据的 RAM 寄存器的实时时钟芯片,它可以对秒、分、时、日、月、周、年进行计时。系统硬件设计图如图 3.2 所示。3.1.2 系统硬件电路的设计 EA/VP1X92RSTD7W6IN045LGCUOKBFYJuf+-M.口LCD1602 液晶显示屏显示模块时钟模块电源模块键盘模块温度采集模块AT89S52主控制模块本科毕业设计(论文)图 3.2 硬件系统设计图3.2 系统硬件各模块的设计与实现3.2.1 主控电路的设计AT89S52 单片机为 40 引脚双列直插芯片,有四个 I/O 口 P0、P1、P2、P3, MCS-51 单片机共有 4 个 8 位的 I/O 口(P0、P1、P2、P3) ,每一条 I/O 线都能独立地作输出或输入。单片机的最小系统如图所示,18 引脚和 19 引脚接时钟电路,XTAL1 接外部晶振和 30pF 电容的一端,在片内它是振荡器反相放大器的输入,在片内它是振荡器反相放大器的输出。第 9 引脚为复位输入端,接上电容、电阻及开关后组成上电复位电路;20 引脚为接地端;31 引脚为高电平,单片机访问片内程序存储器,但在 PC 值超出片内程序存储器的地址范围时,将自动转向执行外部程序存储器内的程序;40 引脚为电源端。主控系统图如图3.3 所示。图 3.3 主控系统图本科毕业设计(论文)3.2.2 时钟电路模块设计图3.4 DS1302与单片机连接原理图DS1302 与单片机连接原理图 2,DS1302 由 VCC1 由于设计没有采用备用的电池供电,所以掉电后时间会消失,需要重新调整,在设计产品的时候,可以采用备用电池供电,以实现时间的连续性。X1 和 X2 是振荡源,外接 32768Hz 晶振。/RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。输入有两种功能:首先,接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,提供终止单字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。如果在传送过程中置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在 VCC大于等于 2.5V 之前,RST 必须保持低电平。只有在 SCLK 为低电平时,才能将置为高电平。I/O 为串行数据输入端(双向) 。SCLK 始终是输入端。Ds1302 与单片机连接原理图如图 3.4 所示。(1)工作原理:DS1302 时钟芯片主要有寄存器、控制寄存器、振荡器、实时时钟以及 RAM 组成。为了对任何数据传送进行初始化,需要将/RST 置为高电平且将 8 位地址和命令信息装入移位寄存器。数据在 SCLK 的上升沿沿串行输入,前 8 位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作输出数据,写操作输入数据。时钟的个数在单字节方式下为 8 加 8(8 位地址加 8 位数据) ,在多字节方式下为 8 加最多可达 248 的数据。DS1302 在每次进行读、写程序前都必须初始化,先把 SCLK 端置 “0”,接着把 RST端置“1” ,最后才给予 SCLK 脉冲;读/写时序如下图 2.3.3 所示。表 2-1 为 DS1302 的控制字,此控制字的位 7 必须置 1,若为 0 则不能把对 DS1302 进行读写数据。对于位 6,若对程序进行读/写时 RAM=1,对时间进行读/写时, =0。位 1 至位 5 指操作单元的地址。CK本科毕业设计(论文)位 0 是读/写操作位,进行读操作时,该位为 1;该位为 0 则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表 2-2 为 DS1302 的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为 1 时,时钟振荡器停止,DS1302 处于低功耗状态;当该位为 0 时,时钟开始运行。 “WP”是写保护位,在任何的对时钟和 RAM 的写操作之前,WP 必须为 0。当“WP”为 1 时,写保护位防止对任一寄存器的写操作。(2)DS1302 的控制字节 3:DS1302 的控制字如表 3.1 所示。控制字节的高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 DS1302 中,位 6 如果 0,则表示存取日历时钟数据,为 1 表示存取 RAM 数据;位 5 至位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输出。Ds1302 的控制字格式如表 3.1 所示 。表 3.1 DS1302 的控制字格式RAM RD1 A4 A3 A2 A1 A0CK RW(3)数据输入输出 4(I/O):在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 0 位到高位7。Ds1302 如下图 3.5 所示:图 3.5 DS1302 读写时序(4)DS1302 的寄存器DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD码形式,其日历、时间寄存器及其控制字见表 2.2。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与本科毕业设计(论文)RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写)、FFH(读)。 Ds1302 的诶里.时间寄存器如表 3.2 所示。表 3.2 DS1302 的日历、时间寄存器命令字 各位内容寄存器名 写操作读操作取值范围7 6 5 4 30秒寄存器80H 81H 0059 CH 10SEC SEC分寄存器82H 83H 0059 0 10MIN MIN时寄存器84H 85H 0112或002312/24 0 10(A/P)HR HR日寄存器86H 87H 0128,29,30,310 0 10DATE DATE月寄存器88H 89H 0112 0 0 0 10M MONTH周寄存器8AH 8BH 0107 0 0 0 0 DAY年寄存器8CH 8DH 0199 10YEAR YEAR写保护寄存器8EH 8FH WP 0 0 0 0 0慢充电寄存器90H 91H TCS TCS TCS TCS DS DS RS RS时钟突发寄存器BEH BFH3.2.3 温度采集模块设计Ds18b202 温度采集如图 3.6 所示采用数字式温度计 DS18B205,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用 P1.4 与 DS18B20 的 I/O 口连接加一个上拉电阻,VCC 接电源,VSS 接地。本科毕业设计(论文) VC5.1KResI/O2S3UD8B0P4图3.6 DS18B20温度采集(1)数字温度计 DS18B206:DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类型标号,接着的 48 位是该 DS18B20 自身的序列号,最后8 位是前面 56 位的循环冗余校验码(CRC=X8+X5+X4+1) 。光刻 ROM 的作用是使每一个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达,其中 S 为符号位。Ds18b20 内部文度值二进制形式如图 3.7 所示。图3.7 DS18B20内部温度值二进制形式本科毕业设计(论文)这是 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温度。例如+125的数字输出 07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为 FF6FH,-55的数字输出为 FC90H。如表 3.3 所示。表 3.3 实际温度对应的机器代码DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电擦除的 RAM,后者存放高温度和低温度触发器 TH、TL 和结构寄存器。暂存存储器包含了 8 个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是 TH、TL 的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。Ds18b20 寄存器如表 3.4 所示,3.5 所示。表 3.4 DS18B20 寄存器寄存器内容 字节地址温度最低数字位 0温度最高数字位 1TH 2TL 3保留 4TEMPERATURE DIGITAL OUTPUT(Binary)DIGITAL OUTPUT(Hex)+85 0000 0101 0101 0000 0550H+25.0625 0000 0001 1001 0001 0191H+10.125 0000 0000 1010 0010 00A2H+0.5 0000 0000 0000 1000 0008H0 0000 0000 0000 0000 0000H-0.5 1111 1111 1111 1000 FFF8H-10.125 1111 1111 0101 1110 FF5EH-25.0625 1111 1110 0110 1111 FE6FH本科毕业设计(论文)保留 5计数剩余值 6每度计数值 7CRC 校验 8表 3.5 分辨率设置表R1 R0 分辨率温度最大转换时间0 0 9 位 93.75ms 0 1 10 位 187.5ms 1 0 11 位 375ms1 1 12 位 750ms 表 3.6 DS18B20 命令集指令 约定代码 功能读 ROM 33H 读 DS18B20ROM 中的编码(即 64 位地址)符合 ROM 55H 发出此命令之后,接着发出 64 位 ROM 编码,访问单线总线上与该编码相对应的 DS18B20使之作出相应,为下一步对该 DS18B20 的读写做准备搜索 ROM F0H 用于确定挂在同一总线上 DS18B20 的个数和区别 64 位 ROM 地址,为操作各器件做好准备跳过 ROM CCH 忽略 64 位 ROM 地址,直接向 DS18B20 温度变换命令,适用于单片工作告警搜索命令ECH 执行后,只有温度超过设定值上限或下限的片子才做出响应温度变换 44H 启动 DS18B20 进行温度变换,转换时间最长为 500ms(典型为 200ms) ,结果存入内部 9字节的 RAM 中读暂存器 BEH 读内部 RAM 中 9 字节的内容写暂存器 4EH 发出向内部 RAM 的第 3、4 字节写上、下限温度数据命令,紧跟该命令之后,是传送数据本科毕业设计(论文)复制暂存器 48H 将 RAM 中第 3、4 字节内容复制到 E2PRAM 中重调 E2PRAM B8H 将 E2PRAM 中内容恢复到 RAM 中的第 3、4 字节读供电方式 B4h 读 DS18B20 的供电模式,寄生供电时 DS18B20发送“0” ,外接电源供电 DS18B20 发送“1(2)1-wire 总线操作 7采用 1-wire 总线接口的数字温度计,测温范围为-55125,精度可达 0.0625,最大转换时间为 200ms。1-wire 总线通信方式需要遵从严格的通信协议,对操作时要求严格。总线复位:置总线为低电平并保持至少 480S,然后拉高电平,等待从端重新拉低电平作为响应,则总线复位完成。如图 3.7 所示:图 3.7 总线复位写数据位 0:置总线为低电平并保持至少 15us,然后保持低电平 1545us 等待从端对电平采样,最后拉高电平完成写操作。如图 3.8 所示:图 3.8 写数据位 0写数据位 1:置总线为低电平并保持 1us-15us,然后拉高电平保持 15us45us 等本科毕业设计(论文)待从端对电平采样,完成写操作。DS1302 与单片机连接原理图,DS1302 由 VCC1 由于设计没有采用备用的电池供电,所以掉电后时间会消失,需要重新调整,在设计产品的时候,可以采用备用电池供电,以实现时间的连续性。X1 和 X2 是振荡源,外接 32768Hz 晶振。/RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。输入有两种功能:首先,接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,提供终止单字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对DS1302 进行操作。如果在传送过程中置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在 VCC 大于等于 2.5V 之前,RST 必须保持低电平。只有在 SCLK 为低电平时,才能将置为高电平。I/O 为串行数据输入端(双向) 。SCLK 始终是输入端。如图 3.9 所示:图 3.9 写数据位 1读数据位:置总线为低电平并保持至少 1us,然后拉高电平保持至少 1us,在 15us内采样总线电平获得数据,延时 45us 完成操作。如图 3.10 所示:本科毕业设计(论文)图 3.10 读数据3.2.4 显示模块的设计如图 3.11 所示,采用 LCD1602 液晶显示屏显示 8,LCD_RS、LCD_RW、LCD_E 分别接到单片机的 P2.3、P2.4、P2.5 来控制 1602,LCD_DB7.0与 P0 相连接以读取地址命令和数据,从而显示日期、时间和温度。X1 和 X2 是振荡源,外接 32768Hz 晶振。/RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。注:P0 口需接上拉电阻从而提供足够的电流来驱动 LCD1602。P2.345LCD_ERWSB70IGHTx16iqudrystalp图 3.11 LCD1602 液晶屏LCD 本身不发光只是调节光的亮度,目前市面上的 LCD 显示器都是利用液晶的扭曲一向列效应制成,这是一种电场效应,夹在两片导电玻璃电极间的液晶经过一定处理,它内部的分子呈直角扭曲,当线性偏振光透过其偏振面便会旋转一个直角。当在玻璃电极上加上电压后,在电场作用下,液晶的扭曲结构消失,偏振光便可以直接通过。当去掉电场后液晶分子又恢复取扭曲结构。把这样的液晶置于两个偏振片之间,改变偏振片相对位置就可以得到白底黑子或黑底白字的显示形式。结合以上知识具体显示原理如下:(1)线段的显示 9点阵图形式液晶由 M*N 个显示单元组成,假设 LCD 显示屏有 64 行,每行有 128 列,每 8 列对应 1 字节的 8 位,即每行由 16 字节,共 16*8=128 个点组成,屏上 64*16 个显示单元与显示 RAM 区 1024 字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由 RAM 区的 00H00FH 的 16 字节的内容决定,当(000)=FFH 时,如屏的左上角显示一条短亮线,长度为 8 个点;当(3FFH)=FFH 时,则显示屏的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,(00EH)=FFH,(00FH)=00H 时,则在屏的顶部显示一条由 8 段亮线和 8 段暗线组成的虚线。这就是 LCD 显示的基本原理。(2)字符的显示用 LCD 显示一个字符时比较复杂,因为一个字符由 6*8 或 8*8 点阵组成,既要找到本科毕业设计(论文)和显示屏上某几个位置对应的显示 RAM 区的 8 字节,还要使每字节的不同的位为“1” ,其它的为“0” ,为“1”的点亮,为“0”的不亮,这样一来就组成某个字符。但对于内带字符发生器的控制器 (如 HD61202)来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在 LCD 上开始显示的行列号及每行的列数找出显示 RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。(3)汉字的显示汉字的显示一般采用图形方式,事先从微机中提取要显示的汉字的点阵码,每个汉字占 32B,分左右两半部,各占 16B,左边为 1、3、5右边为 2、4、6根据在 LCD 上开始显示的行列号及每行的列数可找到显示 RAM 对应的地址,设立光标,送上要显示的汉字的一字节,光标位置加 1,送第二字节,按行按列对齐,送第三字节直到 32B 显示完就可在 LCD 上得到一个完整的汉字。(4)LCD 驱动器 HD4410010HD44100 是用低功耗 CMOS 技术制造的大规模 LCD 驱动 IC。它既可当行驱动用,也可当列驱动用,由 202 位二进制移位寄存器,202 位数据锁存器和 202 位驱动器组成。(5)LCD 控制器 HD44780HD44780 是用低功耗 CMOS 技术制造的大规模点阵 LCD 控制器,与 4 位/8 位微处理器相连,它能使点阵 LCD 显示大、小写英文字母、数字和符号。使用 HD44780,用户能用少量的元件就可组成一个完整的点阵 LCD 系统。功能特性:如表 3.7 所示.3.8.所示.3.9 所示。1. 可选择 57 或 510 点字符;2. 显示数据 RAM 容量:808 位(80 字符) ;3. 字符发生器 ROM 能提供用户所需字符库或标准库;4. 输出信号:16 个行扫描信号,40 个列扫描信号;5. 命令:11 种如下:表 3.7 命令格式RS R/W 操作0 0 命令寄存器写入0 1 忙标志和地址计数器读出1 0 数据寄存器写入1 1 数据寄存器读出表 3.8 清屏指令本科毕业设计(论文)RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 0 0 1功能:清除屏幕显示,并置地址计数器 AC 为 0。表 3.9 返回指令RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 0 1 功能:置 DDRAM 及显示 RAM 的地址为 0,显示返回到原始位置。如表 3.9 所示。表 3.10 输入方式设置RS R/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 0 1 I/D S功能:设置光标的移动方向,并指定整体显示是否移动。其中 I/D=1,是增量方式且光标右移 1 位,I/D=0,是减量方式;S=1,光标不动,I/D=1,示屏左移一位,S=0,显示屏不动。如表 3.10 所示表 3.11 显示开关控制RS R/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 0 1 D C B功能:D=1,开显示C=1 光标开B=1 字符闪烁 如表 3.11 所示。表 3.12 光标移位RS R/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 0 1 S/C R/L 功能:S/C=1,显示移位R/L=1,向右移位 如表 3.12 所示。表 3.13 功能设置RS R/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 1 DL N F 功能:DL=1,8 位数据接口,DL=0,4 位数据接口N=0,单行显示,N=1,双行显示F=1,510 点阵,F=0,57 点阵 如表 3.13 所示。本科毕业设计(论文)表 3.14 CGRAM 地址设置RS R/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 0 0 1 A A A A A功能:地址范围:063。如表 3.14 所示。表 3.15 DDRAM 地址的设置RS R/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 0 1 A A A A A A A功能:地址范围:0127 如表 3.15 所示。表 3.16 读忙标志 BF 及地址计数器RS R/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1 BF AC功能:BF=1,忙,不能接受命令和数据AC=0127 如表 3.16 所示。表 3.17 向 CGRAM/DDRAM 写数据RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 0 DATA功能:将数据写入 CGRAM/DDRAM 中,应与 CGRAM/DDRAM 地址设置命令相结合 如表 3.17所示。表 3.18 从 CGRAM/DDRAM 读数据RS R/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1 DATA功能:从 CGRAM/DDRAM 中读数据,应与 CGRAM/DDRAM 地址设置命令相结合 如表 3.18 所示。3.2.5 电源模块的设计直接采用 USB 接口供电。3.2.6 键盘模块的设计通过键盘 S3、S2、S1 来实现对日期和时间的调整;S1 为模式选择键,按此键来选择对日本科毕业设计(论文)期和时间位的选择;S2 为“+”键,按此键可以对每位数据进行减运算;S3 为“-键,按此键可以对每位数据进行加运算。4 系统软件的设计4.1 C 语言开发单片机优势C 语言是一种编译型的结构化程序设计语言 11,具有简单的语法结构和强大的处理功能,具有运行速度快、编译效率高,移植性好和可读性强等多种优点,可以实现对系统便件直接操作。用 C 语言来编写目标系统软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而开发出大规模、高性能的应用系统。其优势如下:(1)寄存器分配和寻址方式由编译器进行管理,编程时不需要考虑存储器的寻址和数据类型等细节,可以减少出错的机会。本科毕业设计(论文)(2)指定操作的变量选择组合提高了程序的可读性。(3)可使用与人的思维更相近的关键字和操作函数。(4)与使用汇编语言编程相比,程序的开发和调试时间大大缩短。(5)C 语言中的库文件提供许多标准的例程,例如:格式化输出、数据转换和浮点运算等。(6)通过 C 语言可实现模块化编程技术,从而可将已编好的程序加入到新程序中。(7)C 语言可移植性好且非常普及,C 语言编译器几乎适用于所有的目标系统,已完成的软件项目可以容易地转换到其他的处理器或环境中。正由于 C 语言在系统开发中的优势,这次设计的所有程序设计都将采用 C 语言编写,且通过 Vision3 集成开发环境对源程序编译,产生 hex 文件。4.2 程序流程框图及程序4.2.1 主程序流程图接入电源开始后,使 1602 液晶初始化 12,从而慢慢读写出日期.温度.时间。按键分离出时间,温度的显示值。从而显示子程序。定时闹钟子程序,日期和时间的修改子程序,最后设定好后,按返回键。这样就可以正确的显示时间,日期,温度。而 DS1602 在传输数据的时候必须要要初始化,把 RST 脚作为高电平,然后把 8 位地址和命令装入位移寄存器,数据在 SCLK 上升沿北方问到。开是周期运转,当到第八个周期的时候,把命令字节装入位移寄存器后。另外的时钟周期在读操作的时候输出数据,在写入数据的时候,时钟脉冲的个数在单字节方式下为 8+8,在多字节方式下为 8+字节数,最大可达到 248位字节数,如果在传输过程中置 RST 脚为低电平,则会终止本次数据传送,并且 I/O 引脚变为高阻态,在电路运行的时候,电压要大于货等于 2.5V.若 BF=0,则获得显示 RAM地址,写入相应的程序显示;若 BF=1,则代表模块正在进行内部操作。主程序流程图如图 4.1 所示。本科毕业设计(论文)1 6 0 2 液晶初始化D S 1 8 B 2 0 , D S 1 3 0 2 初始化调用键盘扫描处理子程序F l a g = 1 ?刷 新 时 间 , 温 度 , 日 期显示NY开始图4.1主程序流程图4.2.2 液晶驱动流程 16x2显 示 、 5x7点 阵 、 8位 数 据 接 口开 显 示 、 光 标 不 闪 烁读 写 后 地 址 自 动 加 一所 有

温馨提示

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

评论

0/150

提交评论