《基于单片机控制的数字气压计设计.doc》由会员分享,可在线阅读,更多相关《基于单片机控制的数字气压计设计.doc(42页珍藏版)》请在三一办公上搜索。
1、摘要在工业生产中,温度、气压及电流都是很常见的生产参数,随着科技的发展,以及对产品品质更加苛刻的要求,在生产过程中,对于这些生产参数的要求越来越严格,因此各种高精密的仪器被发明出来为产品的生产来服务。为获得工业炉中实时的气压数据,高精度的气压计是不可或缺的。本设计介绍了一种用气压传感器BMP085与AT89S52单片机相结合的气压计设计方法。通过气压传感器获得与气压相对应的模拟电压值,再通过BMP085气压传感器内置的模块的转化和处理,以及单片机对其的控制,获得当前的气压值,并通过1602液晶显示模块显示。本设计以C语言为开发工具,进行了相关的设计与编程,总体实现了系统功能的可靠性、稳定性、经
2、济性。关键词:气压传感器; 气压计; BMP085;单片机AbstractIn industrial production, with the development of technology,temperature, pressure, and current production parameters are very common production parameters , as well as the demanding requirements for product quality, in the production process, production paramete
3、rs for these increasingly stringent requirements, so the kinds of high precision instruments have been invented to serve for production. to obtain the pressure data, high-precision pressure gauge is indispensable.This design describes the design of precise numerical barometer based on BMP085, giving
4、 the achieve-method of soft and hardware Obtain the value of analog voltage according to the air pressure via BMP085,and then handy by the corresponding module built into the BMP085 pressure sensor, and the Microcomputer controls the process. The results will displayed on the LCD1602. On the system
5、software design, development tools is C programming language, The objective is to achieve system reliability, stability, security and economy.Key words: Pressure sensor; Barometer; MCU; BMP085目录1.绪论11.1 课题背景11.2 本课题国内外研究现状11.3 本课题的研究意义21.4 本课题相关理论综述22.系统总体设计42.1设计思路分析42.2系统总体结构42.3系统各功能模块介绍52.3.1 BM
6、P085气压传感器52.3.2 ATCS52单片机112.3.3 LCD1602显示模块142.3.3.1 液晶显示器的优点142.3.3.2 液晶显示原理152.3.3.3字符型LCD1602详细介绍163.硬件设计213.1硬件电路213.1.1 BMP085与单片机的接口电路213.1.2 单片机主控电路223.1.3 LCD1602接口电路223.2 硬件调试244.毕业设计总结264.1 主要成果264.2 经验总结26致谢27参考文献28附录一:原理图29附录二:程序源码301. 绪论1.1 课题背景在工业生产中,电流、电压、温度、压力等都是很常见的生产要求参数,因此在很多工业生产
7、中,人们都要对加热炉、生产炉中的气压进行监控,气压计是利用压敏元件将待测气压转化为其它容易检测和传输的电流或电压信号,再通过电路处理将其显示的工具,而其中的核心就是气压传感器,它在监视压力大小及控制压力变化方面起着重要作用。采用单片机对其进行控制,不仅控制简单方便,而且对这些参数指标的控制和调节能力更强,从而提高产品质量。运用于气压计的气压传感器基本都是依靠不同高度时的气压变化来获取气压值的。气象学研究表明,在垂直方向上气压随高度增加而降低。例如在低层,每上升100m气压便降低10hPa;在56km的高空,高度每增加100m,气压便会降低7hPa;而当高度进一步增加时,即到910km的高空之后
8、,高度每增加100m,气压便会降低5hPa;同样,若空气中有下降气流时,气压会增加;若空气中有上升气流时,作用于空气柱底部的气压就会减小。一般把作用于单位面积上空气柱的重量称为大气压力。数字气压计大量应用在各种工矿企业,野外作业,消费类电子产品等等的地方,并且众多数字气压传感器的出现使得数字化气压测量装置更加多样化,并且精度也越来越高,现在的数字气压计已经不满足仅测量气压的功能,有的还具有测温及辨识方向的功能,智能化及多功能化将是其以后发展的趋势。1.2 本课题国内外研究现状常见气压计有液体气压计和盒式气压计。常见的液体气压计有水银气压计和酒精气压计这两种,这两种都是老式的气压计,体积大,精度
9、低,不方便携带且容易坏,当今社会科技高速发展,各行各业不断出现新技术新材料,气压测量领域也是这样,盒式气压计的出现部分的解决了液体气压计无法解决的缺点,比如体积、携带等等。人类社会进入20世纪90年代以后微电子行业发展极为迅速,各种各样的电子传感器被发明且被运用到各行各业,为人们的生产生活创造了极大的便利。数字气压传感器亦已出现,并大量被运用,甚至现在很多手持设备中都已经加入了气压计功能,比如手机,GPS等,方便了人们的出行旅游。目前国际国内很多公司都推出了其数字气压传感器,如摩托罗拉公司的MPX4105和Intersema公司的MS5534b,另外还有华普微电子的HP03系列数字气压传感器以
10、及BOSCH公司的SMD500和BMP085等等。众多数字气压传感器的出现使得多样化的数字化气压测量装置大量出现,并越来越普及,精度也越来越高。微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机。微控制器诞生于20世纪70年代中期,经过20多年的发展,其成本越来越低,而性能越来越强大,这使其应用已经无处不在,遍及各个领域。例如电机控制、条码阅读器扫描器、消费类电子、游戏设备、电话、HVAC、楼宇安全与门禁控制、工业控制与自动化和白色家电(洗衣机、微波炉)等。本次设计也将采用微控制器作为数字气压计的控制元件。气压传感器和微电子控制器的结合,可以创造出多种产品,随着科技的发展,气压
11、计已经由以前的只有专业人士才能使用的测量器具变成今天的随处可见的电子产品,并集成到众多的电子产品中。1.3 本课题的研究意义本课题设计充分利用了BMP085的功能,它满足数字气压计采集、控制和数据处理的需要,可提高系统稳定性和抗干扰能力。同时,微控制和数字化气压传感器的结合可以使得气压计的设计更具灵活性,测量精度相对于液体气压计也有了显著提高,测量结果的显示也更直观,由于大量的工作由单片机软件来实现,简化了设计电路,且调整方便、可兼顾的指标多,从而大大降低了成本。另外,由于该数字气压计的模块化设计,该数字气压计还具有很好的功能扩展性,具有精度高、稳定性好、功能易于扩展等优点,为仪器及电子产品设
12、计的后续技术升级,以及进一步满足市场的需要提供了条件。1.4 本课题相关理论综述在设计电子气压计之前首先要搞清楚气压的定义, 气压是作用在单位面积上的大气压力,即等于单位面积上向上延伸到大气上界的垂直空气柱的重量,著名的马德堡半球实验证明了它的存在。气压的国际制单位是帕斯卡,简称帕,符号是Pa。气压的地区差别是气象变化的直接原因之一,在高处的大气层比较薄,那里的空气引力比低处要小,因此在高处的气压比在低处要低。气压产生的成因,可以依据分子动理论分析,气体的压强是大量分子频繁地碰撞容器壁而产生的。单个分子对容器壁的碰撞时间极短,作用是不连续的,但大量分子频繁地碰撞器壁,对器壁的作用力是持续的、均
13、匀的,这个压力与器壁面积的比值就是压强大小。气压的大小与海拔高度、大气温度、大气密度等有关,一般随高度升高按指数律递减。气压有日变化和年变化:一年之中,冬季比夏季气压高;一天中,气压有一个最高值、一个最低值,分别出现在910时和1516时,还有一个次高值和一个次低值,分别出现在2122时和34时。气压日变化幅度较小,一般为0.10.4千帕,并随纬度增高而减小。气压变化与风、天气的好坏等关系密切,因而是重要气象因子。2. 系统总体设计2.1设计思路分析本次设计采用集成的单片机主控,压力传感器采集到气压信号后,经过其自带的A/D转换模块和控制单元,将其处理后,送入单片机中,通过单片机的控制,将处理
14、的结果送显示模块进行显示,其原理框图如下:气压传感器显示器微处理器 图2-1 设计方案原理图此方案直观明了,调整方便,可兼顾的指标多,因此使用本设计方案,本方案的重点有以下两点:(1)要选择合适的气压传感器芯片,这需要根据实际需要以及各种气压传感器的性能参数来决定。(2)要设计合理的单片机及各模块的接口电路。2.2系统总体结构本系统的总体结构框图如图2-2所示:基于单片机的数字气压计设计BMP085AT89CS52LCD1602示警电路图2-2 数字气压计系统结构框图由图2-2可知,整个系统的工作流程如下:测量时被测气压由气压传感器转换为模拟的电压输出,此输出信号不能直接交由单片机处理。因此,
15、需通过BMP085气压模块内置的A/D转换模块的转换以及其寄存器的处理和单片机的控制,最后获得实际气压值,并通过LCD1602显示。2.3系统各功能模块介绍2.3.1 BMP085气压传感器BMP085是BOSCH(博世)公司生产的新一代数字气压传感器,BMP085的低功耗、低电压的电学特性使它可以很好的适用于手机、PDA、GPS导航器件以及户外装备上。BMP085在低的高度噪声(merely 0.25)快速转换的情况下,表现很好。BMP085采用强大的8脚陶瓷无引线芯片承载(LCC)超薄封装,它性能卓越,具有稳定的电磁兼容性、高精度、线性性以及稳定性,并且内置有校准补偿,绝对精度最低可以达到
16、0.03hPa(0.25米),并且耗电极低,只有3A。气压测量范围从300hPa到1100hPa,换算成高度为海拔9000米到500米。BMP085是基于压阻效应技术的,它共有八个引脚, 1脚(GND)接电源地,2脚(EOC)为完成转换输出,3脚(VDDA)为正电源,4脚(VDDD)为数字正电源,5脚为空,6脚(SCL)为IIC的时钟端,7脚(SDA)为IIC的数据端,8脚(XCLR)为主清除信号输入端,低电平有效,用来复位BMP085和初始化寄存器和控制器,在不用的情况下可以空置,其引脚图如图2-3所示。 图2-3 BMP085引脚图 BMP085的工作电压为1.8V3.6V,典型工作电压为
17、2.5V,其与单片机相连的典型电路如下图(图2-4)所示:图2-4 BMP085与单片机相连的典型电路从上图(图2-4)中可以看到,BMP085内包含有电阻式压力传感器、AD转换器和控制单元,其中控制单元包括了EEPROM和IIC接口。读取BMP085时会直接传送没有经过补偿的温度值和压力值。而在EEPROM中则储存了176位单独的校准数据,这些数据将对读取的温度压力值进行补偿。176位的EEPROM被划分为11个字,每个字16位,这样就包含有11个校准系数。每个器件模块都有自己单独的校准系数,在第一次计算温度压力数据之前,单片机就应该先读出读出EEPROM中的这些校准数据,然后再开始采集数据
18、温度和压力数据。和所有的IIC总线器件一样,BMP085也有一个器件的固定地址,根据其数据手册,出厂时默认BMP085的从机地址为0xEE(写入方向),或0xEF(读出方向)。温度数据UT和压力数据UP都存储在寄存器的第0到15位之中,压力数据UP的精度还可扩展至1619位。图2-5 BMP085读取顺序图 图2-6 EEPROM中的校准数据从读取过程顺序图(图2-5)中可以看出,单片机发送开始信号启动温度和压力测量,经过一定的转换时间(4.5ms)后,从IIC接口读出结果。为了将温度的单位换算成和将压力的单位换算成hPa,需要用到EEPROM中的校准数据(图2-6)来进行补偿计算,这些数据也
19、可以从IIC接口读出。事实上,EEPROM中的这些校准数据应该在程序初始化的时候就读出,以方便后面的计算。 在同一个采样周期中BMP085可以采128次压力值和1次温度值,并且这些值在读取后会被及时更新掉。若不想等待到最大转化时间之后才读取数据,可以有效利用BMP085的输出管脚EOC来检查转化是否完毕。若为1表示转换完成,为0表示转换正在进行中。在转换完成后BMP085就自动切换到待命模式。表2-1控制寄存器回应值测量值控制寄存器(地址0xF4)最小反应时间温度0x2E4.5气压(osrs=0)0x344.5气压(osrs=1)0x747.5气压(osrs=2)0xB413.5气压(osrs
20、=3)0xF425.5要得到温度或气压的值,必须要访问地址为0xF4的控制寄存器。它根据写入数据的不同,回应的值也不一样,具体如上表(表2-1)所示。从表(表2-1)中可以看出,要获得温度数据,必须先向控制寄存器(地址0xF4)写0x2E,然后等待至少4.5ms,才可以从地址0xF6和0xF7读取十六位的温度数据。同样,要获得气压数据,必须先向控制寄存器(地址0xF4)写0x34,然后等待至少4.5ms,才可以从地址0xF6和0xF7读取16位的气压数据,若要扩展分辨率,还可继续读取0xF8(XLSB)扩展16位数据到19位。获取到的数据还要根据EEPROM中的校准数据来进行补偿后才能用,EE
21、PROM的数据读取可根据上表(表2-1)中的地址来进行,地址范围从0xAA-0xBF。下面介绍一下, 单片机对BMP085的控制方法。单片机对BMP085 发送控制命令的方式如下图(图2-7)所示。图2-7 单片机向BMP085发送控制命令的方式具体说来,单片机向BMP085 发送命令的步骤如下(1)发送模块地址+W(表示写操作),如图2-7中的0xEE。(2)发送寄存器地址(register address),如图2-7中的第一个0xF4。(3)发送寄存器的值(control register data),如图2-7中的第二个0xF4。寄存器的值代表BMP085 要进行的测量方式。不同的值分
22、别代表,测量温度;低精度压力测量;中精度压力测量;高精度压力测量。举例来说,向 BMP085 写寄存器地址0xF4 代表要BMP085 进行测量,具体进行什么测量(温度、高精度压力、中精度压力还是低精度压力)要由发向寄存器的值(control register data)决定,在图2-7 中control register 的值是0xF4。对照表2-1可以看出,0xF4 代表要进行高精度的压力测量,需要测量时间25.5ms。以上就是单片机向BMP085发送控制命令的具体过程,下面介绍下单片机从BMP085中读取数据的方法,其方式如下图(图2-8)所示。图2-8 从BMP085读取数据的方法具体
23、说来,从BMP085 读取数据的步骤如下:(1)发送模块地址+W(表示写操作),如图2-8中的0xEE。(2)送寄存器地址(register address),如图2-8中的第一个0xF6。(3)重新开始IIC 传输(Restart)。(4)发送模块地址+R(表示要进行读操作),如图2-8中的0xEF。(5)读取测量值的高8 位(MSB)。(6)读取测量值的低8 位(LSB)。表2-2 BMP085中的寄存器寄存器名称寄存器地址EEPROM0xAA-0xBFUT or UP0xF6(高八位) 0xF7(低八位) 0xF8其实单片机对BMP085 的控制可以概括为两句话:向固定的寄存器(0xF4
24、)写特定值,从特定的寄存器(0x2E)读返回值。每次通讯时的地址都是一个固定的值,主要是为了符合IIC 协议。(1)向固定的寄存器(0xF4)(表2-1中的寄存器)写特定值。其实就是向 0xF4 地址写不同的值从而完成温度测量或者不同的压力精度的测量。(2)从特定的寄存器(表2-2中的寄存器地址)读返回值。从 EEPROM 读取Calibration 所需要的数据,共有11 个Word(双字节)。从 0xF6,0xF7,0xF8 读取UT 或者UP,具体是UP 还是UT 要由前面进行的操作决定(进行了温度转换就存有温度数据,进行了压力转换就存有压力数据)。图2-9 BMP085计算数据的具体过
25、程根据BMP085的官方数据手册,可知其对压强数据计算的具体过程,如下图(图2-9)所示:图2-9 BMP085计算数据的具体过程2.3.2 ATCS52单片机AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K字节Flash,在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节F
26、lash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。89C52单片机的40条引脚按功能来分,可以分为3部分,电源及时钟引脚、控制引脚和输入/输出引脚。如下图2-10所示: 图2-10 89C52单片机引脚图主电源及时钟引脚:此类引脚包
27、括电源引脚Vcc、Vss、时钟引脚XTAL1、XTAL2。 (1)Vcc(40脚):接+5V电源,为单片机芯片提供电能。 (2)Vss(20脚):接地。 (3)XTAL1(19脚)在单片机内部,它是一个反向放大器的输入端,该放大器构成了片内的振荡器,可提供单片机的时钟控制信号。 (4)XTAL2(18脚)在单片机内部,接至上述振荡器的反向输出端。控制引脚:此类引脚包括RESET(即RSR/VPD)、ALE/PROG、PSEN、EA/VPP,可以提供控制信号,有些具有复用功能。 (1)RSR/ VPD(9脚):复位信号输入端,高电平有效,当振荡器运行时,在此引脚加上两个机器周期的高电平将使单片机
28、复位(REST)。复位后应使此引脚电平保持为不高于0.5V的低电平,以保证单片机正常工作。掉电期间,此引脚可接上备用电源(VPD),以保持内部RAM中的数据不丢失。当Vcc下降到低于规定值,而VPD在其规定的电压范围内(50.5V)时,VPD就向内部RAM提供备用电源。 (2)ALE/PROG(30脚):ALE为地址锁存允许信号。当单片机访问外部存储器时,ALE(地址锁存允许)输出脉冲的下降沿用于锁存16位地址的低8位。即使不访问外部存储器,ALE端仍有周期性正脉冲输出,其频率为振荡器频率的1/6。但是每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。ALE端可
29、以驱动8个LSTTL负载。 (3)PSEN(29脚):程序存储器允许输出控制端。此输出为单片内访问外部程序存储器的读选通信号。在从外部程序存储器取指令(或取常数)期间,每个机器周期均PSEN两次有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不会出现。PSEN同样可以驱动8个LSTTL负载。 (4)EA/VPP(31脚):EA功能为内外程序存储器选择控制端。当EA端保持高电平时,单片机访问内部程序存储器,但在PC(程序计数器)值超过0FFFH时将自动转向执行外部程序存储器内的程序。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序
30、指令,EA应该接VCC。在Flash编程期间,EA也接收12伏VPP电压输入/输出引脚:此类引脚包括P0口、P1口、P2口和P3口。 (1)P0(P0.0-P0.7)是一个8位三态双向I/O口,在不访积压处部存储器时,做通用I/O口使用,用于传送CPU的输入/输出数据,当访问外部存储器时,此口为地址总路线低8位及数据总路线分时复用口,可带8个LSTTL负载。对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,
31、要求外接上拉电阻。(2)P1(P1.0-P2.7)是一个8位准双向I/O口(作为输入时,口锁存器置1),带有内部上拉电阻,可带4个LSTTL负载。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。 与AT89C51 不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),具体参见下表2-3。表2-3 P1口的第二功能引脚号功能特性P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉
32、/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)(3)P2(P2.0-P2.7)是一个8位准双向I/O口,与地址总路线高8位复用,可驱动4个LSTTL负载。端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX RI 指令)时,P2口输出P2 锁存器的内
33、容。在Flash编程或校验时,P2亦接收高位地址和一些控制信号。(4)P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。另外P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能,P3口各个位的详细功能表,如下表2-4所示。表2-4 P3口各个位的第二功能P3口各个位的第二功能P3口的位第二功能说明P3.0RXD串行数据接收口P3.1TXD串行数据发射口P3.2INT0外部中断0输入P3.3INT
34、1外部中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部RAM写信号P3.7RD外部RAM读信号2.3.3 LCD1602显示模块2.3.3.1 液晶显示器的优点在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。采用液晶显示做为输出具有以下的几个优点:(1)显示质量高。由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显
35、示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。(2)数字式接口。液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。(3)体积小、重量轻。液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显(4)功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。2.3.3.2 液晶显示原理液晶显示器各种图形的显示原理:(1)线段的显示点阵图形
36、式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线
37、。这就是LCD显示的基本原理。(2)字符的显示用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。(3)汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,
38、各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直到32B显示完就可以LCD上得到一个完整汉字。2.3.3.3字符型LCD1602详细介绍字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面详细介绍下1602字符型液晶显示器,1602字符型液晶显示器实物如下图2-11所示: 图2-11 LCD1602实物图1602LCD主要技术参数:显示容量:162个字符;芯片
39、工作电压:4.55.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V;字符尺寸:2.954.35(WH)mm;1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,其各个引脚的详细作用如下:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指
40、令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。其引脚可总结为下表(表2-5):表2-5 LCD1602引脚接口说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极1602液晶模块
41、的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平),其内部的控制器共有11条控制指令指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文
42、字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。其控制指令可以总结为下表(表2-6):表2-6 LCD1602控制指令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模
43、式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存储器地址0001字符发生存储器地址8置数据存储器地址001显示数据存储器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM10要写的数据内容11从CGRAM或DDRAM中读数11读出的数据内容液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,LCD1602的内部显示地址如下图(2-12)所示:图2-12 16
44、02LCD内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图2-13所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日
45、文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。图2-13 LCD1602字符代码与图形对应图3. 硬件设计3.1硬件电路3.1.1 BMP085与单片机的接口电路BMP085的各引脚在前一部分,已经详细介绍过,在此不再赘述,其与单片机的接口电路如下图(图3-1)所示:图3-1 BMP085与单片机的接口电路因单片机驱动能力小,其电流不足以驱动BMP085,故外接两阻值为5.6k的上拉电阻,增大电流,以驱动BMP085。3.1.2 单片机主控电路图3-2 主控电路主控电路包括复位电路、晶振电路以及单片机P0口的上拉电阻电路。复位电路由阻值为200的电阻以及22uf的电容组成;复位电路由11.0592M晶振以及两个33P的电容组成,其具体的电路图如上图(图3-2)所示。3.1.3 LCD1602接口电路用单片机的P0口接LCD1602液晶显示器的8位数据线,P2.5接RS,P2.6接RW,P2.7接E,其具体电路图如下图(图3-3)所示: 图3-3 LCD1602接口电路3.2 硬件调试