ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:189.40KB ,
资源ID:27945799      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27945799.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机的温控制器设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机的温控制器设计.docx

1、单片机的温控制器设计技术参数和设计任务:1、利用单片机AT89S51实现对温度物理量的控制,以实现对温度控制的目的;2、为达到电源输出5V电压目标,完成电源电路的设计;3、为达到数码管显示目标,完成显示电路的设计;4、为达到键盘控制的目标,完成键盘电路的设计;5、为达到检测温度的目标,完成检测电路的设计;6、完成报警设计;7、进行软件设计分配系统资源,编写系统初始化和主程序模块;编写数字调节器软件模块;编写A/D转换器处理程序模块;编写输出控制程序模块;其它程序模块(数字滤波、显示与键盘等处理程)等等。一、本课程设计系统概述1、系统原理温度传感器 DS18B20 从设备环境的不同位置采集温度,

2、单片机 AT89S51 获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备 (压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) 。 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。 系统中将通过串口通讯连接PC机存储温度变化时的历史数据,以便观察整个温度的控

3、制过程及监控温度的变化全过程。2、系统结构图本设计以AT89S51单片机为主控核心设计的一个温度控制系统,低温时可控制加热设备,高温时控制风扇,超出设定最高温度值时蜂鸣器发出声响报警。图1 总体硬件方框图3、文字说明控制方案(1)温度测量部分方案 DS18B20是DALLAS公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚TO-92小体积封装形式,温度测量范围55125,可编程为912位A/D转换精度,测

4、温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,业可采用寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。从而可以看出DS18B20可以非常方便的被用于远距离多点温度检测系统。(2)主控制部分方案AT89S51 是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造

5、,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RA

6、M定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。由于系统控制方案简单 ,数据量也不大 ,考虑到电路的简单和成本等因素 ,因此在本设计中选用 A TMEL 公司的 A T89S51单片机作为主控芯片。主控模块采用单片机最小系统是由于 A T89S51芯片内含有4 kB的 E2PROM ,无需外扩存储器 ,电路简单可靠 ,其时钟频率为 024 MHz ,并且价格低廉 ,批量价在 10元以内。AT89S51提供以下标准功能:4K字节Flash闪

7、速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟。同时, AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式何在RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直接到一个硬件复位。AT89S51引脚功能说明Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,

8、对端口写“1”可作为高阻抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。表4-1为P1口第二功能。表1 系统P1口第二功能表端口引脚第二功能P1.5MOSI(用于

9、ISP编程)P1.6MISO(用于ISP编程)P1.7SCK(用于ISP编程)P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。在访问8位地址的外部数据存储器(如执行:MOVX Ri 指令)时,P2口线上的内(也即特殊功能寄存器,在整个访问期间不改变。Flash 编程或校验时,P2也接收高位地址和其它控制信号。)P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出

10、电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表2。 表2 系统P3口的第二功能表 端口功能第二功能端口引脚第二功能RXD(P3.0)串行输入口T0(P3.4)定时/计数器0外部输入TXD(P3.1)串行输出口T1(P3.5)定时/计数器1外部输入INT0(P3.2)外中断0WR(P3.6)外部数据存储器写选通INT1(P3.3)外中断1RD(P3.7)外部数据存储器读选通RST:复位输入。当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。WDT益出将使该

11、引脚输出高电平,设置SFR AUXR 的 DISRTO 位(地址8EH)可打开或关闭该功能。DISRTO 位缺省为RESET输出高电平打开状态。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,高有两次有效的PSEN信号。AT89S51单片机内部构造及功能:特殊功能寄存器:特殊功能寄存器的片内空间分存如下图3所示。这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值。中断寄存器:各中断允许控制位于IE寄存器,5个中断源的中断优先级控

12、制位于IP寄存器。下图 为AUXR辅助寄存器。电源空闲标志:电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响。存储器结构:MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64KB外部程序和数据的寻址空间。程序存储器:如果EA引脚接地(GND),全部程序均执行外部存储器。在AT89S51假如接至Vcc(电源),程序首先执行从地址0000H0FFFH(4KB)内部程序存储器,再执行地址为1000HFFFFH(60KB)的外部程序存储器。数据存储器:在AT89S51的具有128字节

13、的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间。看门狗定时器(WDT):WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看狗复位SFR(WDTRST)构成。外部复位时,WDT默认为关闭状态,要打开WDT,必按顺序将01H和0E1H写到WDTRST寄存器,当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RST引脚输出高电平的复位脉冲。引脚图详见图3图3 AT89S51单片机引脚图 二、各单元硬件设计(1)键盘单元单

14、片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。 键开关状态的可靠输入 :为了去抖动我采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响对照图示的4*4键盘,说明线反转法工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行

15、线不全为1。判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。键盘共有16个按键,用于方便设定温度。 , 数字按键,输入数字0-9; , 设置的确认,修改设置温度时进行确认;设置的清除,修改设置温度时进行删除;开启电源 关闭电源 显示及设置转换到温度点1,按此按键后,显示预设置温度的数码管闪烁;显示及设置转换到温度点2,按此按键后,显示预设置温度的数码管闪烁;表3系统键盘的按键分布表P2.00123P2.145

16、67P2.289F1F2P2.3清除开启关闭确定P2.4P2.5P2.6P2.7(2)温度控制及超温和超温警报单元当采集的温度经处理后超过规定温度上限时,单片机通过 P1.4 输出控制信号驱动三极管 D1 ,使继电器 K1 开启降温设备 ( 压缩制冷设备 ) :当采集的温度经处理后低于设定温度下限时,单片机通过 P1.5 输出控制信号驱动三极管 D2 ,使继电器 K2 开启升温设备 ( 加热器1) 。当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。(3)温度测试单元采用温

17、度芯片DS18B20。使用集成芯片,能够有效的减小外界的干扰,提高测量的精度,简化电路的结构。(4) 温度控制器件电路单片机通过三极管控制继电器的通断,最后达到控制电热器的目的。当温度未达到要求时,单片机发送高电平信号使三极管饱和导通,继电器使电源与电热器接通,电热器加热。温度慢慢升高。当温度上升到预定温度时,单片机发送低电平信号三极管进入截止状态,继电器的弹片打到另一侧,使电热器与电源断开,电热器停止加热。继电器电路中有一个三极管8050的保护电路,即将一个二极管反向接到三机管的两端。连接方法如图4所示。图4 单片机控制信号其原理是:当继电器突然断电时,继电器产生很大的反向电流。二极管的作用

18、是将反向电流分流,使流过三级管8050的电流比较小,达到保护三极管8050的作用。(5)七段数码管显示单元 本部分电路主要使用七段数码管和移位寄存器芯片74LS164。单片机通过I2C总线将要显示的数据信号传送到移位寄存器芯片74LS164寄存,再由移位寄存器控制数码管的显示,从而实现移位寄存点亮数码管显示当清除端(CLEAR)为低电平时,输出端(QAQH)均为低电平。串行数据输入端(A,B)可控制数据。当 A、B 任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下 Q0 为低电平。当 A、B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定

19、Q0 的状态,逻辑封装图如图5:图5逻辑封装图引出端符号:CLOCK 时钟输入端;CLEAR 同步清除输入端(低电平有效);A,B 串行数据输入端;QAQH 输出端。真值表:表4表4 系统真值表InputOutput ClearClockABQAQBQHLXXXLLLHLXXQADQBDQHDHHHHQANQGNHLXLQANQGNHXLLQANQGN 图6数码管实际连线图(6)接口通讯单元max232资料简介:该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电

20、脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。在本设计中采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接,串口通讯具体如图7图7 通讯接口连线图(7) 电源输入部分控制系统主控制部分电源需要用5V直流电源供电,其电路如图

21、10所示,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。本电路使用集成稳压芯片7805解决了电源稳压问题。如图8图8电源部分连线图三、软件设计(1) 程序结构分析键盘扫描电路及按键处理程序:键盘的输入按键的识别及进入相应的程序。温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。数码管显示程序:向数码的显示送数,控制系统的显示

22、部分。继电器控制程序:控制继电器动作串口通讯程序:实现PC机与单片机通讯,将温度数据传送给PC机。(2)主程序 图9 主程序图程序开始的时候先设置初始化,然后就控制数码管显示当前温度。接着就判断F1、F2按键是否被按下。按下F1进入温度控制点1的程序、按下F2进入温度控制点2的程序。程序控制设置温度的两个数码管闪烁的,此时键盘输入有效。有按键按下的时候进入按键处理程序。按下“确定”按键后,程序进入判断程序和继电器控制程序。继电器动作后,程序回到显示当前程序,并开始循环。(3) 程序代码主程序:ORG 0000H ;DS18B20.ASM DS18SL EQU 41H ;用于保存读出温度的低8位

23、 DS18SH EQU 40H ;用于保存读出温度的高8位DS18FIG EQU 8H ;是否检测到DS18B20标志位A_BIT1 EQU 31H ;数码管个位数存放内存位置B_BIT1 EQU 32H ;数码管十位数存放内存位置D_BIT1 EQU 35H;数码管百位数存放内存位置DS18CD1 EQU 42H ;DS18CD1-DS18CD8暂存64位ROMDS18CD2 EQU 43H ;从低到高DS18CD3 EQU 44HDS18CD4 EQU 45HDS18CD5 EQU 46HDS18CD6 EQU 47HDS18CD7 EQU 48HDS18CD8 EQU 49HDS1864

24、B EQU 4AHDS18ADS EQU 4BHDS18DQ EQU P1.0 ;30H,31H,32H,33H: X 个位 十位 XMOD7: MOV SP,#60HLCALL GET_TEMPER ;调用读温度子程序LCALL READCODEAJMP MOD7INIT_1820: ;DS18B20初始化SETB DS18DQCLR DS18DQ;延时,500US低MCMOV R7,#250DJNZ R7,$MOV R7,#150DJNZ R7,$SETB DS18DQ ;释放总线LCALL DELAY60US ;15-60US的等待时间MOV R6,#4SETDSDQ:LCALL DEL

25、AY60USJNB DS18DQ,SETDSDQFH ;60-240US内是否有返回信号,为0跳DJNZ R6,SETDSDQMOV R7,#250DJNZ R7,$CLR DS18FIGRETSETDSDQFH:SETB DS18FIGMOV R7,#250DJNZ R7,$MOV R7,#100DJNZ R7,$RET;数据处理程序:TEMP0: INC AAJMP TEMP1TEMPCOV: MOV A,DS18SL ;数据处理子程序TEMPCOVMOV B,#16DIV ABJB B.3,TEMP0TEMP1: MOV 34H,A ;将DS18SL的高四位右移四位,存入34H中(温度值

26、)MOV A,B ;将DS18SL的低四位X10/16得小数后一位数.MOV B,#10MUL ABMOV B,#16DIV ABMOV 30H,A ;将小数后一位数.存入30H中MOV A,DS18SH ;DS18SH中存放高8位数,权重16MOV B,#16MUL ABADD A,34H ;34H中存入温度值的整数部分MOV B,#10DIV ABMOV 31H,B ;个位存入31H中MOV B,#10 ;DIV AB ;MOV 32H,B ;十位存入32H中MOV B,#10 ;DIV AB ;MOV 35H,B ;百位存入33H中MOV A,DS18SHMOV 33H,#10H ;JB

27、 ACC.7,EXIT7MOV 33H,#00HEXIT7: RETGET_TEMPER: ;读出转换后的温度值,并显示SETB DS18DQLCALL INIT_1820 ;先复位DS18B20JB DS18FIG,TSS2RET ;判断DS1820是否存在?若DS18B20不存在则返TSS2: MOV DS18ADS,#0DS18JX:LCALL DS18CODPMOV A,DS18ADSADD A,#9MOV DS18ADS,ACJNE A,#63,DS18JXRETDS18CODP:LCALL MRCOVT ;转换指定的DS18B20的温度LCALL MRRDTEDP ;显示温度RET

28、TEMP:LCALL INIT_1820JB DS18FIG,NEXT4RETNEXT4:MOV DS18ADS,#9MOV A,#0CCH ;SKIP ROMLCALL WRITE_1820MOV A,#44H ;温度转换命令LCALL WRITE_1820LCALL DELAY1SLCALL MRRDTEDPRET;写DS18B20的子程序(有具体的时序要求)WRITE_1820: ;写DS18B20MOV R5,#8DS18JXWE:SETB DS18DQ ;初始化CLR DS18DQCLR DS18DQMOV R7,#5DJNZ R7,$ ;拉低15US内,写入数据CLR CRRC A

29、MOV DS18DQ,CLCALL DELAY60US ;持续60USSETB DS18DQ ;写完一个位DJNZ R5,DS18JXWERETREAD_1820_CODE: ;读取CODE 64位 MOV R4,#8 ;读8次数 MOV R1,#DS18CD1 ;低位地址存在R1DS18JXRD3:MOV R5,#8 ;8位数据DS18JXRD2:SETB DS18DQCLR DS18DQ ;前两句完成初始化NOPNOP ;延时至少1USSETB DS18DQ ;上升沿,并在,15US内读数MOV R7,#5DJNZ R7,$MOV C,DS18DQRRC ALCALL DELAY60US

30、;读时序,最少60USDJNZ R5,DS18JXRD2MOV R1,AINC R1DJNZ R4,DS18JXRD3SETB DS18DQRET;读DS18B20的程序,从DS18B20中读出两个字节的温度数据READ_18200: MOV R4,#2 ;读两次数 MOV R1,#DS18SL ;低位地址存在R1DS18JXRD1:MOV R5,#8 ;8位数据DS18JXRD:SETB DS18DQCLR DS18DQ ;前两句完成初始化NOPNOP ;延时至少1USSETB DS18DQ;上升沿,并在,15US内读数MOV R7,#5DJNZ R7,$MOV C,DS18DQRRC ALCALL DELAY60US ;读时序,最少60USDJNZ R5,DS18JXRDMOV R1,ADEC R1DJNZ R4,DS18JXRD1SETB DS18DQRETREAD_1820_1: ;读取1位SETB DS18DQ CLR DS18DQCLR DS18DQCLR

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1