单片机考证论文.docx
- 文档编号:7981738
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:40
- 大小:835.77KB
单片机考证论文.docx
《单片机考证论文.docx》由会员分享,可在线阅读,更多相关《单片机考证论文.docx(40页珍藏版)》请在冰豆网上搜索。
单片机考证论文
基于DS18B20的温度控制系统(软件)
序言
在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。
采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。
因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。
该温度控制系统与普通的温度控制系统相比有效的提高了温度控制系统测量温度的精度和可靠性,并且结构也不是很复杂。
该系统可以通过与于设定的温度相比较来输出控制加热信号从而达到温度控制的目的。
本说明书描述了本次毕业设计的整个过程,以及本次毕业设计用到的相关知识。
主要介绍了:
温度控制系统是如何通过DS18B20温度传感器采集温度和如何通过AT89C51单片机来实时控制温度。
第1章主要介绍了温度控制系统的总体设计思路以及各环节功能是如何实现的。
第2章主要介绍了AT89C51单片机的结构和原理。
第3章主要介绍了本次设计中用到的一些芯片。
第4章主要介绍了温度控制系统的软件设计流程图。
第5章主要介绍了软件硬件调试过程。
最后附录了本次设计的原理图、程序清单、英文翻译、参考文献。
由于对有些软件不是很熟悉,加上时间比较紧张,在实际设计制作过程中有一定的难度。
所以,我们只能尽我们的所能把它做好,在制作过程中,肯定有一些疏漏和不足之处,恳请老师指正。
在毕业设计制作过程中,始终得到我的指导老师刘老师的指导和帮助,在此谨向他表示感谢!
第1章绪论
1.1控制技术的发展概况
在日常生活生产中,人们需要对温度进行检测和控制,而目前推广应用的许多温度控制系统主要由测量电路和控制电路组成,所具备的功能较少,也比较弱。
多采用电阻式温度传感器,测量精度低,需要A/D转换,电路复杂,离散性大,温度反应缓慢,而且结构很复杂。
计算机技术的迅速发展,使得传统的控制系统发生了根本性的变革,即采用微机作为控制系统的核心,代替传统的控制系统的传统的电子线路,从而成为新一代的微机化控制系统。
将微机技术引入控制系统中,不仅可以解决传统控制系统不能解决的问题,而且还能简化电路、增加或增强功能、提高控制精度和可靠性,显著增强测控系统的自动化、智能化程度,而且可以缩短系统研制周期、降低成本、易于升级和维护。
因此,现代控制系统设计,特别是高精度、高性能的控制系统,目前已很少不采用计算机技术的了。
计算机技术的引入,可以为控制系统带来以下一些新特点和新功能。
(1)自动调零功能在每次采样前对传感器的输出值自动清零,从而大大降低因控制系统漂移变化造成的误差。
(2)数字滤波功能利用已算机软件对测量数据进行处理,可以抑制各种干扰和脉冲信号。
(3)数据处理功能利用计算机技术可以实现传统仪器无法实现的各种复杂的处理和运算功能。
(4)复杂控制规律利用计算机技术不仅可以实现经典的PID控制,还可以实现各种复杂的控制规律,例如,自适应控制、模糊控制等。
(5)自我诊断功能采用计算机技术后,可对控制系统进行监测,一旦发现故障则立即进行报警,并可显示故障部位或可能的故障原因,对排除故障的方法进行提示。
微机化的控制系统是以微机为核心、测量控制一体化的系统,这种系统对被控对象的控制是依据对被控对象的测量结果决定的。
因此,它实质上是一种闭环控制系统。
温度控制系统在工业过程控制中有着广泛的应用。
用单片机来代替模拟调节器,就构成了微机过程控制系统。
控制系统中引入单片机,可以充分利用单片机在对采集数据加以分析并根据所得结果做出逻辑判断等方面的能力,编制出符合某种技术要求的控制程序、管理程序,实现对被控参数的控制与管理。
在单片机控制系统中,控制规律是通过软件来完成的。
改变控制规律,只要改变相应的程序即可。
本次设计采用DS18B20型数字式温度传感器作为温度采集单元和AT89C51单片机来对它们进行控制,不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的指标。
本文设计了一种以AT89C51和DS18B20为核心的温度控制系统、
1.2设计思路及技术指标
为了能够实时地控制温度,该电路采用通过温度传感器测得当前温度送到单片机处理与设定温度比较从而控制电热器的启停去控制外部温度。
当外部温度低于设定温度下限时电热器加热,当外部温度高于设定温度上限时电热器停止加热,当温度在上下限之间时保持前一状态。
当温度越限5℃时进行声光报警,系统停止工作。
而且在低于温度五度内随温度上升加热交流电压不断减小使温度平稳上升。
测温电路可以选用电阻式温度传感器也可以直接采用DS18B20型数字式温度传感器。
由于电阻式温度传感器,测量精度低,需要A/D转换,电路复杂,离散性大,温度反应缓慢,而且结构很复杂。
为了提高测量精度、简化电路所以选用测量精度高,电路简单的DS18B20型数字式温度传感器。
显示可以分为静态显示和动态显示,,在显示电路中采用74LS47译码器可以节省单片机端口。
所以显示电路通过P0.0~P0.4控制数码管的亮灭,P0.4~P0.7送出四位编码通过74LS47译码器译码输出0~9十个数据。
一、技术指标
1、显示上限值为99.5℃,下限值为0℃
2、采用4位数码管进行温度显示,2位整数,1位小数,1位符号位
3、实时显示温度,系统的精度为0.5℃
4、温度超过上下限温度5℃时进行声光报警
5、可以利用内置EEPROM保存温度上下限值
6、能够自动控制加热电压值
二、系统功能
当该系统得电后,系统自检,所有发光二极管都亮,数码管显示888.8。
三秒之后所有发光二极管熄灭,数码管显示由DS18B20温度传感器测得的当前温度。
按下设定建,数码管显示设定温度,设定指示灯亮(绿);按一下“﹢”或“-”键,设定值加0.5或减0.5;当按下设定确定键后,保存温度设定值,恢复显示当前实测值。
按下启动按钮,启停指示灯亮(绿)温控系统启动。
当实测温度低于设定温度下限值时电热器得电发热,同时加热指示灯亮(红),当实测温度高于设定温度上限限值时,电热器停止加热转为保温状态,保温指示灯亮(黄)。
按下停止按钮,系统停止工作,启停指示灯灭(绿)。
当实测温度高于设定温度上限值5℃或低于设定温度下限值5℃时,报警器报警,系统停止工作,只有数码管显示实测温度。
三、系统原理方框图
温度控制系统硬件电路由传感器电路、执行电路、报警电路、单片机电路、按键电路和显示电路六部分组成。
该电路采用AT89C51单片机最小化应用设计,P0口输出段码数据,P1口接按键开关,P2口接发光二极管、报警器,P3.0口接传感器电路,P3.5口接驱动执行电路。
图1-1系统原理方框图
四、各个环节的功能
测量环节(温度传感器):
测量环节的功能是测量外部实际温度
比较环节(单片机):
比较环节把实测温度与设定温度比较从而控制执行机构
执行环节(加热器):
执行环节调节外部温度
显示环节(显示):
显示实测或设定温度
设定环节(键盘):
设定、调整设定温度
报警环节(报警):
当温度越限时,报警环节发生报警
五、各个环节的实现
测量环节:
通过对数字式温度传感器编程从而实现测量环节功能的实现
比较环节:
比较环节把实测温度与设定温度比较从而控制执行机构
执行环节:
执行环节控制单片机连接加热电路的端口输出高低点电平调节外部温度
显示环节:
单片机把要显示的数据通过译码器送到数码管显示
设定环节:
设定环节主要通过按钮去实现其功能
报警环节:
当系统要报警时通过给报警环节低电平使蜂鸣器发声报警
第2章AT89C51单片机系统结构和原理
2.1AT89C51单片机的简介
AT89C51单片机是美国Atmel公司的产品,它与Intel公司生产的MCS-51系列单片机兼容。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
它与以前的程序存储器相比具有以下优点[1]:
·用户可自己写入,并根据需要灵活修改程序;
·用电擦除而不是用紫外线擦除,不需要特殊的擦除设备;
·写入与擦除的速度非常快。
所有的MCS-51系列单片机拥有一个相同的8位微处理器CPU,它由算术逻辑运算部件ALU、布尔处理器、控制器和工作寄存器组成。
算术逻辑运算部件主要功能是实现数据的传送、数据的算术逻辑运算和布尔量处理,它们包括:
·加、减、乘、除算术运算;
·增量(加1)、减量(减1)运算;
·十进制数调整;
·位置“1”、位置“0”和取反;
·与、或、异或等逻辑操作;
·数据传送操作。
控制器是控制整个单片机系统各种操作的部件,它包括时钟发生器、定时控制逻辑、指令寄存器译码器、程序存储器和数据存储器的地址/数据传送控制等。
从编程的角度看,MCS-51CPU对用户开放的寄存器主要有以下几个:
累加器ACC、寄存器B、程序计数器PC、数据指针DPTR(由DPH和DPL两个8位寄存器组成),程序状态寄存器PSW、堆栈指针SP。
2.2单片机的一般结构
一、AT89C51单片机内部硬件资源有:
·面向控制的8位CPU;
·全静态设计,时钟频率范围为0~24MHz、33MHz;
·三个程序存储器保密位;
·128字节内部RAM数据存储器;
·4K字节的FLASH存储器,可反复编程/擦除1000次;
·2个可工作于4种模式的16位定时器/计数器;
·5个中断源、2个中断优先级的中断控制器;
二、AT89C51单片机结构框图
AT89C51单片机采用模块式的结构,有多个存储空间,每一个存储空间都留有一定的余量,这种结构为单片机的发展留有充分的余地,其结构框图如图2-1[1]。
图2-1ATM89C51结构框图
三、引脚图和逻辑符号图
AT89C51一般为DIP40双列直插封装形式的器件,其引脚图和逻辑符号如图2-2所示。
AT89C51的引脚P00~P07、P10~P17、P20~P27、P30~P37为四个8位并行输入/输出口,其中P3口、P0口和P2口为双功能口,可以作为普通输入/输出口(第一功能),也可以作为特殊输入/输出口。
RST为复位输入线,ALE、
、
为系统扩展控制线,XTAL1和XTAL2为时钟电路输入/输出线,Vcc、GND为电源输入线,一般接+5V和地[2]。
图2-2AT89C51引脚图、逻辑符号图
2.3AT89C51存储器配置
AT89C51单片机有五个独立的存储空间:
·64K字节程序存储器空间(0~0FFFFH);
·256字节内部RAM空间(0~0FFH);
·128字节内部特殊功能寄存器空间(80H~0FFH);
·位寻址空间(0~0FFH);
·64K字节外部数据存储器(RAM/IO)空间(0~0FFFFH)。
一、程序存储器
MCS-51的程序存储器空间为64K字节,地址范围为0000H~FFFFH,其地址指针为16位的程序计数器PC。
0开始的部分程序存储器(4K,8K,16K,…)可以在单片机的内部也可以在单片机的外部,这取决于单片机的类型,并由输入到引脚
的电平控制。
AT89C51内部有4KB的程序存储器,用于存放程序、原始数据或表格。
若
接Vcc(+5v),则程序计数器PC的值在0至0FFFH之间时,CPU取指令时访问内部的程序存储器;PC值大于0FFFH时,则访问外部的程序存储器。
如果
接Vss(地),则内部的程序存储器被忽略,CPU总是从外部的程序存储器中取指令。
单片机外部扩展的程序存储器一般为EPROM电路(紫外线可擦除电可编程的只读存储器)。
MCS-51的引脚
输出外部程序存储器的读选通信号,仅当CPU访问外部程序存储器时,
才有效(输出负脉冲)[3]。
MCS-51复位后,程序计数器PC为0,CPU从地址0开始执行程序,即复位入口地址为0。
另外,MCS-51的中断入口也是固定的,程序存储器地址3、0BH、13H、1BH、23H……单元为中断入口,MCS-51的中断源数目是因型号而异的,中断入口也有多有少,但总是从地址3开始,每隔8个字节安排一个中断入口[3]。
表2-1程序存储器中的特殊单元
单元地址
特殊用途
0000H
启动地址
0003H
外部中断0中断服务程序入口地址
000BH
定时/计数器T0溢出中断服务程序入口地址
0013H
外部中断1中断服务程序入口地址
001BH
定时/计数器T1溢出中断服务程序入口地址
0023H
串行口接收和发送中断服务程序入口地址
二、数据存储器
AT89C51芯片共有256个RAM单元,其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。
因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。
地址范围为00H~FFH(256B)。
是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。
2.4引脚功能说明
AT89C51单片机采用40个引脚双列直插式封装,其中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复位的引脚,以及32条输入输出I/O引脚。
下面按引脚功能分为4个部分叙述各个引脚的功能[4]。
一、电源引脚Vcc和Vss
1、Vcc(40脚):
芯片工作电源输入端接+5V电源;
2、Vss(20脚):
芯片工作接地端。
二、外接晶振引脚XTAL1和XTAL2
1、XTAL1(19脚):
接外部石英晶体的一端。
在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。
2、XTAL2(18脚):
接外部晶体的另一端。
在单片机内部,接至片内振荡器的反相放大器的输出端。
当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。
对于CHMOS芯片,该引脚悬空不接。
三、控制信号引脚
控制信号或与其它电源复位引脚有RST、ALE、
和
等4种形式。
1、RST(9脚):
RST即为RESET,为备用电源,所以该引脚为单片机的上电复位或掉电保护端。
当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。
当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。
2、ALE(30脚):
为地址锁存允许输出信号/编程脉冲信号输入端;此信号为外部的扩展大陆低位字节地址提供一个允许锁存信号对芯片内的EPROM/EEPROM空间固化程序时提供一个编程脉冲信号。
当访问外部存储器时,ALE信号用来所存地址的低位字节。
在不访问外部存储器时,ALE端总是以振荡频率的6分频来周期性地输出正脉冲信号,故可作为对外的时钟输出。
在访问外部数据存储器时,要跳过一个ALE脉冲。
在对内部具有EPROM的8751单片机进行编程时,此引脚用于输入编程脉冲。
3、
(29脚):
片外程序存储器读选通输出端,低电平有效。
在CPU取指令或常数时,用于选通外部程序存储器。
当从外部程序存储器读取指令或常数期间,每个机器周期
两次有效,以通过数据总线口读回指令或常数。
当访问外部数据存储器期间,
信号将不出现。
4、
(31脚):
为访问外部程序储器控制信号/编程电压输入端,低电平有效。
当
端保持高电平时,片内存储器有效,单片机访问片内程序存储器4KB(MCS—52子系列为8KB)。
若超出该范围时,自动转去执行外部程序存储器的程序。
当
端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。
四、输入/输出(I/O)引脚
1、P0口(39脚~22脚):
P0.0~P0.7统称为P0口,P0口为三态双向I/O口。
当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。
当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。
它分时提供8位双向数据总线。
对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节,校验时,要求外接上拉电阻。
2、P1口(1脚~8脚):
P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。
对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:
P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。
对于EPROM编程和进行程序校验时,P1口接收输入的低8位地址。
3、P2口(21脚~28脚):
P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。
当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。
对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。
4、P3口(10脚~17脚):
P3.0~P3.7统称为P3口。
它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。
P3口的第2功能见表2-1:
表2-2单片机P3口管脚含义
引脚
第2功能
P3.0
RXD(串行口输入端0)
P3.1
TXD(串行口输出端)
P3.2
INT0(外部中断0请求输入端,低电平有效)
P3.3
INT1(外部中断1请求输入端,低电平有效)
P3.4
T0(时器/计数器0计数脉冲输入端)
P3.5
T1(时器/计数器1数脉冲输入端)
P3.6
WR(外部数据存储器空间写通信号输出端,低电平有效)
P3.7
RD(外部数据存储器空间读信号输出端,低电平有效)
综上所述,AT89C51系列单片机的引脚作用可归纳为以下两点:
1)单片机功能多,引脚数少,因而许多引脚具有第2功能;
2)单片机对外呈3总线形式,由P0、P2口组成16位地址总线;由P0口分时复用作为数据总线。
第3章温度控制系统的器件介绍
3.1DS18B20温度传感器
3.1.1结构说明
DSl820数字温度计提供9位(二进制)温度读数,指示器件的温度。
信息经过单线接口送入DSl820或从DSl820送出,因此从主机CPU到DSl820仅需一条线(和地线)。
DSl820的电源可以由数据线本身提供而不需要外部电源。
因为每一个DSl820在出厂时已经给定了唯一的序号,因此任意多个DSl820可以存放在同一条单线总线上。
这允许在许多不同的地方放置温度敏感器件。
DSl820的测量范围从-55℃到+125℃,增量值为0.5℃,可在ls(典型值)内把温度变换成数字[5]。
图3-1温度传感器实物图及其内部结构图
3.1.2DS18B20与单片机之间的通讯命令和时序
简单的硬件接口是以相对复杂的接口编程为代价的。
各器件与单片机之间的接口协议(包括初始化,写1,写0,读1,读0等协议)要通过严格的时序来保证。
一、DS18B20的初始化时序
初始化包括主机发送的复位脉冲和器件向主机返回的存在脉冲。
主机总线在t0时刻发出一最短为480μs的低电平复位脉冲,接着在t1时刻释放总线并进入接收状态,器件在接收到总线的电平上升沿后,等待15~60μs后在t2时刻发出60~240μs时延的低电平存在脉冲信号,通知主机器件以接在总线上[6]。
图3-2(a)初始化时序
二、单片机的写0与写1时序
当主机总线于t3时刻从高电平拉至低电平时,就产生“写”的时间间隙。
从t3时刻开始15μs之内,应将所需写的位送到总线上。
器件在t3后的15~45μs期间内对总线采样。
低电平写入0,高电平写入1。
连续写两位之间的间隙应大于1μs。
图3-2(b)写时序
三、单片机的读0与读1时序
主机在t4时刻将总线从高电平拉至低电平,持续1μs之后将总线释放,就产生读时时限。
主机必须在t4之后的15μs之内完成读总线状态,并在45μs内释放总线。
连续读两位之间的间隙应大于1μs。
图3-2(c)读时序
四、DS18B20的ROM操作命令
主机在收到器件的存在脉冲后,并可发出某个ROM操作命令。
这些命令的名称,代码和功能如表3-1。
表3-1ROM操作命令
指令名称
代码
功能
读ROM
33H
在口线上接一个器件时读其ROM码
匹配ROM
55H
找出某个指定ROM码的器件
跳过ROM
CCH
对口线上所有器件的操作
搜索ROM
F0H
口线上有多个器件时,找出每个器件ROM码
搜索报警
ECH
找出各器件是否超限
五、DS18B20的存储器操作命令
主机通过口线对器件发出ROM命令后,接着便发出某一存储命令,去控制器件的工作状态,完成温度的转换和数据的输出。
存储器命令的名称、代码和功能如表3-2[7]。
表3-2存储器命令
指令名称
代码
功能
写存储器
4EH
主机向存储器中TH、TL和配位寄存器中写数据
读存储器
BEH
主机连续读0~8存储器中内容
复制存储器
48H
复制TH、TL和配位寄存器内容到EEPROM中
温度转换
44H
启制动温度转换
重新调出
B8H
从EEPROM中调出TH、TL和配位寄存器数据到存储器中
读电源
B4H
器件向主机传送它的供电方式
3.1.3温度分辨率与温度字节中的位定义
一、温度分辨率
DS18B20的数字温度输出只用9位二进制表示,分辨率固定为0.5℃。
欲提高分辨力,只能靠软件计算来实现。
而DS18B20的数字温度输出可进行9~12位的编程。
在便签式RAM的第五个字节是CONFIG寄存器,其格式如下:
0
R1
R0
1
1
1
1
1
MSBLSB
MSB代表最高有效位,LSB代表最低有效为。
格式中的第0~4位在写操作时不予考虑,读出时总是“1”;第7位在写操作时不予考虑,读出时为“0”。
R0、R1是可编程温度分辨力位。
通过对这两位进行不同的编程,可设定不同的温度分辨力及最大转换时间,详见表3-3[8]。
表3-3温度分辨力及最大转换时间
R1
R0
DS18B20的工作模式/位
温度分辨力/℃
最大转换时间
0
0
9
0.5
93.75
0
1
10
0.25
187.5
1
0
11
0.125
375
1
1
12
0.0625
750
由表可见,设定的分辨力越高,所需要的温度-数据转换时间就越长。
因此,在实际应用中需要在分辨力与转换时间二者之间权衡考虑。
在芯片出厂时R1和R0均被配置为“1”,即工作在12位模式下。
DS18B20工作在12位模式下温度字节中的位定义见表3-4[8]。
表3-4温度字节中的位定义
低八位字节(数据位)
23
22
21
20
2-1
2-2
2-3
2-4
高八位字节(符号位和数据位)
s
s
s
s
s
26
25
24
表中的第一行表示温度的低字节,第二行表示温度的高字节,S表示符号位。
当DS18B20的工作模式依次选择11位、10位和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 考证 论文