智能仪表综合训练设计说明书单片机温度实时曲线的显示_第1页
智能仪表综合训练设计说明书单片机温度实时曲线的显示_第2页
智能仪表综合训练设计说明书单片机温度实时曲线的显示_第3页
智能仪表综合训练设计说明书单片机温度实时曲线的显示_第4页
智能仪表综合训练设计说明书单片机温度实时曲线的显示_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、中文摘要中文摘要 液晶是现在电子产品中使用越来越多的一种显示器件。我们经常会在各种各样的电 子产品和仪器上看到液晶显示器的存在。这些液晶品种繁多,功能不一 ,有的是字符型 ,有 的是点阵型常常用来显示各种参数 ,包括电压、电流、温度及各种电气参数和一些特 定信息。液晶不但用来显示各种文字还可以被设计成各种图案、通过改变里面特定显 示 的内容 ,还还可以动态的显示各种图案及画面。液晶的使用打破了以往单一声光显 示功能 ,为人们提供了更多丰富多彩的显示信息。使显示的内容更加形象化 、生动化。 本设计采用以单片机为核心的低成本、高精度、微型化数字显示温度实时曲线的硬 件电路和软件设计方法。整个电路采

2、用模块化设计,由主程序、中断程序、ds18b20 温 度转换的驱动程序、显示子程序等模块组成。ds18b20 温度传感器数字信号经单片机综 合分析处理,实现温度显示以及曲线绘图各种功能。在此基础上设计了系统的总体方 案,最后通过硬件和软件实现了各个功能模块。相关部分附有硬件电路图、程序流程 图。 关键词:关键词:at89s52 单片机;ds18b20 温度传感器;12864 液晶显示模块; 目录目录 中文摘要 .i 第 1 章 前言 .1 1.1 液晶的概述 .1 1.2 液晶显示的意义 .1 1.3 液晶 lcd 的各类应用 .1 1.4 课程设计的任务和要求 .2 第 2 章 液晶显示温度

3、曲线方案设计 .3 2.1 总体选型方案.3 2.1.1 温度检测电路选型方案.3 2.1.2 液晶显示模块选型方案 .3 2.1.3 键盘输入模块选型方案 .3 2.2 整体设计思路.3 第 3 章 液晶温度显示硬件设计 .4 3.1 控制模块硬件设计 .4 3.1.1 at89s52 单片机简介 .4 3.1.2 at89s52 单片机最小系统硬件设计 .5 3.2 液晶显示模块硬件设计.6 3.2.1 lcd12864zk 液晶模块介绍 .6 3.2.2 液晶显示模块硬件设计 .9 3.3 温度模块的硬件设计.10 3.3.1 温度传感器 ds18b20 概述 .10 3.3.2 温度模

4、块的硬件设计 .11 第 4 章 液晶显示系统软件设计 .13 4.1 主程序设计.13 4.2 液晶显示模块的设计 .13 4.2.1 12864 程序设计 .13 4.2.2 12864 程序设计流程图 .15 4.3 温度模块软件设计 .17 4.3.1 ds18b20 测温数据的读取程序设计 .17 4.3.2 ds18b20 温度读取流程 .20 第 5 章 总结 .22 参考文献 .23 附录 a:温度实时曲线显示硬件原理图.24 附录 b:软件程序.25 第第 1 1 章章 前言前言 1.11.1 液晶的概述液晶的概述 物质通常分为三种型态 晶体(固体)、液体、气体 。 某些 固

5、体物质在一定条件下会呈现液态晶体状态 。这种状态既不同于各向同性 的液体,也不同于在三维空间分子完全规则排列的固体晶体,但又具有液体的流动性、 连续性和分子排列的有序性。这种处于液体和晶体之间过渡相态的物质称为液晶。 液晶分为热致液晶和溶致液晶。前者是物质在某一温度范围内呈现液晶状态,后者 是物质溶于水或有机溶剂而形成的。用于电子器件的液晶为热致液晶。现在的液晶物 质均为芳香族化合物,已被发现的液晶物质多达 3000 余种 。 液晶分子呈棒状或条状,宽约十几 nm(纳米),长约数 nm 液晶分子有较强的电偶极 矩和容易极化的化学团。由于液晶分子间的作用力比固体弱,所以液晶分子容易呈现各 种状态

6、。液晶分子的介电常数、电导率、折射率、磁化率等具有较大的各向异性 ,在 外加电场作用下会产生各种电光效应,从而可应用于液晶显示器(liquid crystal display device ,缩写为 lcd) 。 1.21.2 液晶显示的意义液晶显示的意义 随着计算机技术的发展 ,基于微处理器的智能仪表已成为仪表的主体.而越来越多 的智能仪表采用图形点阵液晶模块后 ,提供了丰富灵活的显示内容 ,更符合人性化的 特点.智能仪表的功能是否强大、用户操作性是否方便 ,都必须通过界面友好的外观和 可操作性来体现。可见 ,人机界面是智能仪表开发中的主要环节 ,在开发的工作量中 占了很大的比例.现有技术中

7、智能仪表人机界面一般由液晶显示器和微处理器组成。目 前 ,已有很多文献对液晶显示技术、图形用户界面设计作了研究。 1.31.3 液晶液晶 lcdlcd 的各类应用的各类应用 1)办公自动化(oa) 。如 pc 机、台式计算机、传真机、复印机、文字处理机等 。 2)个人数字助理(pda) 。如笔记本电脑、袖珍计算机、计算器、电子信笺(备忘) 等。 3)设备自动化(fa) 。如测量设备、提升机、电梯等 。 4)通讯 。如无绳 电话、个人手提 电话系统、多功能电话、手提数据终端、蜂 窝电话等。 5)车辆设备。如汽车收音机、汽车音响、汽车 vcd、速度表、汽车导航系统 (gps)等。 1.41.4 课

8、程设计的任务和要求课程设计的任务和要求 设计温度实时曲线显示测量仪,任务: 温度变化时能及时再现正确的温度数值多大,并且可以看到液晶显屏上描绘的实 时温度曲线。 设计温度测量仪,要求: 1) 设计出温度实时曲线显示测量仪的硬件结构电路。 2) 设计软件流程图并编写程序。 3) 精度等级是 0.5。 第第 2 2 章章 液晶显示温度曲线方案设计液晶显示温度曲线方案设计 2.12.1 总体选型方案总体选型方案 2.1.12.1.1 温度检测电路选型方案温度检测电路选型方案 考虑到经济、测温精度与 52 单片机 i/o 口的资源等因素。温度检测电路采用智能 温度传感器 ds18b20,它与单片机相连

9、只需要 3 线,减少了外部的硬件电路。并且温度 传感器 ds18b20 输出的信号为数字信号,可以被单片机直接采集。省去了一般温度传 感器输出信号要经过放大电路,模数转换的环节。 2.1.22.1.2 液晶显示模块选型方案液晶显示模块选型方案 由于要显示温度实时曲线,故传统的小的液晶显示屏 1602 不能满足本课题要求。 故选用更宽,更大点的液晶显示屏 12864zk。它可以显示半宽字型,显 cgram 字型,显 示中文字形。更为重要的是显示实时曲线必须满足打点要求,由于它具有绘图功能故 满足打点要求。 2.1.32.1.3 键盘输入模块选型方案键盘输入模块选型方案 采用独立键盘,它的功能是作

10、为 52 单片机触发外部中断硬件。 2.22.2 整体设计思路整体设计思路 本课题设计的是液晶显示温度实时曲线,首先要达到的最简单想法是可以在液晶 屏上显示温度,要显示温度,必须将温度传感器输出(数字量)信号传送至单片机, 通过程序对信号进行处理,所以在这里我们需要存储器来储存一些必要的信息,之后 是显示这里的显示我们是用 lcd 显示,在这里要提到键盘的作用,键盘在这里是实现 显示界面的切换。设计思路图见图 2.1。 单单 片片 机机 温温度度传传感感器器液液晶晶显显示示模模块块温温度度 独独立立键键盘盘 电电源源模模块块 图 2.1 液晶显示整体方案设计图 第第 3 3 章章 液晶温度显示

11、硬件设计液晶温度显示硬件设计 3.13.1 控制模块硬件设计控制模块硬件设计 3.1.13.1.1 at89s52at89s52 单片机简介单片机简介 3.1.1.13.1.1.1 硬件结构硬件结构 该系统采用的是 atmel 公司生产的 at89s52 单片机为主控器。at89s52 是一种低 功耗、高性能 cmos8 位微控制器,具有 8k 在系统可编程 flash 存储器。使用 atmel 公司高密度非 易失性存储器技术制造,与工业 80c51 产品指令和引脚完 全兼容。片 上 flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧 的 8 位 cpu 和在系统

12、可编程 flash,使得 at89s52 为众多嵌入式控制应用系统提 供 高灵活、超有效的解决方案。 at89s52 具有以下标准功能: 8k 字节 flash,256 字节 ram, 32 位 i/o 口线,看门狗定时器,2 个数据指针,三个 16 位 定时器/计数器, 一个 6 向量 2 级中断结构,全双工串行口, 片内晶振及时钟电路。另外,at89s52 可 降至 0hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,cpu 停止工作, 允许 ram、定时器/计数器、串口、中断继续工 作。掉电保护方式下,ram 内容被保存, 振荡器被冻结, 单片机一切工作停止,直到下一个中断

13、或硬件复位为止。8 位微控制 器 8k 字节在系统可编程 flash at89s52 在单片机的引脚外围固定的引脚,如 vcc(40) ,gnd(20)已经正确固定到电源和 地上。x1(18),x2(19)是接晶振的引脚已经外接到 11.0592mhz 和 30pf 的电容。 rst(9)是单片机的复位引脚,通过 rc 回路,作为单片机的上电复位。 作为 p3 口的第二功能端口,p3.0(10),p3.1(11)为单片机的通信引脚,和 max232 芯片连接。方便在下载程序时,只要上电复位即可完成下载的硬件操作。另外, 为了提高 p0 口的驱动能力,在 p0 口的各引脚上接了上拉电阻 5.1k

14、 到电源 vcc=5v。采 用一片 max232,为 rs232 与 ttl 电平的转换,使得可以方面使用电脑的 com 口对单片 机进行程序的烧录。其芯片引脚图如图 3.1 所示。 ea/vpp 31 xtal1 19 xtal2 18 rst 9 p3.7(rd) 17 p3.6(wr) 16 p3.2(int0) 12 p3.3(int1) 13 p3.4(t0) 14 p3.5(t1) 15 p1.0(t2) 1 p1.1(t2ex) 2 p1.2 3 p1.3 4 p1.4 5 p1.5(mosi) 6 p1.6(miso) 7 p1.7(sck) 8 (ad0)p0.0 39 (a

15、d1)p0.1 38 (ad2)p0.2 37 (ad3)p0.3 36 (ad4)p0.4 35 (ad5)p0.5 34 (ad6)p0.6 33 (ad7)p0.7 32 (a8)p2.0 21 (a9)p2.1 22 (a10)p2.2 23 (a11)p2.3 24 (a12)p2.4 25 (a13)p2.5 26 (a14)p2.6 27 (a15)p2.7 28 psen 29 ale/prog 30 (txd)p3.1 11 (rxd)p3.0 10 gnd 20 vcc 40 u? at89s52 图 3.1 at89s52 引脚图 3.1.23.1.2 at89s52at

16、89s52 单片机最小系统硬件设计单片机最小系统硬件设计 1)单片机复位电路硬件设计原理图,如图 3.2 所示。 10k r1 res2 s1 sw-pb 10uf c2 cap rst vcc 图 3.2 复位电路原硬件原理图 2)单片机的时钟电路硬件设计原理图,如图 3.3 所示。 12 y1 11.0592m 100p c 1 100pf c 3 c ap x1 x2 图 3.3 时钟电路硬件原理图 3)单片机的电源电路硬件设计原理图,如图 3.4 所示。 0.1uf c4 cap 100uf ce2 cap feed 1k r4 res2 1 2 3 4 usb power ds1 l

17、ed0 vcc s6 sw-spst 图 3.4 电源电路原理图 4)中断按键硬件设计原理图,如图 3.5 所示。 s4 sw-pb s3 sw-pb int1 int0 图 3.5 中断按键硬件原理图 3.23.2 液晶显示模块硬件设计液晶显示模块硬件设计 3.2.13.2.1 lcd12864zklcd12864zk 液晶模块介绍液晶模块介绍 3.2.1.13.2.1.1 基本功能基本功能 lcm12864zk 中文液晶显示模块的屏幕由 128*64 点构成 ,可显示四行、每行 8 个 汉字。其字型 rom 内含 8192 个 16*16 点的中文字型和 128 个 16* 8 点的半宽字

18、母符号 字型。绘图显示 ram(gdram)提供 64*32byte 空间、最多控制 256*64 点的二维绘图缓 冲空间 ,绘图显示画面提供一个 64*256 点的绘图区域。 造字 ram (cgram)提供 4 组软件可编程的 16*16 点阵造字功能。 lcm12864zk 与单片机等微控器的接口界面灵活 ,有并行、串行两种模式 ,其中并 行模式又有 8 位/4 位两种接法,串行模式又分 3 线 /2 线两种接法。 3.2.1.23.2.1.2 引脚功能引脚功能 (见表 3.1) 表 3.1 12864zk 引脚功能 引脚名称功能 1k 背光源负极 2a 背光源正极 3gnd 地 4vc

19、c3v/5v 5nc 未连接 6rs (并行)选择寄存器 (0:指令寄存器 1:数据寄存 器);(串行)片选 (0:禁止 1:允许) 7 rw (并行)读写控制脚 (0:写入 1:读 ) ; (串行 ) 输 入串行数据 8e(sclk) (并行)写数据启始脚 (串行)输入串行脉冲 916 db0db7i/o 数据线 07 17psb 控制界面 0:串行1:并行 8 /4 位 18 /rst 复位信号,低有效 19,20vr,v0 lcd 亮度调整,外接电阻端 3.2.1.33.2.1.3 功能指令系统简介功能指令系统简介 lcm12864zk 以 st7920 为内核,其指令系统分为基本指令集

20、和扩充指令集。基本指 令集包括清除显示、位地址清零、进入点设定、显示状态开/关、光标或显示移位控制、 功能设定、设定 cgram 位址、设定显示数据 ram (ddram)位址、读取忙标志(bf)、写数 据到 ram(ddram/cgram /gdram)、读出 ram 的值等指令;扩充指令集包括待命模式、卷 动位址或 ram 位址、选择睡眠模式、扩充功能设定、设定光标位址(iram)或卷动位址、 设定绘图 ram 地址等指令。 下面介绍本课题中常用的 12864 功能指令,见表 3.2,3.3。 1)指令表 3.2(re=0:基本指令集) 2)指令表 3.3(re=1:扩展指令集) 指令码

21、指令 r s r w db7 db6db5db4db3db2db1db0说明 待命模式 0000000001 将 ddram 填满“20h” ,并且设定 ddram 的地址计数器 (ac)到“00h” 指令码 指令 r s r w db 7 db 6 db 5 db 4 db 3 db 2 db 1 db 0 说明 清除 显示 0000000001 将 ddram 填满“20h” ,并且设定 ddram 的 地址计数器(ac)到 “00h” 功能 设定 00001dlx0 re xx dl=1(必须设为 1) re=1:扩充指令集动 作 re=0:基本指令集动 作 设定 cgram 地址 00

22、01ac 5 ac 4 ac 3 ac 2 ac 1 ac 0 设定 cgram 地址到地 址计数器(ac) 设定 ddram 地址 001ac 6 ac 5 ac 4 ac 3 ac 2 ac 1 ac 0 设定 ddram 地址到地 址计数器(ac) 读取 忙碌 标志 (bf )和 地址 01bfac 6 ac 5 ac 4 ac 3 ac 2 ac 1 ac 0 读取忙碌标志(bf) 可以确认内部动作是 否完成,同时可以读 出地址计数器(ac) 的值 写资 料到 ram 10d7d6d5d4d3d2d1d0 写入资料到内部的 ram(ddram/cgram/ir am/gdram) 读出

23、 ram 的 值 11d7d6d5d4d3d2d1d0 从内部 ram 读取资料 (ddram/cgram/iram/ gdram) 卷动地址 或 iram 地 址 选择 000000001sr sr=1:允许输入垂直卷 动地址 sr=0:允许输入 iram 地址 反白选择 00000001r1r0 选择 4 行中的任一行 作反白显示,并可决定 反白与否 睡眠模式 0000001slxx sl=1:脱离睡眠模式 sl=0:进入睡眠模式 扩充功能 设定 000011x 1 re g0 re=1: 扩充指令集动 作 re=0: 基本指令集动 作 g=1 :绘图显示 on g=0 :绘图显示 off

24、 设定 iram 地址或卷 动 地址 0001ac5ac4ac3ac2ac1ac0 sr=1:ac5ac0 为垂 直卷动地址 sr=0:ac3ac0 为 icon iram 地址 设定绘图 ram 地址 001ac6ac5ac4ac3ac2ac1ac0 设定 cgram 地址到地 址计数器(ac) 备注: 1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取 bf 标志时 bf 需为 0,方可接受新的指令;如果在送出一个指令前并不检查 bf 标志, 那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确 实执行完成,指令执行的时间请参考指令表中的个别指令

25、说明。 2、 “re”为基本指令集与扩充指令集的选择控制位元,当变更“re”位元后,往 后的指令集将维持在最后的状态,除非再次变更“re”位元,否则使用相同指令集时, 不需每次重设“re”位元。 3.2.23.2.2 液晶显示模块硬件设计液晶显示模块硬件设计 该模块设计的液晶显示器的数据端口连接在了单片机的 p0 口,而控制端 rs、rw、en 分别接单片机的 p2.6、p3.6、p2.7。lcd12864zk 低电平复位,电源 5v 直 流供电。硬件电路如图 3.7 所示。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 jp2 lcd1

26、2864 gnd vcc lcd_rs lcd_rw lcd_db0 lcd_db1 lcd_db2 lcd_db3 lcd_db4 lcd_db5 lcd_db7 psb leda ledb lcd_db6 1k r5 rpot vcc rst1 nc nc lcd_e vcc vcc vcc 1k r8 res3 s2 sw-pb vo 1k r? res2 图 3.7 12864 液晶显示原理图 3.33.3 温度模块的硬件设计温度模块的硬件设计 3.3.13.3.1 温度传感器温度传感器 ds18b20ds18b20 概述概述 温度传感器是将温度信号转换为电信号的装置,型号有很多,数字

27、式温度传感器 常用的有 ds18b20、ds1820 等。此设计采用的是 ds18b20。 ds18b20 是 dallas 公司生产的一线式数字温度传感器,是世界上第一片支持“ 一 线总线”接口的温度传感器, 在其内部使用了在板(on-board)专利技术。具有 3 引脚 to92 小体积封装形式;温度测量范围为55125,可编程为 9 位12 位 a/d 转换精度,测温分辨率可达 0.0625,被测温度用符号扩展的 16 位数字量方式串行输 出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个 ds18b20 可以并 联到 3 根或 2 根线上,cpu 只需一根端口线就能与诸多 d

28、s18b20 通信,占用微处理器的 端口较少,可节省大量的引线和逻辑电路。 ds18b20 内部结构如图 3.8 所示,主要由 4 部分组成:64 位 rom、温度传感器、非 挥发的温度报警触发器 th 和 tl、配置寄存器。ds18b20 的管脚排列见下节图 3.9 所示, dq 为数字信号输入输出端;gnd 为电源地;vdd 为外接供电电源。 64位 row 和一 线端 口 存储和控制逻辑 高速暂存器 8位crc生成器 温度传感器 高温触发器th 低温触发器tl 配置寄存器 供电方式 选择 vcc dq 图 3.8 ds18b20 内部结构框图 rom 中的 64 位序列号是出厂前被光刻好

29、的,它可以看作是该 ds18b20 的地址序列 码,每个 ds18b20 的 64 位序列号均不相同。64 位 rom 的排的循环冗余校验码 (crc=x8x5x41) 。rom 的作用是使每一个 ds18b20 都各不相同,这样就可以实现 一根总线上挂接多个 ds18b20 的目的。 ds18b20 中的温度传感器完成对温度的测量,用 16 位符号扩展的二进制补码读数 形式提供,以 0.0625/lsb 形式表达,其中 s 为符号位。例如125的数字输出为 07d0h,25.0625的数字输出为 0191h,25.0625的数字输出为 ff6fh,55 的数字输出为 fc90h。 ds18b

30、20 主要特性如下: 适应电压范围更宽, 电压范围:3.0v5.5v, 在寄生电源方式下可由数据线供 电; 独特的单线接口方式, ds18b20 在与微处理器连接时仅需要一条口线即可实现 微处理器与的双向通讯; ds18b20支持多点组网功能, 多个ds18b20可以并联在唯一的三线上, 实现组网 多点测温; ds18b20在使用中不需要任何外围元件, 全部传感元件及转换电路集成在形如一 只三极管的集成电路内; 温度范围-55+125 , 在-1085 时精度为0.5; 可编程的分辨率为9-12位, 对应的可分辨温度分别为0.5、0.25、0.125 和0.0625, 可实现高精度测温; 在9

31、位分辨率时最多在93.75ms内把温度转换为数字, 位分辨率时最多在750ms内 把温度值转换为数字, 速度更快; 测量结果直接输出数字温度信号, 以“ 一线总线”串行传送给cpu, 同时可传 送crc校验码, 具有极强的抗干扰纠错能力; 负压特性电源极性接反时, 芯片不会因发热而烧毁, 但不能正常工作。 3.3.23.3.2 温度模块的硬件设计温度模块的硬件设计 温度的测量是采用数字温度传感器 ds18b20,外围电路如图所示。当 ds18b20 正在 执行温度转换或从高速暂存器 epprom 传送数据时,工作电流可达 1.5ma,这个电流可 能会引起连接单总线的弱上拉电阻的不可接受的压降,

32、这需要更大的电流,而此时 cpp(寄生电源储能电容)无法提供,为了保证 ds18b20 有充足的供电,当进行温度转 换或拷贝数据到 eeprom 操作时,必须给单总线一个上拉电阻,一般为 4.7k 的上拉电 阻,根据距离远近可以适当调节阻值,距离近时减小阻值,但不能低于 2.1k,否则 ds18b20 将无法复位。其数据线 dq 端接单片机 p1.0 口。硬件电路如图 3.9 所示。 图 3.9 ds18b20 接线 在外部电源供电方式下, ds18b20 工作电源由 vdd 引脚接人, 不存在电源电流不足 的问题, 可以保证转换精度, 同时在总线上理论可以挂接任意多个 ds18b20 传感器

33、, 组成多点测温系统。注意在外部供电的方式下, ds18b20 的 gnd 引脚不能悬空, 否则不 能转换温度, 读取的温度总是 85。 第第 4 4 章章 液晶显示系统软件设计液晶显示系统软件设计 4.14.1 主程序设计主程序设计 主程序要满足不断地采集温度信息,实时显示温度数值,描绘温度实时曲线,等 要求。故主程序流程图见图 4.1。 主主程程序序开开始始 单单片片机机初初始始化化 lcd初初始始化化 lcd中中gdram 的的内内容容清清零零 屏屏幕幕上上画画坐坐标标 ds18b20初初始始化化 读读取取温温度度数数据据 并并处处理理 flag=0? 在在lcd屏屏幕幕上上打打点点;

34、右右上上方方显显示示温温度度数数值值 显显示示汉汉字字 的的界界面面 y n flag1=1? 画画坐坐标标; flag1=0; y n 图 4.1 主程序流程图 4.24.2 液晶显示模块的设计液晶显示模块的设计 4.2.14.2.1 1286412864 程序设计程序设计 4.2.1.14.2.1.1 12864zk12864zk 控制器指令操作方式控制器指令操作方式 该课题使用液晶模块控制驱动器 st7920,它提供了并行和串行两类指令操作方式。 这两种控制方式,由外部 psb 引脚来选择: 当 psb 引脚输入高电平时,为并行操作方式。 当 psb 引脚输入低电平时,为串行操作方式。

35、其中,并行操作方式又可以分为 8 位并行操作方式和 4 位并行操作方式两种。下 面只对这 8 位并行操作方式进行介绍。 12864zk 液晶模块 8 位并行连接时序图: (1)mpu 写资料到模块,见图 4.2。 图 4.2 mpu 写资料到模块时序图 (2)mpu 从模块读出资料,见图 4.3。 图 4.3 mpu 从模块读出资料时序图 主控制系统将配合(rs、rw、e、db0db7)来完成数据传送。从一次完整的流程 来看,当执行设定地址(cgram,ddram,iram 等)指令后,若要读取数据则需要先空 读一次,才能得到正确的数据。第二次读取时不需要空读,除非又执行一次设定地址 指令才需

36、要再次空读一次。 4.2.1.24.2.1.2lcmlcm 绘图过程分析绘图过程分析 图形显示程序的关键在于解决图形坐标系、屏幕坐标系、gdram 坐标系的转换问题,也 就是确定要显示的点对应在液晶屏面上像素的位置和在 gdram 中的地址。得到这个对 应关系后 ,我们就可以通过将某个存储单元中的某一位置为 1 来实现在液晶屏上画出 这个点。lcm12864zk 的水平与垂直地址示意图如图 4.4 所示 2 。 图 4.4lcm12864zk 水平地址与垂直地址示意图 lcm12864zk 液晶模块内 gdram 与液晶屏幕的对应关系如图 4.5 所示。 图 4.5 gdram 与液晶屏幕的对

37、应关系示意图 由以上 gdram 排列顺序及其与液晶屏幕的对应关系可知: (1) lcm12864zk 的绘图 ram(gdram)为 64 行*32byte/行(64 行*16word/行 )。 (2) 在液晶屏幕上只能显示 1283 64 个点 ,对应于 gdram 中 128*64bit。当 gdram 的横坐标小于 8 并且纵坐标值小于 32 时,其内容将显示在屏幕上半部,当 gdram 的横坐 标为 815 并且纵坐标值小于 32 时,其内容将显示在屏幕下半部;当 gdram 的纵坐标大 于 31(3263)时其内容将不能显示在屏幕上。 lcm12864zk 在已知 gdram 位址

38、的情况下,写图 ram 步骤如下: (1) 先将垂直坐标 y 写入(063) ; (2) 再将水平坐标 x 写入(015) ; (3) 将 d15d8 数据写入; (4) 将 d7d0 数据写入。 在实际绘图过程中,由于每一个 gdram 地址对应于 16 个位(bit)地址,所以如果第 二次写 gdram(h,v),则该 ram 中其他位的值有时会改变,为了避免这种改变,需要事先将 该地址中的内容读出来 (st7920 有此功能)与此次要写入的值取或后作为最终值写入。 4.2.24.2.2 1286412864 程序设计流程图程序设计流程图 由上述 4.2 节液晶显示模块的设计,设计的功能函

39、数流程图见图 4.5,图 4.6,图 4.7,图 4.8,图 4.9。 写写数数据据开开 始始 e=0; rs=1; rw=0; p0口口往往lcd 写写数数据据; 使使能能端端e=1; e=0; 函函数数返返回回 读读数数据据开开 始始 e=0; p0=0 xff; rs=1; rw=1; 使使能能端端e=1; p0口口从从lcd 读读数数据据; e=0; 函函数数返返回回 图 4.5 mpu 往模块写数据流程图 图 4.6 mpu 从模块读出数据流程图 读读指指令令开开 始始 e=0; p0=0 xff; rs=0; rw=1; 使使能能端端e=1; p0口口从从lcd 读读指指令令; e

40、=0; 函函数数返返回回 写写指指令令开开 始始 e=0; rs=0; rw=0; p0口口往往lcd 写写指指令令; 使使能能端端e=1; e=0; 函函数数返返回回 图 4.7 mpu 从模块指令信息流程图 图 4.8 mpu 往模块写指令流程图 打打点点函函数数 开开始始 确定输入在 lcd屏的位置 确确定定gdram 的的水水平平坐坐标标 与与垂垂直直坐坐标标 得得到到要要点点亮亮屏屏幕幕 某某点点数数据据 往往lcd送送gdram 的的垂垂直直坐坐标标,水水平平 坐坐标标 转转换换到到扩扩展展指指令令集集 读读高高字字节节数数据据; 读读低低字字节节数数据据; 被被读读高高字字节节或

41、或上上高高 字字节节数数据据; 被被读读低低字字节节或或上上低低 字字节节数数据据; 高高低低字字节节数数据据送送 lcd 打打点点函函数数返返回回 往往lcd送送gdram 的的垂垂直直坐坐标标,水水平平 坐坐标标 图 4.9 绘图程序流程图 4.34.3 温度模块软件设计温度模块软件设计 4.3.14.3.1 ds18b20ds18b20 测温数据的读取程序设计测温数据的读取程序设计 对室内温度的检测室通过数字温度传感器 ds18b20 实现的,在温度模块硬件电路 的设计中已经对的硬件电路做了设计,现在设计 ds18b20 的软件部分。 1.ds18b20 的内部数据部件 (1)光刻rom

42、中的64位序列号是出厂前被光刻好的, 它可以看作是ds18b20该 ds18b20的地址序列码。64位光刻的rom排列是:开始8位(24h)是产品类型标号, 接着的 48位是该ds18b20自身的序列号, 最后8位是前面56位的循环冗余校验码 (crc=x8+x5+x4+1)。光刻rom的作用是使每一个ds18b20都各不相同, 这样就可以实现 一根总线上挂接多个ds18b20的目的。 (2)ds18b20中的温度传感器可完成对温度的测量, 以12位转化为例用16位符号扩 展的二进制补码读数形式提供, 以0.0625/lsb的形式表达, 其中s为符号。如图4.10 所示。 sssss 2625

43、 24 232221202-1 2-22-32-4 bit7bit6bit5bit4bit3bit2bit1bit0 bit15bit8bit14bit9bit11bit13bit10bit12 ls byte ms byte 图4.10 ds18b20温度值格式表 这是12位转化后得到的12位数据, 存储在的两个8比特的ram中, 二进制中的前面5 位是符号位, 如果测得的温度大于0, 这位为0, 只要将测到的数值乘以0.0625即可得 到实际温度,如果温度小于0, 这位为1, 测到的数值需要取反加1再乘以0.0625即可得 到实际温度。例如+125的数字输出为,07d0h,+25.0625

44、 的数字输出为,0191h,- 25.0625的数字输出为,ff6fh -55的数字输出为fc90h。 2.单总线协议 单总线协议能够实现数据的双向传输, 操作包括数据的读写和复位功能。下面对 各个方面进行具体的介绍。 (1)总线复位,首先必须对ds18b20进行复位,由单片机给ds18b20单总线至少480us 的低电平信号,当ds18b20接到此复位信号后,延时15-60us,通过大地总线60-240us 来产生应答脉冲。主机接收到从机的应答脉冲后,说明有单总线器件在线,通信双方 达成基本协议。复位时序如图4.11所示。 单片机接收复位脉冲 最小480us 最大 960us 单片机发送复位

45、脉冲 ds18b20响应 60240us 最小480us 等待1560us 图4.11 复位时序图 (2)控制器发送rom指令。一旦总线主机检测到应答信号,便可以发起rom操作指令。 rom指令一共有5条,见表格4.1每一个工作周期只能发一条。rom指令为8位长度,功能 是对片内的64位光刻rom进行操作。其主要目的是为了分辨一条总线上挂接多少个 ds18b20并做出处理。一般只挂一个ds18b20时可以跳过rom指令。 表 4.1 rom 指令表 指令 代码功能说明 读rom 0 x33用于读出ds18b20内集成的64位激光rom序列号 匹酪rom 0 x55 跳过rom 0 xcc 搜索

46、rom 0 xf0 多个ds18b20在线时, 可用此命令匹配一个给定序列号, 此后命令就针对该芯片 忽略序列号, 对所有在线的ds18b20进行配置 用于读出在线的ds18b20的序列号 报警rom 0 xec对温度超过上限或者下限时,读出报警的ds18b20 (3)ds18b20 共有 9 个 ram,每个字节为 8 位。第 1、2 个字节是温度转换后的数值 信息,3、4 个字节是用户 e2prom(常用于温度报警值存储)的镜像,在上电复位时旗帜 被刷新。第五个字节则是用户第三个 e2prom 的镜像。第 6、7、8 个字节为计数器寄存 器,是为了让用户得到更高的温度分辨率而设计的,同样也

47、是内部温度转换、计算的 暂存单元。第 9 个字节为前 8 个字节的 crc 码。e2prom 非易失性记忆体,用于存放长 期需要保存的数据。ram 及 e2prom 结构图如图 4.12 所示。 温度低字节 温度高字节 th/user byte1 confing 保留 th/user byte2 保留 保留 crc th/user byte1 confing th/user byte2 1 2 3 4 5 6 7 8 9 e2prom 图 4.12 ds18b20 ram 及 e2prom 结构图 控制器发送存储器操作指令:在执行 rom 指令后才能执行内存指令。在 rom 指令 发送给 ds

48、18b20 之后,紧接着就是发送存储器操作指令了。操作指令同样为 8 位,共 6 条,见表格 4.2。存储器操作指令的功能是控制 ds18b20 工作。 表 4.2 ram 指令表 指令 代码功能说明 温度变换 0 x44启动温度转换,12位转换最长750ms 读温度寄存器 0 xbe读取温度寄存器的温度值 写温度寄存器 0 x4e发出内部ram的3、4字节写上下限温度数据命令,在该 命令后紧跟两个字节数据 复制温度寄存器 0 x4b将ram中的3、4字节数据复制到e2prom中 重调e2prom 0 xb8将e2prom中的数据拷贝到温度寄存器中 读供电方式 0 xb4寄生供电时,ds18b

49、20发送“0” ; 外接电源供电时,ds18b20发送“1” (4)数据处理:ds18b20 要求严格的时序来保证数据的完整性。在单线 dq 上,存在 复位脉冲、应答脉冲、写“0” 、写“1” 、读“0” 、读“1”几种信号类型。数据位的读 写是由读写时序来实现的。 写时序:当主机将数据线从高电平拉至低电平时,产生时序,写时序分别为写 “0”和写“1” ,时序图如下图所示。在写数据时序的前 15us 总线需要是被控制器拉 为低电平,而后则将是芯片对总线数据的采样时间,采样时间在 15-60us,采样时间内 如果控制器将总线拉高则表示写“1” ,如果控制器将总线拉低则表示写“0” 。每一位 的发

50、送都应该至少 15us 的低电平起始位,随后的数据“0”或“1”应该在 45us 内完 成。整个位的发送时间应该保持在 60-120us,否则不能保证通信的正常。写时序图如 图 4.13 所示。 单片机 写”0” 单片机写“1” 30us15us 15us15us 15us 30us 1us ds18b20采样ds18b20采样 图 4.13 写时序图 读时序:该时序也是必须有主机产生 1us 的低电平,表示该时间的起始。然后在 总线被释放后的 15us 中 ds18b20 会发送内部数据位,因此再次 15us 内主机必须停止 把 dq 引脚置底,这时控制如果发现总线为高电平表示读数据“1”

51、,如果总线为低电平, 则表示读数据“0” 。每一位的读取之前都由控制器加一个起始信号。图 4.14 为读时序 图。 15us 15us 15us15us 30us 30us 单片机读“0” 单片机读“1” 1us 图 4.14 读时序图 所有的读写时序至少需要 60us 且每两个独立的时序至少 1us 的回复时间。在写时 序中,主机将在拉低总线 15us 内释放总线,并向 ds18b20 写“1” 。若主机拉低总先后 能保持至少 60us 的低电平,则向单总线器件写“0” 。ds18b20 仅在主机发出读时序时 才产生向主机传输数据,所以当主机向 ds18b20 发出度数据命令后。必须马上产生

52、时 序,以便 ds18b20 传输数据。 4.3.24.3.2 ds18b20ds18b20 温度读取流程温度读取流程 单片机在实现 ds18b20 温度转换和读取的程序设计中必须严格按照其时序来进行, 此设计中,单总线上只挂接了一个 ds18b20,所以不用对 rom 寄存器进行操作,直接跳 过 rom,对 ram 寄存器进行操作。在单片机发出温度转换命令后,须延时,以便 ds18b20 完成温度转换,在单片机发出读温度命令后,必须马上产生读时隙接收 ds18b20 的发回来的数据。单片机实现温度转换和读取的程序流程图如图 4.15 所示, 温度模块主流程图如图 4.15 所示。 跳过读序号

53、列 号的操作 温度转换 延时等待温 度转换完成 初始化ds18b20 跳过读序号列 号的操作 发起读暂 存器命令 初始化ds18b20 温度读取子程序 读取温度高、 低位字节 将温度数据转 换十六进制数 返回 图 4.15 温度读程序流程图 第第 5 5 章章 总结总结 近年来,随着温度检测技术和单片机的发展,基于单片机的测温测技术的应用越 来越广泛,尤其是人机画面更加人性化。本设计主要以温度为研究对象,通过液晶模 块显示实时温度值,能够显示温度实时曲线。主要做的工作可总结如下: 1.综合分析了各种类型的传感器和它的工作特点,设计了一个可行的测量方案。 2.实现了测温系统的硬件电路和软件结构设

54、计,综合考虑精度、成本等因素,合 理选用了传感器、单片机及其外围芯片。 在课题的研究中,仍然存在一些问题有待进一步改进完善: 1.对环境温度的测量只是用了一个 ds18b20 温度传感器,室内某点温度不可能代 替整个室内的温度,故要实现该设计的实用性,应该在单总线上挂上多个温度传感器 分布在室内的关键角落。 2.该设计是可以显示温度的实时曲线但由于刷新液晶屏幕频率过慢给人有闪烁感 有待换用更高性能的单片机。 参考文献参考文献 1 景小健,尹清华等. mg - 12864 液晶显示器在智能仪表中的应用,化工自动化及仪 表,2003,30(6):62-64. 2 北京青云创新科技发展有限公司.带中

55、文字库图形液晶显示模块 lcm12864zk 使 用说明书z.2002. 3 孙传友,孙晓斌,张一. 感测技术与系统设计m,北京:科学出版社, 2004:708-710. 4 徐科军. 传感器与检测技术m,北京:电子工业出版社,2004.09:4. 5 张军. 智能温度传感器 ds18b20 及其应用j.仪表技术.2010,(04). 6 马家成, 孙玉德, 张颖. mcs- 51 单片机原理与接口技术m. 2 版. 哈尔滨:哈尔 滨工业大学出版社,1998 . 7 张萍. 基于数字温度计 ds18b2 的温度测量仪的开发j.自动化仪表, 2007(6): 64-66 . 8 金伟正. 单线数

56、字温度传感器的原理与应用j.电子技术应用,2000(6):66- 68 . 9 马忠梅,籍顺心. 单片机的 c 语言应用程序设计m.北京航空航大大学出版社, 2003. 附录附录 a a:温度实时曲线显示硬件原理图:温度实时曲线显示硬件原理图 ea/vpp 31 xtal1 19 xtal2 18 rst 9 p3.7(rd) 17 p3.6(wr) 16 p3.2(int0) 12 p3.3(int1) 13 p3.4(t0) 14 p3.5(t1) 15 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 (ad0)p0.0 39

57、 (ad1)p0.1 38 (ad2)p0.2 37 (ad3)p0.3 36 (ad4)p0.4 35 (ad5)p0.5 34 (ad6)p0.6 33 (ad7)p0.7 32 (a8)p2.0 21 (a9)p2.1 22 (a10)p2.2 23 (a11)p2.3 24 (a12)p2.4 25 (a13)p2.5 26 (a14)p2.6 27 (a15)p2.7 28 psen 29 ale/prog 30 (txd)p3.1 11 (rxd)p3.0 10 gnd 20 vcc 40 u1 at89s52 12 y1 11.0592m 100p c1 100pf c3 cap

58、 x1 x2 x1 x2 10k r1 res2 s1 sw-pb 10uf c2 cap rst rst vcc vcc vcc 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 10k r6 res pack4 vcc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 jp2 lcd12864 gnd vcc lcd_rs lcd_rw lcd_db0 lcd_db1 lcd_db2 lcd_db3 lcd_db4 lcd_db5 lcd_db7 psb leda ledb lcd_db6 1k r5 rpot

59、 vcc rst1 nc nc lcd_e vcc 4.7k r7 res3 vcc lcd_db0 lcd_db1 lcd_db2 lcd_db4 lcd_db5 lcd_db6 lcd_db7 lcd_db3 lcd_e lcd_rs lcd_rw vcc vcc 1k r8 res3 s2 sw-pb vo s4 sw-pb s3 sw-pb int1 int0 int1 int0 0.1uf c4 cap 100uf ce2 cap feed 1k r4 res2 1 2 3 4 usb power ds1 led0 vcc s6 sw-spst 1 2 3 4 5 6 7 8 9 1

60、1 10 jp4 db9 rs232_rx rs232_tx txd_p3.1 rxd_p3.0 c1+ v+c1- c2+ c2- v- 1uf c5 cap 1uf c6 cap 1uf c7 cap 1uf c8 cap v+v- c1-c2-c1+c2+ txd_p3.1 rxd_p3.0 vcc vcc dq 2 gnd 1 vcc 3 u? ds1820 c1+ 1 vdd 2 c1- 3 c2+ 4 c2- 5 vee 6 t2out 7 r2in 8 r2out 9 t2in 10 t1in 11 r1out 12 r1in 13 t1out 14 gnd 15 vcc 16

温馨提示

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

评论

0/150

提交评论