数字式温度计系统设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《数字式温度计系统设计》课程设计姓名:许红升专业:通信工程学号:P01214179性别:男邮箱:466570324@qq.com联系方式:18256022795指导老师:李斌张宏伟1一、最终要实现的设计要求(或摘要)1、以微机系统作为主控,利用并行输入输出接口芯片对温度计的控制时序进行模拟,实现温度采集、处理、数据显示等功能。2、为了充分理解温度计DS18B20的控制时序并实现正确的时序模拟,前期先用自己较为熟悉的MC9S128XS128单片机作为微控制器,采集温度数据,并显示在高精度OLED上。为后期用微机系统采集温度打好基础。3、比较用微机系统与单片机作为主控进行温度采集的相同点和不同点。二、内容设计(方法论)1、硬件电路(微机系统)1.1硬件电路方案论证方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用微机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案二由于现在市场上有很多集成的温度传感器,有模拟温度传感器,如AD590,也有数字式温度传感器,如DS18B20。DS18B20采用单总线协议,内部集成了较高精度的A/D转换器,采用数字量输出。通过比较以上两种方案,并从简化外围电路以及保证较高精度的角度出发,最终确定方案二,即采用数字式温度传感器DS18B2O。21.2硬件框图硬件电路总体框图如下。主控采用8086微机系统,温度计采用数字式的DS18B20,通过并行输入输出接口芯片8255对温度计的时序进行模拟,将采集到的数据显示在七段数码管上。图1、硬件框图1.3电路原理图本设计涉及的电路有温度测量/控制电路、8255接口电路、LED控制电路、数码管显示电路等。采用Altiumdesigner绘制部分电路原理图如下:图2、温度测量/控制电路原理图并行输入输出接口芯片8255DS18B20LED控制器8086微机系统数码管显示模块时钟源热源控制3图3、数码管显示电路图4、8279键盘/LED控制器42、软件设计(微机系统)2.1程序设计思路控制程序设计思路说明:本程序主要功能分为初始化、读温度量、写操作及LED的显示输出。初始化主要实现写8255方式控制字,设置控制字为89h,,即10001001,8255芯片工作于方式0,PA口作输出段选,PB口作输出位选,PC口作为输入。然后向DS18B20发送读温度指令,准备读温度前先复位,跳过ROM匹配,发出读温度命令,调用读18B20子程序,先读低8位再读高8位,读出转换后的温度值存在AX中。再调用显示子程序,将温度值显示出来。实现二进制到十六进制数字型码的转化主要通过二进制数从段选码中查表找出相应的字型码并从8255中送出在LED显示器中显示。2.2软件流程图2.2.1主程序流程图图5、主程序流程图开始初始化8255调用启动DS18B20子程序CF=1延时1SYN调用读温度子程序BCD码数据转换、数码管消隐52.2.2读DS18B20子程序由于DS18B20采用的是单总线协议,为了读取到DS18B20的内部数据,在查阅DS18B20的数据手册里描述的控制时序,汇编程序中利用8255对控制时序进行模拟。为了正常模拟时序,延时语句显得非常重要,这直接决定所编写的时序是否符合DS18B20的单总线协议的要求。程序流程图如下:图6、读DS18B20程序流程N开始8-CX8255控制口地址-DX80H-ALAL-[DX](0-PC0)89H-ALAL-[DX](PC口输入)NOPNOPNOP8255PC口地址-DX[DX]-ALRORAL,1RCRBL,1CX-1=0BL-AL返回Y63、硬件电路(单片机)3.1、MC9S12XS128介绍及电路原理图因为之前参加比赛的过程中学习过几款单片机,如8位的51单片机、飞思卡尔公司的16位MC9S12XS18和32位的MK60DN512LL10、microchip公司的8位PIC单片机。这几款单片机各有特点,其中我更倾向于使用16位的MC9S12XS128微控制器。该款单片机相比51单片机,不仅有更高的处理速度以及更多的双向I/O口,同时内部集成了很多接口电路,如A\D转换器,IIC、SPI、CAN总线等。下面为MC9S12XS128的封装图:图7、MC9S12XS128封装(112LQFP)为了更快的熟悉DS18B20的功能和使用方法,在课程设计前期我采用MC9S12XS128单片机作为主控,并搭建相关外围电路,如高精度的OLED的显示电路。下面为部分电路原理图:7图8、MC9S12XS128核心板图9、DS18B20温度采集电路8图10、高精度OLED与MC9S12XS128的连接图3.2、OLED简介OLED,即有机发光二极管(OrganicLight-EmittingDiode),又称为有机电激光显示(OrganicElectroluminesenceDisplay,OELD)。因为具备轻薄、省电等特性,因此从2003年开始,这种显示设备在MP3播放器上得到了广泛应用,而对于同属数码类产品的DC与手机,此前只是在一些展会上展示过采用OLED屏幕的工程样品。自2007年后,寿命得到很大提高,具备了许多LCD不可比拟的优势。下面为OLED的外观图:图11、OLED外观图94、开发环境(单片机)以IARSystem公司的IARforARM为开发环境,该IDE适用很多半导体厂商的上百种微控制器、微处理器等,具有友好的设计界面,集成了编辑器、编译器、模拟器等。软件界面如下:图12、IAR界面5、测试结果图(单片机)图13、测试结果10三、设计说明微机系统设计部分所使用的系统资源介绍如下:1、8086微处理器及其体系结构1.1、8086微处理器的一般性能特点(1)16位的内部结构,16位双向数据信号线;(2)20位地址信号线,可寻址1M字节存储单元;(3)较强的指令系统;(4)利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口;(5)中断功能强,可处理内部软件中断和外部中断,中断源可达256个;(6)单一的+5V电源,单相时钟5MHz。另外,Intel公司同期推出的Intel8088微处理器一种准16位微处理器,其内部寄存器,内部操作等均按16位处理器设计,与Intel8088微处理器基本上相同,不同的是其对外数据线只有8位,目的是为了方便地与8位I/O接口芯片相兼容。1.2、8086CPU的编程结构编程结构:是指从程序员和使用者的角度看到的结构,亦可称为功能结构。从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。8086CPU的内部功能结构如图14所示:图14、8086CPU内部功能结构图111.3、8086CPU引脚图8086CPU采用40条引脚的双列直插(DIP)封装,如图15所示,由于有16条数据总线,20条地址总线,一些引脚必须分时复用。图15、8086CPU引脚图2、并行输入输出接口芯片82552.1、8086的可编程外设接口电路8255的数据口D0-D7与CPU的6根控制线相连接,控制8255A内部的各种操作。控制线RESET用来使8255A复位。CS和地址线A1及A0用于芯片选择和通道寻址。分别与8086的高位地址线A19,A1,A0相连接。图16、8086的可编程外设接口电路122.2、8255A并行I\O接口8255A芯片内包含有3个8位的端口,它们是A口,B口和C口。这3个端口均可作为CPU与外设通讯时的缓冲器或锁存器,当需要“状态”或“联络”信号时,C口可以提供,此时,将C口的高4位为A口所用,C口的低4位为B口所用。3个端口通过各自的输入/输出线与外设联系。并行输入/输出端口:一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口。它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3)。A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。8255引脚功能:①RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。②CS:芯片选择信号线,当这个输入引脚为低电平时,即CS=0时,表示芯片被选中,允许8255与CPU进行通讯;CS=1时,8255无法与CPU做数据传输。③RD:读信号线,当这个输入引脚为低电平时,即RD=0且CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,即WR=0且CS=0时,允许CPU将数据或控制字写入8255。④D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。⑤PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。⑥PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每13个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。⑦A0、A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。当A0=0,A1=0时,PA口被选择;当A0=0,A1=1时,PB口被选择;当A0=1,A1=0时,PC口被选择;当A0=1。A1=1时,控制寄存器被选择。3、温度传感器3.1、DS18B20简介DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55~+125摄氏度,可编程为9位~12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。表1、DS18B20分辩率的定义规定由表1可见,DS18B20温度转换的时间比较长,而且设定的分辩率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辩率和转换时间14权衡考虑。3.2、DS18B20内部框图图17、DS18B20内部框图DS18B20依靠一个单总线端口通讯。在单线端口条件下,必须先建立ROM操作协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面5个ROM操作命令之一:1)读ROM,2)匹配ROM,3)搜索ROM,4)跳过ROM,5)报警搜索。这些命令对每个期间的激光ROM部分进行操作,在单总线上挂有多个器件时,同时可以向总线控制器指明有多少个器件或是什么型号的器件。成功执行完一条ROM操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。一条控制操作命令指示DS18B20完成一次温度测量。测量结果放在DS18B20的暂存器里,用一条读暂存器内容的存储器操作

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功