电阻炉的温度控制系统设计(课程设计)
电阻炉的温度控制系统设计
摘要
电阻炉在冶金工业中的运用相当广泛, 其温度参数在生产过程中的自动控制系统也随着微机单片机可控硅技术在工业控制领域的推广、应用, 正朝着高精度、高稳定性、高智能化的方向发展。电阻加热炉是典型的工业过程控制对象。其温度控制具有升温单向性、大惯性、大滞后、时变性等特点,且其升温、保温是依靠电阻丝加热,降温则是依靠环境自然冷却。
温度是工业对象中主要的被控参数之一。尤其是在冶金、化工、机械各类工业中,广泛使用各种加热炉、热处理炉、反应炉等。由于炉子的种类不同,所采用的加热方法及燃料也不相同,如煤气、天然气等。但就控制系统本身的动态特性而言,均属于一阶纯滞后环节,在控制算法上基本相同,可采用PID 控制或其他纯滞后补偿算法。但对于电阻加热炉来说,当其温度一旦超调就无法用控制手段使其降温,因而很难用数学方法建立精确模型和确定参数。而传统PID 控制是一种建立在经典控制理论基础上的控制策略,其设计依赖于被控对象的数学模型,因此对于加热炉这类控制对象采用传统PID 的控制方案很难达到理想的控制效果。
为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度,节约能源,对加热用的各种电炉要求在一定条件下保持恒温,不能随电源电压波动或炉内物体而变化,或者有的电炉的炉温根据工艺要求按照某个指定的升温或保温规律而变化,等等。
因此,在工农业生产或科学实验中常常对温度不仅要不断地测量,而且要进行控 制。在电阻炉温度控制系统的设计中,应尽量考虑到如何有效地避免各种干扰因素而采用一个较好的控制方案,选择合适芯片及控制算法是非常有必要的本设计要用单片机设计一个电阻炉温度控制系统。
关键词:恒温;热处理;控温系统
Design for Temperature Control System of Resistance Furnace
Abstract
The resistance furnace in metallurgical industry is widely application, its temperature parameters in the production process of automatic control system with single-chip microcomputer control technology in the field of industrial silicon, the popularization and application in high precision, high stability, high intelligent direction. Resistance furnace is typical of industrial process control object. The temperature control with temperature mono-direction and large inertia, the lag and time-varying characteristics, such as temperature, heat preservation and heat resistance wire depend on environment, cooling is natural cooling.
Temperature is the main objects of accused of parameters. Especially in metallurgy, chemical, machinery, widely used in various industries of heating furnace, heat treatment furnace, reactors. Because of the different kinds of heating method is adopted, and the fuel is not identical also, such as coal gas, natural gas etc. But control system dynamic characteristics of itself, all belong to a first-order lagging pure, in the same basic control algorithm, PID control or other pure lag compensation algorithm. But for resistance furnace, when the temperature once overshoot cannot use control means that the cooling, so it is difficult to use mathematical method to establish precise model and parameters. While the traditional PID control is an established in classical control theory, the control strategy based on its design depend on mathematical model of the controlled objects, so this kind of control for furnace adopts the traditional PID control object to achieve the ideal control scheme.
In order to guarantee the normal production process, improve product safely quantity and quality and to reduce the labor intensity, energy saving, with all kinds of electric heating requirements under certain conditions, not with remains constant voltage fluctuations or furnace changes, or some objects according to the technical requirement of electric furnace temperature or a designated in accordance with the law and heat changes, etc.
Therefore, in industrial and agricultural production and scientific experiments to constantly measuring temperature will not only, and to control System. In the resistance furnace temperature control system design, should try to consider how to effectively avoid distractions and USES a better control scheme, select the appropriate chip and control algorithm is necessary to the design with a single-chip microcomputer temperature control system of resistance furnace.
Keywords: temperature; Heat treatment; Temperature control system
目 录
摘 要„„„„„„„„„„„„„„„„„„„ (1)
Abstract„„„„„„„„„„„„„„„„„„(2)
一、总体方案设计„„„„„„„„„„„„„„„„„(4)
1、设计内容及要求„„„„„„„„„„„„„„ (4)
2、工艺要求„„„„„„„„„„„„„„„„„ (4)
3、要求实现的系统基本功能„„„„„„„„„„ (5)
4、对象分析„„„„„„„„„„„„„„„„„ (5)
5、系统功能设计„„„„„„„„„„„„„„„ (5)
二、硬件的设计和实现„„„„„„„„„„„„„„ (5)
1、计算机机型 „„„„„„„„„„„„„„„„(5)
2、设计支持计算机工作的外围电路. „„„„„„ (5)
3、设计输入输出通道„„„„„„„„„„„„„ (8)
4、元器件的选择„„„„„„„„„„„„„„ (10)
三、数字控制器的设计„„„„„„„„„„„„„„„(7)
1、控制算法„„„„„„„„„„„„„„„„ (10)
2、计算过程„„„„„„„„„„„„„„„„ (11)
四、软件设计„„„„„„„„„„„„„„„„„„(12)
1、系统程序流程图„„„„„„„„„„„„„ (12)
2、程序清单„„„„„„„„„„„„„„„„ (15)
五、完整的系统电路图„„„„„„„„„„„„„ (27)
六、系统调试„„„„„„„„„„„„„„„„„ (27)
七、设计总结„„„„„„„„„„„„„„„„„ (27)
八、参考文献„„„„„„„„„„„„„„„„„ (27) 附录 „„„„„„„„„„„„„„„„„ (28)
一、总体方案设计
设计任务:用一台计算机及相应的部件组成电阻炉炉温的自动控制系统,并使系统达到工艺要求的性能指标。
1、 设计内容及要求
电阻加热炉用于合金钢产品热力特性实验,电加热炉用电炉丝提供功率,使其在预定的时间内将炉内温度稳定到给定的温度值。在本控制对象电阻加热炉功率为8KW ,有220V 交流电源供电,采用双向可控硅进行控制。
系统模型:
2、工艺要求
按照规定的曲线进行升温和降温,温度控制范围为50~350℃,升温和降温阶段的温度控制精度为±5℃,保温阶段温度控制精度为±2℃。
3、要求实现的系统基本功能
微机自动调节:正常工况下,系统投入自动。
模拟手动操作:当系统发生异常,投入手动控制。
微机监控功能:显示当前被控量的设定值、实际值,控制量的输出值,参数报警时有灯光报警。
4、对象分析
在此设计中,要求电阻炉炉内的温度,按照上图所示工艺要求的规律变化,首先从室温开始到50℃为自由升温阶段,当温度到达50℃,就进入系统调节,当温度上升到达350℃时进入保温段,要求始终在系统控制下,保证所需的炉内温度的精度。加工完毕,要进行降温控制。保温段的时间为600~1800s 。过渡过程时间:即从开始控制到进入保温阶段的时间要小于600s 。在保温段当温度高于352℃或低于348℃时要报警,在升温和降温阶段也要进行控制,使炉内温度按照曲线的斜率升或降。
采用MCS —51单片机作为控制器,ADC0809模数转换芯片为模拟量输入,DAC0832数模转换芯片为模拟量输出,铂电阻为温度检测元件,运算放大器和可控硅作为功率放大,电阻炉为被控对象,组成电阻炉炉温控制系统,另外,系统还配有数字显示,以便显示和记录生产过程中的温度和输出值。
5、系统功能设计
计算机定时对炉温进行测量和控制一次,炉内温度是由铂电阻温度计来进行测量,其信号经放大送到模数转换芯片,换算成相应的数字量后,再送入计算机中进行判别和运算,得到应有的电功率数,经过数模转换芯片转换成模拟量信号,供给可控硅功率调节器进行调节,使其达到炉温变化曲线的要求。
二、硬件的设计和实现
1、计算机机型:MCS —51 8031(不包含ROM 、EPROM )
系统总线:PC 总线
2、设计支持计算机工作的外围电路
矩阵键盘技术:
图2-1用8255接口的4×8键盘矩阵
图2-1为4×8矩阵组成的32键盘与微机接口电路。图中8255端口C 为行扫描口,工作于输出方式,端口A 工作于输入方式,用来读入列值。图中I/O口地址必须满足CE =0,才能选中相应的寄存器。在每一行与列的交叉点接一个按键,故4×8共32个___
键。
温度输出显示技术:
LED 静态显示接口技术,所谓静态显示, 即CPU 输出显示值后, 由硬件保存输出值, 保持显示结果
.
图2-2用锁存器连接的6位静态显示电路
图2-2为6位BCD 码静态显示电路原理图。图中74LS244为总线驱动器,6位数字显示共用同一组总线,每个LED 显示器均配有一个锁存器(74LS377),用来锁存待显示的数据。当被显示的数据从数据总线经74LS244传送到各锁存器的输入端后,到底哪一个锁存器选通,取决于地址译码器74LS138各输出位的状态。总线驱动器74LS244由IOW 和A9控制,当IOW 和A9同时为低电平时,74LS244打开,将数据总线上的数据传送到各个显示器的锁存器74LS377上。
特点:占用机时少, 显示可靠. 但使用元件多, 且线路复杂、成本高。
报警电路设计:
正常运行时绿灯亮,在保温阶段炉内温度超出系统允差范围,就要进行报警。报警时报警红灯亮,电笛响,同时发送中断信号至CPU 进行处理。如图2-3
图2-3加热炉报警系统图
3、设计输入输出通道
输入通道:因为所控的实际温度在50 ~ 350℃,即(350-50)=300所以选用8位A/D转换器,其分辨率约为1.5℃/字,再加放大器偏置措施实现。(通过调整放大器的零点来实现偏置)这里采用一般中速芯片ADC0809。ADC0809是带有8位A/D转换器,8路多路开关以及微型计算机兼容的控制逻辑的CMOS 组件,其转换方法为逐次逼近型。8路的模拟开关由地址锁存器和译码器控制,可以在8个通道中任意访问一个通道的模拟信号。这种器件无需进行零位和满量程调整。由于多路开关的地址输入部分能够进行锁存和译码,而且其三态TTL 输出也可以锁存,所以它易于与微型计算机接口。其具有较高的转换速度和精度,受温度影响较小,能较长时间保证精度,重现性好,功耗较低,故用于过程控制是比较理想的器件。
图2-4ADC0809应用接线图
输出通道:据其实际情况,D/A转换器的位数可低于A/D转换器的位数,因为一般控制系统对输出通道分辨率的要求比输入通道的低,所以这里采用常用的DAC0832芯片 DAC0832是8位D/A转换器,与微处理器完全兼容。期间采用先进的CMOS 工艺,因此功耗低,输出漏电流误差较小。它的内部具有两级输入数据缓冲器和一个R-2RT 型电阻网络,因DAC0832电流输出型D/A转换芯片,为了取得电压输出,需在电流输出端接运算放大器,Rf 为为运算放大器的反馈电阻端。
图2-5DAC0832双极性电压输出电路
双极性电压输出的D/A转换电路通常采用偏移二进制码、补码二进制码和符号一数值编码。只要在单极性电压输出的基础上再加一级电压放大器,并配以相关电阻网络就可以构成双极性电压输出。在上图中,运算放大器A2的作用是把运算放大器A1的单向输出电压转变为双向输出。
4、元器件的选择
传感器的选择:铂铑10—铂热电偶,S 型,正极性,量程0—1300℃,使用温度小于等于600℃,允差±1.5℃。
执行元件的选择:电阻加热炉采用晶闸管(SCR )来做规律控制,结合电阻炉的具体要求,为了减少炉温的纹波,对输出通道采用较高的分辨率的方案,因此采用移相触发方式,并且由模拟触发器实现移相触发。
变送器的选择:因为系统要求有偏置,又需要对热电偶进行冷端补偿,所以采用常规的DDZ 系列温度变送器。
控制元件:采用双向可控硅进行控制,其功能相当于两个单向可控硅反向连接,具有双向导通功能,其通断状态有控制极G 决定。在控制极加上脉冲可使其正向或反向导通。
三、数字控制器的设计
1、控制算法:
电阻加热炉温度控制系统框图:.
整个闭环系统可用一个带纯滞后的一阶惯性环节来近似,所以其控制算法采用大林算法。电阻加热炉温度控制系统模型为
其广义的传递函数为:
大林算法的设计目标是设计一个合适的数字控制器,使整个闭环系统的传递函数相当于一个带有纯滞后的一阶惯性环节,即:
通常认为对象与一个零阶保持器相串联, 相对应的整个闭环系统的脉冲传递函数是:
2. 8e -40s
G (s ) =178s +1
2、计算过程:
连同零阶保持器在内的系统广义被控对象的传递函数
1-e -Ts 2. 8e -40s
G (z ) =Z []s 178s +1 =2. 8(1-z ) z
=2. 8(1-z ) z -1-1-40T Z [1]s (178s +1) -40
T
1178Z [-]s 178s +1 1
1-e -1
178 1=2. 8(1-z -1) z -4[--11-z ]
z -1
0. 154z -5
=1-0. 945z -1
系统闭环传递函数
C (z ) 1-e -Ts e -NTs
Φ(z ) ==Z []
R (z ) s τs +1
=z
-N -1
(1-e
-T
-
T
τ
)
数字控制器:
D (z ) =
1-e
τ
z -1
Φ(z )
G (z )[1-Φ(z )]
=[1-e
-
z
T
-N -1
(1-e
-
-
T
τ
)
T
τ
z -1-(1-e z (1-e
-5
-10
τ
) z -N -1]G (z )
1-0. 945z -10. 154z -5
=[1-e
-
τ
)
-10
10
τ
z -(1-e
-1
τ
) z -5]
6. 448(1-0. 945z -1) =
1-0. 007z -1-0. 933z -5
6. 448(1-0. 945z -1)
D (z ) =
(1-z -1)[1+0. 933z -1+0. 933z -2+0. 933z -3+0. 933z -4] 消除振铃现象后的数字控制器:
6. 448(1-0. 945z -1)
D (z ) =
1-z -1
U (z ) 1. 297-1. 297⨯0. 945z -1
D (z ) ==
E (z ) 1-z -1
将上式离散化:U (Z )—U (Z )Z —1=1.279E(Z )—1.226E (Z )Z —1
U(K )—U (K —1)=1.279E(K )—1.226E (K —1) 最终得:U (K )=U(K —1)+1.279E(K )—1.226E (K —1)
四、软件设计
1、系统程序流程图
a 、系统主程序框图
b 、A/D转换子程序流程图
c 、LED 显示流程图
d、报警程序流程图
e 、数字控制算法子程序流程图
2、程序清单
ORG 0000H AJMP MAIN ORG 0003H AJMP KEYS ORG 000BH AJMP PIT0 ORG 001BH
AJMP PIT1
MAIN : MOV
MOV MOV
;中断入口及优先级
SP ,#00H
5FH :清上下限越限标志 A ,#00H R7,#09H
CLR
MOV R0,#28H
LP1: MOV @R0,A
INC R0 DJNZ R7,LP1 MOV
R7,#06H
MOV R0,#39H
LP2: MOV INC R0 DJNZ R7MOV
MOV LP3: MOV
INC DINZ MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV
SETB SETB SETB
SETB LOOP : MOV
MOV LCALL MOV LCALL @R0,A
,LP2 R7,#06H RO ,#50H @R0,A
R0
R7,LP3 33H ,#00H
34H ,#00H 35H ,#00H
36H ,#00H 37H ,#00H
38H ,#00H 42H ,#00H
43H ,#00H TMOD ,#56H TLO ,#06H THO ,#06H 25H ,#163H TR0 ET0 EX0 EA R0,#56H
R1,#55H
SCACOV R0,#53H DIR
;清显示缓冲区
;赋KP 高低字节 ; 赋KI 高低字节 ; 赋KD 高低字节 ;赋K 高低字节
;T0方式2,T1方式1计数
;设定值默认值350
;键盘高优先级 ;开键盘T0。T1中断
;标度转化
NOP
LCALL DLY10MS NOP
LCALL DLY10MS AJMP LOOP 键盘子程序
KEYS : CLR EX0 CLR
EA
PUSH PSW
PUSH ACC LCALL DLY10MS CC :
JB
P3.2 AA
SETB 5DH MOV A ,25H
MOV B,#10H
DIV A B MOV 52H ,A MOV A, B MOV
51H, A
MOV R0,#50H
LCALL DIR NOP
LCALL DLY10MS NOP
LCALL DLY10MS JB
P1.7 ,BB
MOV R1,#25H LCALL DAAD1 NOP LCALL DLY10MS
AJMP CC BB:
JB
P1.6 CC MOV R1,#25H
LCALL DEEC1
NOP
;等中断
;关中断 ;消抖
;置“显示设定值温度值标志” ;取运算位的值
;BCD 码转化
; 显示设定温度
LCALL DLY10MS AJMP CC
AA:
POP ACC POP PSW SETB EX0
SETB EA
;出栈
RETI
显示子程序
DIR:
MOV SCON ,#00H ;SETB P1.4 ;JB
5DH,DL1 DL2: M OV DPTR,#SEGT DL0: M OV
A,@R0
MOVC A,@A+DPTR MOV SBUF ,A
LOOP1: J NB TI, LOOP1 CLR
TI INC R0 MOV A,@R0
MOVC A,@A+DPTR
ANL A, #7FH MOV
SBUF ,A
LOOP2:
JNB
TI,LOOP2 CLR TI INC R0 MOV A,@R0 MOVC A,@A+DPTR
MOV
SBUF,A
LOOP3:
JNB
TI,LOOP3 CLR TI CLR P1.4 CLR 5DH
RET
DL1: MOV 50H,#0AH
AJMP DL2
置串行口移位寄存器状态开显示 ; 显示设定温度
;使数带小数点
;小数位黑屏
SEGT: DB 加一子程序
DAAD1: MOV ORL ADD
0C0H ,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH A,#00H A,@R1 A,#01H
; 超过48度了吗?
CJNE A,#30H,DAAD2
DAAD3: MOV @R1,A DAA: RET DAAD2: JC
DAAD3
MOV
@R1,#15EH
AJMP DAA
减一子程序
DEEC1: MOV
A,@R1 DEC A
CJNE A,#15EH,DEEC2
DEEC3: MOV @R1,A
DEE : RET DEEC2: JNC DEEC3
MOV
@R1,#30H AJMP
DEE
T0中断子程序
PTT0:
CLR EA
PUSH ACC PUSH PSW PUAH DPL PUSH DPH
SETB EA
PPP: LCALL SMAP LCALL FILTER MOV A,2AH ;CJNE A,#07H,AAA AJMP BBB
AAA: JC
CCC CJNE
A,#0FEH ,DDD AJMP BBB
; 超过48则转回到355
; 低于355度了吗?
; 低于355则转回到48
; 压栈后开中断响应键盘
;采样数据
; 数字滤波 取采样值 ; 下限48比较
;小于48度转
; 上限355比较
; 转至48~355正常范围处理
DDD: JC
CLR CLR
CCC: CLR
BBB
P1.2 ;大于355黄灯亮 P1.1 ;置标志 启动风扇 P1.3 ; 小于48红灯亮
SETB 5EH AJMP PPP SETB BBB: CLR AJMP
SETB P1.0 SETB SETB SETB CLR CLR LCALL PID
JNB MOV LCALL CLR
LOOP10: MOV MOV LCALL SCACOV MOV CLR JB CLR POP
POP POP SETB POP ACC
RETI
EEE: MOV LCALL FFF
5FH
P1.0
PPP
P1.1 P1.2 P1.3 5EH
5FH 20H,EEF A,29H FFF
P1.0
R0,#56H
R1,#55H
R0,#53H
DIR
D5H,LOOP10 EA DPH
DPL PSW
EA
A,28H ; 置标志启动电炉
;50~350之间正常
; 设定温度小于实际值转到风扇
; 存放相乘结果的首址 ;赋显示缓冲区最高位地址 ;标度转化
; 赋显示首址 ;等待T1中断
; 风扇处理
CLR P1.1
AJMP LOOP10
FFF: CRL A
INC A MOV TL1,A MOV TH1,#0FFH SETB PI1 SETB TR1 SETB ET1 RET 标度转化
SCACOV :PROC NEAR MOV
DX,0
MOV DATA1,#258H MOV DATA2,#708H MOV DATA3,#960H PROC NEAR MOV DX,0
MOV AX,DATAP CMP
AX,DATA3
JAE Q3DOR CMP AX,DATA2
JAE Q3-Q2 CMP AX,DATA3 JAE
Q2-Q1 Q0: MOV BX,0.8H MUL BX ADC DX,0
JMP
DONE
Q2-Q1: MOV AX,#15EH Q3-Q2: SUB AX,DATA2
MOV BX,0.8H
MUL BX MOV AX,#15EH SUB AX,BX
; 根据PID 结果计算T1初值
;取采样时间
; 时间大于2400?
; 1800
; 600
;
;Q=350 ;Q=350-(t-1800)/2
MOV @R1,A
PP: 采样子程序
SWAP:
MOV R0,#20H
MOV R1,#03H
SAW1: MOV DPTR,#7FF8H
RET
DLY:
HERE: JB 数字滤波
CMP1: JNC CMP2: MOV
CMP3: JC
CMP4: MOV
CMP5: JC MOVX @DPTR A MOV R2,#20H
DJNZ R2,DLY
P3.3 ,HERE
MOV DPTR,#7FF8H
MOVX A,@DPTR MOV @R0,A INC R0
DJNZ R1,SAM1
RET
FILTER: MOV A, 20H CJNE A,2DH CMP1 AJMP
CMP2
CMP2 XCH A,2DH XCH A,2CH
A,2DH
CJNE A,22EH,CMP3 MOV 2AH,A AJMP RR
CMP4
MOV 2AH,A AJMP RR
A,2EH CJNE A,2CH,CMP5 MOV
2AH ,A AJMP RR
CMP6
;A/D转化
; 延时
;读转化结果
XCH A,2CH
CMP6: MOV 2AH,A RR: RET
T1中断
PIT1:
CLR 00H
JB
20H, GGG
SETB P1.0 GG: CLR
PT1
RETI
GGG:
SETB P1.1 CLR
20H
AJMP GG
延时10MS 子程序
DLY10MS: MOV R7,#0A0H DLOO: MOV R6,#0FFH DL11:
DJNZ R6,DL11 DJNZ R7,DL00 RET
数字PID 算法子程序
PID:
MOV R5,#00H
MOV R4,2DH MOV
R3,#00H
MOV R2,#32H LCALL CPL1
LCALL DSUM MOV R0,#5AH MOV
R5,#05H
MOV R4,#1CH LCALL MULT MOV 31H ,5BH
MOV 32H ,5AH MOV R5,31H MOV
R4,32H
MOV R3,2AH
MOV R2,#00H
; 关闭电炉
; 关闭风扇
; 取NX 值 ; 取50 ; 求(NX-32H)值
;赋乘法算法运算暂存单元地址首址
; 赋参数
;调无符号数乘法 ; 存放结果有效值 ; 取双字节UR(设定)
; 取双字节实测值
ACALL CPL1 ACALL DSUM MOV
39H, R7
; 取U(K)补码
;计算E(K)
; 存E(K)
MOV 3AH,R6 MOV R5,35H
MOV R4,36H
;取KI 参数 MOV R0,#4AH
ACALL MULT1 MOV R2,39H
MOV R4,3AH MOV R3,3BH MOV R2,3CH MOV
R5,33H
MOV R4,34H MOV R0,#46H ACALL MULT1 MOV R5,49H MOV R4,48H MOV R3,4DH MOV R2,4CH
LCALL DSUM
MOV
4AH, R7
MOV 4BH,R6 MOV R5,39H MOV 3CH,3AH MOV
A,31H
CJNE A,2AH,AA2 AA3: CLR 20H
AA1:
RET
AA2 JNC AA3
SETB 20H MOV R3,39H MOV R2,3AH LCALL CPL1
MOV
A,R3
;计算PI=KI*E(K) ; 取E(K)
; 取E(K-1)
; 取KP 参数
;KP*[ E(K)- E(K-1)]
;KP*[ E(K)- E(K-1)]+ KI*E(K) ; 保存上式之和 ; 存E(K)到E(K-1)
; 取设定值
; 比较设定值与实测值 ; 清电炉标志
; 清风扇标志位
MOV MOV MOV MOV MOV R7,A A,R2 R6,A R5,42H
R4,43H ;取K1风扇标志 MOV
R0,#5AH
ACALL MULT1 MOV 28H,5BH AJMP AA
DSUM: MOV A,R4 ADD A,R2 MOV R6,A MOV A,R5 ADDC A,R3
MOV R7,A
RET 双字节求补
CPL1:
MOV
A,R2
CPL A ADD A,#01H MOV R2,A MOV A,R3 CPL A ADDC A,#00H
MOV R3,A
RET
乘法 被乘数R7R6乘数R5R4
MULT1: MOV
A,R7 RLC A
MOV 5CH,C JNC POS1 ;MOV A,R1 ;CPL A ADD A,#01H MOV
R6,A
; 计算P=K*E(K)且结果存在51H,50H 单元中; 取8位有效值存在28H 单元
; 双字节加法子程序; C1 5CH位 为正数则转 为负数求补
MOV A,R7
CPL A ADDC A,#00H MOV
POS1:
R7,A
A,R5 ;取乘数
; 乘数符号MOV
RLC A MOV 5DH,C JNC POS2 MOV A,R4 CPL A
ADD A,#01H MOV R4,A MOV A,R5 CPL A ADDC A,#00H
MOV
R5,A POS2:
ACALL MULT
MOV C,5CH ANL C,5DH
JC TPL MOV C,5CH
MOV C,5DH
JNC TPL DEC R0 MOV
A,@RO
CPL A ADD A,#01 MOV @R0,A INC R0 MOV A,@R0 CPL A ADDC A,#00H
MOV
@R0,A TPL: RET MULT: MOV
A,R6
; 为正数则转
; 负负相乘转
; 正正相乘转
MOV B,R4 ; 取低位相乘
MUL AB MOV @R0,A MOV R3,B MOV
A,R4
MOV B,R7 MUL AB ADD A,R3 MOV R3,A MOV A,B ADDC A,#00H MOV R2,A MOV A,R6 MOV B,R5 MUL AB
ADD A,R3 INC
R0 MOV
@R0,A
CLR 5BH
MOV A,R2 ADDC A,B
MOV
R2,A
JNC LAST
SETB 5BH LAST:
MOV A,R7
MOV B,R5 MUL AB ADD A,R2
INC R0
MOV
@R0,A
MOV A,B ADDC A,#00H MOV C,5BH ADDC A,#00H
INC
R0
; 置进位标志
; 存积
MOV RET
@R0,A
END
五、完整的系统电路图
附录
六、系统调试
在系统调试过程中,将系统各部分硬件连接,检测各部分是否正确。然后就可以进入硬件调试,调试的主要任务是排除硬件的故障,其中包括设计错误和工艺性故障,然后在进行软件的调试,软件调试时需要检查编程是否正确,用微型机对MCS51系列单片机程序进行交叉汇编。在硬件、软件单独调试后,即可进入硬件、软件联合调试阶段,找出硬件、软件之间不相匹配的地方,反复修改和调试,直到符合设计要求。
七、设计总结
经过一周的设计,我对这门课程有了更深的了解。在设计过程中,首先要熟悉系统的工艺,进行对象的分析,要熟悉各元件的参数,按照要求确定方案。然后要进行硬件和软件的设计和调试。由于没有实际的样机,所以不能看到系统的运行结果。只能在理论上对系统的结果进行预测分析。通过设计实验,使我了解了人机交互接口技术、微型机控制系统输入/输出接口的扩展方法,模拟量输入/输出通道的设计,常用控制程序的设计方法,数据处理技术,以及数字控制器算法。此次设计使我对微型计算机控制技术有了全面的深刻的了解,对我以后深入学习这门技术有很大的帮助。
八、参考文献
(1) 潘新民,王燕芳. 微型计算机控制技术. 高等教育出版社,2001
(2) 马修水,李晓林. 传感器与检测技术(第二版). 电子工业出版社,2008 (3)牛昱光,李晓林. 单片机原理与接口技术. 电子工业出版社,2008 (4)马春燕. 微机原理与接口技术(基于32位机). 电子工业出版社,2007
附录