单片机课设样本1.docx
- 文档编号:18514938
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:38
- 大小:597.43KB
单片机课设样本1.docx
《单片机课设样本1.docx》由会员分享,可在线阅读,更多相关《单片机课设样本1.docx(38页珍藏版)》请在冰点文库上搜索。
单片机课设样本1
河北工程大学
机电学院课程设计说明书
课程设计名称
基于AT89S52的电热片温度控制系统设计
教学系、部、室
测控系
专业
测控技术与仪器
学号
姓名
指导教师
目录
(一)功能描述…………………………………………………………
(二)系统分析及设计…………………………………………………
1系统框图…………………………………………………………..
2系统组成分析……………………………………………………
3测控系统硬件设计……………………………………………….
(1)温度测量电路………………………………………………
(2)主电路………………………………………………………
(3)控制电路……………………………………………………….
(4)报警与指示电路………………………………………….
(三)关键技术分析…………………………………………………
(四)系统总体电路设计……………………………………………..
(五)系统软件设计………………………………………………….
(六)课程设计总结………………………………………………….
基于AT89S52单片机的温度控制系统
摘要:
本文介绍了一种基于AT89S52单片机的电阻炉温度控制系统,阐述了系统的工作原理、硬件电路以及软件设计。
并且把整个硬件系统的电路设计划分为PT00温度传感器与AT89S52单片机的硬件接口电路设计、数据显示设计、数据存储器的扩展电路设计、通信接口电路设计。
该装置可实现环境温度的实时测量与控制,并能记录、存储相关数据,并附有通信接口,能应用方便。
具有精度高、稳定性好的特点。
此系统还设计了单片机与上位机的通信,实现了远程温度控制。
这种方案可大大地提高工作效率和控制精度,有助于自动化水平的提高,具有良好的经济效益和推广价值。
该系统经过实验,取得了较为满意的控制效果。
关键字:
单片机;AT89S52;温度控制系统;模数转换
(一)功能描述
温度测控系统是一个基于AT89S52单片机的温度测量闭环控制系统,能通过pt100温度传感器对电热片的温度信号进行采集,再由A/D转换芯片ADC0809将电压值转换成数字量,经单片机采集后与设定温度进行比较,并把温度显示在数码管显示器上。
当温度高于温度控制范围上线时,报警器发出蜂鸣声示警,同时AT89S52单片机会发出指令,关闭电热片的电源,同时开启散热扇,使温度不至于过高。
当温度降到控制温度下限时,散热扇接受单片机指令停止工作,单片机再次发出指令,开启电热片。
周而复始使温度始终控制在需求的控制范围之内。
该系统测温范围为200℃~400℃,报警上、下限为250℃-350℃。
2系统特点精度高、测温范围广、报警及时,可广泛应用于基于单片机的测温报警。
(二)系统分析及设计
1系统框图
2系统组成分析
1)AT89S52单片机
此装置核心是AT89S52单片机,AT89S52单片机是一种低功耗、高性能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口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
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位地址字节和一些控制信号。
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闪存编程和程序校验的控制信号。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
2)温度传感器
信号采集与放大电路
Pt100输入:
179.528-247.092Ω
本设计采用热电阻传感器PT100,又叫铂电阻,热电阻,是一种温度传感器,铂电阻温度系数为0.0039×/℃,0℃时电阻值为100Ω,电阻变化率为0.3851Ω/℃。
采用不锈钢外壳封装,内部填充导热材料和密封材料灌封而成,尺寸小巧,适用于精密仪器、恒温设备、流体管道等温度的测量,非常经济实用。
铂电阻温度传感器精度高,稳定性好,应用温度范围广,是中低温区(-200℃~400℃)最常用的一种温度检测器,不仅广泛应用于工业测温,而且被制成各种标准温度计。
按IEC751国际标准,温度系数TCR=0.003851,Pt100(R0=100Ω)、Pt1000(R0=1000Ω)为统一设计型铂电阻。
PT100温度传感器原理
PT100是一个温度传感器,是一种稳定性和线性都比较好的铂丝热电阻传感器,可以工作在-200℃至650℃的范围.
电阻式温度检测器(RTD,Resistance,TemperatureDetector)是一种物质材料作成的电阻,它会随温度的上升而改变电阻值,如果它随温度的上升而电阻值也跟著上升就称为正电阻系数,如果它随温度的上升而电阻值反而下降就称为负电阻系数。
大部分电阻式温度检测器是以金属作成的,其中以白金(Pt)作成的电阻式温度检测器,最为稳定-耐酸碱、不会变质、相当线性最受工业界采用。
PT100温度感测器是一种以白金(Pt)作成的电阻式温度检测器,属于正电阻系数,其电阻和温度变化的关系式如下:
R=Ro(1+αT) 其中α=0.00392,Ro=100Ω(在0℃的电阻值),T为摄氏温度
因此白金作成的电阻式温度检测器,又称为PT100。
PT100温度传感器为正温度系数热电阻传感器,主要技术参数如下:
①测量范围:
-200℃~+850℃;
②允许偏差值
℃:
A级
,B级
;
③响应时间<30s;
④最小置入深度:
热电阻的最小置入深度≥200mm;
⑤允通电流≤5mA。
另外,PT100温度传感器还具有抗振动、稳定性好、准确度高、耐高压等优点。
鉑热电阻的线性较好,在0~100摄氏度之间变化时,最大非线性偏差小于0.5摄氏度。
鉑热电阻阻值与温度关系为:
①-200℃<t<0℃时,
;
②0℃≤t≤850℃时,
;
式中,A=0.00390802;B=-0.000000580;C=0.0000000000042735。
可见PT100在常温0~100摄氏度之间变化时线性度非常好,其阻值表达式可近似简化为:
,当温度变化1℃,PT100阻值近似变化0.39
。
1:
Vo=2.55mA×100(1+0.00392T)=0.255+T/1000。
2:
量测Vo时,不可分出任何电流,否则量测值会不准。
电路分析由于一般电源供应较多零件之后,电源是带杂讯的,因此我们使用齐纳二极体作为稳压零件,由于7.2V齐纳二极体的作用,使得1K电阻和5K可变电阻之电压和为6.5V,靠5K可变电阻的调整可决定电晶体的射(集极)极电流,而我们须将集极电流调为2.55mA,使得量测电压V如箭头所示为0.255+T/1000。
其后的非反向放大器,输入电阻几乎无限大,同时又放大10倍,使得运算放大器输出为2.55+T/100。
6V齐纳二极体的作用如7.2V齐纳二极体的作用,我们利用它调出2.55V,因此电压追随器的输出电压V1亦为2.55V。
其后差动放大器之输出为Vo=10(V2-V1)=10(2.55+T/100-2.55)=T/10,如果现在室温为25℃,则输出电压为2.5V。
工作原理:
传感器的接入非常简单,从系统的5V供电端仅仅通过一支3K92的电阻就连接到PT100了.这种接法通常会引起严重的非线性问题,但是.由于有了单片机的软件校正作为后盾,因此就简化了传感器的接入方式.
3)模数转换器
ADC0809引脚图
A/D转换器芯片ADC0809简介
8路模拟信号的分时采集,片内有8路模拟选通开关以及相应的通道抵制锁存用译码电路,其转换时间为100μs左右。
ADC0809的内部结构
ADC0809的内部逻辑结构图如下图所示。
ADC0809内部逻辑结构
图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。
地址锁存与译码电路完成对A、B、C3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表为通道选择表。
信号引脚
ADC0809芯片为28引脚为双列直插式封装,其引脚排列见图9.8对ADC0809主要信号引脚的功能说明如下:
IN7~IN0——模拟量输入通道
ALE——地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——转换启动信号。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。
本信号有时简写为ST.
A、B、C——地址线。
通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。
其地址状态与通道对应关系见表
CLK——时钟信号。
ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。
通常使用频率为500KHz的时钟信号
EOC——转换结束信号。
EOC=0,正在进行转换;EOC=1,转换结束。
使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
D7~D0——数据输出线。
为三态缓冲输出形式,可以和单片机的数据线直接相连。
D0为最低位,D7为最高OE——输出允许信号。
用于控制三态输出锁存器向单片机输出转换得到的数据。
OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。
Vcc——+5V电源。
Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
其典型值为+5V(Vref(+)=+5V,Vref(-)=-5V).
电路连接主要涉及两个问题。
一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。
8路模拟通道选择:
如左下图所示模拟通道选择信号A、B、C分别接最低三位地址A0、A1、A2即(P0.0、P0.1、P0.2),而地址锁存允许信号ALE由P2.0控制,则8路模拟通道的地址为0FEF8H~0FEFFH.此外,通道地址选择以
作写选通信号,这一部分电路连接如右下图所示。
P181图6-38
从图中可以看到,把ALE信号与START信号接在一起了,这样连接使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。
图9.19是有关信号的时间配合示意图。
启动A/D转换只需要一条MOVX指令。
在此之前,要将P2.0清零并将最低三位与所选择的通道好像对应的口地址送入数据指针DPTR中。
例如要选择IN0通道时,可采用如下两条指令,即可启动A/D转换:
MOVDPTR,#FE00H;送入0809的口地址MOVX@DPTR,A;启动A/D转换(IN0)注意:
此处的A与A/D转换无关,可为任意值
2.转换数据的传送
A/D转换后得到的数据应及时传送给单片机进行处理。
数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。
为此可采用下述三种方式。
(1)定时传送方式
对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。
例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。
可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
(2)查询方式
A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。
因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。
(3)中断方式
把表明转换完成的状态信号(EOC)作为中断请求信号以中断方式进行数据传送。
不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
首先送出口地址并以
信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。
不管使用上述那种方式,只要一旦确认转换结束,便可通过指令进行数据传送。
所用的指令为MOVX读指令,仍以图9-17所示为例,则有
MOVDPTR,#FE00H
MOVXA,@DPTR
该指令在送出有效口地址的同时发出
有效信号,使0809的输出允许信号OE有效,从而打开三态门输出,是转换后的数据通过数据总线送入A累加器中。
这里需要说明的示,ADC0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,例如与D0~D2相连。
这是启动A/D转换的指令与上述类似,只不过A的内容不能为任意数,而必须和所选输入通道号IN0~IN7相一致。
例如当A、B、C分别与D0、D1、D2相连时,启动IN7的A/D转换指令如下:
MOVDPTR,#FE00H ;送入0809的口地址
MOVA,#07H;D2D1D0=111选择IN7通道
MOVX@DPTR,A;启动A/D转换
4)LED七段数码管显示器
在单片机系统中,通常用LED数码显示器来显示各种数字或符号,由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。
它由若干个发光二极管组成,当发光二极管导通时,相应的一个点或一个笔画发亮。
控制不同组合的二极管导通,就能显示出各种字符。
常用的LED7显示器有七段和“米”字段之分,有小数点位的7段显示器的字形码为八位二进制,正好一个字节,“米”字显示器有15个发光二极管,所以其字形码需两个字节。
这两类显示器都有共阳极和共阴极两种接法,共阴极LED显示器的发光二极管阴极连接在一起,通常此公共阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示;同样,共阳极LED显示器的发光二极管阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极为低电平时,发光二极管点亮,相应的段被显示。
共阳极和共阴极的字形码是不同的,而且字形码可由设计者根据硬件接线的不同自行设计,不必局限于固定格式。
在单片机应用系统中,显示器显示常用两种方法:
静态显示和动态扫描显示。
当显示器位数较少时,适合采用静态显示的方法。
当位数较多时,用静态显示所需的I/O太多,一般采用动态显示的方法。
所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形显示。
这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小,较小的电流能得到较高的亮度且字符不闪烁。
所谓动态显示就是一位一位地轮流点亮显示器各个位(扫描),对于显示器的每一位来说,每隔一段时间点亮一次。
利用人的视觉暂留功能可以看到整个显示,但必需保证扫描速度足够快,字符才不闪烁。
显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。
调整电流和时间参数,可实现亮度较高较稳定的显示。
若显示器的位数不大于8位,控制显示器的各位所显示的字形需一个8位口,称为段数据口,显示器的哪一个LED显示还需要一个位选择控制,称为位控口。
动态显示接口方法一位LED显示可以采用较为简单的控制电路来实现,此接口电路使用了专用的七位段码的译码器/驱动器,可以把一位十六进制数(4位二进制数)译码为相应的字形代码,并提供足够的功率去驱动发光二极管。
使用这种接口方法,虽然软件简单,仅需使用一条输出线指令就可以进行LED显示,但硬件却比较多,而硬件译码又缺乏灵活性。
如果所用的LED显示器不只一个,则可以利用I/O接口电路来完成,如有三位LED要显示,可直接利用接口芯片(如8155)输出位控和段控数据。
其电路结构如下图:
其中8155的PB口作段选码口,经7407驱动与LED的段相连,8155的PA0~PA5作选码口,经7406驱动与LED的位相连。
图中P2..7反相后作8155的片选CE,P2.6接8155的IO/M端。
这样确定的8155片内4个端口地址如下:
命令、状态口:
FFF0H
A口:
FFF1H
B口:
FFF2H
C口:
FFF3H
6位待显示字符从左到右一次存放在内部RAM显示缓冲区7AH~7FH,显示次序位从右到左进行。
程序后面的TAB地址为段选码表首地址,表中段选码存放的次序为0~F等等。
一下为循环动态显示6位字符的程序。
8155命令字为03H.(单片机P153)
MOVA,#03H
MOVDPTR,#0FFF0H
MOVX@DPTR,A
DL:
MOVR0,#7FH
MOVR2,#01H
DL1:
MOVA,@R0
DECR0
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVDPTR,#0FFF2H
MOVX@DPTR,A
ACALLDL1MS
JBACC.5,DL
RLA
MOVR2,A
AJMPDL1
TAB:
DB3FH,06H,5BH,4FH
DB66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH
DB39H,5EH,79H,7CH
DB40H,00H
DL1MS:
MOVR7,#02H
DL0:
MOVR6,#0F9H
DL10:
DJNZR6,DL10
DJNZR7,DL0
RET
3系统硬件设计
本系统的硬件设计主要包括单片机的最小系统、温度采集电路、8155扩展电路、LED七段数码管显示器显示接口、键盘接口、蜂鸣器报警电路以及串口通信等。
图1中AT89S52为主控制器件,AT89S52是ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含有8K字节的EPROM和256字节的RAM。
本系统采用8155A芯片来扩展键盘和液晶显示,模数转换芯片ADC0809以及MAX232实现RS一232C标准接口通信电路。
以下是各部分电路功能:
(5)报警和提示装置:
蜂鸣器和发光二极管
蜂鸣器报警电路由晶体管和蜂鸣器组成,由单片机I/O口输出信号控制晶体管的导通或者截止,晶体管导通,则蜂鸣器报警,通过单片机来控制蜂鸣器来产生报警声音。
另外,为了提醒注意,本系统还设计了两个发光二极管(一红一绿),用以区分是高温报警还是低温报警。
(6)散热装置
电风扇选择为12V,0.6W的。
(7)电热片
(8)继电器
为了能使单片机(AT89S52)能够控制电热片和电风扇的通断,本系统运用了继电器的开关特性,将通过I/O口的值来控制继电器的通断从而控制电风扇和电热片。
4.测控系统硬件设计
(1)温度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 样本