数理与信息工程学院
课 程 设 计
题 目: 水温控制系统 专 业: 计算机科学与技术(专升本) 班 级: 计本 056 姓 名: 章一娜 学号: 05191129 实验地点:数理与信息工程学院 电子系统设计室 指导老师: 余水宝 张 胜 丁宇 成 绩:
( 2006.6 )
- 1 -
浙江师范大学数理与信息工程学院课程设计——水温控制系统
目 录
第1节 引 言…………………………………………………………………… 1
1.1 水温控制系统概述……………………………………………………… 1 1.2 设计任务与要求………………………………………………………… 1 1.3 系统组成………………………………………………………………… 2
第2节 系统硬件设计…………………………………………………………… 2
2.1 系统总体设计框图……………………………………………………… 2 2.2 温度采样电路………………………………………………………… 3 2.3 温度控制电路………………………………………………………… 4 2.4 主机控制部分………………………………………………………… 4 2.5 键盘及数字显示部分……………………………………………… 5 2.6 微机控制及图形显示部分………………………………………… 6 第3节 系统软件设计…………………………………………………………… 7 3.1 系统主程序设计………………………………………………………… 7
3.2 键盘显示程序…………………………………………………………… 8 第4节 实际测试………………………………………………………………… 9 4.1 系统测试仪器………………………………………………………… 9
4.2 测试方法………………………………………………………………… 9 4.3 测试结果………………………………………………………………… 9
第5节 结束语……………………………………………………………………11
参考文献 ………………………………………………………………………12
附录 …………………………………………………………………………………13
- 2 -
浙江师范大学数理与信息工程学院课程设计——水温控制系统
单片机水温控制系统
数理与信息工程学院 05计算机专升本 章一娜
指导教师:余水宝 张 胜
第1节 引 言
在现代冶金、石油、化工及电力生产过程中,温度是极为重要而又普遍的热工参数之一,在环境恶劣或温度较高等场合,为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要求对加热炉炉温进行测、显示、控制,使之达到工艺标准。如何更快、更准确的控制所需的温度是温度控制技术的关键。
1.1 水温控制系统概述
本文介绍的是一个以51单片机为控制核心的水温控制系统,此系统通过人机交互设定控制温度,采用增量型PID算法,通过脉宽调制控制电炉加热,最终实现水温的恒定。该系统具有温度超调量小、调节时间短、静态误差小、测量精确、恒定温度与设定温度偏差小等优点,且控制方便、显示直观、性能稳定、可靠性高。 1.2 设计任务与要求
系统的基本任务与要求: (1)系统的基本要求:
一定量水由电炉加热,要求水温可以在一定范围内由人工设顶,并能在环境温度降低时自动实现调整,以保持设定的温度基本不变。 (2)主要性能指标
a.温度设定范围:温度设定为40℃—90℃最小区分度为1℃; b.控制精度:温度控制的静态误差名1℃; c.用十进制数码显示实际水温; (3)扩展功能
a.具有通信能力,可接收其他数据设备发朱的命令,或将结果传送到其他数据设备;
b.采用适当的控制方法;当没定温度或环境温度突变时减小系统的调节时间和超调号
c.温度控制的静态误差<0.2℃;
1
浙江师范大学数理与信息工程学院课程设计——水温控制系统
d.能自动显示水温随时间变化的曲线。
1.3 系统组成
本系统是一个典型的检测、控制型应用系统,它要求系统完成从水温检测、信号处理、输入、运算到输出控制电炉加热功率以实现水温控制的全过程。因此,以单片机为核心组成一个专用计算机应用系统,以满足检测、控制应用类型的功能要求。另外,单片机的使用特为实现水温的智能化控制以及提供完善的人机界面及多机通讯接口提供了可能,而这些功能在常规数字逻辑电路中往往是难以或无法实现的。根据设计任务基本要求,本系统应具有以下基本功能:
(1)可以进行温度设定,并自动调节水温给定的温度值。
(2)可以调整PID控制参数,满足不同控制对象与控制品质要求。 (3)可以实时显示给定温度与水温实测值。
第2节 系统硬件设计
本电路总体设计包括五部分:主机控制部分(C52)、前向通道(温度采样电路)、后向通道(温度控制电路)、键盘和数字显示部分、微机控制及图形显示。 2.1 系统总体设计框图
本系统以c52单片机为核心,采用了温度传感器AD590,A/D采样芯片ADC0804,可控硅MOC3041及PID算法实现对温度的精确控制。系统框图如图2-1
图形显示键盘显示电路微机控制系统数值显示A/D采样电路功率放大电路开关控制电路温度传感器c52控制系统电炉 图2-1 系统框图
2
浙江师范大学数理与信息工程学院课程设计——水温控制系统
2.2 温度采样电路
系统的信号采集电路主要由温度传感器(AD590)、基准电压(7812)及A/D转换电路(ADC0804)三部分组成。电路图如图2-2-1
R381kAGND10981R6-15455kJ6DGNDVref/2AGND/INTR/WR/RD/CSDB7DB6DB5DB4DB3DB2DB1DB05321J1+1517812VinOUTGND23R15KR230KJ322J441486C527623VIN-VIN+-+R41OP07718J54148VCC1J2AD59030k41920VCCCLK INCLK RV+ADC0804111213141516171820k+155k10u+c1R810k2-15R7C2150pR5 图2-2-1 温度采样电路原理图
(1)AD590性能描述 测量范围在-50℃--+150℃,满刻度范围误差为±0.3℃,当电源电压在5—10V之间,稳定度为1﹪时,误差只有±0.01℃ 。AD590为电流型传感器温度每变化1℃其电流变化1uA在35℃和95℃时输出电流分别为308.2uA 和368.2uA 。
(2)ADC0804性能描述 ADC0804为8bit的一路A/D转换器,其输入电压范围在0—5v,转换速度小于100us,转换精度0.39﹪。满足系统的要求。
(3)电路原理及参数计算 温度采样电路的基本原理是采用电流型温度传感器AD590将温度的变化量转换成电流量,再将电流量转换成电压量通过A/D转换器ADC0804将其转换成数值量交由单片机处理。
如图2-2-2
图中三端稳压7812作为基准电压,由运放虚短虚断可知运放的反向输入端Ui的电压为零伏。当输出电压为零伏时(即Uo=0v) 列出A点的结点方程如下:
3
电炉+15R5 81kR4 30k7812Ub R1 30kR2 5kUiA OP07outUoUc -15R3 30k图2-2-2 AD590浙江师范大学数理与信息工程学院课程设计——水温控制系统
Ub(R1R2)Ic……………..…………………………. …(1)
由于系统控制的水温范围为35℃--95℃,所以当输出电压为零伏时AD590的输出电流为308.2uA,因此为了使Ui的电位为零就必须使电流Ib等于电流308.2uA, 三端稳压7812的输出电压为12v所以由方程(1)得
R1R2UbIc12v308.2uA38.94kIc等于
……….…………. …. (2)
由方程(2)的取电阻R2=30k , R1=10k的电位器。由方程(2)的取电阻R2=30k , R1=10k的电位器。
又由于ADC0804的输入电压范围为0—5v ,为了提高精度所以令水温为95℃时ADC0804的输入电压为5v(即Uo=5v)。此时列出A点的结点方程如下:
Uo(R5R4)Ub(R1R2)Ic ……………………………… (3)
5v(R5R4)308.2uA368.2uA R5R483.33k
当水温为95℃时AD590的输出电流为368.2uA。由方程式(3)得 R4+R5=83.33k因此取R5=81k , R5=5k的电位器。
2.3 温度控制电路
此部分电路主要由光电耦合器MOC3041和双向可控硅BTA12组成。MOC3041光电耦合器的耐压值为400v,它的输出级由过零触发的双向可控硅构成,它控制着主电路双向可控硅的导通和关闭。100Ω电阻与0.01uF电容组成双向可控硅保护电路。控制部分电路图如图(2-3)。
vccBTA120.01uF电炉220v100Ω250Ωin 74LS072.4 主机控制部分
MOC3041图2-3
27Ω
此部分是电路的核心部分,系统的控制采用了单片机C52。单片机C52内部有8KB单元的程序存储器及256字节的数据存储器。因此系统不必扩展外部程序存
4
浙江师范大学数理与信息工程学院课程设计——水温控制系统
储器和数据存储器这样大大的减少了系统硬件部分。 2.5 键盘及数字显示部分
在设计键盘/显示电路时,我们使用单片机2051做为电路控制的核心,单片机2051具有一个全双工的串行口采用串口,利用此串行口能够方便的实现系统的控制和显示功能。键盘/显示接口电路如图2-5-1。 U1P3.31P3.42P3.53456ABCY0Y1Y2Y3Y4Y5Y6Y715141312111097GNDVCCE1E2E3Y0Y1Y2Y3Y4Y5Y6Y7HVCCR1Y0Q1R2Y1VCCR3Q2Y2VCCR4Q3Y3VCCR5Q4Y4VCCR6Q5Y5VCCR7Q6Y6VCCR8Q7Y7VCCQ8C1GND/VCC385385385385385385385GND/VCCGND/VCCGND/VCCGND/VCCGND/VCCGND/VCC45XTAL2XTAL1GNDVCCC3J221P3.26P3.37P3.48P3.59P3.711231RST/VPP(/INT0)P3.2(/INT1)P3.3(T0)P3.4(T1)P3.5P3.7(RXD)P3.0VCC(TXD)P3.1GNDP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.01918171615141312HGFEDCBAGND/VCCJ3C2+HHHHHHHfbfbfbfbfbfbfbfgHJ1C2051DS1aDS2aDS3aDS4aDS5aDS6aDS7a385DS8abR16R15R14R13R12R11R10R9VCCGNDgedgchedgchedgchedgchedgchedgchedchedchABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG721190721190721190721190721190721190721190ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGAJ1Y00000AJ91111AJ2Y10000AJ101111AJ3Y20000AJ111111AJ4Y30000AJ121111AJ5Y40000AJ131111AJ6Y50000AJ141111AJ7Y60000AJ151111AJ8Y70000AJ16P3.21P3.71117211902010ABCDEFG
图2-5-1 键盘/显示部分电路
图2-5-1中单片机2051的P1口接数码管的8只引脚,这样易于对数码管的译码,使数码管能显示设计者所需的各数值、小数点、符号等等。
单片机2051的P3.3、P3.4、P3.5接3-8译码器74L138,译码器的输出端直接接八个数码管的控制端和键盘,键盘扫描和显示器扫描同用端口这样能大大的减少单片机的I/O,减少硬件的花费。
键盘的接法的差别直接影响到硬件和软件的设计,考虑到单片机2051的端口资源有限,所以我们在设计中将传统的4*4的键盘接成8*2的形式(如图2-5-2),键盘的扫描除了和显示共用的8个端外,另外的两个端直接和2051的P3.2和P3.7相连。
Y0Y1Y2Y3Y4Y5Y6Y7P3.2p3.7
图2-5-2键盘接线
5
浙江师范大学数理与信息工程学院课程设计——水温控制系统
如图2-5-2的接法已经完全用完了单片机的15个I/O口,有效的利用了单片机的资源。
2.6 微机控制及图形显示部分
为了使系统具有更好的人机交换界面,在系统设计中我们通过Visual Basic 语言设计了微机控制界面。通过系统与微机的通信大大的提高了系统的各方面性能。其
控制界面见图2-6-1
由于单片机C52串行口为TTL电平,而PC机为RS232电平,因此系统采用了MAX232电平转换芯片。
由于系统设计了多机通信的功能,即主系统(C52)和键盘及
数字显示部分的通信、主系统主机 RXD(
机
主机 TXD的通信,所以在设计电路时要特别
C52
)
和
PC
图2-6-2
VCCD1D2pc TXDR12051 TXD2051 及pc RXD注意多机通信的时序及竞争问题,针对此类问题在设计中我们特地的在两根串行通信线上增加了如图2-6-2的电路:
如图2-7由于主机部分发送两个从机都可以接受,因此主机的发送部分(及主机 TXD)不存在竞争问题。而两个从机可能同时向主机发送各类控制信息,因此会存在竞争问题。其实图2-6-2为一个与门电路,图中R1为提升电阻,D1、D2为开关二极管,当pc TXD(或2051 TXD)中有一个为低电平时主机RXD为低电平,同时另一个分机无效,当pc TXD(或2051 TXD)中有一个为高电平时主机RXD为高低电平。
图2-6-1微机控制界面
6
浙江师范大学数理与信息工程学院课程设计——水温控制系统
如图2-6-1的微机控制界面,具有温度控制及显示的功能。图中左半部分为水温的实测温度和给定温度的数值显示及对主系统(C52部分)的控制界面,右半部分为水温的实测温度的逐点采样及图形显示,通过此界面可以更直观的显示温度的变化,并且通过对图形的保存能方便的打印出水温的变化曲线。
第3节 系统的软件设计
本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整或定闹设置程序三大模块。在程序设计过程中,加强了部分软件抗干扰措施,下面对部分模块作介绍。 3.1 主程序流程图
开机 机 系统初始化 显示清零,各记数指针清零 ,设定定时器及中断 否 判断是否有中断? 是 调用相映的中断程序 PID 算法 PWM 波产生 接收及发射串 显示数据 PC机通信 子程序 各类数值转 换子程序 图3-1主程序流程图
主程序流程图如图4-2-1所示,程序主要完成以下的几部分任务:
7
浙江师范大学数理与信息工程学院课程设计——水温控制系统
(1)初始化 设定各参数的初始值,设定各中断及定时器。
(2)接收/发射 此部分程序主要完成数据的控制及显示,其主要通过C52单片机的全双工串行口完成和键盘部分的双向通信。
(3)PC机通信 此部分完成与微机控制接口RS232的联接及通信的控制。 (4)数值转换子程序 由于主程序中用到了很多的数值转换及数值的运算(如十进制转换成十六进制、双字节与单字节的除法运算等等),为了程序调用的方便,特地将其编写成子程序的形式。 3.2 键盘显示程序
图3-2定水温、显示温度、确定、取消、清零、输出,均为各种子程序,1、2、3、4、5、6代表个子程序的应用程序。
否
设定水温 1
开机 机 系统初始化 显示清零,各记数指针清零 判断是否有键按下? 是 消除颤抖 显示温度 确定单步 清零 取消输出 输出 2 3 4 5 6 图3-2程序 8
浙江师范大学数理与信息工程学院课程设计——水温控制系统
第4节 系统调试与测试结果分析
4.1 系统测试仪器:
双路跟踪稳压稳流电源DH1718E-5 直流稳压电源
数字示波器Tektronix TDS1002 伟福E6000/L 仿真器 多功能数字表GDM-8145 数字万用表
P4 CPU2.4 内存261.616RAM Haier机。 0~100℃温度计、调温电热杯、秒表 4.2 测试方法
(1)在调温电热杯中放入1升清水,电热杯和控制系统相连,给系统上电,系统进入准备工作状态。
(2)用温度计测量及调节水杯中清水,水稳为35℃,给系统调零。分别设定温度为40℃、45℃、50℃、60℃、70℃、75℃、80℃、90℃,观察设定温度和实际温度,并记录数据。填写表4-1。
观察水温变化的动态情况,并记温度稳定的时间。填写表4-2。 4.3 测试结果
(1)给定温度与实测温度的数据对比如表4-1 表4-1 误差分析表
设定温实测温绝对误相对误 度(℃) 度(℃) 差(℃) 差(%) 1 35℃ 35℃ 0℃ 0% 4 2 40℃ 3 45℃ 41℃ 44℃ 1℃ -1℃ 2.43% 5 -2.27% 6 设定温实测温绝对误相对误 度(℃) 度(℃) 差(℃) 差(%) 60℃ 61℃ 1℃ 1.% 74℃ 81℃ 75℃ 82℃ 1℃ 1℃ 1.33% 1.22% 从表4-1中的数据可知,系统的误差基本稳定在正负1℃基本满足系统的设计要求。 (2)温度稳定和时间的关系
设定温度为50℃,每隔30s记录实测温度如表4-2
9
浙江师范大学数理与信息工程学院课程设计——水温控制系统
表4-2 温度稳定速度关系表(设定温度50℃)
测量时0.5分 1分 间(分) 实测温35℃ 37℃ 度℃ 测量时4.5分 5.0分 间(分) 实测温52℃ 49℃ 度℃ 1.5分 40℃ 5.5分 51℃ 2.0分 43℃ 6.0分 50℃ 2.5分 48℃ 6.5分 51℃ 3.5分 52℃ 4.0分 55℃ 从表4-2中的数据可知,系统运行5分钟时系统基本达到稳定。 由微机逐点采样所的曲线图如图4-1所示
50℃ 图4-1 温度变化图
10
浙江师范大学数理与信息工程学院课程设计——水温控制系统
结束语
本系统结构简单,温度控制灵活、检测准确。增量型PID算法使得温度控制灵活,控制精确,存在的缺点是此系统中的PID的算法只实现了I的积分部分,控制不是非常准确,如果把P,D两部分都加进去,浮点运算也包含进去,就更加完美了,但是这样复杂的程序在单片机中无法实现,需要借助计算机的软件功能,如:C语言等。
11
浙江师范大学数理与信息工程学院课程设计——水温控制系统
参考文献
[1] 电子系统设计(第三版)何小艇.浙江大学出版社.2004 [2] 8051单片机实践与应用 吴金戎.清华大学出版社.2001 [3] 模拟电子技术基础简明教程 杨素行.高等教育出版社.1997
[4] 电路设计与制版PROTEL99高级应用 赵晶.人民邮电出版社.2000
[5] Visual Basic串行通信工程开发实例导航 许浩. 人民邮电出版社.2003 [7] 电子线路设计、实验、测试 谢自美.华中科技大学出版社.2000
12
浙江师范大学数理与信息工程学院课程设计——水温控制系统
附 录
源程序
1 人机键盘显示
-------------------------------------------------------------------- FLAG BIT 2AH.0 FLAG10 BIT P3.2 FLAG11 BIT P3.3 FLAG12 BIT P3.4 FLAG13 BIT P3.5 FLAG14 BIT P3.7 GUAN8 EQU 20H GUAN7 EQU 21H GUAN6 EQU 22H GUAN5 EQU 23H GUAN4 EQU 24H GUAN3 EQU 25H GUAN2 EQU 26H GUAN1 EQU 27H SHFTN EQU 28H COUNT EQU 29H
-------------------------------------------- ORG 00H JMP START ORG 0BH JMP TIMER0 ORG 23H JMP SINT
--------------------------------------------
主程序 -------------------------------------------- START : MOV SP,#50H
MOV TMOD,#00100001B MOV IE,#10010010B MOV IP,#00010000B MOV SCON,#01010000B ANL PCON,#01111111B MOV TL1,#0F4H MOV TH1,#0F4H
MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000)
MOV GUAN8,#11H ;数码管8 MOV GUAN7,#11H ;数码管7 MOV GUAN6,#11H ;数码管6
13
从左向右数 浙江师范大学数理与信息工程学院课程设计——水温控制系统
MOV GUAN5,#11H ;数码管5 MOV GUAN4,#11H ;数码管4 MOV GUAN3,#11H ;数码管3 MOV GUAN2,#11H ;数码管2 MOV GUAN1,#11H ;数码管1 MOV SHFTN,#00H MOV COUNT,#0 CLR FLAG MOV R5,#4 MOV R6,#0 MOV 2BH,#10 MOV 40H,#3 MOV 30H,#0FFH MOV 31H,#0FFH MOV 32H,#0FFH MOV DPTR,#TABLE SETB TR1
-------------------------------------------- 显示扫描按键扫描 --------------------------------------------
BEGAN: SETB FLAG14 SETB FLAG13 CLR FLAG12
JNB FLAG11,LOOPPF CALL DISPLAY JMP BEGAN
LOOPPF: JB FLAG11,SHAO ;容许按键 CALL DISPLAY SETB FLAG14 SETB FLAG13 CLR FLAG12 JMP LOOPPF SHAO: SETB TR0 INC SHFTN MOV COUNT,#1 SHAOMIAO: MOV P1,#0FFH
CLR FLAG14 ; 8 SETB FLAG13 SETB FLAG12
JNB FLAG10,LOOP JMP NEXT
LOOP: JB FLAG10,LOOP1 ;数字7 CALL DISPLAY
14
浙江师范大学数理与信息工程学院课程设计——水温控制系统
CLR FLAG14 SETB FLAG13 SETB FLAG12 JMP LOOP LOOP1: MOV R7,#11H INC SHFTN
MOV R0,#SHFTN JMP PANDUAN
------------------------------------------- NEXT: CLR FLAG14 ; 7 CLR FLAG13 SETB FLAG12
JNB FLAG10,LOOPA JMP NEXT1
LOOPA: JB FLAG10,LOOP2 ;数字3 CALL DISPLAY CLR FLAG14 CLR FLAG13 SETB FLAG12 JMP LOOPA LOOP2: MOV R7,#29H INC SHFTN
MOV R0,#SHFTN JMP PANDUAN
-------------------------------------- NEXT1: SETB FLAG14 ; 6 SETB FLAG13 SETB FLAG12
JNB FLAG10,LOOPB JNB FLAG11,LOOPPB JMP NEXT2
LOOPB: JB FLAG10,LOOP3 ;数字键2 CALL DISPLAY SETB FLAG14 SETB FLAG13 SETB FLAG12 JMP LOOPB
LOOPPB: JB FLAG11,CLEAR ;清零键 CALL DISPLAY SETB FLAG14 SETB FLAG13 SETB FLAG12 JMP LOOPPB LOOP3: MOV R7,#7DH
15
浙江师范大学数理与信息工程学院课程设计——水温控制系统
INC SHFTN
MOV R0,#SHFTN JMP PANDUAN
----------------------------------------------
清零 ---------------------------------------------- CLEAR:
MOV GUAN8,#11H MOV GUAN7,#11H MOV GUAN6,#11H MOV GUAN5,#11H MOV GUAN4,#11H MOV GUAN3,#11H MOV GUAN2,#11H MOV GUAN1,#11H MOV SHFTN,#0 CLR TR0
MOV 30H,#0FFH MOV 31H,#0FFH MOV 32H,#0FFH JMP BEGAN
----------------------------------------------- NEXT2: SETB FLAG14 ; 5 CLR FLAG13 SETB FLAG12
JNB FLAG10,LOOPC JMP NEXT3
LOOPC: JB FLAG10,LOOP4 ;数字键6 CALL DISPLAY SETB FLAG14 CLR FLAG13 SETB FLAG12 JMP LOOPC LOOP4: MOV R7,#23H INC SHFTN
MOV R0,#SHFTN JMP PANDUAN NEXT3: SETB FLAG14
------------------------------------------- SETB FLAG13 CLR FLAG12
JNB FLAG10,LOOPD JNB FLAG11,LOOPPD JMP NEXT4
16
浙江师范大学数理与信息工程学院课程设计——水温控制系统
LOOPD: JB FLAG10,LOOP5 ;数字键1 CALL DISPLAY SETB FLAG14 SETB FLAG13 CLR FLAG12 JMP LOOPD
LOOPPD: JB FLAG11,LOOPP5 ;负键 CALL DISPLAY SETB FLAG14 SETB FLAG13 CLR FLAG12 JMP LOOPPD LOOP5: MOV R7,#1DH INC SHFTN
MOV R0,#SHFTN JMP PANDUAN
LOOPP5: MOV GUAN5,#0FDH
JMP XIANSHI
NEXT4: CLR FLAG14
--------------------------------------------- SETB FLAG13 CLR FLAG12
JNB FLAG10,LOOPE JNB FLAG11,LOOPPE JMP NEXT5
LOOPE: JB FLAG10,LOOP6 ;数字键5 CALL DISPLAY CLR FLAG14 SETB FLAG13 CLR FLAG12 JMP LOOPE
LOOPPE: JB FLAG11,LOOPP6 ;数字键9 CALL DISPLAY CLR FLAG14 SETB FLAG13 CLR FLAG12 JMP LOOPPE LOOP6: MOV R7,#81H INC SHFTN
MOV R0,#SHFTN JMP PANDUAN LOOPP6: MOV R7,#09H
17
浙江师范大学数理与信息工程学院课程设计——水温控制系统
INC SHFTN
MOV R0,#SHFTN JMP PANDUAN
NEXT5: SETB FLAG14 ;2 CLR FLAG13 CLR FLAG12
JNB FLAG10,LOOPF JMP NEXT6
LOOPF: JB FLAG10,LOOP7 ;数字键0 CALL DISPLAY SETB FLAG14 CLR FLAG13 CLR FLAG12 JMP LOOPF LOOP7: MOV R7,#H INC SHFTN
MOV R0,#SHFTN JMP PANDUAN
NEXT6: CLR FLAG14 ; 1 CLR FLAG13 CLR FLAG12
JNB FLAG10,LOOPG JNB FLAG11,LOOPPG JMP XIANSHI
LOOPG: JB FLAG10,LOOP8 ; CALL DISPLAY CLR FLAG14 CLR FLAG13 CLR FLAG12 JMP LOOPG
LOOPPG: JB FLAG11,LOOPP8 ; CALL DISPLAY CLR FLAG14 CLR FLAG13 CLR FLAG12 JMP LOOPPG LOOP8: MOV R7,#4DH INC SHFTN
MOV R0,#SHFTN JMP PANDUAN LOOPP8: MOV R7,#01H INC SHFTN
MOV R0,#SHFTN
数字键4 数字键8 18
浙江师范大学数理与信息工程学院课程设计——水温控制系统
JMP PANDUAN JMP XIANSHI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; PANDUAN:
N0: CJNE @R0,#2,N1 MOV COUNT,@R0 JMP Q1
N1: CJNE @R0,#3,N2 MOV COUNT,@R0 JMP Q2
N2: CJNE @R0,#4,N3 MOV COUNT,@R0 JMP Q3 N3: NOP NOP
JMP START
----------------------------------------- 超位按键无效 ----------------------------------------- N4: NOP NOP
JMP START Q1: MOV GUAN1,R7 JMP XIANSHI Q2: MOV GUAN2,R7 JMP XIANSHI Q3: MOV GUAN3,R7 NOP NOP
JMP Q4 Q4: NOP NOP
----------------------------------------
步进减 ---------------------------------------- CALL DISPLAY CLR FLAG14 SETB FLAG13 SETB FLAG12
LOOPP00: JNB FLAG11,LOOPP NOP NOP
CALL DISPLAY JMP LOOPPC01
19
浙江师范大学数理与信息工程学院课程设计——水温控制系统
LOOPP: JB FLAG11,DECR ;步进减 CALL DISPLAY CLR FLAG14 SETB FLAG13 SETB FLAG12 JMP LOOPP
DECR : MOV R1,#GUAN3 CALL NUMBERJ MOV A,R1
CJNE A,#0,WW0 MOV GUAN3,#09H MOV R1,#GUAN2 CALL NUMBERJ MOV A,R1
CJNE A,#0,WW10 MOV GUAN2,#09H MOV R1,#GUAN1 CALL NUMBERJ MOV A,R1
CJNE A,#0,WW11 MOV GUAN1,#09H MOV GUAN2,#09H MOV GUAN3,#09H JMP LOOPPC0 WW11: DEC A
MOVC A,@A+DPTR MOV GUAN1,A JMP LOOPPC0
-------------------------------------- WW10: DEC A
MOVC A,@A+DPTR MOV GUAN2,A CALL DISPLAY JMP LOOPPC0 WW0: DEC A
MOVC A,@A+DPTR MOV GUAN3,A CALL DISPLAY JMP LOOPPC0
---------------------------------------------
步进加 --------------------------------------------- LOOPPC01: SETB FLAG14 ; 5
20
浙江师范大学数理与信息工程学院课程设计——水温控制系统
CLR FLAG13 SETB FLAG12
LOOPPC0: JNB FLAG11,LOOPPC NOP NOP
CALL DISPLAY JMP DEAD01
LOOPPC: JB FLAG11,INCR ;步进加 CALL DISPLAY SETB FLAG14 CLR FLAG13 SETB FLAG12 JMP LOOPPC INCR: MOV R1,#GUAN3 CALL NUMBERJ MOV A,R1
CJNE A,#9,WW01 MOV GUAN3,#11H MOV R1,#GUAN2 CALL NUMBERJ MOV A,R1
CJNE A,#9,WW13 MOV GUAN2,#11H MOV R1,#GUAN1 CALL NUMBERJ MOV A,R1
CJNE A,#9,WW12 MOV GUAN1,#11H MOV GUAN2,#11H MOV GUAN3,#11H JMP LOOPPC0 WW12: INC A
MOVC A,@A+DPTR MOV GUAN1,A JMP LOOPPC0 WW13: INC A
MOVC A,@A+DPTR MOV GUAN2,A CALL DISPLAY JMP LOOPPC0 WW01: INC A
MOVC A,@A+DPTR MOV GUAN3,A CALL DISPLAY
21
浙江师范大学数理与信息工程学院课程设计——水温控制系统
JMP LOOPPC0
DEAD01: SETB FLAG14 ; 6 SETB FLAG13 SETB FLAG12
DEAD0: JNB FLAG11,DOUBLEJ JMP DECIDE
DOUBLEJ: JB FLAG11,CLEAN CALL DISPLAY
SETB FLAG14 ; 6 SETB FLAG13 SETB FLAG12 JMP DOUBLEJ CLEAN: LJMP CLEAR
DECIDE: CLR FLAG14 ; 7 CLR FLAG13 SETB FLAG12
JNB FLAG11,LOOPPA JMP Q4
LOOPPA: JB FLAG11,OUTPUTC ;确认键 CALL DISPLAY CLR FLAG14 CLR FLAG13 SETB FLAG12 JMP LOOPPA OUTPUTC: CALL OUTPUT JMP Q4
XIANSHI: CALL DISPLAY JMP SHAOMIAO
---------------------------------------------- 显示 ---------------------------------------------- DISPLAY:
CLR FLAG14 ; 8 SETB FLAG13 SETB FLAG12 MOV A,#93H MOV P1,A CALL DELAY MOV A,#0FFH MOV P1,A
CLR FLAG14 ; 7 CLR FLAG13 SETB FLAG12
22
浙江师范大学数理与信息工程学院课程设计——水温控制系统
MOV A,GUAN7 MOV P1,A CALL DELAY MOV A,#0FFH MOV P1,A
SETB FLAG14 ; 6 SETB FLAG13 SETB FLAG12 MOV A,GUAN6 MOV P1,A CLR P1.0 CALL DELAY MOV A,#0FFH MOV P1,A
SETB FLAG14 ; 5 CLR FLAG13 SETB FLAG12 MOV A,GUAN5 MOV P1,A CALL DELAY MOV A,#0FFH MOV P1,A
SETB FLAG14 ; 4 SETB FLAG13 CLR FLAG12 MOV A,#93H MOV P1,A CALL DELAY MOV A,#0FFH MOV P1,A
CLR FLAG14 ; 3 SETB FLAG13 CLR FLAG12 MOV A,GUAN3 MOV P1,A CALL DELAY MOV A,#0FFH MOV P1,A
SETB FLAG14 ; 2
23
浙江师范大学数理与信息工程学院课程设计——水温控制系统
CLR FLAG13 CLR FLAG12 MOV A,GUAN2 MOV P1,A CLR P1.0 CALL DELAY MOV A,#0FFH MOV P1,A
CLR FLAG14 ; 1 CLR FLAG13 CLR FLAG12 MOV A,GUAN1 MOV P1,A CALL DELAY MOV A,#0FFH MOV P1,A RET
--------------------------------------------
数值判断 -------------------------------------------- NUMBERJ:
QQ0: CJNE @R1,#11H,QQ1 MOV R1,#0 JMP HOME
QQ1: CJNE @R1,#7DH,QQ2 MOV R1,#1 JMP HOME
QQ2: CJNE @R1,#23H,QQ3 MOV R1,#2 JMP HOME
QQ3: CJNE @R1,#29H,QQ4 MOV R1,#3 JMP HOME
QQ4: CJNE @R1,#4DH,QQ5 MOV R1,#4 JMP HOME
QQ5: CJNE @R1,#H,QQ6 MOV R1,#5 JMP HOME
QQ6: CJNE @R1,#81H,QQ7 MOV R1,#6 JMP HOME
24
浙江师范大学数理与信息工程学院课程设计——水温控制系统
QQ7: CJNE @R1,#1DH,QQ8 MOV R1,#7 JMP HOME
QQ8: CJNE @R1,#01H,QQ9 MOV R1,#8 JMP HOME
QQ9: CJNE @R1,#09H,QQ10 MOV R1,#9 JMP HOME QQ10: NOP NOP HOME: RET
-------------------------------------------
串行输出 ------------------------------------------- OUTPUT: CLR ES
MOV A,#0AAH ;校验码 MOV SBUF,A CALL DELAY1 CALL DELAY1 CLR TI
MOV R1,#GUAN1 ;数据码 CALL NUMBERJ MOV A,R1 MOV SBUF,A CALL DELAY1 CALL DELAY1 CLR TI
MOV R1,#GUAN2 CALL NUMBERJ MOV A,R1 MOV SBUF,A CALL DELAY1 CALL DELAY1 CLR TI
MOV R1,#GUAN3 CALL NUMBERJ MOV A,R1 MOV SBUF,A CALL DELAY1 CALL DELAY1 CLR TI SETB ES PP2: RET
25
浙江师范大学数理与信息工程学院课程设计——水温控制系统
--------------------------------------------
串行中断输入 -------------------------------------------- SINT: PUSH ACC PUSH PSW JBC TI,OUT CLR RI
MOV A,SBUF
JB FLAG,SIGNALIN
CJNE A,#0AAH,OUT ; MOV 3AH,#3BH SETB FLAG JMP OUT SIGNALIN: MOV 3EH,R0 MOV R0,3AH MOV A,SBUF MOV @R0,A INC 3AH MOV R0,3EH MOV 3FH,R4 MOV R4,40H DJNZ R4,OUT1 MOV 40H,#3 MOV A,3BH
CALL RECOGNIZE MOV 3BH,A MOV A,3CH
CALL RECOGNIZE MOV 3CH,A MOV A,3DH
CALL RECOGNIZE MOV 3DH,A
MOV GUAN5,3BH MOV GUAN6,3CH MOV GUAN7,3DH CLR FLAG NOP NOP
JMP OUT OUT1: MOV 40H,R4 OUT: MOV R4,3FH POP PSW POP ACC RETI
校验连接 26
浙江师范大学数理与信息工程学院课程设计——水温控制系统
RECOGNIZE:
CJNE A,#55H,QQ11 ;曼彻斯特编码 MOV A,#11H JMP LOOPPPQ
QQ11: CJNE A,#56H,QQ12 MOV A,#7DH JMP LOOPPPQ
QQ12: CJNE A,#59H,QQ13 MOV A,#23H JMP LOOPPPQ
QQ13: CJNE A,#5AH,QQ14 MOV A,#29H JMP LOOPPPQ
QQ14: CJNE A,#65H,QQ15 MOV A,#4DH JMP LOOPPPQ
QQ15: CJNE A,#66H,QQ16 MOV A,#H JMP LOOPPPQ
QQ16: CJNE A,#69H,QQ17 MOV A,#81H JMP LOOPPPQ
QQ17: CJNE A,#6AH,QQ18 MOV A,#1DH JMP LOOPPPQ
QQ18: CJNE A,#95H,QQ19 MOV A,#01H JMP LOOPPPQ QQ19: MOV A,#09H LOOPPPQ: RET
------------------------------------ 定时中断
------------------------------------ TIMER0: ORL TL0,#LOW(65536-50000) MOV TH0,#HIGH(65536-50000) PUSH ACC PUSH PSW MOV 2CH,R6 MOV R6,2BH
DJNZ R6,HOMEBACK MOV R6,2CH MOV R6,#10 MOV 2DH,R0 MOV R0,#COUNT
27
浙江师范大学数理与信息工程学院课程设计——水温控制系统
CJNE @R0,#1,XX0 MOV 34H,A MOV A,GUAN1 XCH A,30H MOV GUAN1,A MOV A,34H JMP HOMEBACK XX0: MOV 34H,A MOV A,GUAN1
CJNE A,#0FFH,XXX0 MOV GUAN1,30H MOV A,34H
XXX0: CJNE @R0,#2,XX1 MOV 34H,A MOV A,GUAN2 XCH A,31H MOV GUAN2,A MOV A,34H JMP HOMEBACK XX1: MOV 34H,A MOV A,GUAN1
CJNE A,#0FFH,XXX1 MOV GUAN1,31H MOV A,34H
XXX1: CJNE @R0,#3,XX2 MOV 34H,A MOV A,GUAN3 XCH A,32H MOV GUAN3,A MOV A,34H JMP HOMEBACK XX2: MOV 34H,A MOV A,GUAN1
CJNE A,#0FFH,XXX2 MOV GUAN1,33H MOV A,34H XXX2: CLR TR0 HOMEBACK:MOV 2BH,R6 MOV R6,2CH MOV R0,2DH POP PSW POP ACC RETI
28
浙江师范大学数理与信息工程学院课程设计——水温控制系统
----------------------------------
延时 ---------------------------------- DELAY: MOV R2,#10H D1: MOV R3,#20H DJNZ R3,$ DJNZ R2,D1 RET
DELAY1: MOV R4,#70H D2: MOV R5,#70H DJNZ R5,$ DJNZ R4,D2 RET
----------------------------------- 码表
----------------------------------- TABLE: DB 11H 7DH 23H 29H
DB 4DH H 81H 1DH 01H 09H DB 0FEH END 2 控制部分
FLAG BIT 2AH.0 FLAG0 BIT 2AH.1 FLAG1 BIT 2AH.2 FLAG2 BIT 2AH.3 GUAN1 EQU 20H GUAN2 EQU 21H GUAN3 EQU 22H GUAN5 EQU 23H GUAN6 EQU 24H GUAN7 EQU 25H GUAN001 EQU 29H GUAN002 EQU 2BH GUAN003 EQU 2CH TEMP EQU 28H TEMP1 EQU 27H
-------------------------------------------------------------------- ORG 00H JMP START ORG 0BH JMP TIMER0 ORG 23H JMP SINT
29
浙江师范大学数理与信息工程学院课程设计——水温控制系统
ORG 100H START : MOV SP,#50H
MOV TMOD,#00100001B MOV IE,#10010010B MOV IP,#00010000B MOV SCON,#01010000B ANL PCON,#01111111B MOV TH0,#0E8H MOV TH1,#0E8H MOV GUAN1,#0 MOV GUAN2,#0 MOV GUAN3,#0 MOV GUAN5,#0 MOV GUAN6,#0 MOV GUAN7,#0 MOV TEMP,#0 MOV R6,#20 MOV R1,#2 SETB TR1
MOV TL0,#LOW(65536-30000) MOV TH0,#HIGH(65536-30000) MOV 40H,#3 MOV R7,#8 CLR FLAG CLR FLAG0 CLR FLAG1 CLR FLAG2 JMP $ SINT : PUSH ACC PUSH PSW JBC TI,OUT CLR RI
MOV A,SBUF
JB FLAG,RECEIVE CJNE A,#0AAH,OUT MOV 3AH,#3BH SETB FLAG JMP OUT RECEIVE : MOV 3EH,R0 MOV R0,3AH MOV A,SBUF MOV @R0,A INC 3AH MOV R0,3EH
30
浙江师范大学数理与信息工程学院课程设计——水温控制系统
MOV 3FH,R4 MOV R4,40H DJNZ R4,OUT1 MOV 40H,#3 MOV GUAN1,3BH MOV GUAN2,3CH MOV GUAN3,3DH NOP NOP
CLR FLAG1 CLR FLAG2 CLR FLAG0 MOV A,GUAN1 SWAP A
ORL A,GUAN2 NOP
MOV TEMP,A
MOV TEMP1,TEMP SETB TR0 CLR FLAG OUT1: MOV 40H,R4 MOV R4,3FH OUT: POP PSW POP ACC RETI
TIMER0: ORL TL0,#LOW(65536-30000) MOV TH0,#HIGH(65536-30000) PUSH ACC PUSH PSW CLR TR0
DJNZ R7,HOME0 JMP HOME1 HOME0: JMP HOME
HOME1: MOV R7,#8 ------------ CLR P2.2 CALL DELAY SETB P2.2 NOP NOP
CLR P2.3
MOV P0,#0FFH MOV A,P0 SETB P2.3
CALL TRANSFORM
温度采集31
浙江师范大学数理与信息工程学院课程设计——水温控制系统
CALL EMIT CLR C
MOV A,GUAN001 ---------检测温度高低 SWAP A
ORL A,GUAN002 MOV 47H,A
JNB FLAG0,CHULI JMP CHULI0
CHULI: CALL SELFPROCESS CHULI0: CLR C
MOV A,47H SUBB A,TEMP JNC CLOSE SETB FLAG0
JNB FLAG2,NYT JNB FLAG1,CLOSE NYT: CLR P1.0 JMP NEXTT1 CLOSE: SETB P1.0 SETB FLAG0 SETB FLAG2
MOV TEMP,TEMP1 JNB FLAG1,NEET JMP NEXTT1 NEET: DJNZ R1,NEXTT1 MOV R1,#2 SETB FLAG1
NOP NOP
NEXTT1: JMP HOME
----------------------------------------- EMIT: CLR ES
MOV A,#0AAH MOV SBUF,A CALL DELAY CLR TI
MOV A,GUAN5 MOV SBUF,A CALL DELAY CLR TI
MOV A,GUAN6 NOP NOP
MOV SBUF,A
32
浙江师范大学数理与信息工程学院课程设计——水温控制系统
CALL DELAY CLR TI
MOV A,GUAN7 NOP NOP
MOV SBUF,A CALL DELAY CLR TI NOP
SETB ES RET
HOME: POP PSW POP ACC SETB TR0 RETI TRANSFORM:
CALL INVERT CALL TOW MOV A,R4
CALL ZHUANHUAN MOV R4,A
MOV GUAN001,B MOV A,R5
CALL ZHUANHUAN MOV R5,A
MOV GUAN002,B MOV A,R6
CALL ZHUANHUAN MOV R6,A
MOV GUAN003,B MOV GUAN5,R4 MOV GUAN6,R5 MOV GUAN7,R6 NOP NOP RET
INVERT: CLR C RLC A
MOV 26H.0,C RLC A
MOV 26H.1,C RLC A
MOV 26H.2,C RLC A
33
浙江师范大学数理与信息工程学院课程设计——水温控制系统
MOV 26H.3,C RLC A
MOV 26H.4,C RLC A
MOV 26H.5,C RLC A
MOV 26H.6,C RLC A
MOV 26H.7,C MOV A,26H RET
TOW: ----------------------------多位16进制转化成多位BCD码 MOV B,#100 DIV AB MOV 40H,A MOV A,B MOV B,#10 DIV AB MOV 41H,A MOV 42H,B
-------------------------------------取初位放AD的采样值 MOV A,42H MOV B,#4 MUL AB MOV B,#10 DIV AB MOV 43H,A
MOV R6,B ;末位 MOV A,41H MOV B,#4 MUL AB MOV B,#10 DIV AB MOV 44H,A MOV A,B ADD A,43H MOV B,#10 DIV AB
MOV R5,B ;中间位 ADD A,44H MOV 44H,A MOV A,40H MOV B,#4 MUL AB
34
浙江师范大学数理与信息工程学院课程设计——水温控制系统
MOV B,#10 DIV AB MOV 45H,A MOV A,B ADD A,44H
MOV R4,A ;最后位 RET ZHUANHUAN:
CJNE A,#00H,Q1 ;曼彻斯特编码 MOV A,#55H MOV B,#0 JMP LOOPP
Q1: CJNE A,#01H,Q2 MOV A,#56H MOV B,#1 JMP LOOPP
Q2: CJNE A,#02H,Q3 MOV A,#59H MOV B,#2 JMP LOOPP
Q3: CJNE A,#03H,Q4 MOV A,#5AH MOV B,#3 JMP LOOPP
Q4: CJNE A,#04H,Q5 MOV A,#65H MOV B,#4 JMP LOOPP
Q5: CJNE A,#05H,Q6 MOV A,#66H MOV B,#5 JMP LOOPP
Q6: CJNE A,#06H,Q7 MOV A,#69H MOV B,#6 JMP LOOPP
Q7: CJNE A,#07H,Q8 MOV A,#6AH MOV B,#7 JMP LOOPP
Q8: CJNE A,#08H,Q9 MOV A,#95H MOV B,#8 JMP LOOPP
35
浙江师范大学数理与信息工程学院课程设计——水温控制系统
Q9: MOV A,#96H MOV B,#9 LOOPP: RET SELFPROCESS:
CLR C
MOV A,#50H SUBB A,TEMP JNC OPEN7 CLR C MOV A,GUAN2 SUBB A,#3 JNC OPEN8 MOV A,TEMP
SUBB A,#9 ;3 MOV TEMP,A NOP
JMP TTL OPEN8: MOV A,TEMP
SUBB A,#3 ;3 MOV TEMP,A NOP NOP
JMP TTL OPEN7: CLR C
MOV A,GUAN2 SUBB A,#5 JNC OPEN9 MOV A,TEMP SUBB A,#11 MOV TEMP,A JMP TTL OPEN9: MOV A,TEMP
SUBB A,#5 ;5 MOV TEMP,A NOP NOP TTL: RET
DELAY: MOV R2,#70H D1: MOV R3,#70H DJNZ R3,$ DJNZ R2,D1 RET END
NOP
度前停止加热度前停止加热度前停止加热36
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务