计算机控制技术课程设计.docx
- 文档编号:28029653
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:21
- 大小:291.76KB
计算机控制技术课程设计.docx
《计算机控制技术课程设计.docx》由会员分享,可在线阅读,更多相关《计算机控制技术课程设计.docx(21页珍藏版)》请在冰豆网上搜索。
计算机控制技术课程设计
课程设计任务书
专业
16级自动化
班级
1班
姓名
张XX
设计起止日期
2019.6.24-2019.6.28
设计题目:
基于51单片机的温度测控系统设计
设计任务(主要技术参数):
被控对象:
电加热炉。
温度范围:
0℃-1000℃。
数据采集:
A/D转换器8-12位。
温度控制:
D/A转换器8-12位。
显示电路:
6位LED数码管,动态显示实时温度。
控制算法:
数字PID算法。
越限报警:
声光报警、上下限报警,三个指示灯(2红1绿)。
键盘设置:
16个行列式键盘(10个数字键,6个功能键)
本设计主要负责:
键盘设计,单片机最小系统,其他部分设计。
指导教师评语:
成绩:
签字:
年月日
1设计目的
科学技术的发展日新月异,科技的进步推动社会进步的同时也推动着测量技术的发展。
随着航天,医学,生物等领域的发展进步,社会生产对温度测量控制的精度和范围的要求也越来越高。
其中,由于单片机设备具有反应灵敏、精确度高、工作环境适应性强、能量转换效率高的特点,所以基于单片机的温度控制系统在温控领域尤为瞩目。
这种以单片机作为温度控制系统的核心,以温度传感器作为检测基础的设计,能够有效提高温度控制系统的性能和效率。
该系统的可靠性能能够保证实时温度,确保达到高效持续生产的目的。
[1]
2设计方案论证
2.1总体方案设计
图1方案设计图
(1)设计一个基于51单片机的温度测控系统,被控对象为电加热炉。
(2)掌握51系列单片机数据采集及处理的方法,灵活运用A/D,D/A转换器。
(3)掌握LED数码管显示的原理及编程方法,使用LED数码管动态显示实时温度。
(4)掌握数字PID算法。
(5)掌握越限报警原理及编程方法,综合声光报警和上下限报警,3个指示灯。
(6)掌握16位行列式键盘的原理及使用方法,10个数字键6个功能键。
(7)掌握单片机最小系统的设计。
(8)其他部分的设计(温度传感器设计)。
本方案采用单片机作为控制核心,使用温度传感器进行温度采集,通过将采集到的温度与标准设定温度之间的差值进行温度控制,从而使得温度维持在标准设定温度。
本方案设计成本低,具有具有较高的可靠性,对于系统动态性能与稳定要求不是很高的场合非常的合适。
3单片机最小系统设计
图2单片机最小系统图
3.1AT89C51介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,256字节片内数据存储器(00H-7FH为片内RAM,80H-FFH为特殊功能寄存器SFR),32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
图3AT89C51引脚图
3.2时钟电路介绍
时钟电路是单片机的心脏,它控制着单片机的工作节奏。
MCS-51单片机允许的时钟频率是因型号而异的,其典型值为12MHZ。
AT89C51内部有一个反相振荡放大器,XTAL1和XTAL2分别是该反向振荡放大器的输入端和输出端。
该反向放大器可配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。
本设计采用的晶振频率为12MHZ。
51系列单片机还可使用外部时钟。
在使用外部时钟时,外部时钟必须从XTAL1输入,而XTAL2悬空。
图4时钟电路
3.3复位电路介绍
单片机复位电路设计得好坏,直接影响整个系统的可靠性。
有些用户在设计完单片机系统后,却出现了走飞情况,造成这种情况主要原因是单片机复位电路不可靠。
[2]
复位使单片机处于起始状态,并从该起始状态开始运行。
AT89C51的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振动周期)以上高电平,则可使单片机复位。
内部复位电路在每---个机器周期的S5P2期间采样斯密特触发器的输出端,该触发器可抑制RST引脚的噪声干扰,并在复位期间不产生ALE信号,内部RAM处于不断电状态。
其中的数据信息不会丢失,也即复位后,只影响SFR中的内容,内部RAM中的数据不受影响。
外部复位有上电复位和按键电平复位。
由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。
为了便于本设计运行调试,复位电路采用按键复位方式。
图5复位电路
3.4键盘设计
图64*4键盘
单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。
软件常用工作方式有编程扫描、定时扫描和中断扫描三种。
扫描中完成判断是否有键按下、去除键盘机械抖动影响和识别按键三项功能。
[3]
在这种行列式矩阵键盘非编码键盘的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:
一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
下面介绍线反转法工作原理:
用一个8位I/O口构成一个4*4的的矩阵键盘,采用查询方式工作。
方法是:
假设7号键被按下,那么第一步即在P1.0~P1.3输出全为0,然后,读入P1.4~P1.7位的转态,结果为P1.5=0,而P1.4,P,1.6P1.7均为1,说明因此X1行出现电平的变化,说明X1有键按下;第二步让P1.4~P1.7输出啊全为0,而P1.0P1。
1和P1.2均为1,因此Y3列有键按下。
综合一,二两步,即X1行Y3列按键被按下,次按键即是7号键。
因此线反转法非常简单实用。
当然实际编程中也考虑采用软件延时进行消抖处理。
键盘共有16个按键,用于方便设定温度。
…
,数字按键,输入数字0----9;
,设置的确认,修改设置温度时进行确认;
,设置的清除,修改设置温度时进行删除;
,开启电源
,关闭电源
,显示及设置转换到温度点1,按此按键后,显示预设置温度的数码管闪烁
,显示及设置转换到温度点2,按此按键后,显示预设置温度的数码管闪烁;
表1键盘的按键分布
P2.0
0
1
2
3
P2.1
4
5
6
7
P2.2
8
9
F1
F2
P2.3
清除
开启
关闭
确定
P2.4
P2.5
P2.6
P2.7
3.5温度传感器
图7温度传感器
本设计采用直接报警方法。
这种方法的前提条件是在传感器中进行的。
当检测值超过上限或下限时,节点开关闭合,从而产生报警信号。
接通电源,两个(红色)发光二极管都不亮,当温度超过上线设定值(如38摄氏度)时,红色二极管亮,同时蜂鸣器也报警;当温度低于下限设定值时(如5摄氏度)时,红色二极管亮,同时蜂鸣器也开。
本数字温度计设计采用智能温度传感器DS18B20作为检测元件,测温范围为0—1000摄氏度,最大分辨率可达0.0625°C。
DS18B20可以直接读出被测量的温度值,而采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
采用单总线数字温度传感器DS18B20测量温度,直接输出数字信号。
便于单片机处理及控制,节省硬件电路。
且该芯片的物理化学性很稳定,此元件线形性能好,在0—1000摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度装置,它直接输出温度的数字信号到微控制器。
每只DS18B20具有一个独有的不可修改的64位序列号,根据序列号可访问不同的器件。
这样一条总线上可挂接多个DS18B20传感器,实现多点温度测量,轻松的组建传感网络。
图8蜂鸣器报警和发光二极管报警图
3.6LED显示
图9LED显示电路
采用动态显示方式,其优点是使用硬件少,因而价格低。
但它占用机时长,只要单片机不执行显示程序,就立刻停止显示。
由此可见,这种显示方式将使计算机的开销增大。
故在以工程控制为主的系统中应用较少。
利用8255A扩展的6位LED动态显示器接口电路。
图中将所有位的段选线相应的并联在一起。
PB作为段数据口,经同向驱动器后接显示器的各个级,形成段选线的多路复用,而PA0到PA5作为扫描口线,经反向驱动器接显示器公共阴极。
使每一时刻有PA0到PA5中有一位为高电平,即6位显示器中仅有一位公共阴极为低电平,其他位为高电平,同时段选线上输出相应位要显示字符的字型码。
这样同一时刻,6位LED中只有选通的那位显示出字符,而其他位则是熄灭的。
同样,在下一时刻,只让下一位的位选线处于选通状态,而其他位的位选线处于关闭状态,同时,位选线上输出相应位将要显示字符的字型码。
如此循环下去,就可以使6位显示出将要显示的字符。
3.7越限报警
本实验利用声光报警器实现温度报警。
系统上电后,数码管显示当前温度,通过按键选择,显示上下限温度,上下限温度值以数码管第一位进行区分,设置上下限温度后,系统将判断当前温度是否超过或低于限值,如果出现,则声光报警器开始报警,直到断电或者温度重新回到正常范围(不超过上限低于下限)。
3.8数字PID
经典PID控制器的精髓就是“以误差反馈来消除误差”,但是这种直接取目标与实际行为之间的误差并不完全合理,因为系统输出存在一定的惯性,不可能发生跳变,而目标值是系统外部给定的,可以发生跳变,直接采用它们之间的误差来消除误差,就意味着让不可能跳变的量来跟踪可以跳变的量,这显然是不尽合理的。
这种“直接取目标与实际行为之间的误差来消除误差”的方式常常会造成初始控制力太大而使系统行为出现超调,这也是PID控制在闭环系统中产生“快速性”和“超调”之间矛盾的主要原因。
[4]
3.9A/D转换器和D/A转换器
单片机温度控制系统在数据采集此模块中,主要是利用通过对温度信息的收集,再将收集统计的信息在A/D转换器下转换成清晰的数据,最后向单片机进行整合上传。
系统运行过程中,会选取多中样本进行持续性数据收集,经过连续性转换之后来判断所得数据是否合乎规格,若数据不能达标,将继续循环操作。
单片机温度控制系统在此模块中,主要起到数据显示整理与数字滤波等功能,其流程是在发挥A/D转换之后的数据处理过程,在此操作中,数字滤波为核心重点。
通过数据转换后,之前收集到的模拟数据会被单片机进行接收,并对采集的样本数据进行反复验收,以求将偏差值降到最低。
大大提升精准度。
[5]
图10A/D转换电路
图11D/A转换电路
4参考文献
[1]熊浚儒,何文孝.基于单片机的温度控制系统的设计简[J].科技资讯,2019(12):
16-18
[2]刘文峰.单片机复位电路的设计[J].黑龙江科学,2014(11):
283
[3]林培春.行列扫描键盘设计问题分析[J].单片机嵌入式应用,2005(12):
70-71
[4]徐元祥.基于PID控制的检定炉温控系统优化[J],内燃机与配件,2017(14):
122-123
[5]王维佳.基于单片机的温度控制系统设计[J].电子技术与软件工程,2018(23):
244
附录程序
主程序:
ORG0000H;DS18B20.ASM
DS18SLEQU41H;用于保存读出温度的低8位
DS18SHEQU40H;用于保存读出温度的高8位
DS18FIGEQU8H;是否检测到DS18B20标志位
A_BIT1EQU31H;数码管个位数存放内存位置
B_BIT1EQU32H;数码管十位数存放内存位置
D_BIT1EQU35H;数码管百位数存放内存位置
DS18CD1EQU42H;DS18CD1-DS18CD8暂存64位ROM
DS18CD2EQU43H;从低到高
DS18CD3EQU44H
DS18CD4EQU45H
DS18CD5EQU46H
DS18CD6EQU47H
DS18CD7EQU48H
DS18CD8EQU49H
DS1864BEQU4AH
DS18ADSEQU4BH
DS18DQEQUP1.0;30H,31H,32H,33H:
X个位十位X
MOD7:
MOVSP,#60H
LCALLGET_TEMPER;调用读温度子程序
LCALLREADCODE
AJMPMOD7
INIT_1820:
;DS18B20初始化
SETBDS18DQ
CLRDS18DQ;延时,500US低MC
MOVR7,#250
DJNZR7,$
MOVR7,#150
DJNZR7,$
SETBDS18DQ;释放总线
LCALLDELAY60US;15-60US的等待时间
MOVR6,#4
SETDSDQ:
LCALLDELAY60US
JNBDS18DQ,SETDSDQFH;60-240US内是否有返回信号,为0跳
DJNZR6,SETDSDQ
MOVR7,#250
DJNZR7,$
CLRDS18FIG
RET
SETDSDQFH:
SETBDS18FIG
MOVR7,#250
DJNZR7,$
MOVR7,#100
DJNZR7,$
RET;
数据处理程序:
TEMP0:
INCA
AJMPTEMP1
TEMPCOV:
MOVA,DS18SL;数据处理子程序
TEMPCOV
MOVB,#16
DIVAB
JBB.3,TEMP0
TEMP1:
MOV34H,A;将DS18SL的高四位右移四位,存入34H中(温度值)
MOVA,B;将DS18SL的低四位X10/16得小数后一位数.
MOVB,#10
MULAB
MOVB,#16
DIVAB
MOV30H,A;将小数后一位数.存入30H中
MOVA,DS18SH;DS18SH中存放高8位数,权重16
MOVB,#16
MULAB
ADDA,34H;34H中存入温度值的整数部分
MOVB,#10
DIVAB
MOV31H,B;个位存入31H中
MOVB,#10;
DIVAB;
MOV32H,B;十位存入32H中
MOVB,#10;
DIVAB;
MOV35H,B;百位存入33H中
MOVA,DS18SH
MOV33H,#10H;
JBACC.7,EXIT7
MOV33H,#00H
EXIT7:
RET
GET_TEMPER:
;读出转换后的温度值,并显示
SETBDS18DQ
LCALLINIT_1820;先复位DS18B20
JBDS18FIG,TSS2
RET;判断DS1820是否存在?
若DS18B20不存在则返
TSS2:
MOVDS18ADS,#0
DS18JX:
LCALLDS18CODP
MOVA,DS18ADS
ADDA,#9
MOVDS18ADS,A
CJNEA,#63,DS18JX
RET
DS18CODP:
LCALLMRCOVT;转换指定的DS18B20的温度
LCALLMRRDTEDP;显示温度
RET
TEMP:
LCALLINIT_1820
JBDS18FIG,NEXT4
RET
NEXT4:
MOVDS18ADS,#9
MOVA,#0CCH;SKIPROM
LCALLWRITE_1820
MOVA,#44H;温度转换命令
LCALLWRITE_1820
LCALLDELAY1S
LCALLMRRDTEDP
RET;写DS18B20的子程序(有具体的时序要求)
WRITE_1820:
;写DS18B20
MOVR5,#8
DS18JXWE:
SETBDS18DQ;初始化
CLRDS18DQ
CLRDS18DQ
MOVR7,#5
DJNZR7,$;拉低15US内,写入数据
CLRC
RRCA
MOVDS18DQ,C
LCALLDELAY60US;持续60US
SETBDS18DQ;写完一个位
DJNZR5,DS18JXWE
RET
READ_1820_CODE:
;读取CODE64位
MOVR4,#8;读8次数
MOVR1,#DS18CD1;低位地址存在R1
DS18JXRD3:
MOVR5,#8;8位数据
DS18JXRD2:
SETBDS18DQ
CLRDS18DQ;前两句完成初始化
NOP
NOP;延时至少1US
SETBDS18DQ;上升沿,并在,15US内读数
MOVR7,#5
DJNZR7,$
MOVC,DS18DQ
RRCA
LCALLDELAY60US;读时序,最少60US
DJNZR5,DS18JXRD2
MOV@R1,A
INCR1
DJNZR4,DS18JXRD3
SETBDS18DQ
RET;读DS18B20的程序,从DS18B20中读出两个字节的温度数据
READ_18200:
MOVR4,#2;读两次数
MOVR1,#DS18SL;低位地址存在R1
DS18JXRD1:
MOVR5,#8;8位数据
DS18JXRD:
SETBDS18DQ
CLRDS18DQ;前两句完成初始化
NOP
NOP;延时至少1US
SETBDS18DQ;上升沿,并在,15US内读数
MOVR7,#5
DJNZR7,$
MOVC,DS18DQ
RRCA
LCALLDELAY60US;读时序,最少60US
DJNZR5,DS18JXRD
MOV@R1,A
DECR1
DJNZR4,DS18JXRD1
SETBDS18DQ
RET
READ_1820_1:
;读取1位
SETBDS18DQ
CLRDS18DQ
CLRDS18DQ
CLRDS18DQ
SETBDS18DQ
MOVR7,#5
DJNZR7,$
JBDS18DQ,WEFH
LCALLDELAY10MS
WEFH:
LCALLDELAY60US
RET
READCODE:
;读取64位ROM,并显示出来
SETBDS18DQ
LCALLINIT_1820
JBDS18FIG,NEXT
RET
NEXT:
MOVA,#33H
LCALLWRITE_1820
LCALLREAD_1820_CODE
LCALLDISPLAYCD
RET
DS1864SEN:
;送出64个位的数据
MOVR4,#8
MOVDPTR,#DS18TAB
DS1864SEN1:
MOVA,DS1864B
MOVCA,@A+DPTR
LCALLWRITE_1820
INCDS1864B
DJNZR4,DS1864SEN1
RET
MATCHROM:
LCALLINIT_1820
MOVA,#55H;MARCHROM
LCALLWRITE_1820
MOVDS1864B,DS18ADS
LCALLDS1864SEN
RET
MRCOVT:
;匹配ROM并发出温度转换命令
LCALLMATCHROM
MOVA,#44H;发出温度转换命令
LCALLWRITE_1820
LCALLDELAY1S
RET
MRRDTEDP:
;匹配ROM并显示转换温度
LCALLINIT_1820
LCALLMATCHROM
MOVA,#0BEH;发出读取命令
LCALLWRITE_1820
LCALLREAD_18200
LCALLTEMPCOV
LCALLDISPLAY;调用数码管显示子程序
RET
键盘子程序:
ORG11FFH
PROG:
MOVDPTR,#FEFFH
MOVA,#89H
MOVX@DPTR,A
KEY1
KEYS:
CLREX0
CLREA
PUSHPSW
PUSHACC
LCALLDLY10MS
CC:
JBP3.2AA
SETB5DH
MOVA,25H
MOVB,#10H
DIVAB
MOV52H,A
MOVA,B
MOV51H,A
MOVR0,#50H
LCALLDIR
NOP
LCALLDLY10MS
RET
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机控制 技术 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)