51单片机课程设计周亮

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

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

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

资源描述

摘要本系统为通过传感器DS18B20、LCD1602液晶显示器、看门狗MAX813L、单片机AT89C2051等元件组成的简单数字式温度计,实现对温度的测量记录。该系统主要通过单片机的外部程序存储器和外部数据存储器等扩展功能来记录存储传感器说感应的温度数据,并将数据输入到液晶显示器上显示。在数据存储传输过程中,为防止以窄脉冲形式出现造成的微机系统故障造成“死机”现象,利用“看门狗”在出现“死机”现象时产生的复位信号来引导单片机程序重新进入正常运行。关键字:单片机,传感器,看门狗,字符液晶概述:1.目的与任务目的:本课程实践内容以《传感器原理与设计》、《单片机技术》两门课程的理论教学为基础,将温度传感器和单片机结合,设计一种小型温度自动测量装置。任务:根据下图数字式温度计构成框图,查找资料,学习有关元器件原理、特性及控制方法,设计硬件电路及软件,实现温度的实时测量及显示。具体任务:(1)段式液晶显示器的原理及控制;(2)看门狗MAX813L的原理及控制;(3)传感器DS18B20的原理及控制;(4)单片机AT89S52的原理及使用(5)数字式温度计整体原理设计硬件构成图:2.使用设备(1)计算机(2)稳压电源(3)单片机实验仪(4)万用表、工具等(5)元器件(传感器DS18B20、液晶显示器、看门狗MAX813L、单片机AT89S52、面包板、接插线、电路板等)硬件设计(一)选择单片机AT89C511.AT89C51在本设计中的作用:芯片89C51在本设计中起输入输出作用,通过P3.0口与传感器相连,接收传感器的数据并储存,通过P1.0-P1.7八个口作为输出口将处理后的数据转入终端显示器上,P3.1,P3.2口与电子狗连接。2.引脚结构传感器单片机液晶显示器微处理器监控器At89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程FlashAT89S52引脚(1)P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。(2)P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)(3)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。(4)P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。(5)RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。(6)XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。接晶体振荡器和陶瓷振荡器均可以,采用晶体振荡器,C1,C2值可选用40pF±10pF.(7)Vcc,GND:电源和地线(二)测温传感器DS18B201.DS18B20在本设计中的作用:DS18B20在本设计中主要是测量环境或手部温度,并将接收的模拟信号转换为数字信号输出至AT89S52。该传感器的特点是结构简单,不需要外接电路,可用一根I/O数据线既供电又传输数据,可由用户设置温度报警界限等特点。2.引脚功能GNDDQVDDDS18B203.性能特点(1)单线接口,只需一根I/O口线用于数据串行通讯;(2)多个传感器可以直接并联在同一I/O口线上,便于分布式温度检测;(3)以由数据线供电,电压范围+3.0~+5.5V(4)测量范围-55℃~+125℃(5)-10℃~+85℃范围内,精度为±0.5℃(6)分辨率可编程设定为9~12位(7)750ms内将温度变换为12位数字(8)具有用户可定义的非易失性温度告警设置4.内部结构(1)64位ROM64位ROM编码:从高位算起,该ROM有一个字节的CRC校验码,6个字节的产品序号和一个字节的家族代码。8位CRC校验码48位序列码8位家族代码1个字节6个字节1个字节由低56位代码决定每个DS18B20有一个序列码DS18B20为28HCRC校验码用于传感器与主机通讯时,校验通讯是否正确(多个传感器同时使用时,ROM里的代码相当于本传感器的身份代码)。主机接收到64位代码后,根据已知的CRC计算公式,由前56位求出其校验码,并与后8位进行比较,以保证传输的前56位身份代码的正确性。(2)温度传感器温度传感器+测量电路+A/D转换器基本原理:温度量——影响片内振荡器频率——影响指定条下温度计数器中的计数值(3)上、下限报警寄存器EEPROM性质的存储器,用于存放温度报警的上、下限值。上电时由EEPROM读到暂存寄存器(RAM)相应单元供DS18B20使用。调整时,通过写RAM命令,将规定的温度报警的上下限值存入暂存寄存器相应单元,再由复制RAM命令写入EEPROM性质的上、下限报警寄存器中。(4)结构寄存器EEPROM性质的存储器,用于存放DS18B20的分辨率位数。缺省值为12位分辨率。TMR1R011111TM--测试模式位,为1表示测试模式,为0表示工作模式,出厂时该位设为0,且不可改变。R1、R0与温度分辨率及转换时间有关。(5)暂存寄存器RAM性质的存储器,9个字节,地址顺序相连。读写也顺序进行。控制指令中的RAM指令均指对暂存寄存器的访问。(6)CRC发生器根据RAM内容,产生CRC校验码,用于RAM与主机通讯时纠错使用。5.数据格式DS18B20温度数据采用符号扩展方式二进制补码形式,双字节。SSSS27262524232221202-12-22-32-4前8位是高字节,后8位为低字节。16位字节的前4位为符号位,接下来8位为整数位,最后4位为小数位。DS18B20的温度数据最高分辨率为12位,按符号位扩展到16位。例如温度(℃)二进制码十六进制码+1250000011111010000B07D0H+850000010101010000B0550H+250000000110010000B0190H+25.06250000000110010001B0191H+0.50000000000001000B0008H-0.51111111111111000BFFF8H-25.06251111111001101111BFE6FHR1R0分辨率(位)转换时间(ms)00993.750110187.510113751112750温度值低位字节温度值高位字节TH报警上限字节TL报警下限字节分辨率设置字节保留保留保留CRC码-551111110010010000BFC90H[-25.0625]原=100000011001.0001B[-25.0625]补=1111111001101111B=FE6FH6.DS18B20与主机通讯(1)控制命令主机向DS18B20发布,读取温度测量数据等。步骤:A.初始化命令:主机和传感器进行握手挂钩,建立通讯联络;B.传送ROM命令:多传感器在线时,用于确定某传感器的位置;C.传送RAM命令:对单个DS18B20发布命令;D.数据交换命令:读取温度测量数据。单总线上每一个器件的使用都是从初始化开始。计算机先发出复位信号,单总线上的DS18B20给出应答。如果计算机检测到单总线上有DS18B20器件存在,就可以发出传送ROM命令。DS18B20的ROM命令指令说明读ROM命令(33H.)读总线上的序列号匹配ROM命令(55H)对总线上DS18B20寻址跳过ROM命令(CCH)该命令执行后,将省去每次与有关的操作搜索ROM命令(F0H)主机识别总线上多个器件的ROM编码报警搜索命令(FCH)主机搜索有报警的器件当上述命令之一被成功执行后,主机发出传送RAM命令,它用来访问被选中的DS18B20器件DS18B20的RAM命令指令说明温度转换命令(44H)启动温度转换读存储器(RAM)命令(BEH)读出9字节数据(其中有温度值,报警值等)写存储器(RAM)命令(4EH.)写上、下限值及结构字到RAM中复制存储器(RAM)命令(48H)将RAM存储器中的值写入EEPROM中读EEPROM命令(B8H)将EEPROM中的值写入存储器RAM中读供电方式命令(B4H)检测DS18B20的供电方式DS18B20的供电方式有两种:寄生电源供电,由单总线DQ提供;另一种为外电源供电,由VDD提供。只使用1个传感器,其命令发布顺序如下:初始化命令命令传感器开始温度转换跳过ROM命令(CCH)温度转换命令(44H)等待初始化命令读取温度数据跳过ROM命令(CCH)读存储器(RAM)命令(BEH)读取温度数据(2)串行通讯时序串行通讯时序主要是复位(初始化)、读、写(写1、写0)的时序。DS18B20的时序信号波形如下(三)选择1602字符液晶1.1602字符液晶在本设计中的作用:在本设计中采用16引脚LCD,作为本实验的终端显示。1602字符液晶属于工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)2.管脚功能引脚说

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

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

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

×
保存成功