基于单片机的多功能显示设计_第1页
基于单片机的多功能显示设计_第2页
基于单片机的多功能显示设计_第3页
基于单片机的多功能显示设计_第4页
基于单片机的多功能显示设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1 44 目录摘 要1前言1第1章 绪论21.1 单片机技术和发展趋势21.2 LCD显示技术3第2章 多功能显示屏设计构思42.1系统总设计流程42.2单片机选择方案52.3数据模块方案采集72.4 AVR单片机系统开发工具8第3章 系统硬件设计和实现103.1 系统硬件概述103.2 硬件电路各模块工作原理10第4章 系统软件设计194.1系统设计总框图194.2 各模块软件设计19第5章 系统设计结果和分析245.1 测试仪器245.2 硬件测试245.3 软件测试245.4测试结果分析25第6章 全文总结和展望26致谢28参考文献29附录:30 46 45 基于单片机的多功能显示屏使用系统设计学生:李丽指导老师:邓丽华(三峡大学 电气和新能源学院)摘 要 : 本设计利用ATmega16单片机读取来自时钟芯片,温度传感器的数据,实现秒、分、时、日、月、年的控制以及室内温度的采集并最终通过LCD液晶显示屏显示结果。此外还可以实现时间调整、定时和滚动显示等多种实用功能。整个设计分硬件和软件两大部分。硬件部分采用ATMega1单片机作为控制核心,FYD 12864液晶屏作为信号输出显示部分;软件部分利用C语言作为设计语言,对ATmega16进行编程来实现各种功能。关键词:单片机,LCD,温度采集Abstract: This design used ATMega16 read from the clock chip microcontroller, temperature sensor, its AD data, to achieve seconds, minutes, hours, days, months, years, indoor temperature control and output voltage of the collection and the collection and eventually through the LCD liquid crystal The display shows the results. Also allows time to adjust, timing, and a variety of practical functions such as scrolling display. The design of hardware and software most of the points. Hardware used as the control ATMega16 SCM, FYD12864 character LCD display as part of the signal output; software components using C language as a language, on the ATMega16 to programming functions.Keywords: microcontroller, LCD, temperature collection前言在如今人们生活中,科技的发展让多功能显示屏在我们身边随处可见。在繁华的都市中显示屏可以向市民提供市区空气质量指数,噪声值以及政府发布的相关信息等。不仅可以方便市民了解周围的环境状况,而且提高了市民创模工程的知晓率和关注度。另外在现在的汽车中也能看到多功能显示屏的身影,简单的只能显示空调温度,收音机或车载音响信息等内容。复杂的多功能显示屏则除了显示上述内容以外,还可以显示车辆油耗,续航里程,导航信息或者DVD等内容,而且大多采用彩色屏幕,当然多功能显示屏的使用远不止这些。由此可见其在日常生活中的重要,它是人类和机器沟通一座桥梁。研究本课题让我们从最基本的多功能显示屏入手学习和研究,对人们生活中使用的多功能显示屏的原理有更好的认识和了解,从而研制出更为复杂的可以更好的为人民的日常生活服务的电子产品。 本设计重点研究单片机+时钟芯片这种模式的电子万年历,不仅实现了显示时间和调整时间的万年历功能,而且还可以实现实时温度的检测和显示,电子信息广告等其他多功能用途。市场上有许多电子钟的专用芯片如:LM8363、LM8365等,但它们功能单一,电路连接复杂,不便于调试制作。所以本统设计的多功能显示屏使用系统选用单片机来完成设计,它可以将要显示的数据直接送到LCD显示器,节省了部分转换电路,节约了硬件成本,且功能的扩展性好,只需要对单片机的部分软件进行更新即可实现该系统功能的升级。外围接口电路使用了FYD12864LCD显示屏、时钟芯片DS1302、温度采集芯片DS18B20这些硬件模块来完成设计。 第1章 绪论1.1 单片机技术和发展趋势 单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。 单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳11。 早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的使用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛使用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元11。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛使用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。单片机比专用处理器更适合使用于嵌入式系统,因此它得到了最多的使用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。 单片机是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,它是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的12。目前占统治地位的软件基本是最低级汇编语言,但对于AVR系列的单片机的开发项目一般使用的是C语言,虽然使用C语言编写的代码比用汇编语言编写的代码占用的空间要大5%到20%,但是由于半导体技术的发展,芯片的容量和处理速度有了大幅度的提高,占用空间的大小的差异已经不是关键,相比之下,更应该注重软件是否具有长期稳定运行的能力,注重使用先进开发工具所带来的时间和成本的优势。单片机在目前的发展形势下,表现出几大趋势:可靠性及使用水平越来越高和互联网连接已是一种明显的走向。 所集成的部件越来越多:美国国家半导体公司的单片机已把语音、图象部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以讲是万用机,原因是其内部已集成上各种使用电路。 功耗越来越低和模拟电路结合越来越多。1.2 LCD显示技术LCD技术是把液晶灌入两个列有细槽的平面之间。这两个平面上的槽互相垂直(相交成90度)。也就是说,若一个平面上的分子南北向排列,则另一平面上的分子东西向排列,而位于两个平面之间的分子被强迫进入一种90度扭转的状态。由于光线顺着分子的排列方向传播,所以光线经过液晶时也被扭转90度。但当液晶上加一个电压时,分子便会重新垂直排列,使光线能直射出去,而不发生任何扭转。LCD是依赖极化滤光器(片)和光线本身。自然光线是朝四面八方随机发散的。极化滤光器实际是一系列越来越细的平行线。这些线形成一张网,阻断不和这些线平行的所有光线。极化滤光器的线正好和第一个垂直,所以能完全阻断那些已经极化的光线。只有两个滤光器的线完全平行,或者光线本身已扭转到和第二个极化滤光器相匹配,光线才得以穿透。LCD正是由这样两个相互垂直的极化滤光器构成,所以在正常情况下应该阻断所有试图穿透的光线。但是,由于两个滤光器之间充满了扭曲液晶,所以在光线穿出第一个滤光器后,会被液晶分子扭转90度,最后从第二个滤光器中穿出。另一方面,若为液晶加一个电压,分子又会重新排列并完全平行,使光线不再扭转,所以正好被第二个滤光器挡住。总之,加电将光线阻断,不加电则使光线射出。当然也可以改变LCD中的液晶排列,使光线在加电时射出,而不加电时被阻断。但由于计算机屏幕几乎总是亮着的,所以只有“加电将光线阻断”的方案才能达到最省电的目的。第2章 多功能显示屏设计构思2.1系统设计流程系统设计流程如图1所示,主要有6个步骤。(1) 明确设计任务要求确定设计任务和目标,并制定说明规格文档,作为下一步设计的指导和检验标准。还要明确系统功能要求,性能要求,环境、可靠性、成本、功耗、资源等要求。(2) 体系结构设计体系结构设计是系统的总体设计,它需要确定单片机系统的总体构架,从功能上对软硬件进行划分。在此基础上,确定系统的硬件选型(主要是处理器选型),操作系统的选择和开发环境的选择。 (3) 硬件的设计、制作及测试在这一阶段要确定硬件部分的各功能模块及模块之间的关联,并在此基础上完成元器件的选择、原理图绘制、印刷电路板(PCB)设计、硬件的装配和测试、目标硬件最终的确定和测试。(4) 软件的设计、实现及测试这部分工作和硬件开发并行、交互进行。软件设计主要完成引导程序的编制、操作系统的移植、驱动程序的开发、使用软件的编写等工作。设计完系统设计流程图成后,软件开发进入实现阶段。这一阶段主要是嵌入式软件的生成(编译、链接),调试和固化运行,最后完成软件的测试。(5) 系统集成将测试完成的软件系统装入制作好的硬件系统中,进行系统综合测试,验证系统功能是否能够正确无误地实现,最后将正确的软件固化在目标硬件中。本阶段的工作是整个开发过程中最复杂、最费时的,特别需要相应的辅助工具支持。(6). 系统性能测试及可靠性测试测试最终完成的系统性能是否满足设计任务书的各项性能指标和要求。若满足,则可将正确无误的软件固化在目标硬件中;若不能满足,在最坏的情况下,则需要回到设计的初始阶段重新进行设计方案的制定。 图1 系统设计总流程2.2单片机选择方案单片机种类较多,其C51系列和AVR系列具有较好的代表性。C51系列中AT89S52较常用,它是一种低功耗、高性能CMOS 8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,和工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器1。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制使用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AVR系列中ATmega16较常用,ATmega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达 1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。AVR 内核具有丰富的指令集和 32 个通用工作寄存器。所有的寄存器都直接和算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的 CISC微控制器最高至 10倍的数据吞吐率9。ATmega16 有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512 字节 EEPROM,1K字节 SRAM,32 个通用I/O 口线,32 个通用工作寄存器,用于边界扫描的 JTAG 接口,支持片内调试和编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益 (TQFP 封装 ) 的 ADC ,具有片内振荡器的可编程看门狗定时器,一个 SPI串行端口,以及六个可以通过软件进行选择的省电模式。 工作于空闲模式时 CPU 停止工作,而 USART、两线接口、 A/D 转换器、 SRAM、 T/C、 SPI 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU 和除了异步定时器和ADC以外所有 I/O 模块的工作,以降低 ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展 Standby 模式下则允许振荡器和异步定时器继续工作。本芯片是以 Atmel 高密度非易失性存储器技术生产的。片内 ISP Flash 允许程序存储器通过 ISP 串行接口,或者通用编程器进行编程,也可以通过运行于 AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将使用程序下载到使用Flash存储区(ApplicationFlash Memory)。在更新使用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了 RWW 操作。 通过将 8 位 RISC CPU 和系统内可编程的 Flash 集成在一个芯片内, ATmega16 成为一个功能强大的单片机,为许多嵌入式控制使用提供了灵活而低成本的解决方案14。 通过以上对比AT89S52的flash比较小,自身没有AD模块,需要外扩。没有EEPROM不能记录需要掉电保存的数据,故本系统采用AVR系列的ATmega16单片机来作为系统的控制核心。2.3数据模块方案采集在计算机广泛使用的今天,数据采集的重要性是十分显著的。它是计算机和外部物理世界连接的桥梁。数据采集是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。数据采集技术广泛引用在各个领域。比如摄像头,麦克风,都是数据采集工具,数据采集的大体流程如图2。图2 数据采集过程本系统设计需要采集的信号有:外界温度,时钟等信号。2.3.1测温模块方案选择方案一 热电阻测温:热电阻测量温度,精度和灵敏度都可以,但是它的电阻值和温度的线性关系不好.不便用数字的方法处理。方案二 热电偶测温: 热电偶是工业上最常用的温度检测元件之一,热电偶工作原理是基于赛贝克效应,即两种不同成分的导体两端连接成回路,如两连接端温度不同,则在回路内产生热电流的物理现象。其优点是:测量精度高。因热电偶直接和被测对象接触,不受中间介质的影响。测量范围广。常用的热电偶从-50+1600均可边续测量,某些特殊热电偶最低可测到-269,最高可达+2800(。热电偶是工业温度测量中使用最广泛的一种传感器,在数字电子技术中实现不方便,故而此处不选用此方案。方案三 AD590加运算放大器 AD590是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下: 1、流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:mA/K。2、AD590的测温范围为-55+150。3、AD590的电源电压范围为4V30V。电源电压可在4V6V范围变化,电流 变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。4、输出电阻为710MW。5、精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55+150范围内,非线性误差为0.3。由以上特性可以看出二端式半导体温度传感器 AD590的工作电压要求不高,测温的范围比较宽,它的输出电流是紧随温度变化的电流源,它的线性非常好.但是需要一定的外部电路,且需占用单片机的一个AD口。方案四 单总线温度传感器ds18b20: 单总线温度传感器ds18b20具有超小的体积,超低的硬件开销,抗干扰能力强,精度高的等优点,常用于数字电子技术设计中,故而也为本系统设计采用。2.3.2时钟模块方案方案一 基本门电路搭建 用基本门电路来实现数字钟,电路结构复杂,故障系数大,不易调试。方案二 单片机编程 用单片机读取来自时钟芯片的数据,由于使用软硬件结合的方式,所以电路结构简单、调试也相对方便。和第一种方案比较优点是非常明显的。我们选择了第二种方案,采用的是一款常用的时钟芯片ds1302。通过以上各个方案的制定和对比,我们找到了适用于本设计的各模块的方案,同时也对适用于各模块的元器件做了选择。接下来就要利用软硬件开发工具对系统的整体进行设计。2.4 AVR单片机系统开发工具一台嵌入式系统既有软件也有硬件,理所当然就分别需要软件和硬件的开发工具了,二者缺一不可。2.4.1硬件开发工具硬件设计软件则有Protel DXP|99SE, Proteus等。Protel DXP是第一个将所有设计工具集于一身的板级设计系统,电子设计者从最初的项目模块规划到最终形成生产数据都可以按照自己的设计方式实现。Protel DXP运行在优化的设计浏览器平台上,并且具备当今所有先进的设计特点,能够处理各种复杂的PCB设计过程。通过设计输入仿真、PCB绘制编辑、拓扑自动布线、信号完整性分析和设计输出等技术融合,Protel DXP提供了全面的设计解决方案6。Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统2。为系统初级阶段软件调试带来了方便。本设计主要用到硬件设计软件是DXP和protues,利用各部分器件的资料,在DXP中绘图,完成硬件设计,查找相关软件程序并在protues中仿真调试整体硬件设计的正确性。2.4.2软件开发工具常见的单片机开发工具有很多如CodeVision,IAR,ICCAVR等。而CodeVision AVR 是设计紧凑、功能强大的编译软件,被认为是学习AVR的最容易入门的工具。友好的界面很像KEIL。CVAVR支持单片机的位操作及专用函数定义,极大的方便了开发者。由于本系统采用的是Atmel公司的AVR系列单片机,鉴于CodeVision AVR容易入门15,选为最终的开发工具。CodeVision AVR编辑软件启动界面:图3 CVAVR启动界面CodeVision AVR项目向导项目向导是CodeVision AVR的一个非常有用的功能,通过该向导可以很方便的生成硬件的初始化代码。下面对本设计要用的功能作一些简单的介绍:(1)芯片设置,可以设置所使用AVR芯片的型号及时钟频率等参数,(2)端口设置,可以设置各端口的初始化状态。(3)工程信息选项卡,可以填入和工程有关的信息。图4 项目选项卡设置以上为此次设计用到部分项目向导,编译器的向导能够帮助我们操作单片机的底层硬件,让开发人员把更多的精力放在核心程序的编写上,因此缩短软件开发周期。第3章 系统硬件设计和实现硬件电路以单片机最小系统为基础,采用FYD12864字符型液晶来进行时钟日历和当前温度的显示。系统原理图如图5:图5 系统硬件设计图3.1 系统硬件概述硬件设计电路以ATMega16单片机为控制核心、具有在线编程功能,低功耗;时钟电路由ds1302芯片提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分、秒进行计时,具有闰年补偿功能工作电压在2.5V-5.5V.采用三线接口和CPU进行同步通信,具有掉电自动保存功能。温度的采集由ds18b20构成。显示部分由FYD12864字符液晶显示。3.2 硬件电路各模块工作原理3.2.1 Atmega16单片机主控制模块的设计一Atmega16单片机引脚介绍: 端口A 作为A/D 转换器的模拟输入端。端口A 为8 位双向I/O 口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口A 处于高阻状态14(端口B、C、D第一功能同端口A)。RESET: 复位输入引脚,持续时间超过最小门限时间的低电平将引起系统复位。持续时间小于门限间的脉冲不能保证可靠复位。XTAL1:反向振荡放大器和片内时钟操作电路的输入端。 XTAL2:反向振荡放大器的输出端。VCC :电源; GND:地:二ATmega16单片机的I/O端口的工作原理:Atmega16单片机具有32个通用I/O 口,分为PA、PB、PC、PD 4组,每组有8位。这些I/O口都可以通过寄存器设置成输入或者输出,有些I/O口还具有第二功能。在设置通用I/O口时,atmega16的所有端口的功能都是相同的,并且具有真正的读-修改-写功能。Atmega16的内部独特的结构使得输出缓冲器具有对称的驱动能力,可以输出或者吸收大电流,能够直接驱动LCD。所有的端口引脚都具有内部上拉电阻,可以通过寄存器配置独立选择是否连接,复位时所有的引脚都为高阻态。Atmega16单片机的每个端口都有3个I/O寄存器地址:数据寄存器PORTx(x=A、B、C、D),方向寄存器DDRx和端口输入引脚PINx。其中PINx为只读寄存器。对PINx寄存器的某一位写逻辑1将造成数据寄存器的相应位发生0和1的翻转。当寄存器MCUCR的上拉禁止位PUD被置位时,所有端口的引脚上拉电阻都被禁止。不论如何设置DDRxn,都可以通过读PINx来获得该引脚上的逻辑电平14。三ATmega16单片机的复位原理外部复位由外加于RESET 引脚的低电平产生。当复位低电平持续时间大于最小脉冲宽度时( 参见表1) 即触发复位过程,即使此时并没有时钟信号在运行。当外加信号达到复位门限电压VRST( 上升沿) 时, tTOUT 延时周期开始。延时结束后MCU 即启动14。表1 外部触发复位Vrst/RESET门限电压0.1Vcc0.9VccVTrst/RESET最小脉冲宽度1.5us由表1知当RES脚电压低于0.1VCC时,且时间持续1.5us,单片机自动复位。四ATmega16单片机最小系统设计图6给出了采用Mega16单片机外加电源及晶体振荡器构成单片机最小系统。配合单片机开发的设计、调试和下载,最终将时钟信息从PC0PC7端口输出到字符液晶显示。图6 单片机最小系统和液晶接口3.2.2 温度采集模块设计温度传感器种类繁多,在使用和高精度,高可靠性的场合时适用DALLAS公司的DS18B20温度传感器67,它具有超小的体积,超低的硬件开销,抗干扰能力强,精度高等优点。一、DS18B20的特点 1、适应电压范围宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。2、独特的单线接口方式,DS18B20在和微处理器连接时仅需要一条口线即可实现微处理器和DS18B20的双向通讯。3、 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。5、测温范围为55125,在-10+85时精度为0.5。6、可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。7、测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。8、负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。二、控制器对 ds18B20 操作流程:1复位:首先必须对 DS18B20 芯片进行复位,复位就是由控制器(单片机)给 DS18B20 单总线至少 480uS 的低电平信号。当 18B20 接到此复位信号后则会在 15-60uS 后回发一个芯片的存在脉冲。 2存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在 15-60uS 后接收存在脉冲,存在脉冲为一个 60-240uS 的低电平信号。至此,通信双方已经达成了基本的协议, 接下来将会是控制器和 18B20 间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。3 控制器发送 ROM 指令:双方打完了招呼之后将要进行交流了,ROM 指令共有 5 条,每一个工作周期只能发一条,ROM 指令分别是读 ROM 数据、指定匹配芯片、跳跃 ROM、芯片搜索、报警芯片搜索。ROM 指令为 8 位长度,功能是对片内的 64 位光刻 ROM 进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。单总线上可以同时挂接多个器件,并通过 每个器件上所独有的 ID 号来区别,一般只挂接单个 18B20 芯片时可以跳过 ROM 指令则读前 2 个字节即可)。4 控制器发送存储器操作指令:在 ROM 指令发送给 18B20 之后,紧接着就是发送存储器操作指令。操作指令同样为 8 位,共 6 条,存储器操作指令分别是写 RAM 数据、读RAM 数据、将 RAM 数据复制到 EEPROM、温度转换、将 EEPROM 中的报警值复制到 RAM、工作 方式切换。存储器操作指令的功能是命令 18B20 作什么样的工作,是芯片控制的关键。5 执行数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器必须等待 18B20 执行其指令,一般转换时间为 500uS。若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过 ROM 指令、执行温度转换存储器操作指令、等待 500uS 温度转换时间。紧接着执行第二个周期为复位、跳过 ROM 指令、执行读 RAM 的存储器操作指令、读数据(最多为 9 个字节),中途可停止只读简单温度值。三、DS18B20芯片和单片机的接口:如图7所示,DS18B20只需要接到控制器的一个I/O口上,由于单总线为开漏所以需要外接一个4.7K的上拉电阻。本设计中使用的控制器是单片机,单总线可以使用单片机的I/O口内部的上拉电阻而不需要再外接上拉电阻。图7 ds18b20和控制器接口 四、温度传感器采集温度转换:DS18B20在出厂时的配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。表2为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 。表2 ds18b20温度值格式表位数Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0LS Byte232221202-12-22-32-4位数Bit 15Bit 14Bit 13Bit 12Bit 11Bit 10Bit 9Bit 8MS ByteSSSSS2625243.2.3 时钟模块硬件设计DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口和CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,和DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力1。 DS1302的引脚排列如图8,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向), SCLK为时钟输入端。 图8 ds1302的引脚排列一、DS1302的控制字节 DS1302 的控制字如表3所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。表3 DS1302的控制字节1RAM/CKA4A3A2A1A0RAM/K二、数据输入输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 三、DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器和日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及和RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302和RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。四、DS1302和单片机接口电路如图7DS1302和CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。图10示出DS1302和89C2051的连接图,其中,时钟的显示用I/O表示。 实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振误差不一样,有的误差很大有的很小。另外,还可以和上面电路中的DS18B20一起显示实时温度,ds18b20占用了单片机的另外一个I/O口。电路图如下:图9 ds1302和控制器接口电路3.2.4 FYD12864字符液晶模块 FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案和同类型的图形点阵液晶显示模块相比,硬件电路结构或显示程序都要简洁得多14。一、基本特性:l 低电源电压VDD:+3.0-+5.5Vl 显示分辨率:12864点l 内置汉字字库,提供8192个1616点阵汉字(简繁体可选)l 内置 128个168点阵字符l 2MHZ时钟频率l 显示方式:STN、半透、正显l 驱动方式:1/32DUTY,1/5BIASl 视角方向:6点l 背光方式:侧部高亮白色LED,功耗仅为普通LED的1/51/10l 通讯方式:串行、并口可选l 内置DC-DC转换电路,无需外加负压l 无需片选信号,简化软件设计l 工作温度: 0 - +55 ,存储温度: -20 - +60 二、液晶模块接口:接口方式有并行接口和串行接口两种,通过对15号引脚设置可以选择接口方式;在本次设计中使用的8位并行接口和Atmega16进行数据传输。表4 并行接口管脚说明管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7DB0R/W=“L”,E=“HL”, DB7DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式16NC-空脚17/RESETH/L复位端,低电平有效18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)20KVSS背光源负端三、控制器接口信号说明:表5 RS,R/W的配合选择决定控制界面的4种模式RSR/W功能说明LLMPU写指令到指令暂存器(IR)LH读出忙标志(BF)及地址记数器(AC)的状态HLMPU写入数据到数据暂存器(DR)HHMPU从数据暂存器(DR)中读出数据表6 E信号E状态执行动作结果高低I/O缓冲DR配合/W进行写数据或指令高DRI/O缓冲配合R进行读数据或指令低/低高无动作 根据以上接口管脚说明设计本系统中液晶和单片机接口电路如图10所示:P1为2*8插座,R4为液晶对比度调节电位器,通过调整他可以改变液晶的对比度,R5C3组成液晶的上电复位电路,液晶的7-14号引脚接单片机的PC口,15号脚为高电平即设置此接口方式为并行接口。图10 LCD和控制器接口电路第4章 系统软件设计在编写软件之前必须构思整个系统的框图,然后分别设计每一个小的程序模块并进行相应的测试,确保每一个模块都能正常的工作。最后将每一个模块并接在一起进行整体测试。 4.1系统设计总框图图11系统软件设计流程图4.2 各模块软件设计4.2.1液晶模块软件设计和调试一、字符显示原理FYD12864-0402B每屏可显示4行8列共32个1616点阵的汉字,每个显示RAM可显示1个中文字符或2个168点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。FYD12864-0402B内部提供1282字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:00000006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H7FH显示半宽ASCII码字符,A1A0HF7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址和32个字符显示区域有着一一对应的关系,其对应关系如下表7所示14。表7 RAM地址和显示区域对应表80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH二、图形显示原理 先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直和水平的坐标地址)垂直地址范围 AC5.AC0;水平地址范围 AC3AC0。绘图RAM 的地址计数器(AC)只会对水平地址(X 轴)自动加一,当水平地址=0FH 时会重新设为00H 但并不会对垂直地址做进位自动加一,故当连续写入多笔资料时,程序需自行判断垂直地址是否需重新设定。GDRAM的坐标地址和资料排列顺序如图12:图12 图形显示对应坐标地址4.2.2温度采集模块程序编写和调试一、DS18B20的六条控制命令:温度转换 44H 启动DS18B20进行温度转换。 读暂存器 BEH 读暂存器9个字节内容。 写暂存器 4EH 将数据写入暂存器的TH、TL字节。 复制暂存器 48H 把暂存器的TH、TL字节写到E2RAM中。读电源供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CPU。跳跃ROM指令 CCH 这条指令使芯片不对ROM编码做出反应,在单总线的情况之下,为了节省时间则可以选用此指令。如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。 二、单总线操作时序3:DS18B20复位及应答关系示意图如图13:(1) 先将数据线置高电平“1”。(2) 延时(该时间要求的不是很严格,但是尽可能的短一点)(3) 数据线拉到低电平“0”。(4) 延时750微秒(该时间的时间范围可以从480到960微秒)。(5) 数据线拉到高电平“1”。(6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。(7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。(8) 将数据线再次拉高到高电平“1”后结束。图13 ds18b20复位和应答过程 DS18B20读写时间隙:DS18B20的数据读写是通过时间隙处理位和命令字来确认信息交换的。写时间隙: 图14 写时间隙过程写时间隙分为写“0”和写“1”,时序如图14。在写数据时间隙的前15uS总线需要是被控制器拉置低电平,而后则将是芯片对总线数据的采样时间,采样时间在15-60uS,采样时间内如果控制器将总线拉高则表示写“1”,如果控制器将总线拉低则表示写“0”。每一位的发送都应该有一个至少15uS的低电平起始位,随后的数据“0”或“1”应该在45uS

温馨提示

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

评论

0/150

提交评论