Tải bản đầy đủ (.pdf) (11 trang)

Tài liệu đồ án vi mạch hệ vi xử lý 8085A, chương 7 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (106.24 KB, 11 trang )

Đồ án Vi mạch Trang
2
Chương 7: Giao tiếp ngoại vi
CPU giao tiếp với thế giới bên ngoài qua các thiết bò giao tiếp
ngoại vi. Trong thiết kế sử dụng 2 vi mạch 8255A nên có được 6
port giao tiếp. Các 8255A này hoạt động theo chế độ I/O. Vi xử lý
8085A có thể đònh số đòa chỉ I/O tối đa là 256 port, các đòa chỉ được
chọn cho các 8255A là:
Sử dụng vi mạch 74LS138 kết hợp với một số cổng OR để giải
mã đòa chỉ cho các vi mạch giao tiếp 8255A.
Đòa chỉ hoạt động của các vi mạch 8255A.
Dùng 74LS138 với các ngõ vào A, B và C là các đường đòa chỉ
A
4
, A
5
, và A
6
. Các đường đòa chỉ A
0
, A
1
vào trực tiếp các 8255A.
Như vậy, nếu không sử dụng các đường đòa chỉ A
2
, A
3
và A
7
thì các
đòa chỉ 14


H
, 18
H
, 90
H
và đòa chỉ 10
H
được xem là như nhau, tương tự
như vậy cho các đòa chỉ khác.
Để đònh đòa chỉ chính xác tuyệt đối thì phải sử dụng các cổng
OR và các đường đòa chỉ A
2
, A
3
và A
7
.
Đòa chỉ (Hexa) Port
10
H
Port A của 8255A-I
11
H
Port B của 8255A-I
12
H
Port C của 8255A-I
13
H
Port điều khiển của 8255A-I

20
H
Port A của 8255A-II
21
H
Port B của 8255A-II
22
H
Port C của 8255A-II
23
H
Port điều khiển của 8255A-II
Các đường đòa chỉ
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
HEXA

0 0 0 1 0 0 x x 10
H
-13
H
0 0 1 0 0 0 x x 20
H
-23
H
Tới
CS\
8255A
-
II
74138
A
4
IO/M
\
A
G
1
G
2A
\
G
2B
\
Y
7
Y

6
Y
5
Y
4
Y
3
Y
2
Đồ án Vi mạch Trang
3
Sơ đồ kết nối giải mã đòa chỉ cho giao tiếp ngoại vi
e. Jumper RAM/ROM:
Chân 27 là V
pp
đối với EPROM và là WR\ đối với RAM, ta có
thể thay đổi chức năng RAM/ROM bằng cách đặt một jumper nối
chân này lên V
cc
nếu là EPROM và nối với WR\ của CPU nếu là
RAM. Chân 1 là NC nếu là EPROM và là chân CS1 nếu là RAM,
vì thế chân này luôn được nối lên V
cc
.
Sơ đồ kết nối
6264/
2764
V
cc
V

cc
WR
\
1
27
RAM/ROM jumper
Đồ án Vi mạch Trang
4
III. Phần mềm:
1. Chương trình quét phím:
Chương trình sẽ quét bàn phím để kiểm tra xem có phím nào
được ấn hay không. Nếu phát hiện có phím được ấn thì chương trình
sẽ nhận ra phím đó bằng cách xác đònh mã hàng và mã cột của
phím đó rồi tra bảng để lấy mã của phím.
2. Chương trình quét đèn:
Dữ liệu cần hiển thò được chứa trong bộ nhớ dưới dạng nhò
phân. Để hiển thò được trên LED 7 đoạn thì các dữ liệu này phải
được đổi sang mã 7 đoạn, chương trình sẽ giúp CPU thực hiện công
việc này đồng thời cũng còn thực hiện chức năng quét đèn để hiển
thò dữ liệu lần lượt trên từng đèn vì thế mạch hiển thò được đơn
giản.
3. Chương trình minh họa:
; CHUONG TRINH LAY MA PHIM AN
GET:
LDA (KEYIN)
ANI 1Fh
CPI 1Fh
RZ ; khong co phim an
MVI B, 00h
LPROW:

RRC
JNC ROWFD ; co phim duoc an
INR B ; hang ke tiep
JMP LPROW
ROWFD:
PUSH B ; luu vi tri hang
MVI B, 00h
MVI A, 0FEh ; bat dau tu cot 0
LPCOL:
MOV D, A
Ñoà aùn Vi maïch Trang
5
STA (DRIVE)
LDA (KEYIN)
ANI 1Fh
CPI 1Fh
JNZ COLFD
MOV A, D
RLC
RNC ; du 8 cot
INR B
JMP LPCOL
COLFD: ; B = vi tri cot
POP AF ; lay lai vi tri hang
STC
CMC ; cy = 0
RAL
RAL
RAL ; hang = hang * 8
ADD B ; ma phim = hang*8 +cot

PUSH AF
LPFD:
CALL DLDIS1 ; tri hoan co hien thi
MVI A, 00h
STA (DRIVE)
LDA (KEYIN)
ANI 1Fh
CPI 1Fh
JNZ LPFD ; doi nha phim
CALL DLDIS ; tri hoan co hien thi
POP AF
LXI H, KEYTBL ; lay bang tra ma phim
CALL ADDAX
MOV A, M ; tra ma phim
STA (KEY) ; luu ma phim
MVI A, 01h
STA (KEYFLG) ; bao co phim duoc an
RET
; BANG TRA MA PHIM
KEYTBL:
DEFB 00h ; 0
Ñoà aùn Vi maïch Trang
6
DEFB 01h ; 1
DEFB 02h ; 2
DEFB 03h ; 3
DEFB 04h ; 4
DEFB 05h ; 5
DEFB 06h ; 6
DEFB 07h ; 7

DEFB 08h ; 8
DEFB 09h ; 9
DEFB 0Ah ; A
DEFB 0Bh ; B
DEFB 0Ch ; C
DEFB 0Dh ; D
DEFB 0Eh ; E
DEFB 0Fh ; F
DEFB 10h ; G
DEFB 11h ; H
DEFB 12h ; I
DEFB 13h ; J
DEFB 14h ; K
DEFB 15h ; L
DEFB 16h ; M
DEFB 17h ; N
DEFB 18h ; O
DEFB 19h ; P
DEFB 1Ah ; Q
DEFB 1Bh ; R
DEFB 1Ch ; S
DEFB 1Dh ; T
DEFB 1Eh ; U
DEFB 1Fh ; V
DEFB 20h ; W
DEFB 21h ; X
DEFB 22h ; Y
DEFB 23h ; Z
; phim chuc nang
DEFB 80h ; ESC

DEFB 81h ; PC
DEFB 82h ; '-'
DEFB 83h ; '+'
Ñoà aùn Vi maïch Trang
7
; CHUONG TRINH HIEN THI DU LIEU RA LED 7 DOAN
PUT:
MVI A, 0FEh ; tu den so 0
LHLD (DISPTR) ; con tro den vung dem
hien thi
MUX:
PUSH AF
MOV A, M
STA (SEGDRV)
POP AF
STA (DRIVE)
PUSH AF
PUSH H
CALL DLPUT ; tri hoan de nhin thay
MVI A, 00h
STA (SEGDRV)
STA (DRIVE)
LDA (KEYIN)
ANI 1Fh
CPI 1Fh
JZ LP002 ; khong co phim an
CALL GET ; doc ma phim
LP002:
LXI H, LP1
PUSH H

LHLD (MNPTR) ; thi hanh chuong trinh
co dia chi
PCHL ; duoc MNPTR chi den
LP1:
POP H
POP AF
RLC
JNC PUT ; het 8 den, bat dau
lai tu den 0
INX H
JMP MUX ; den ke tiep
; GIAI MA SO HEX RA LED 7 DOAN
DISCOD:
Ñoà aùn Vi maïch Trang
8
PUSH B
PUSH D
PUSH H
MVI B, 04h
LXI H, HEXBUF ; vung dem hien thi
LP01:
MOV A, M
ANI 0F0h
RRC
RRC
RRC
RRC
MOV D, A
MOV A, M
ANI 0Fh

MOV E, A
PUSH D
INX H
DCR B
JNZ LP01
LXI H, DISBUF + 7
MVI B, 04h
LP02:
POP D
MOV E, D
CALL SUBDIS
DCX H
CALL SUBDIS
DCX H
DCR B
JNZ LP02
POP H
POP D
POP B
RET
; Tra ma LED
SUBDIS:
MOV A, E
PUSH H
Ñoà aùn Vi maïch Trang
9
LXI H, DISTBL ; lay bang tra ma LED
CALL ADDAX
MOV A, M
POP H

MOV M, A
RET
; BANG TRA MA LED 7 DOAN
DISTBL:
DEFB 3Fh ; 0
DEFB 06h ; 1
DEFB 5Bh ; 2
DEFB 4Fh ; 3
DEFB 66h ; 4
DEFB 6Dh ; 5
DEFB 7Dh ; 6
DEFB 07h ; 7
DEFB 7Fh ; 8
DEFB 6Fh ; 9
DEFB 77h ; A
DEFB 7Ch ; B
DEFB 39h ; C
DEFB 5Eh ; D
DEFB 79h ; E
DEFB 71h ; F
; CHUONG TRINH CONG A VAO HL
ADDAX:
PUSH B
MVI B, 00h
MOV C, A
DAD B
POP B
RET
; CHUONG TRINH DOC PHIM
RDKEY:

MVI A, 00h
STA (KEYFLG)
LDA (KEY)
Ñoà aùn Vi maïch Trang
10
RET
; CAC CHUONG TRINH DELAY
DLKP:
PUSH H
LXI H, 6000h
JMP LPDL
DLPUT:
PUSH H
LXI H, 0080h
JMP LPDL
DLAYHL:
PUSH H
LPDL:
DCX H
MOV A, H
CPI 00h
JNZ LPDL
MOV A, L
CPI 00h
JNZ LPDL
POP H
RET
; CHUONG TRINH DELAY VAN HIEN THI
DLDIS:
PUSH AF

PUSH B
MVI B, 08h
LAB1:
CALL DLDIS1
DCR B
JNZ LAB1
POP B
POP AF
RET
DLDIS1:
MVI A, 0FEh
STA (DRIVE)
Ñoà aùn Vi maïch Trang
11
LDA (DISBUF)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 0FDh
STA (DRIVE)
LDA (DISBUF + 1)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 0FBh
STA (DRIVE)
LDA (DISBUF + 2)
STA (SEGDRV)

CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 0F7h
STA (DRIVE)
LDA (DISBUF + 3)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 0EFh
STA (DRIVE)
LDA (DISBUF + 4)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 0DFh
STA (DRIVE)
LDA (DISBUF + 5)
STA (SEGDRV)
CALL DLPUT
MVI A, 00h
STA (SEGDRV)
Ñoà aùn Vi maïch Trang
12
MVI A, 0BFh
STA (DRIVE)
LDA (DISBUF + 6)
STA (SEGDRV)

CALL DLPUT
MVI A, 00h
STA (SEGDRV)
MVI A, 7Fh
STA (DRIVE)
LDA (DISBUF + 7)
STA (SEGDRV)
CALL DLPUT
RET
; CAC NHAN SU DUNG
MNPTR EQU 5F20h
DISPTR EQU 5F30h ; con tro den vung
dem hien thi
DISBUF EQU 5F40h ; vung dem hien
thi
HEXBUF EQU 5F48h ; vung dem so HEXA
KEY EQU 5F70h ; chua ma phim
KEYFLG EQU 5F80h ; =1 neu co phim
nhan
KEYIN EQU 8000h
DRIVE EQU 8001h
SEGDRV EQU 8002h
SYSIO EQU 8003h

×