Xem mẫu
- Hình 4. 2 : Löu ñoà chöông trình chính MNT
BEGIN
*A
Khôûi taïo ngaên xeáp
Khôûi taïo ngoaïi vi
Khôûi taïo ngaét
Khôûi taïo vuøng döõ lieäu
*B
PUSH PSW
CALL KYBRD
b a c
Trang 23
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- c
b a
Ñ
CALL PHIMSO POP PSW
*C
PHIMSO
Ñ
*D CALL UP POP PSW
UP
Ñ
*E CALL DOWN POP PSW
DOWN
Ñ
*F CALL ADD POP PSW
ADD
Ñ
*G CALL COPY POP PSW
COPY
Ñ
CALL DEL POP PSW
DEL *H
Ñ
POP PSW CALL REG
REG *I
Ñ CALL SRCH POP PSW
SRCH
*J
Ñ CALL STEP POP PSW
STEP
*K
Ñ CALL INS POP PSW
INS
*L
Ñ CALL PC POP PSW
PC
*M
Trang 24
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- ORG 0000H
JMP START
ORG 0080
; Khôûi taïo ngaên xeáp
START: LXI SP, 9CFFH
; Khôûi taïo 8279
MVI A, 3EH ; laäp trình xung clock
STA Addct79 ; baèng 100 KHz
MVI A, 10H ; Hieån thò 8 kí töï, ghi phaûi
STA AddCT79 ; Baøn phím queùt coù laäp maõ khoùa ngoaøi hai
; phím
MVI A, C3H ; xoùa FIFO vaø xoùa hieån thò
STA AddCT79
MVI A, 40H ; Ñoïc FIFO, khoâng töï taêng, haøng ñaàu tieân
STA AddCT79
MVI A, 90H ; Ghi vaøo RAM hieån thò, töï taêng
STA AddCT79 ; Baét ñaàu taïi Led saùt leà phaûi
; Khôûi taïo ngoaïi vi 8255
MVI A, 8BH ; Mode 0, I/0 ñôn giaûn
OUT 03H
OUT 0BH
; Khôûi taïo ngoaïi vi 8253
MVI A, 35H ; Boä ñeám 0 mode 2, göûi 2 byte
OUT 13H ; ñeám BCD
MVI A, B5H ; Boä ñeám 2 mode 2, 2 byte,
OUT 13H ; BCD
MVI A, 75H ; Boä ñeám 1; Mode 2; göûi 2 byte
OUT 13H ; ñeám BCD
; Khôûi taïo 8253 taïo xung 300 Hz caáp cho TXC vaø RXC cuûa 8251
MVI A, 99H ; Boä ñeám 0 chia 10000
OUT 10H
MVI A, 99H
OUT 10H
MVI A, 99 ; Boä ñeám 1 chia 10000
OUT 11H
MVI A, 99H
OUT 11H
MVI A, 99H ; Taïo xung 5Hz ñöa ra
OUT 12H ; söû duïng
Trang 25
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- ; Khôûi taïo ngoaïi vi 8251
MVI A, 5DH ; Baát ñoàng boä, heä soá nhaân toác ñoä baèng 1,
cho
OUT 23H ; pheùp duøng parity, khoâng kieåm tra parity
; chaün, kí töï daøi 18 bit, 1 bit stop
MVI A, 10H ; Caám phaùt, caám nhaän, reset taát caû caùc côø
loãi,
OUT 23H ; ngaên chaën reset mode beân trong,
; Khôûi taïo 8259
MVI A, 12H ; taùc ñoäng söôøn döông, khoaûng caùch
OUT 20H ; caùc vectô ngaét 8 byte, coù 1 maïch
; PIC, boû ICW4
MVI A, 40 H ; choïn kieåu ngaét 40h ñeán
OUT 27H ; 47H
MVI A, 00H ; Ñaàu vaøo IRi khoâng noái
OUT 27H ; maïch thôï
; Khôûi taïo ngaét
MVI A, E5H ; Che RST 7.5, RST 5.5 khoâng
SIM ; che RST 5.5
; Khôûi taïo moät soá oâ nhô ù
MVI A,10H STA AddST 14
STA AddTT CALL HELLO
MVI A, 00H *A : PUSH PSW
STA Addqp+0 *B : CALL KYBRD
STA Addqp+1 CPI 10H
STA Addqp+2 JM *C
STA Addqp+3 CPI ‘UP’
STA AddHT+4 JZ *D
STA AddHT+5 CPI ‘DOWN’
STA AddHT+6 JZ *E
STA AddHT+7
Trang 26
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- CPI ‘ADD’ *G : CALL COPY
JZ *F POP PSW
CPI COPY JMP *A
JZ *G *H : CALL DEL
CPI ‘DEL’ POP PSW
JZ *H JMP *A
CPI ‘REG’ *I : POP PSW
JZ *I CALL REG
CPI ‘SRCH’ JMP *A
JZ *J *J : CALL SRCH
CPI ‘STEP’ POP PSW
JZ *K JMP *A
CPI ‘INS’ *K : CALL STEP
JZ *L POP PSW
CPI ‘’PC’ JMP *A
JZ *M *L : CALL INS
JMP *B POP PSW
*C : CALL PHIMSO JMP *A
POP PSW *M : CALL PC
JMP *A POP PSW
*D : CALL UP JMP *A
POP PSW
JMP *A
*E : CALL DOWN
POP PSW
JMP *A
*F : CALL ADD
POP PSW
JMP *A
Trang 27
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- KYBRD
KYBRD : Laø chöông trình con coù nhieäm vuï laáy maõ cuûa phím aán.
Input: Chôø phím aán
Output: Chöông trình seõ duøng laïi cho ñeán khi naøo coù moät phím
ñöôïc goõ, khi ñoù (A) = Maõ phím
Ngoaøi A khoâng thanh ghi naøo bò ñieàu chænh
Coù goïi KYCODE
KYBRD
PUSH B
PUSH D
PUSH H
*1: CALL KYCODE
Ñ
(A) = FFH
S
POP H
POP D
POP B
RET
KYRBD
PUSH B
PUSH D
PUSH H
*1:CALL KYCODE
CPI FFH
JZ *1
POP H
POP D
POP B
RET
Trang 28
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- KYCODE
KYCODE : Ñaây laø chöông trình con .Noù coù taùc vuï laáy maõ cuûa
phím aán töø FIFO cuûa 8279 ñaët vaøo thanh ghi A
Input: Goõõ phím
Output: Neáu khoâng goõ phím : (A) = FFH
Neáu coù phím ñöôïc goõ : (A) = Maõ phím
Caùc thanh ghi bò ñieàu chænh : A,B
Goïi DELAY 0.1 (Xem phuï luïc)
KYCODE
LDA AddSTATUS
A (A) AND (OFH )
Z=1
S
A (01H)
*1 CALL DELAY 0.1
A FFH LDA AddDT79
B (A)
A (C2H)
STA AddCT79
A (B)
RET
KYCODE
LDA AddSTATUS
ANI OFH MVI A,C2H
JZ *1 STA AddCT79
MVI A,01H MOV A,B
CALL DELAY 0.1 RET
LDA AddDT79 *1 : MVI A,FFH
MOV B,A RET
Trang 29
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- PHIM SO
PHIM SO: Ñaây laø moät chöông trình con coù taùc vuï hieån thò phím
aán vaø löu tröõ maõ phím aán.
Input : Maõ phím aán
Output : Hieån thò phím aán vaø löu tröõ phím aán
Khoâng thanh ghi naøo bò ñieàu chænh.
AddTT = OOH
PHIM SO
Xuaát kha S
AddTT =OOH
*2 *1
Dòch döõ lieäu vaø naïp maõ phím Naïp OOH
môùi aán vaøo vuøng Addqp vaøo Ram
hieån thò cuûa
8279 vaø
CALL CODE 1 vuøng AddHT
PUSH PSW
Dòch maõ hieån thò trong ram
hieån thò cuûa 8279 vaø trong
vuøng AddHT
1
Trang 30
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- 1
POP PSW
Naïp maõ hieån thò cuûa phím môùi
aán vaøo AddHT vaø vaøo Ram hieån
thò cuûa 8279
AddTT (OOH)
RET
Hình 4.3 laø löu ñoà chöông trình phím soá
Addqp : laø 4 oâ nhôù löu giöõ maõ phím cuûa 4 laàn aán phím soá sau cuøng.
AddHT: 4 oâ nhôù löu giöõ maõ 7 ñoaïn töông öùng vôùi 4 maõ phím sau cuøng
AddTT : cho bieát phím sau cuøng laø phím chöùc naêng hay phím soá
CODE : laø chöông trình con ñoåi caùc maõ Hexa töø OOH OFH sang moät kí töï
maõ
7 ñoaïn ( xem phuï luïc )
AddTT
Addqp+0 AdHT+4
Addqp+1 AdHT+5
Addqp+2 AdHT+6
Addqp+3 AdHT+7
Maõ phím môùi aán Maõ 7 ñoaïn cuûa phím môùi aán
Trang 31
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- UP
UP: Chöông trình con coù taùc vuï taêng ñòa chæ hieän haønh vaø naïp
döõ lieäu hieån thò vaøo ñòa chæ hieän haønh ñoù.
Input: Thanh ghi HL
Output: Hieån thò döõ lieäu vaø ñòa chæ cuûa oâ döõ lieäu ñoù chöùa trong
HL
Caùc thanh ghi coøn laïi khoâng bò ñieàu chænh.
AddTT =01H
AddTT : ñòa chæ oâ nhôù chöùa cô traïng thaùi
AddTT =00H: phím aán sau cuøng laø phím soá
AddTT 00H: phím aán sau cuøng laø phím chöùc naêng
UP
PUSH PSW
S
AddTT =00H
Ñ *2
*2: CALL 0RMP
M (A)
*1: HL (HL) +1
CALL DPHLM
AddTT (01H)
POP PSW
RET
Hình 4.4 Löu ñoà chöông trình phím UP
ORMP: laø chöông trình con hôïp hai oâ queùt phím (xem phuï luïc)
DPHLM: laø chöông trình con coù taùc vuï hieån thò ñòa chæ vaø döõ lieäu
trong oâ nhôù coù ñòa chæ trong HL (xem phuï luïc).
UP
Trang 32
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
- PUSH PSW *1: INX H
CPI OOH CALL DPHLM
JZ *2 MVI A, 0 1 H
JMP *1 STA AdTT
*2: CALL ORMP POP PSW
MOV M,A RET
DOWN
DOWN : Laø chöông trình con coù taùc vuï giaûm ñòa chæ hieän haønh xuoáng
1 ñôn vò
Input : Thanh ghi HL
Output : Hieån thò ñòa chæ vaø döõ lieäu
AddTT = 01H
DOWN
PUSH PSW
HL (HL) – 1
CALL DPHLM
AddTT (01H)
POP PSW
RET
DOWN
PUSH PSW
DCX H
CALL DPHLM
MVI A,01H
STA AddTT
POP PSW
RET
DPHLM (Xem phuï luïc)
Trang 33
Thieát keá Thieát bò thöïc taäp vi xöû lí 8085
nguon tai.lieu . vn