单片机课程考核报告文档格式.docx

上传人:b****2 文档编号:3459098 上传时间:2023-05-01 格式:DOCX 页数:37 大小:3.20MB
下载 相关 举报
单片机课程考核报告文档格式.docx_第1页
第1页 / 共37页
单片机课程考核报告文档格式.docx_第2页
第2页 / 共37页
单片机课程考核报告文档格式.docx_第3页
第3页 / 共37页
单片机课程考核报告文档格式.docx_第4页
第4页 / 共37页
单片机课程考核报告文档格式.docx_第5页
第5页 / 共37页
单片机课程考核报告文档格式.docx_第6页
第6页 / 共37页
单片机课程考核报告文档格式.docx_第7页
第7页 / 共37页
单片机课程考核报告文档格式.docx_第8页
第8页 / 共37页
单片机课程考核报告文档格式.docx_第9页
第9页 / 共37页
单片机课程考核报告文档格式.docx_第10页
第10页 / 共37页
单片机课程考核报告文档格式.docx_第11页
第11页 / 共37页
单片机课程考核报告文档格式.docx_第12页
第12页 / 共37页
单片机课程考核报告文档格式.docx_第13页
第13页 / 共37页
单片机课程考核报告文档格式.docx_第14页
第14页 / 共37页
单片机课程考核报告文档格式.docx_第15页
第15页 / 共37页
单片机课程考核报告文档格式.docx_第16页
第16页 / 共37页
单片机课程考核报告文档格式.docx_第17页
第17页 / 共37页
单片机课程考核报告文档格式.docx_第18页
第18页 / 共37页
单片机课程考核报告文档格式.docx_第19页
第19页 / 共37页
单片机课程考核报告文档格式.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机课程考核报告文档格式.docx

《单片机课程考核报告文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程考核报告文档格式.docx(37页珍藏版)》请在冰点文库上搜索。

单片机课程考核报告文档格式.docx

智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。

有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。

智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);

并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。

温度传感器的发展趋势。

进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。

在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;

而其中某一环节处理不当,就可能造成整个系统性能的下降。

随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。

美国Dallas半导体公司推出的数字温度传感器DS18B20,具有独特的单总线接口,仅需要占用一个通用I/0端口即可完成与微处理器的通信;

在-10~+85℃温度范围内具有0.5℃精度;

用户可编程设定9~12位的分辨率。

以上特性使得DS18B20非常适用于构建高精度、多点温度测量系统。

本次设计就是基于单片机和DS18B20的多点温度检测报警装置。

一、设计任务及要求

1.1设计任务

利用DS18B20和AT89C51设计一个温度测量系统,系统功能:

实现三点温度检测,用LCD显示温度;

温度测量范围:

-55℃~125℃,精度0.1℃。

设定温度上下限,当温度高于上限值或低于下限值时,系统能自动驱动降温与升温设备工作。

要求一种合理、可行的温度检测报警系统。

1.2考察内容

①专业知识应用能力:

包括电路分析、电子技术、单片机、检测技术、电气控制等课程。

②运用知识的能力:

包括对DS18B20芯片、液晶LCD1602、按键,以及对Keil4软件、PROTEUS软件的学习,流程图绘制。

③要求完成的工作量包括:

1)现场仿真演示效果;

2)结合课题进行答辩;

3)上交课题要求的各类设计技术文档。

二、设计思路

2.1设计思路图

2.2设计框图

多点测温控制装置

2.3设计思路

通过多个DS18B20进行温度采集,采集信号传给单片机,单片机区分信号,将各个传感器的温度在LCD1602上显示。

由独立键盘设置温度高温、低温的数值,当温度低于设置的低温数值,单片机驱动发光二极管,代替电阻丝加热的过程;

当温度高于设置的高温数值,单片机驱动直流电机转动,代表电风扇工作降温的过程。

三、系统硬件部分设计

3.1硬件介绍

AT89C51

AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如图所示。

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为低八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

口管脚备选功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(计时器0外部输入)

P3.5T1(计时器1外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;

当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

DS18B20

DS18B20是美国DSLLAS半导体公司推出的第一篇支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串型数字信号供处理器处理。

1.DS18B20温度传感器特性

1)适应电压范围宽,电压范围在3.0~5.5V,在寄生电源方式下可有数据线供电。

2)独特的单线接口方式,它与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通信。

3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。

4)在使用中不需要任何外围元件,全部传感器元件及转换电路集成在形如一只三极管的集成电路内。

5)测温范围-55℃~+125℃,在-10℃~+85℃时精度为±

0.5℃。

6)可编程分辨率为9~12位,对应的可分辨率温度分别为0.5℃,0.25℃,0.125℃和0.0625℃,可实现高精度测温。

7)在9位分辨率时,最多在93.78ms内把温度转换为数字;

12位分辨率时,最多在750ms内把温度转换为数字,显示速度快。

8)测量结果直接输出数字温度信号,以“一线总线”串行送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。

9)负压特性。

电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。

2.应用范围

1)冷冻库、粮仓、储罐、电信机房、电力机房、电缆线槽等测温和控制领域。

2)轴瓦、缸体、纺织、空调等狭小空间工业设备测温和控制。

3)汽车空调、冰箱、冷柜以及中低纬度干燥箱等。

4)供热、制冷管道热量计量、中央空调分户热能计量等。

DS18B20实物图

接线方法

面对着扁平的那一面,左负右正,一旦接反就会立刻发热,有可能烧毁!

同时,接反也是导致该传感器总是显示85℃的原因。

特点

独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0V至5.5V无需备用电源测量温度范围为-55°

C至+125℃。

华氏相当于是-67°

F到257华氏度-10°

C至+85°

C范围内精度为±

0.5°

C

温度传感器可编程的分辨率为9~12位,温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置,应用范围包括恒温控制、工业系统、电子产品温度计、或任何热敏感系统

描述该DS18B20的数字温度计提供9至12位(可编程设备温度读数)。

由于DS18B20是一条口线通信,所以中央微处理器与DS18B20只有一个一条口线连接。

为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。

因为每一个DS18B20的包含一个独特的序号,多个ds18b20s可以同时存在于一条总线。

这使得温度传感器放置在许多不同的地方。

它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。

DS18B20采用一线通信接口。

因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。

主要首先提供以下功能命令之一:

1)读ROM,

2)ROM匹配,

3)搜索ROM,

4)跳过ROM,

5)报警检查。

这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。

若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。

一个控制功能指挥指示DS18B20的演出测温。

测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。

温度报警触发器TH和TL都有一字节EEPROM的数据。

如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。

在片上还载有配置字节以理想的解决温度数字转换。

写TH,TL指令以及配置字节利用一个记忆功能的指令完成。

通过缓存器读寄存器。

所有数据的读,写都是从最低位开始。

DS18B20有六条控制命令

温度转换44H启动DS18B20进行温度转换

读暂存器BEH读暂存器9字节二进制数字

写暂存器4EH将数据写入暂存器的TH、TL字节

复制暂存器48H把暂存器的TH、TL字节写到E2PROM中

重新调E2PROMB8H把E2PROM中的TH、TL字节写到暂存器TH、TL字节

读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPU

初始化

(1)先将数据线置高电平“1”。

(2)延时(该时间要求的不是很严格,但是尽可能的短一点)

(3)数据线拉到低电平“0”。

(4)延时750微秒(该时间的时间范围可以从480到960微秒)。

(5)数据线拉到高电平“1”。

(6)延时等待(如果初始化成功则在15到60微秒时间之内产生一个由DS18B20所返回的低电平“0”。

据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。

(7)若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。

(8)将数据线再次拉高到高电平“1”后结束。

写操作

(1)数据线先置低电平“0”。

(2)延时确定的时间为15微秒。

(3)按从低位到高位的顺序发送字节(一次只发送一位)。

(4)延时时间为45微秒。

(5)将数据线拉到高电平。

(6)重复上

(1)到(6)的操作直到所有的字节全部发送完为止。

(7)最后将数据线拉高。

读操作

(1)将数据线拉高“1”。

(2)延时2微秒。

(3)将数据线拉低“0”。

(4)延时3微秒。

(5)将数据线拉高“1”。

(6)延时5微秒。

(7)读数据线的状态得到1个状态位,并进行数据处理。

(8)延时60微秒。

①DS18B20寄生电源供电方式如下面图3.7(a)所示,在寄生电源供电方式下,DS18B20从单线信号线上汲取能量:

在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。

独特的寄生电源方式有三个好处:

1)进行远距离测温时,无需本地电源

2)可以在没有常规电源的条件下读取ROM

3)电路更加简洁,仅用一根I/O口实现测温要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的能量,会造成无法转换温度或温度误差极大。

因此,该电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。

并且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。

②DS18B20寄生电源强上拉供电方式改进的寄生电源供电方式如下面图3.7(b)所示,为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到E2存储器操作时,用MOSFET把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最多10μS内把I/O线转换到强上拉状态。

在强上拉方式下可以解决电流供应不足的问题,因此也适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。

③DS18B20的外部电源供电方式如下面图3.7(c)所示,在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,其VDD端用3~5.5V电源供电,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。

注意:

在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85℃。

DS18B20工作原理

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。

高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。

计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

DS18B20内部结构图

LCD1602

工业字符型液晶,能够同时显示16x02即32个字符。

(16列2行)

注:

为了表示的方便,后文皆以1表示高电平,0表示低电平。

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。

1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。

1602采用标准的16脚接口,其中:

第1脚:

GND为电源地

第2脚:

VCC接5V电源正极

第3脚:

V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

第4脚:

RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:

RW为读写信号线,高电平

(1)时进行读操作, 

第6脚:

E(或EN)端为使能(enable)端,高电平

(1)时读取信息,负跳

变时执行指令。

第7~14脚:

D0~D7为8位双向数据端。

第15~16脚:

空脚或背灯电

源。

15脚背光正极,16脚背光负极。

3.2、系统电路设计

AT89C51单片机

这部分为单片机复位电路和时钟电路。

单片机复位后,程序计数器PC=0000H,即指向程序存储器0000H单元,使CPU从首地址重新开始执行程序。

产生单片机复位的条件是:

在RST引脚端出现满足复位时间要求的高电平状态,该时间等于系统时钟震荡周期建立时间再加2个机器周期时间(一般不小于10ms)。

时钟电路通过单片机的XTAL1和XTAL2引脚外接定时元件12M的晶振,电容C1和C2一般去30pF左右,主要作用是帮助振荡器起震。

晶体振荡频率高,则系统的时钟频率也越高,单片机运行速速也就越快。

DS18B20LCD1602显示电路

三个DS18B20采用单总线接线的方式

独立键盘设计小灯和直流电机控制模块

独立键盘由键盘设置高温和低温的数值。

直流电机由三极管驱动继电器组合控制,小灯用发光二极管直接接单片机。

3.3总电路图

因为单片机判断不同温度传感器的温度,并驱动动直流电机和发光二极管的方式和程序均相同,故只用一组直流电动机和发光二极管进行仿真,其余为节省器材,仿真时省略。

四、系统软件设计部分

4.1程序流程图

4.2程序开发过程

头文件部分内容(详见附录)

本次试验使用了LCD1602和DS1820两个特殊头文件,主要包括了LCD的初始化函数、读写显示函数等和DS1820的温度读取返回函数。

主函数主要内容(详见附录)

1、载入头文件并定义引脚功能

2、键盘扫描函数

3、直流电机和发光二极管控制函数

LD为发光二极管控制引脚的电平,DJ为直流电机控制引脚的电平,值为1时亮灯、电机转动,值为0时灯熄灭,直流电机不转动。

4、温度数据处理函数

temp1为需要显示的第一个温度传感器的温度

temp为第一个传感器中读取的温度的数据

先判断数据的正负,如果为负,显示符号为“-”,并取反加一,否则符号为“+”。

再对数据的整数位,和小数位进行转换。

五、系统仿真过程及结果

温度检测并显示,此时显示三点温度;

下限22℃,上限28℃。

判断第一处温度在上下限中间,电机不转灯不亮。

判断第一个温度传感器的温度小于下限,电机不转灯亮。

判断第一个温度传感器的温度在大于上限,电机转动灯不亮。

按住调节按钮,调节高、低温数值分别为19℃和32℃之后的结果。

六、系统实物制作与调试

6.1系统实物器件清单

元件名称元件型号参数数量

单片机AT89C511个

温度传感器DS18B203个

液晶显示屏LCD16021个

按键6个

电阻10K9个

100Ω1个

滑动变阻器10K1个

电阻排8端口1个

电容1nF2个

1uF1个

晶振11.0592MHz1个

三极管2N39061个

继电器5V1个

直流电机3V1个

发光二极管红色1个

6.2实物制作过程

本次制作的是多点测温装置,一开始的时候是设计成三个传感器接三个端口的,但后来了解到DS18B20支持单总线的传输方式,就采取了现在的模式,我们小组利用手上的开发板和温度传感器来进行制作。

单点测温和多点测温是有很大区别的,只有一个传感器的时候,可以跳过序列码,但多个的时候,就要读取DS18B20的序列码并加以区分,一开始对这个序列码的功用不是很了解,查了许多资料,知道这个序列码有冗余码的算法,这给我们程序编程带来很大问题,为了解决这个问题,我们最后采用了一种方式,就是先利用DS18B20读取命令,编了序列码读取程序,把每个DS18B20的64位序列码给读出来,然后直接编在我们后来的程序里,这样程序就可以直接读已知序列码的对应传感器的温度。

再后来的外围电路制作过程中,我们发现单片机的负载驱动还是很小的,稍微大一点负载还是要用三级管来控制的。

最后因为是开发板的制作,所以整个制作过程并没有要焊接的地方,这给我们省了很多功夫。

6.3实物调试图片

七、心得体会

这次课程设计让我受益匪浅,无论从知识上还是其他的各个方面。

上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。

但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。

在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互帮助。

团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2