首页 数字温度计

数字温度计

举报
开通vip

数字温度计目录 目录 摘要 ………………………………………………………………………………2 第一章.数字温计总体设案 1.数字温度计设计方案论述………………………………………………………2 1.1方案一…………………………………………………………………………2 1.2方案二…………………………………………………………………………3 1.3方案三…………………………………………………………………………5 第二章 数字温度计总体详细设计 2.1 主控器…………………………………………………………………………5 2.2 温度采集部...

数字温度计
目录 目录 摘要 ………………………………………………………………………………2 第一章.数字温计总体设案 1.数字温度计设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 论述………………………………………………………2 1.1方案一…………………………………………………………………………2 1.2方案二…………………………………………………………………………3 1.3方案三…………………………………………………………………………5 第二章 数字温度计总体详细设计 2.1 主控器…………………………………………………………………………5 2.2 温度采集部分设计……………………………………………………………6 2.2.1温度传感器DS18B20 ………………………………………………………6 2.2.2 DS18B20的供电方式 ………………………………………………………9 2.2.3 DS18B20的控制方法 ………………………………………………………10 2.3 显示部分设计…………………………………………………………………12 2.3.1 YM12864引脚描述 ………………………………………………………12 2.3.2 YM12864液晶显示器主要硬件构成 ……………………………………13 2.3.3 YM12864液晶显示器控制接口信号说明 ………………………………15 2.3.4 YM12864液晶显示器指令说明 …………………………………………16 2.4 时钟部分………………………………………………………………………18 2.4.1 DS1302的控制字节 ………………………………………………………19 2.4.2 DS1302的数据输入输出 …………………………………………………19 2.4.3 DS1302的寄存器 …………………………………………………………19 2.5 键盘……………………………………………………………………………20 2.5.1 4×4矩阵键盘结构及按键抖动消除…………………………………………20 2.5.2 矩阵键盘的工作原理 ………………………………………………………21 2.5.3 键盘扫描方式 ………………………………………………………………21 2.6 片外数据存储器 ………………………………………………………………22 第三章 系统硬件电路设计 3.1系统的扩展 ……………………………………………………………………23 3.1.1 RAM的扩展 ………………………………………………………………24 3.1.2 I/O口的扩展 ………………………………………………………………24 3.2系统外围设备的配置 …………………………………………………………26 3.2.1 DS18B20的接口电路 ………………………………………………………26 3.2.2 YM12864的接口电路 ………………………………………………………26 3.2.3 4×4矩阵键盘接口电路………………………………………………………27 第四章 系统软件程序设计 4.1主程序…………………………………………………………………………27 摘要 本文综述了数字温度计的设计与制作过程,介绍了设计制作一个完整的数字温度计需要做的准备与制作过程,通过一段时间的努力制作,从刚开始透彻理解题目要求及所要设计的产品的各项性能功能,然后觉得利用单片机作为控制内核,其次主要的就是温度传感器DS18B20,及其他重要部分电路的配合下设计出一套完整的硬件系统,及它的灵魂软件系统。得到了一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用YM12864并口传送数据,实现温度显示,能准确达到以上要求。 关键词:单片机,数字控制,温度计, DS18B20,AT89S51 第1章.数字温度计总体设计方案 1.数字温度计设计方案论证 1.1方案一:热敏电阻 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。如下图: 热敏电阻 1.2 方案二:温度传感器DS18B20 (1).进而考虑到用温度传感器,在设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。 从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。 (2).方案二的总体设计 单片机自20世纪70年代末诞生以来,经过数十年的发展和完善已广泛渗透到我们生产生活的各个领域。比如:计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,各种交通工具的安全保障系统,医疗器械等等。在数据采集的应用中单片机凭借其体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点更是得到了广泛应用。结合不同类型的传感器,可实现诸如温度、湿度、电压、频率、流量、速度、角度、长度等物理量的测量与采集。采用单片机控制使得各种传感器朝着数字化、智能化、微型化方面发展且功能比起采用电子或数字电路更加强大。 温度在实际生产生活中重要的地位直接推动了温度传感器的快速发展。温度传感器主要大体经过了模拟集成温度传感器,模拟集成温度控制器和数字化智能温度传感器三个发展阶段。数字化智能温度传感器凭借其抗干扰能力强、可靠性高、线路简单、测量精度高、功能便于扩展、与各种微控制器匹配性好等优点正逐步取代传统模拟温度传感器,尤其是单线总线数字化温度传感器的出现更是为多点测温系统,网络化传感器系统的实现提供了巨大的方便。目前,国际上新型温度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展。 正是由于单片机和数字化智能传感器在数据采集的应用方面的明显优势,本数字式多路温度采集系统将基于单片机和数字化智能温度传感器。 本系统的控制核心选用了ATMEL公司的8位Flash单片机AT89系列中的AT89C51。AT89C51功能强大,性价比高,可靠性高,可灵活应用于各种控制领域。能很好的满足本系统的设计要求。数字化智能温度传感器选用了Dallas公司推出的数字化温度传感器DS18B20其数字化传输方式有抗干扰能力强、可靠性高、接口电路简单等优点, “单线总线”通信方式更是可以使用户方便地使用多片DS18B20构成多点温度测量系统。显示器件选用AMPIRE12864图形点阵液晶显示器,可显示8×4个16×16点阵汉字或16×4个16×8点阵ASCII字符集也可完成图形的显示。使得本系统具备了良好的显示界面。为了使系统具备历史温度查询功能,为温度添加时间注释是必要的,因此选用了Dallas公司推出的专用时钟芯片DS1302。它通过简单的串行接口与单片机进行通信,实时时钟/日历电路提供秒﹑分﹑时﹑日﹑星期﹑月﹑年的信息,每月的天数和闰年的天数可自动调整,可方便地为历史温度记录添加时间注释。对本系统的各种操作是通过4×5矩阵键盘实现的,4×4矩阵键盘有4条列线,4条行线共16个按键。每个按键对应不同操作功能,键盘扫描采用外部中断扫描方式。本键盘为无源结构,键盘工作时不依靠任何外部电源。为了存储DS18B20的ROM编码和历史温度记录等其它数据,必须为系统扩展一片片外数据存储器,本系统选用了静态RAM芯片6264,其8K容量能较好的满足系统的需求。 由于本系统有较多的外围设备,AT89C51本身的I/O口已不能满足系统的对I/O口需求,所以必须为系统扩展I/O口。I/O口扩展主要通过P0口扩展,利用P0口扩展时必须分时使用,P2口提供读写与片选控制信号通过锁存器和三态缓冲器来扩展I/O口。本系统扩展了一个8位的数据输出口,一个8位的数据输入口和两个3位的数据输出口。 驱动程序是外围器件正常工作的基本条件,也是进行系统应用程序设计的必要步骤。本系统的驱动程序包括:DS18B20驱动程序、AMPIRE12864驱动程序、DS1302驱动程序和4×4矩阵键盘驱动程序。在本系统软件设计中提出了一种搜索DS18B20的64位ROM编码的算法,使得系统具备了对单线总线上多片DS18B20进行唯一寻址的能力。系统各项功能主要是通过三个功能函数来实现的,这三个功能函数是:查询功能函数,设置功能函数和手动自动显示功能函数。 本系统实现具体功能如下: 1) 1至16个通道自适应温度监控,一条单线总线上可挂1至16个温度传感器,主机将自动识别总线上器件个数并自动进行各通道温度的测量,记录与监控,而不必对系统的软件作任何调整。 2)自动手动两种显示模式,自动模式下以一定周期循环显示各通道温度,手动模式下只显示特定通道温度,通过矩阵键盘可选择显示通道。通过矩阵键盘特定按键可在自动模式与手动模式之间切换。 3)上下限温度报警与报警温度设置,对各通道温度实时监控当通道温度超过上限报警温度或低于下限报警温度时系统报警,并在系统显示界面提示温度报警通告号,当前温度及报警情况。通过键盘特定按键进入报警温度设置界面可设置各通道上下限报警温度。 4)温度历史记录与查询,实时记录各通道温度变化情况并存入片外存储器以供查询,通过特定按键进入查询界面可查询各通道在某时间段的最高温度,最低温度,平均温度。 5) 良好的显示界面,支持中文显示。 1.3 方案三:控制内核不用单片机,用DSP 选定了温度传感器之后,再来考虑它的控制内核,因为数字温度计的设计并不复杂,单片机完全可以处理的了,DSP是比较高端的控制内核应用成本相对较高,所以选用单片机是即经济又实惠的选择。 第2章 数字温度计详细设 2.1 主控制器AT89S51 本系统硬件设计中单片机选取了ATMEL公司的8位Flash单片机AT89系列中的AT89C51。 AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4K bytes的可反复擦写的只读程序存储器和128的随机存取数据存储器,器件采用AEMEL公司的高密度,非易失性存储技术生产,兼容 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 MCS-51指令系统,片内置通用8位中央处理器和FLASH存储单元。AT89C51单片机功能强大,性价比高,可靠性高,可灵活应用于各种控制领域。能很好的满足本系统的设计要求。 AT89C51引脚图 其主要性能参如下: 1)​ 与MCS-51产品指令系统完全兼容 2)​ 4K字节可重擦写Flash闪速存储器 3)​ 1000次擦写周期 4)​ 全静态操作:0MHZ—33MHZ 5)​ 128×8字节内部RAM 6)​ 32个可编程I/O口线 7)​ 2个16位定时/计数器 8)​ 6个中断源 9)​ 可编程串行UART通道 10)低功耗空闲和掉电模式 时钟振荡器:AT89C51有一个用于构成内部振荡的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈组件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路如图所示: AT89C51振荡电路 外接石英晶体或陶瓷谐振器及电容C1,C2接在放大器的反馈回路中构成并联振荡电路。如果使用石英晶体,电容推荐使用30pF±10pF,而如使用陶瓷谐振器建议使用40pF±10pF电容。 2.2温度采集部分的设计 2.2.1.温度传感器DS18B20 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。 TO-92封装的DS18B20的引脚排列见下图,其引脚功能描述见 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 1。 (底视图) DS18B20 表1 DS18B20详细引脚功能描述 序号 名称 引脚功能描述 1 GND 地信号 2 DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。 3 VDD 可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 DS18B20的性能特点如下: ●独特的单线接口仅需要一个端口引脚进行通信; ●多个DS18B20可以并联在惟一的三线上,实现多点组网功能; ●无须外部器件; ●可通过数据线供电,电压范围为3.0~5.5V; ●零待机功耗; ●温度以9或12位数字; ●用户可定义报警设置; ●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; ●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如下图所示。 DS18B20内部结构 64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。 DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。 温度 LSB 温度 MSB TH用户字节1 TL用户字节2 配置寄存器 保留 保留 保留 CRC DS18B20字节定义 由表1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数 据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。 高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。 当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。 当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。 表1 DS18B20温度转换时间表 R1 R0 分辨率/位 温度最大转换时间/ms 0 0 9 93.75 0 1 10 187.5 1 0 11 375 1 1 12 750 DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。 在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。 DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。 减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。 表2 一部分温度对应值表 温度/℃ 二进制表示 十六进制表示 +125 0000 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H +25.0625 0000 0001 1001 0000 0191H +10.125 0000 0000 1010 0001 00A2H +0.5 0000 0000 0000 0010 0008H 0 0000 0000 0000 1000 0000H -0.5 1111 1111 1111 0000 FFF8H -10.125 1111 1111 0101 1110 FF5EH -25.0625 1111 1110 0110 1111 FE6FH -55 1111 1100 1001 0000 FC90H 另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 进行。操作协议为:初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。 2.2.2.DS18B20的供电方式 DS18B20供电方式有两种,分别为寄生电源供电和直接供电。 寄生电源供电方式下器件从单线的通信线取得其电源,在信号线为高电平的时间周期内,把能量贮存在内部的电容器中,在单信号线为低电平的时间期内断开此电源,直到信号线变为高电平重新接上寄生电源为止, 寄生供电电源电路 如图所示。 寄生电源供电方式 当I/O或VDD引脚为高电平时,这个电路便“取”得电源。只要符合指定的定时和电压要求,I/O将提供足够的功率。寄生电源的优点是双重的:利用此引脚,远程温度检测无需本地电源;缺少正常电源条件下也可以读ROM。为了使DSl8B20能完成准确的温度变换,当温度变换发生时,I/O线上必须提供足够的功率。因为DSl8B20的工作电流高达1mA,5kΩ的上拉电阻将使I/O 线没有足够的驱动能力。如果几个DSl8B20 在同一条I/O 线上而且企图同时变换,那么这一问题将变得特别尖锐。发生温度变换时,在I/O 线上提供一强上拉可确保DSl8B20在其有效变换期内得到足够的变换电流。直接供电方式下DS18B20直接使用连接到VDD引脚的外部电源,直接供电电源如图所示。 直接供电方式 这种方法的优点是在I/0线上不要求强的上拉。总线上主机不需向上连接便在温度变换期间使线保持高电平。这就允许在变换时间内其它数据在单线上传送。此外,在单线总线上可以放置任何数目的DSl8B20,而且如果它们都使用外部电源,可以直接同时完成温度变换。注意只要外部电源处于工作状态,GND引脚不可悬空。 2.2.3 DS18B20控制方法 DS18B20有六条控制命令,指令约定代码操作说明 CCH:跳过扫描温度传感芯片序列号 44H: 启动DS18B20进行温度转换 BEH :读度温度值 DS18B20的复位时序 :   (1) 先将数据线置高电平“1”。   (2) 延时(该时间要求的不是很严格,但是尽可能的短一点)   (3) 数据线拉到低电平“0”。   (4) 延时750微秒(该时间的时间范围可以从480到960微秒)。   (5) 数据线拉到高电平“1”。   (6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。   (7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。   (8) 将数据线再次拉高到高电平“1”后结束。 DS18B20的读时序: 对于DS18B20的读时序分为读0时序和读1时序两个过程。 对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。   (1)将数据线拉高“1”。   (2)延时2微秒。   (3)将数据线拉低“0”。   (4)延时15微秒。   (5)将数据线拉高“1”。   (6)延时15微秒。   (7)读数据线的状态得到1个状态位,并进行数据处理。   (8)延时30微秒。 DS18B20的写时序: 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。 对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。   (1) 数据线先置低电平“0”。   (2) 延时确定的时间为15微秒。   (3) 按从低位到高位的顺序发送字节(一次只发送一位)。   (4) 延时时间为45微秒。   (5) 将数据线拉到高电平。   (6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。 (7) 最后将数据线拉高。 2.3 显示部分设计 本系统硬件设计中显示器件选用YM12864图形点阵液晶显示器,YM12864汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。 2.3.1 YM12864引脚描述 YM12864共20个引脚其中包括8个三态数据引脚,5个控制信号引脚,1个复位引脚和4个电源相关引脚。YM12864详细引脚描述见下表: YM12864详细引脚描述 引脚号 引脚名称 方向 功能说明 1 VSS - 模块的电源地 2 VDD - 模块的电源正端 3 V0 - LCD驱动电压输入端 4 RS(CS) H/L 并行的指令/数据选择信号;串行的片选信号 5 R/W(SID) H/L 并行的读写选择信号;串行的数据口 6 E(CLK) H/L 并行的使能信号;串行的同步时钟 7 DB0 H/L 数据0 8 DB1 H/L 数据1 9 DB2 H/L 数据2 10 DB3 H/L 数据3 11 DB4 H/L 数据4 12 DB5 H/L 数据5 13 DB6 H/L 数据6 14 DB7 H/L 数据7 15 PSB H/L 并/串行接口选择:H-并行;L-串行 16 NC 空脚 17 /RET H/L 复位 低电平有效 18 NC 空脚 19 LED_A LED+5V 背光源正极 20 LED_K LED-OV 背光源负极 YM12864引脚图如下图所示: YM12864引脚图 2.3.2 YM12864液晶显示器主要硬件构成 YM12864液晶显示器主要包括以下几个硬件模块: ① 显示数据RAM(DDRAM) 1、文本显示RAM(DDRAM) 文本显示RAM提供8个×4行的汉字空间,当写入文本显示RAM时,可以分别显示CGROM、HCGROM与CGRAM的字型;ST7920A可以显示三种字型 ,分别是半宽的HCGROM字型、CGRAM字型及中文CGROM字型。三种字型的选择,由在DDRAM中写入的编码选择,各种字型详细编码如下: 显示半宽字型 :将一位字节写入DDRAM中,范围为02H-7FH的编码。 显示CGRAM字型:将两字节编码写入DDRAM中,总共有0000H,0002H,0004H,0006H四种编码 显示中文字形:将两字节编码写入DDRAMK ,范围为A1A0H-F7FFH(GB码)或A140H-D75FH(BIG5码)的编码。 绘图RAM(GDRAM) 绘图显示RAM提供128×8个字节的记忆空间,在更改绘图RAM时,先连续写入水平与垂直的坐标值,再写入两个字节的数据到绘图RAM,而地址计数器(AC)会自动加一;在写入绘图RAM的期间,绘图显示必须关闭,整个写入绘图RAM的步骤如下: 1、关闭绘图显示功能。 2、先将水平的位元组坐标(X)写入绘图RAM地址; 再将垂直的坐标(Y)写入绘图RAM地址; 将D15——D8写入到RAM中; 将D7——D0写入到RAM中; 打开绘图显示功能。 绘图显示的缓冲区对应分布请参考“显示坐标” 游标/闪烁控制 ST7920A提供硬件游标及闪烁控制电路,由地址计数器(address counter)的值来指定DDRAM中的游标或闪烁位置。 ② I/O缓冲器(DB0~DB7) I/O缓冲器为双向三态数据缓冲器。是LCM(液晶显示模块)内部总线与MPU总线的结合部。其作用是将两个不同时钟下工作的系统连接起来,实现通讯。I/O缓冲器在片选信号/CS有效状态下,I/O缓冲器开放,实现LCM(液晶显示模块)与MPU之间的数据传递。当片选信号为无效状态时,I/O缓冲器将中断LCM(液晶显示模块)内部总线与MPU数据总线的联系,对外总线呈高阻状态,从而不影响MPU的其它数据操作功能。 ③ 输入寄存器 输入寄存器用于接收在MPU运行速度下传送给LCM(液晶显示模块)的数据并将其锁存在输入寄存器内,其输出将在LCM(液晶显示模块)内部工作时钟的运作下将数据写入指令寄存器或显示存储器内。 ④ 输出寄存器 输出寄存器用于暂存从显示存储器读出的数据,在MPU读操作时,输出寄存器将当前锁存的数据通过I/O缓冲器送入MPU数据总线上。 ⑤ 指令寄存器 指令寄存器用于接收MPU发来的指令代码,通过译码将指令代码置入相关的寄存器或触发器内。 ⑥ 状态字寄存器 状态字寄存器是LCM(液晶显示模块)与MPU通讯时唯一的“握手”信号。状态字寄存器向MPU表示了LCM(液晶显示模块)当前的工作状态。尤其是状态字中的“忙”标志位是MPU在每次对LCM(液晶显示模块)访问时必须要读出判别的状态位。当处于“忙”标志位时,I/O缓冲器被封锁,此时MPU对LCM(液晶显示模块)的任何操作(除读状态字操作外)都将是无效的。 ⑦ X地址寄存器 X地址寄存器是一个三位页地址寄存器,其输出控制着DDRAM中8个页面的选择,也是控制着数据传输通道的八选一选择器。X地址寄存器可以由MPU以指令形式设置。X地址寄存器没有自动修改功能,所以要想转换页面需要重新设置X地址寄存器的内容。 ⑧ Y地址计数器 Y地址计数器是一个6位循环加一计数器。它管理某一页面上的64个单元。Y地址计数器可以由MPU以指令形式设置,它和页地址指针结合唯一选通显示存储器的一个单元,Y地址计数器具有自动加一功能。在显示存储器读/写操作后Y地址计数将自动加一。当计数器加至3FH后循环归零再继续加一。 2.3.3 YM12864液晶显示器控制接口信号说明 YM12864液晶显示器共有5个控制引脚,对应5个控制信号。它们分别是寄存器选择信号RS,读写控制信号R/W,使能信号E,左屏片选信号CS1,右屏片选信号CS2。下面通过几个表格来详细说明这些控制信号的作用。 RS,R/W的配合选择决定读写方式的4种模式: RS,R/W的配合选择决定读写方式的4种模式 RS信号 R/W信号 功能说明 L L MPU写指令到指令暂存器(IR) L H 读出忙标志(BF)及地址记数器(AC)的状态 H L MPU写入数据到数据暂存器(DR) H H MPU从数据暂存器(DR)中读出数据 使能信号E控制方式见下表: 使能信号E控制方式 E状态 执行动作 功能 高——>低 I/O缓冲——> DDRAM 配合R/W写数据或指令 高 DDRAM——>I/O缓冲 配合RS进行读数据或指令 低——>高 无动作 2.3.4 YM12864液晶显示器指令说明 YM12864液晶显示器的寄存器选择信号RS,读写控制信号R/W与8位三态数据口输入输出的控制代码的不同组合就组成了不同的控制指令,这些指令控制液晶显示器完成各种操作。下面就用一个表格对这些指令做出详细的说明,如下表所示: YM12864液晶显示器指令说明 指令表1:(RE=0:基本指令集) 指令 指令码 说明 执行时间(540KHZ) RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 清除显示 0 0 0 0 0 0 0 0 0 1 将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H” 4.6ms 地址归位 0 0 0 0 0 0 0 0 1 X 设定DDRAM的地址计数器(AC)到“00H”,并且将游标移到开头原点位置;这个指令并不改变DDRAM的内容 4.6ms 进入点 设定 0 0 0 0 0 0 0 1 I/D S 指定在资料的读取与写入时,设定游标移动方向及指定显示的移位 72us 显示状态 开/关 0 0 0 0 0 0 1 D C B D=1:整体显示ON C=1:游标ON B=1:游标位置ON 72us 游标或显示移位控制 0 0 0 0 0 1 S/C R/L X X 设定游标的移动与显示的移位控制位元;这个指令并不改变DDRAM的内容 72us 功能设定 0 0 0 0 1 DL X 0 RE X X DL=1 (必须设为1) RE=1: 扩充指令集动作 RE=0: 基本指令集动作 72us 设定CGRAM地址 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 设定CGRAM地址到地址计数器(AC) 72us 设定DDRAM 地址 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 设定DDRAM地址到地址计数器(AC) 72us 读取忙碌标志(BF)和地址 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 读取忙碌标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值 0us 写资料到RAM 1 0 D7 D6 D5 D4 D3 D2 D1 D0 写入资料到内部的RAM(DDRAM/CGRAM/IRAM/GDRAM) 72us 读出RAM的值 1 1 D7 D6 D5 D4 D3 D2 D1 D0 从内部RAM读取资料(DDRAM/CGRAM/IRAM/GDRAM) 72us 指令表2:(RE=1:扩充指令集) 指令 指令码 说明 执行时间(540KHZ) RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 待命模式 0 0 0 0 0 0 0 0 0 1 将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H” 72us 卷动地址或IRAM地址选择 0 0 0 0 0 0 0 0 1 SR SR=1:允许输入垂直卷动地址 SR=0:允许输入IRAM地址 72us 反白选择 0 0 0 0 0 0 0 1 R1 R0 选择4行中的任一行作反白显示,并可决定反白与否 72us 睡眠模式 0 0 0 0 0 0 1 SL X X SL=1:脱离睡眠模式 SL=0:进入睡眠模式 72us 扩充功能设定 0 0 0 0 1 1 X 1 RE G 0 RE=1: 扩充指令集动作 RE=0: 基本指令集动作 G=1 :绘图显示ON G=0 :绘图显示OFF 72us 设定IRAM地址或卷动地址 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 SR=1:AC5—AC0为垂直卷动地址 SR=0:AC3—AC0为ICON IRAM地址 72us 设定绘图RAM地址 0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0 设定CGRAM地址到地址计数器(AC) 72us 备注: 1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。 2、“RE”为基本指令集与扩充指令集的选择控制位元,当变更“RE”位元后,往后的指令集将维持在最后的状态,除非再次变更“RE”位元,否则使用相同指令集时,不需每次重设“RE”位元。 2.4时钟部分 本系统硬件设计时钟芯片选用DALLAS公司推出的专用时钟芯片DS1302。 用来为测得的温度添加时间注释,为历史温度的查询提供必要的条件。 DS1302内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒﹑分﹑时﹑日﹑星期﹑月﹑年的信息,每月的天数和闰年的天数可自动调整。时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信,DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW,采用普通32.768kHz晶振。 DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:RES 复位;I/O 数据线;SCLK串行时钟,其引脚图如下图所示: DS1302引脚图 其中VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入输出端,SCLK始终是输入端。 2.4.1 DS1302的控制字节 DS1302 的控制字如图所示: 1 RAM A4 A3 A2 A1 A0 W /CK /R DS1302 的控制字节 控制字节的最高有效位必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 2.4.2 DS1302的数据输入输出 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 2.4.3 DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字如表2-12所示。 表2-12 日历、时间寄存器及其控制字 寄存器 名称 命令字 取值范围 各位内容 写操作 读操作 7 6 5 4 3 2 1 0 秒寄存器 80H 81H 0—59 CH 秒十位 秒个位 分寄存器 82H 83H 0—59 0 分十位 分个位 时寄存器 84H 85H 0—23或 0—12 T 0 10 时 时个位 AP 日寄存器 86H 87H 0—28,29,30,31 0 0 日十位 日个位 月寄存器 88H 89H 1—12 0 0 0 月 月个位 周寄存器 8AH 8BH 1—7 0 0 0 0 0 星期 年寄存器 8CH 8DH 0—99 年十位 年个位 其中CH为时钟停止位,CH=0振荡器工作允许;CH=1振荡器工作停止。T为12小时制与24小时制选择位,T=0为24小时制;T=1为12小时制。AP为12小时制的上下午指示位,AP=0为上午;AP=1为下午。 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 2.5 键盘 本系统硬件设计中键盘选用了4×4矩阵键盘,用来实现对系统的各种不同操作。4×4矩阵键盘有4条列线,4条行线共16个按键。每个按键对应不同键值,键盘扫描采用外部中断扫描方式,本系统中键盘为无源结构,键盘工作时不依靠任何外部电源。 2.5.1 4×4矩阵键盘结构及按键抖动消除 当键盘中按键数量较多时为减少I/O口的占用,通常将按键排列成矩阵形式,如图2-12所示。在矩阵式键盘中,每条行线和列线在交叉处不直接连通,而是通过一个机械弹性开关加以连接。这样4条列线(R0~R3)和4条行线(L0~L3)就可以构成16个按键的矩阵键盘。键盘采用了无源结构,工作是不依靠任何外部电源。 由于机械弹性开关的机械触点的弹性作用,一个按键开关在闭合时并不会马上稳定的闭合,在断开时也不会马上断开,因而机械开关在闭合及断开瞬间均伴有一连串的抖动,如图所示: 按键时的抖动 抖动的时间长短由按键开关机械特性及按键的人为因素决定,一般为5ms~20ms。按键抖动如果处理不当会引起一次按键被误处理多次,所以消除抖动是必要的。消除抖动的有硬件处理和软件处理两种方法。当按键较多一般采用软件消抖方式。软件消抖原理为当检测出按键闭合后执行一个延时程序(产生5ms~20ms的延时),待前沿抖动消失后再次检测按键的状态,如果按键仍保持闭合状态则可确认为有键按下。当检测到按键释放并执行延时程序,待后沿抖动消失后才转入按键的处理程序。 2.5.2 矩阵键盘的工作原理 从4×4矩阵键盘的4条列线和4条行线分别引出8条端线接于单片机的8个I/O口,由于键盘采用了无源结构所以行列线的电平由单片机I/O口的电平决定。进入按键处理程序后先使4条列线全为低电平,4条行线全为高电平,为读行线状态做准备,没有按键时这种状态不会被改变。当键盘上的某个按键闭合时,则该键所对应的行线和列线被短路。例如:6号键被按下时列线L2与行线R1被短路,此时行线R1电平被列线L2拉低,由原来的高电平变为低电平而其它行线电平依然不变,为低电平。此时单片机可读得行线状态进而判断按键所在行并记录下行号。之后使得4条列线全为高电平,4条行线全为低电平,为读列线状态做准备。同理6号键被按下时列线L2与行线R1被短路,此时列线L2电平被行线R1拉低,由原来的高电平变为低电平而其它行线电平依然不变,为低电平。此时单片机可读得列线状态进而判断按键所在列并记录下列号。然后按一定的按键编码规则可计算出6号键的键值。 2.5.3 键盘扫描方式 键盘扫描方式一般有三种:循环扫描方式,定时扫描方式,外部中断扫描方式。循环扫描方式需要不停地扫描键盘,影响其它功能执行工作效率低。定时扫描方式是利用单片机内部的定时器,产生一个适当时间的定时中断,单片机响应中断时对键盘进行扫描取键值过程,但是这种扫描方式不管键盘上是不是有键闭合单片机总是定时地扫描工作效率还是不高。外部中断扫描方式是只在键盘上有键闭合时才产生一个外部中断进入按键处理程序,这种方式工作效率明显提高。本系统中矩阵键盘扫描采用外部中断扫描方式。列线的五个电平信号经过或后接于外部中断信号输入口P3.3,当有任意一个按键按下时或门输出为低发生外部中断,进入按键处理程序。采用外部中断扫描方式的4×4矩阵键盘与单片机接口电路如下图所示 外部中断扫描方式的4×4矩阵键盘与单片机接口电路 2.6 片外数据存储器 本系统硬件设计中片外数据存储器选用静态RAM芯片6264,用来存储DS18B20的ROM编码和历史温度记录等其它数据。6264容量为8K,13根地址输入线8根双向三态数据线。其引脚图如下图所示: 6264引脚图 如上图所示,A0~A12为地址输入引脚;I/O0~I/O7为双向三态数据总线;/WE为写选通信号输入引脚,低电平有效;/OE为读选通信号输入引脚,低电平有效;/CS1片选信号输入引脚,低电平有效;Vcc主电源输入引脚;Vss地。 数据存储器扩展方法:外部扩展数据存储器空间地址由P2口提供高8位地址,P0口分时提供低8位地址和8位双向数据总线。所以P0口提供低8位地址需要锁存器锁存以防止数据信号把低8位地址信息冲掉。外部扩展数据存储器的读写由单片机的/RD和/WR信号控制。片选信号的选择与地址译码方法有关,采用线选法是可直接有一位高位地址线作为片选信号;采用全地址译码法是需要有一个3-8译码器将3位地址信号经过译码后做位外部扩展数据存储器的片选信号。采用全地址译码法扩展外部扩展数据存储器的接口电路如下图所示: 采用全地址译码法扩展外部扩展数据存储器的接口电路 第3章系统硬件电路设计 在选择好适当的器件后就开始进行系统的硬件设计,一般来说单片机应用系统的硬件设计包括两个方面:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、传感器等,并设计合适的接口电路。 3.1 系统的扩展 系统的扩展主要包括两个方面:RAM的扩展和I/O口的扩展。由于本系统须存储DS18B20的ROM编码和历史温度记录等数据,片内数据存储器明显不能满足要求,所以有必要扩展一片大容量的片外数据存储器。由于扩展的片外数据存储器占用了P0和P2口且本系统有较多的外围设备,AT89C51提供的I/O口已不能满足系统要求,必须扩展I/O口。 3.1.1 RAM的扩展 本系统中片扩展的外数据存储器选用了6264。其容量为8K,8根三态数据线,13根地址线,地址译码采用全地址译码法。其与AT89C51的接口电路如下图所示: RAM扩展接口电路 如图2-15所示,P0.0~P0.7分别接于地址锁存器74LS373的输入端D0~D7, 74LS373的输出端Q0~Q7接于6264的A0~A7以提供访问6264的低8位地址。 74LS373的片选信号/OE接地,锁存信号LE由AT89C51的地址锁存允许端ALE提供。P2.0~P2.4直接接于6264的A8~A12提供访问6264的高5位地址。P2.5~P2.7分别接于3-8译码器74LS138的A、B、C端,其输出端Y0接于6264的片选信号端/CE,只有当P2.5~P2.7均为低电平是6264才被选通,所以6264的地址范围为0000h~1FFFh。6264的读写控制信号分别由P3.6、P3.7提供。 3.1.2 I/O口的扩展 扩展的I/O口与片外数据存储器统一编址寻址,任何一个扩展口根据地址线的选择方式不同占用一个片外RAM单元地址,这样用户可用片外64KB的RAM空间一部分做扩展口地址。单片机访问外部扩展口就像访问外部RAM一样。 I/O口扩展主要通过P0口扩展,利用P0口扩展时必须分时使用,P2口提供读写与片选控制信号。通过锁存器和三态缓冲器扩展I/O口是输出应该具备锁存功能,视输入数据常暂态不同用三态缓冲和锁存选通来决定。 由于RAM的扩展占用了P0口和P2口,而外围器件也需要占用I/O口,而AT89C51提供I/O口不能满足外围器件需要的I/O口数。所以必须扩展I/O口,根据外围器件的需要本系统共扩展了一个8位的三态数据输出口,这个端口作为YM12864液晶显示器的8位三态并行数据口;一个8位的三态数据输入口用于读取YM12864液晶显示器的忙信号。两个扩展3位的数据输出端口,其中一个用于给出YM12864液晶显示器的控制信号E、RS、RW;另外用于输出报警信号和液晶显示器的控制信号/CS1、/CS2。扩展的输出口由P0口提供输出数据信号,P2口的高三位经过译码后提供输出口地址信号,由锁存器74LS378在AT89C51的写信号控制下将P0口输出数据信号锁存;扩展的输入口通过一个三态缓冲器74LS245将液晶显示器的忙信号读到P0口,由P2口的高三位经过译码后提供输入口的地址信号,控制信号由AT89C51的读信号提供,I/O口扩展的接口电路如下图所示。 I/O口扩展的接口电路 如上图所示,P2口的高3位经过3-8译码器译码后分别给用来扩展输入输出口的锁存器74LS377和三态缓冲器74LS245提供片选信号,这就直接决定了扩展的I/O口的访问地址(扩展的I/O口与片外RAM统一编址)。由图2-18可知扩展的8位数据输出口地址为3FFFh;扩展的3位数据输出口1地址为7FFFh,读写控制信号R/W在最低位,寄存器控制信号RS在第1位,使能信号E在第2位;扩展的3位数据输出口2地址为5FFFh,左屏选择控制信号/CS1在最低位,右屏选择控制信号在第1位;扩展的8位数据输入口地址为3FFFh。 3.2 系统外围设备的配置 本系统的外围设备包扩:DS18B20、YM12864、DS1302和4×4矩阵键盘,下面就各外围设备的接口电路做一个介绍。 3.2.1 DS18B20的接口电路 考虑到本系统多点实时测温的要求,为了能使各器件在温度转换时器件能有足够的功率,DS18B20采用了直接供电方式。由于DS18B20的I/O口为漏极开路的,多片DS18B20的输出信号在总线上实现线与,因此在使用时必须对总线外加上拉电阻,上拉电阻选取为4.7kΩ。DS18B20的接口电路如下图示: DS18B20的接口电路 如图2-17所有DS18B20均可接于一条单线总线上,这条单线总线只占用AT89C51的一个端口。单线总线接于AT89C51的P3.0。在1到16个范围内可以在单线总线上任意添加DS18B20。 3.2.2 YM12864的接口电路 YM12864的接口电路较为简单,其八位三态并行数据DB0~DB7由扩展的8位数据输出口提供;其控制信号/CS1、/CS2由扩展的3位数据输出口2提供;E、RS、RW控制信号由扩展的3位数据输出口1提供。 1)​ DS1302的接口电路 DS1302用主电源供电,外加32.768kHZ晶振。器件接口电路如下图所示。 DS1302的接口电路 其复位信号输入端接于AT89C51的P3.1口;串行时钟接于P3.5口;I/O端接于P3.4口。 3.2.3 4×4矩阵键盘接口电路 4×4矩阵键盘的4条列线分别接于AT89C51的P1.0~P1.3;五条行线分别接于P1.4~P1.7和P3.2。列线的五个电平信号经过或后接于外部中断信号输入口P3.3。 第4章系统软件程序设计 4.1 主程序: #include #include #include #define uint unsigned int #define uchar unsigned char #define Nop() _nop_() #define _Nop() _nop_() /* 10设置(A键);11确认(B键);12返回(C键);13报警(D键);14+(*键);15-(#键);*/ uchar
本文档为【数字温度计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_662290
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:60
分类:互联网
上传时间:2011-04-02
浏览量:23