- •Національний університет „Львівська політехніка” Кафедра атхп Курсовий проект
- •1. Індивідуальне завдання до курсового проекту з дисципліни «мікропроцесорна техніка» на тему «проектування інтелектуального давача на базі мікоконтролера 89с51»
- •Структурна схема інтелектуального давача, побудованого на базі мікроконтролера 89с51 .
- •2.1 Мікроконтролер 89с51 .
- •Опис роботи інтелектуального давача.
- •Побудова контролера клавіатури та семисегментного індикатора.
- •3.1. Ввід інформації з клавіатури.
- •3.2. Вивід інформації на семисегментний індикатор.
- •3.3. Програма для програмування програмованого логічного пристрою контролера
- •3.4. Часові діаграми pоботи програмованого логічного пристрою контролера
- •4. Робота аналого-цифрового перетворювача
- •Контролери послідовного каналу вводу-виводу.
- •Програма для роботи мікропроцесорного пристрою, побудованого на базі мікроконтролера 89с51
- •Висновки
- •Література
-
Програма для роботи мікропроцесорного пристрою, побудованого на базі мікроконтролера 89с51
Нижче наведена програма, написана мовою асемблера 89С51, яка виконує обрахунки за заданим алгоритмом:
;
За допомогою програми М51-24.ехе переведемо значення вхідних величин у шістнадцяткову систему числення формату REAL і запишемо у таблицю 7.1.
Запишемо адреси комірок пам'яті під вхідні та вихідний параметри функції у вигляді таблиці 7.1
Таблиця 7.1. Позначення та адреси комірок пам'яті під вхідні та вихідний параметри функції.
Змінна |
Ідентифікатор |
Значення |
Значення у системі |
Адреса контрольних точок |
||||||
M1 |
M2 |
M3 |
P |
M1 |
M2 |
M3 |
P |
|||
Тy |
Ty |
- |
- |
- |
- |
- |
30h |
31h |
32h |
33h |
pНП |
Pnp |
- |
- |
- |
- |
- |
34h |
35h |
36h |
37h |
µНП |
Finp |
- |
- |
- |
- |
- |
38h |
39h |
3Ah |
3Bh |
µВ |
Fib |
- |
- |
- |
- |
- |
3Ch |
3Dh |
3Eh |
3Fh |
µВП |
Fibp |
- |
- |
- |
- |
- |
40h |
41h |
42h |
43h |
- |
D |
- |
- |
- |
- |
- |
44h |
45h |
46h |
47h |
T |
T |
- |
- |
- |
- |
- |
48h |
49h |
4Ah |
4Bh |
|
Fi |
0.25 |
00H |
00H |
00H |
7FH |
4Ch |
4Dh |
4Eh |
4Fh |
t |
Tm |
224 |
60H |
00 |
00 |
88H |
50h |
51h |
52h |
53h |
p |
Pm |
180000 |
2FH |
C8H |
00H |
92H |
54h |
55h |
56h |
57h |
- |
- |
273.15 |
08H |
93H |
33H |
89H |
- |
- |
- |
- |
- |
- |
0.001 |
03h |
12h |
6eh |
77h |
- |
- |
- |
- |
- |
- |
10E+6 |
74h |
24h |
00h |
94h |
- |
- |
- |
- |
- |
- |
82.865856 |
25h |
bbh |
51h |
87h |
- |
- |
- |
- |
- |
- |
-7.821541 |
fah |
4ah |
10h |
83h |
- |
- |
- |
- |
- |
- |
10.28003 |
24h |
7bh |
00h |
84h |
- |
- |
- |
- |
- |
- |
-11.48776 |
B7h |
cdh |
ddh |
84h |
- |
- |
- |
- |
- |
- |
241.4 |
71h |
66h |
66h |
88h |
- |
- |
- |
- |
- |
- |
10 |
8ch |
00h |
00h |
88h |
- |
- |
- |
- |
- |
- |
-6 |
C0h |
00h |
00h |
83h |
- |
- |
- |
- |
- |
- |
247.8 |
77h |
Cch |
Cch |
88h |
- |
- |
- |
- |
- |
- |
1 |
00h |
00h |
00h |
81h |
- |
- |
- |
- |
- |
- |
1.0467 |
05h |
fah |
43h |
81h |
- |
- |
- |
- |
- |
- |
10E-11 |
2fh |
ebh |
ffh |
5ch |
- |
- |
- |
- |
- |
- |
-305 |
98h |
80h |
00h |
89h |
- |
- |
- |
- |
- |
- |
10E-6 |
06h |
37 |
bdh |
6dh |
- |
- |
- |
- |
- |
- |
0.0399 |
23h |
6eh |
2eh |
7ch |
- |
- |
- |
- |
- |
- |
-2.9675 |
Bdh |
edh |
85h |
82 |
- |
- |
- |
- |
- |
- |
-498.15 |
F9h |
13h |
33h |
89h |
- |
- |
- |
- |
- |
- |
9.80665 |
1ch |
ebh |
09h |
84h |
- |
- |
- |
- |
- |
- |
2.227 |
0eh |
87h |
2bh |
82h |
- |
- |
- |
- |
- |
- |
-0.0028495 |
bah |
beh |
adh |
78h |
- |
- |
- |
- |
- |
- |
0.5 |
00h |
00h |
00h |
80h |
- |
- |
- |
- |
Програма розрахунку динамічної в’язкості вологої водяної пари
TTM1 EQU 30h
TyM1 EQU 30H
TyM2 EQU 31H
TyM3 EQU 32H
TyP EQU 33H
pnpM1 EQU 34H
pnpM2 EQU 35H
pnpM3 EQU 36H
pnpP EQU 37H
finpM1 EQU 38H
finpM2 EQU 39H
finpM3 EQU 3AH
finpP EQU 3BH
fibM1 EQU 3CH
fibM2 EQU 3DH
fibM3 EQU 3EH
fibP EQU 3FH
fibpM1 EQU 40H
fibpM2 EQU 41H
fibpM3 EQU 42H
fibpP EQU 43H
DM1 EQU 44H
DM2 EQU 45H
DM3 EQU 46H
DP EQU 47H
TM1 EQU 48H
TM2 EQU 49H
TM3 EQU 4AH
TP EQU 4BH
fiM1 EQU 4CH
fiM2 EQU 4DH
fiM3 EQU 4EH
fiP EQU 4FH
tmM1 EQU 50H
tmM2 EQU 51H
tmM3 EQU 52H
tmP EQU 53H
pM1 EQU 54H
pM2 EQU 55H
pM3 EQU 56H
pP EQU 57H
STACK EQU 70H
DIVON0 EQU 62H
sqrneg EQU 63H
ORG 0h
JMP BEGIN
ORG 100h
BEGIN:
MOV SP,#STACK
MOV tmM1,#60H ;t=224
MOV tmM2,#00H
MOV tmM3,#00H
MOV tmP,#88H
MOV pM1,#2FH ;p=180000
MOV pM2,#0C8H
MOV pM3,#00H
MOV pP,#92H
MOV fiM1,#00H ;fi=0.25
MOV fiM2,#00H
MOV fiM3,#00H
MOV fiP,#7FH
MOV R0,tmM1 ;t
MOV R1,tmM2
MOV R2,tmM3
MOV R3,tmP
MOV R4,#08H ; 273.15
MOV R5,#93H
MOV R6,#33H
MOV R7,#89H
CALL SUM ;t+273.15
MOV TM1,R0 ;T
MOV TM2,R1
MOV TM3,R2
MOV TP,R3
MOV R4,#03H ;0.001
MOV R5,#12H
MOV R6,#6EH
MOV R7,#77H
CALL MUL ;T*0.001
MOV TyM1,R0 ; Ty
MOV TyM2,R1
MOV TyM3,R2
MOV TyP,R3
MOV R4,#24H ;10.28003
MOV R5,#7BH
MOV R6,#00H
MOV R7,#84H
CALL MUL ;TY*10.28003
MOV R4,#25H ;82.865856
MOV R5,#0BBH
MOV R6,#51H
MOV R7,#87H
CALL SUM
MOV DM1,R0 ; TY*10.28003+82.865856
MOV DM2,R1
MOV DM3,R2
MOV DP,R3
MOV R0,#0FAH ;-7.821541
MOV R1,#4AH
MOV R2,#10H
MOV R3,#83H
MOV R4,TyM1 ;Ty
MOV R5,TyM2
MOV R6,TyM3
MOV R7,TyP
CALL DIV ; -7.821541/Ty
MOV R4,DM1 ; TY*10.28003+82.865856
MOV R5,DM2
MOV R6,DM3
MOV R7,DP
CALL SUM ; TY*10.28003+82.865856-7.821541/Ty
MOV DM1,R0
MOV DM2,R1
MOV DM3,R2
MOV DP,R3
MOV R0,TM1 ;T
MOV R1,TM2
MOV R2,TM3
MOV R3,TP
CALL LN
MOV R4,#0B7H ;-11.48776
MOV R5,#0CDH
MOV R6,#0DDH
MOV R7,#84H
CALL MUL ;-11.48776*Ty
MOV R4,DM1 ; TY*10.28003+82.865856-7.821541/Ty
MOV R5,DM2
MOV R6,DM3
MOV R7,DP
CALL SUM ; TY*10.28003+82.865856-7.821541/Ty-11.48776*Ty
CALL EXP ;EXP(TY*10.28003+82.865856-7.821541/Ty-11.48776*Ty)
MOV R4,#74H ;10e6
MOV R5,#24H
MOV R6,#00H
MOV R7,#94H
CALL MUL ;EXP(TY*10.28003+82.865856-7.821541/Ty-11.48776*Ty)*10^-6
MOV pnpM1,R0 ;PNP
MOV pnpM2,R1
MOV pnpM3,R2
MOV pnpP,R3
;GOOD
MOV R0,TM1 ;T
MOV R1,TM2
MOV R2,TM3
MOV R3,TP
MOV R4,#98H ;-305
MOV R5,#80H
MOV R6,#00H
MOV R7,#89H
CALL SUM ;T-305
MOV R4,#2FH ;10^-11
MOV R5,#0EBH
MOV R6,#0FFH
MOV R7,#5CH
CALL MUL ;(T-305)*10^-11
MOV R4,#05H ;1.0467
MOV R5,#0FAH
MOV R6,#43H
MOV R7,#81H
CALL MUL ;(T-305)*10^(-11)*1.0467
MOV DM1,R0
MOV DM2,R1
MOV DM3,R2
MOV DP,R3
MOV R0,pnpM1 ;Pnp
MOV R1,pnpM2
MOV R2,pnpM3
MOV R3,pnpP
MOV A,R0
SETB ACC.7
MOV R0,A ;-PNP
MOV R4,pM1 ;p
MOV R5,pM2
MOV R6,pM3
MOV R7,pP
CALL SUM ;P-PNP
MOV R4,DM1 ; ;(T-305)*10^(-11)*1.0467
MOV R5,DM2
MOV R6,DM3
MOV R7,DP
CALL MUL ;(T-305)*10^(-11)*1.0467*(P-PNP)
MOV R4,#00H ;1
MOV R5,#00H
MOV R6,#00H
MOV R7,#81H
CALL SUM ;(T-305)*10^(-11)*1.0467*(P-PNP)+1
MOV R4,#71H ;241.4
MOV R5,#66H
MOV R6,#66H
MOV R7,#88H
CALL MUL ;[(T-305)*10^(-11)*1.0467*(P-PNP)+1]*241.4
MOV DM1,R0
MOV DM2,R1
MOV DM3,R2
MOV DP,R3
MOV R0,#20H ;10
MOV R1,#00H
MOV R2,#00H
MOV R3,#84H
CALL LN ;LN(10)
MOV finpM1,R0
MOV finpM2,R1
MOV finpM3,R2
MOV finpP,R3
MOV R0,#8CH ;-140
MOV R1,#00H
MOV R2,#00H
MOV R3,#88H
MOV R4,TM1 ; T
MOV R5,TM2
MOV R6,TM3
MOV R7,TP
CALL SUM ;T-140
MOV fibM1,R0
MOV fibM2,R1
MOV fibM3,R2
MOV fibP,R3
MOV R4,fibM1 ; T-140
MOV R5,fibM2
MOV R6,fibM3
MOV R7,fibP
MOV R0,#77H ;247.8
MOV R1,#0CCH
MOV R2,#0CCH
MOV R3,#88H
CALL DIV ;247.8/(T-140)
MOV R4,#0C0H ;-6
MOV R5,#00H
MOV R6,#00H
MOV R7,#83H
CALL SUM ;247.8/(T-140)-6
MOV R4,finpM1 ;LN(10)
MOV R5,finpM2
MOV R6,finpM3
MOV R7,finpP
CALL MUL ;LN(10)*(247.8/(T-140)-6)
CALL EXP ;EXP[LN(10)*(247.8/(T-140)-6)]
MOV R4,DM1 ;[(T-305)*10^(-11)*1.0467*(P-PNP)+1]*241.4
MOV R5,DM2
MOV R6,DM3
MOV R7,DP
CALL MUL ;[(T-305)*10^(-11)*1.0467*(P-PNP)+1]*241.4*EXP[LN(10)*(247.8/(T-140)-6)]
MOV fibM1,R0
MOV fibM2,R1
MOV fibM3,R2
MOV fibP,R3
;good
MOV R0,TM1 ; T
MOV R1,TM2
MOV R2,TM3
MOV R3,TP
MOV R4,#0F9H ;-498.15
MOV R5,#13H
MOV R6,#33H
MOV R7,#89H
CALL SUM
MOV A,R0
JB ACC.7,MENSHERIVNE
MOV A,R3
JZ MENSHERIVNE
;MOV A,TM1
;XLR A,#10000000B
;MOV R0,A
;MOV R3,TP
MOV R0,TM1 ; T
MOV R1,TM2
MOV R2,TM3
MOV R3,TP
MOV R4,#0BAH ;-0.0028495
MOV R5,#0BEH
MOV R6,#0ADH
MOV R7,#78H
CALL MUL ;-0 .0028495*T
MOV R4,#0EH ;2.227
MOV R5,#87H
MOV R6,#2BH
MOV R7,#82H
CALL SUM ;2.227-0 .0028495*T
MOV DM1,R0
MOV DM2,R1
MOV DM3,R2
MOV DP,R3
MOV R0,#00H ;1
MOV R1,#00H
MOV R2,#00H
MOV R3,#81H
MOV R4,DM1
MOV R5,DM2
MOV R6,DM3
MOV R7,DP
CALL DIV ;1/(2.227-0 .0028495*T)
MOV R4,#00H ;0.5
MOV R5,#00H
MOV R6,#00H
MOV R7,#80H
CALL SUM
MOV R4,#06H ;10^-6
MOV R5,#37H
MOV R6,#0BDH
MOV R7,#6DH
CALL MUL
MOV R4,#1CH ;9.80665
MOV R5,#0EBH
MOV R6,#09H
MOV R7,#84H
CALL MUL
MOV finpM1,R0
MOV finpM2,R1
MOV finpM3,R2
MOV finpP,R3
MENSHERIVNE:
MOV R0,TM1 ; T
MOV R1,TM2
MOV R2,TM3
MOV R3,TP
MOV R4,#23H ;0.0399
MOV R5,#6EH
MOV R6,#2EH
MOV R7,#7CH
CALL MUL
MOV R4,#0BDH ;-2.9675
MOV R5,#0EDH
MOV R6,#85H
MOV R7,#82H
CALL SUM
MOV R4,#06H ;10^-6
MOV R5,#37H
MOV R6,#0BDH
MOV R7,#6DH
CALL MUL
MOV finpM1,R0
MOV finpM2,R1
MOV finpM3,R2
MOV finpP,R3
MOV R0,#00H ;1
MOV R1,#00H
MOV R2,#00H
MOV R3,#81H
MOV R4,fiM1 ;fi
MOV R5,fiM2
MOV R6,fiM3
MOV R7,fiP
MOV A,R4
SETB ACC.7
MOV R4,A ;-fi
CALL SUM ;(1-fi)
MOV R4,finpM1 ;fiNP
MOV R5,finpM2
MOV R6,finpM3
MOV R7,finpP
call MUL ;(1-fi)*finp
MOV DM1,R0
MOV DM2,R1
MOV DM3,R2
MOV DP,R3
MOV R0,fiM1 ;fi
MOV R1,fiM2
MOV R2,fiM3
MOV R3,fiP
MOV R4,fibM1 ;fib
MOV R5,fibM2
MOV R6,fibM3
MOV R7,fibP
CALL MUL
MOV R4,DM1
MOV R5,DM2
MOV R6,DM3
MOV R7,DP
CALL SUM
MOV fiBpM1,R0
MOV fiBpM2,R1
MOV fiBpM3,R2
MOV fiBpP,R3
;==========;
;matematuka;
;==========;
В результаті виконання програми отримаємо значення функції: =223E9675 , за допомогою прогами М51-24 переведемо це число у десяткову систему числення: =3.094567800872028*
Для перевірки правильності роботи програми, складено програму в Matlab:
clear,clc
t=224; p=180000;fi=0.25;
T=t+273.15
Ty=0.001*T
pnp=10^6*exp(82.865856-7.821541/Ty+10.28003*Ty-11.48776*log(T))
fib=241.4*10^(247.8/(T-140)-6)*(1+1.0467*10^(-11)*(p-pnp)*(T-305))
if T<=498.15,
finp=1e-6*(0.0399*T-2.9675),
else if T<=498.15
finp=9.80665*10^(-6)*(1/(2.227-0.0028495*T)+.5)
end
end
MU_BP=fi*fib+(1-fi)*finp
del=abs(MU_BP-3.094567800872028e-4)/MU_BP*100
Результати виконання програми:
=3.094553727953089*
del = 4.547640847679237e-004= 4.54*