he thong dieu khien led ma tran
TRANSCRIPT
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN.
A. MỤC ĐÍCH:
Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. Điều khiển việc hiển thị bằng cách sử dụng LED ma trận. Ứng dụng thực hiện việc hiển thị các thông tin tĩnh và động trên LED ma trận dạng quang báo).
B. YÊU CẦU:
Nắm vững tập lệnh của vi điều khiển MCS-51. Biết cách viết các chương trình điều khiển LED ma trận ở các chế độ khác nhau. Nắm được sơ đồ và nguyên lý hoạt động của khối LED ma trận trên mô hình thí nghiệm. Nắm được nguyên lý điều khiển LED ma trận ở các chế độ khác nhau. Biết cách viết các chương trình quang báo để hiển thị các thông tin được yêu cầu (thông tin dạng tĩnh và
dạng động).
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 1: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận (COL-RED được nối với Port1 có sử
dụng bộ đệm đảo, ROW được nối với Port2).
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. Tắt nguồn cấp cho mô hình thí nghiệm. Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J95 (INPUT 1) ở khối đệm dữ liệu. Dùng dây bus 8 nối J96 (OUTPUT 1) ở khối đệm dữ liệu với J9 (COLUMN RED MATRIX) ở khối LED
ma trận. Dùng dây bus 8 nối J65 (PORT2 / A8..A15) ở khối vi điều khiển với J13 (ROW MATRIX) ở khối LED
ma trận. Dùng hai dây bus 3 nối J116 (POWER) ở khối LED ma trận và J109 (POWER) ở khối đệm dữ liệu với
nguồn +5V ở khối nguồn.
ÑEÄM - ÑAÛODÖÕ LIEÄU
INP
UT
3
OU
TP
UT
3IN
PU
T4
OU
TP
UT
4
OU
TP
UT
2IN
PU
T2
OU
TP
UT
1IN
PU
T1
PO
WE
R
LED MA TRAÄN
CO
L.
RE
D
CO
L.
GR
EE
N
POWER ROW MAT.
VI ÑIEÀU KHIEÅN
PO
RT
0
A0..A7
PO
RT
1P
OR
T 3
PO
RT
2
SELECT CHIP
CLOCK OUT
PO
RT
1P
OR
T 3
40
PIN
S
20
PIN
S
POWERSW
NGUOÀN
+5V
3
8
8
8
3
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0AD1AD2AD3AD4AD5AD6
AD7AD6AD5AD4AD3AD2AD1
Q1
Q8
Q2
Q7
Q6
Q5
Q4
Q3
Q8Q7Q6Q5Q4Q3Q2Q1
P1.0 P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7 COL7
COL6COL5COL4COL3COL2COL1COL0
P1.1P1.2P1.3P1.4P1.5P1.6P1.7
RO
W7
RO
W6
RO
W5
RO
W4
RO
W3
RO
W2
RO
W1
RO
W0
COL0COL1COL2COL3COL4COL5COL6COL7
RO
W0
RO
W1
RO
W2
RO
W3
RO
W4
RO
W5
RO
W6
RO
W7
COL0
ROW7ROW6ROW5ROW4ROW3ROW2ROW1ROW0
COL1COL2COL3COL4COL5COL6COL7
XTAL218
XTAL119
ALE30
EA31
PSEN29
RST9
P0.0/AD039
P0.1/AD138
P0.2/AD237
P0.3/AD336
P0.4/AD435
P0.5/AD534
P0.6/AD633
P0.7/AD732
P1.01
P1.12
P1.23
P1.34
P1.45
P1.56
P1.67
P1.78
P3.0/RXD10
P3.1/TXD11
P3.2/INT012
P3.3/INT113
P3.4/T014
P3.7/RD17
P3.6/WR16
P3.5/T115
P2.7/A1528
P2.0/A821
P2.1/A922
P2.2/A1023
P2.3/A1124
P2.4/A1225
P2.5/A1326
P2.6/A1427
U1
AT89C51
C133p
C233p
X112MHz
23456789
1
RP1
10K
+5
V
MAÏCH ÑIEÀU KHIEÅN LED MA TRAÄN
Q1A1015
+5V
Q2A1015
+5V
R21K
R31K
Q3A1015
+5V
Q4A1015
+5V
R111K
R121K
Q5A1015
+5V
Q6A1015
+5V
R131K
R141K
Q7A1015
+5V
Q8A1015
+5V
R151K
R161K
1B1
2B2
3B3
4B4
5B5
6B6
7B7
8B8
1C18
2C17
3C16
4C15
5C14
6C13
7C12
8C11
COM10
U2
ULN2803
ROW COLUMN+5V
23456789
1
RP2
10K
+5V
C310uF
R110k
+5V
Caùc ñieän trôû naøy chæ söû duïngkhi ta chaïy moâ phoûng
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 1: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận (COL-RED được nối với Port1 có sử
dụng bộ đệm đảo, ROW được nối với Port2).
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
Cách 1:
;*************************************************** ;CHUONG TRINH HIEN THI KY TU A TREN MA TRAN LED ;***************************************************
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 1: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận (COL-RED được nối với Port1 có sử
dụng bộ đệm đảo, ROW được nối với Port2).
;KET NOI ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO) ;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV P2,#07H ;XUAT MA HIEN THI RA HANG MOV P1,#01H ;XUAT MA QUET RA COT 1 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#0DBH ;XUAT MA HIEN THI RA HANG MOV P1,#02H ;XUAT MA QUET RA COT 2 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#0DDH ;XUAT MA HIEN THI RA HANG MOV P1,#04H ;XUAT MA QUET RA COT 3 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#0DBH ;XUAT MA HIEN THI RA HANG MOV P1,#08H ;XUAT MA QUET RA COT 4 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#07H ;XUAT MA HIEN THI RA HANG MOV P1,#10H ;XUAT MA QUET RA COT 5 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#0FFH ;XUAT MA HIEN THI RA HANG MOV P1,#20H ;XUAT MA QUET RA COT 6 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#0FFH ;XUAT MA HIEN THI RA HANG MOV P1,#40H ;XUAT MA QUET RA COT 7 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#0FFH ;XUAT MA HIEN THI RA HANG MOV P1,#80H ;XUAT MA QUET RA COT 8 LCALL DELAYLED MOV P1,#00H ;CHONG LEM LJMP MAIN ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 1: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận (COL-RED được nối với Port1 có sử
dụng bộ đệm đảo, ROW được nối với Port2).
Cách 2:
CẤT TẠM GIÁ TRỊ CỦA ACC, R0, R1 VÀO STACK
SCANMATRIXSTANAME: SCANMATRIXSTA - QUÉT HIỂN THỊ LED MA TRẬN.INPUT: DPTR = VÙNG NHỚ CHỨA DỮ LIỆU HIỂN THỊ. OUTPUT: P1 = CỘT MA TRẬN (CÓ SỬ DỤNG BỘ ĐẢO).
P2 = HÀNG MA TRẬN. MODE: HIỂN THỊ HÌNH ẢNH TĨNH 8 x 8, QUÉT CỘT (TÍCH
CỰC MỨC 1), HIỂN THỊ HÀNG (TÍCH CỰC MỨC 0).
SCANMATRIXSTA:
LẤY LẠI GIÁ TRỊ CHO ACC, R0, R1 TỪ STACK
NẠP VỊ TRÍ CỦA DỮ LIỆU HÀNG CHO CỘT ĐẦU TIÊN TRONG VÙNG MÃ (OFFSET CỦA DỮ LIỆU ĐẦU TIÊN)
(R0) = 00H
NẠP MÃ QUÉT CHO CỘT ĐẦU TIÊN(R1) = 00000001B = 01H
SCAN:
XUẤT MÃ QUÉT RA CỘT(P1) = (R1)
GỌI CTC TẠO TRỄ CHO 1 LEDDELAYLED
LẤY VỊ TRÍ CỦA DỮ LIỆU HÀNG CHO CỘT KẾ TIẾP TRONG VÙNG MÃ (OFFSET CỦA DỮ LIỆU KẾ TIẾP)
(R0) = (R0) + 1
CHỐNG LEM - BỎ CHỌN CỘT(P1) = 00000000B = 00H
DỊCH MÃ QUÉT CỘTRL A - QUÉT CỘT KẾ TIẾP
QUÉT LED ?(CHƯA QUÉT XONG)
Đ
S
RET
DELAYLED(XEM CTC NÀY TẠI VÍ DỤ B3.1 MBI)
NẠP ĐỊA CHỈ VÙNG MÃ(DPTR) = CODEDISP
BEGIN
GỌI CTC QUÉT LED MA TRẬNSCANMATRIXSTA
MAIN:
C1.2
LẤY DỮ LIỆU HIỂN THỊ HÀNG TRONG VÙNG MÃ THEO VỊ TRÍ ĐÃ XÁC ĐỊNH
(A) = (R0)(A) = (@A+DPTR)
XUẤT DỮ LIỆU HIỂN THỊ RA HÀNG(P2) = (A)
VÙNG DỮ LIỆU HIỂN THỊ CODEDISP07H,DBH,DDH,DBH,07H,FFH,FFH,FFH
;*************************************************** ;CHUONG TRINH HIEN THI KY TU A TREN MA TRAN LED ;*************************************************** ;KET NOI ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO) ;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI LCALL SCANMATRIXSTA ;HIEN THI DU LIEU LJMP MAIN ;*************************************************** ;CTC QUET MA TRAN 8 X 8. ;***************************************************
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 1: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận (COL-RED được nối với Port1 có sử
dụng bộ đệm đảo, ROW được nối với Port2).
;NAME: SCANMATRIXSTA. ;OUTPUT: P1 = COLUMN MATRIX (NOT BUFFER). ; P2 = ROW MATRIX. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI. ;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0). ;*************************************************** SCANMATRIXSTA: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#00H ;VI TRI CUA DU LIEU COT DAU TIEN TRONG VUNG MA MOV R1,#01H ;MA QUET COT DAU TIEN SCAN: MOV A,R0 MOVC A,@A+DPTR ;LAY MA HIEN THI TRONG VUNG MA THEO VI TRI MOV P2,A ;XUAT MA HIEN THI RA HANG MOV P1,R1 ;XUAT MA QUET RA COT LCALL DELAYLED MOV P1,#00H ;CHONG LEM INC R0 ;LAY DU LIEU KE TIEP MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP RL A MOV R1,A CJNE R0,#08H,SCAN ;KIEM TRA QUET CAC COT (MA TRAN GOM 8 COT) POP 01H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP 00H POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** CODEDISP: DB 07H,0DBH,0DDH,0DBH,07H,0FFH,0FFH,0FFH ;CHU A END
1.4 Lưu chương trình và biên dịch chương trình.
1.5 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.6 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.7 Nạp chương trình vào vi điều khiển.
1.8 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.9 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: Bài 1: Hãy viết chương trình điều khiển hiển thị chữ M màu đỏ trên LED ma trận (COL-RED được nối với
Port1, ROW được nối với Port2). Bài 2: Hãy viết chương trình điều khiển hiển thị số 8 màu xanh trên LED ma trận (COL-GRE được nối với
Port1, ROW được nối với Port2). Bài 3: Hãy viết chương trình điều khiển hiển thị chữ A màu vàng trên LED ma trận (COL-RED được nối
với Port 1, COL-GRE được nối với Port2, ROW được nối với Port3). Bài 4: Hãy lập bảng mã cho tất cả các ký tự chữ, ký tự số và ký tự đặc biệt có trên bàn phím máy tính. Và
thử đưa các mã đã lập này vào chương trình điều khiển hiển thị ở trên để xem hình ảnh chúng như thế nào? Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 2: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận sáng tắt (COL-RED được nối với
Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Sơ đồ nguyên lý của hệ thống: Sơ đồ nguyên lý của hệ thống tương tự như Bài 1.
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
DELAYLED(XEM CTC NÀY TẠI VÍ DỤ B3.1 MBI)
VÙNG DỮ LIỆU HIỂN THỊ CODEDISP07H,DBH,DDH,DBH,07H,FFH,FFH,FFH
NẠP ĐỊA CHỈ VÙNG MÃ(DPTR) = CODEDISP
BEGIN
GỌI CTC QUÉT LED MA TRẬNSCANMATRIXSTA
MAIN:
C2
NẠP THỜI GIAN HIỂN THỊ(R0) = 50 - SỐ LẦN QUÉT
MP1:
Đ
S
GIÃM SỐ LẦN QUÉT - HIỂN THỊ
SỐ LẦN QUÉT ≠ 0(CHƯA QUÉT XONG)
GỌI CTC TẮT HIỂN THỊ LEDTATLED
SCANMATRIXSTA(XEM CTC NÀY TẠI VÍ DỤ C1.2)
TATLEDCHƯƠNG TRÌNH TẠO TRỄ 1S
CẤT TẠM GIÁ TRỊ CỦA R0 VÀO STACK
NẠP GIÁ TRỊ VÒNG LẶP(R0) = 100
DEL:
GIÃM SỐ LẦN LẶP
SỐ LẦN LẶP ≠ 0(CHƯA LẶP XONG)
Đ
SLẤY LẠI GIÁ TRỊ CHO R0 TỪ
STACK
RET
KHỞI ĐỘNG TIMER(TIMER 0, MODE 1)
(TMOD) = 01H
NẠP GIÁ TRỊ CHO TIMER(TDELAY = 10000.TMÁY)
(TH0/TL0) = -10000 = D8F0H
CHƯA ĐỦ THỜI GIAN(TF0) = 0
Đ
S
CHO TIMER HOẠT ĐỘNG(TR0) = 1
DỪNG TIMER(TR0) = 0
XÓA CỜ TRÀN TIMER(TF0) = 0
TATLED:
;*************************************************** ;CHUONG TRINH HIEN THI KY TU A CHOP TAT TREN MA TRAN LED ;*************************************************** ;KET NOI ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO) ;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MOV R0,#50 ;BIEN LAP - THOI GIAN CUA 1 TRANG THAI MAN HINH LED
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 2: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận sáng tắt (COL-RED được nối với
Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
MP1: LCALL SCANMATRIXSTA ;HIEN THI DU LIEU DJNZ R0,MP1 LCALL TATLED ;TAT MA TRAN LED LJMP MAIN ;*************************************************** ;CTC QUET MA TRAN 8 X 8. ;*************************************************** ;NAME: SCANMATRIXSTA. ;OUTPUT: P1 = COLUMN MATRIX (NOT BUFFER). ; P2 = ROW MATRIX. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI. ;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0). ;*************************************************** SCANMATRIXSTA: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#00H ;VI TRI CUA DU LIEU COT DAU TIEN TRONG VUNG MA MOV R1,#01H ;MA QUET COT DAU TIEN SCAN: MOV A,R0 MOVC A,@A+DPTR ;LAY MA HIEN THI TRONG VUNG MA THEO VI TRI MOV P2,A ;XUAT MA HIEN THI RA HANG MOV P1,R1 ;XUAT MA QUET RA COT LCALL DELAYLED MOV P1,#00H ;CHONG LEM INC R0 ;LAY DU LIEU KE TIEP MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP RL A MOV R1,A CJNE R0,#08H,SCAN ;KIEM TRA QUET CAC COT (MA TRAN GOM 8 COT) POP 01H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP 00H POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** TATLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 1S PUSH 00H MOV R0,#100 MOV TMOD,#01H TAT: MOV TH0,#0D8H MOV TL0,#0F0H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,TAT POP 00H RET ;*************************************************** CODEDISP: DB 07H,0DBH,0DDH,0DBH,07H,0FFH,0FFH,0FFH ;CHU A END
1.4 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập:
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 2: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận sáng tắt (COL-RED được nối với
Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
Bài 1: Hãy viết chương trình điều khiển hiển thị chữ W màu đỏ sáng tắt trên LED ma trận (COL-RED được nối với Port1, ROW được nối với Port2).
Bài 2: Hãy viết chương trình điều khiển hiển thị số 0 màu xanh sáng tắt trên LED ma trận (COL-GRE được nối với Port1, ROW được nối với Port2).
Bài 3: Hãy viết chương trình điều khiển hiển thị chữ H màu vàng sáng tắt trên sáng tắt LED ma trận (COL-RED được nối với Port 1, COL-GRE được nối với Port2, ROW được nối với Port3).
Bài 4: Hãy viết chương trình điều khiển hiển thị liên tục chữ A sáng màu đỏ, sau đó là màu xanh và cuối cùng là màu vàng trên LED ma trận (COL-RED được nối với Port 1, COL-GRE được nối với Port2, ROW được nối với Port3).
Bài 5: Hãy lập bảng mã cho tất cả các ký tự chữ, ký tự số và ký tự đặc biệt có trên bàn phím máy tính. Và thử đưa các mã đã lập này vào chương trình điều khiển hiển thị ở trên để xem hình ảnh chúng như thế nào?
Bài 6: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 3: Chương trình điều khiển hiển thị lần lượt các chữ A, B, C, a, b, c màu đỏ trên LED ma trận (COL-RED
được nối với Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Sơ đồ nguyên lý của hệ thống: Sơ đồ nguyên lý của hệ thống tương tự như Bài 1.
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
DELAYLED(XEM CTC NÀY TẠI VÍ DỤ B3.1 MBI)
VÙNG DỮ LIỆU HIỂN THỊ CODEDISP07H,DBH,DDH,DBH,07H,FFH,FFH,FFH ;CHỮ A01H,6DH,6DH,6DH,93H,FFH,FFH,FFH ;CHỮ B83H,7DH,7DH,7DH,BBH,FFH,FFH,FFH ;CHỮ CBFH,57H,57H,57H,0FH,FFH,FFH,FFH ;CHỮ a01H,6FH,77H,77H,8FH,FFH,FFH,FFH ;CHỮ b8FH,77H,77H,77H,BFH,FFH,FFH,FFH ;CHỮ c
NẠP ĐỊA CHỈ VÙNG MÃ(DPTR) = CODEDISP
BEGIN
GỌI CTC QUÉT LED MA TRẬNSCANMATRIXSTA
MAIN:
C3
NẠP THỜI GIAN HIỂN THỊ 1 HÌNH ẢNH(R0) = 50 - SỐ LẦN QUÉT/TỐC ĐỘ ĐỔI HÌNH
MP1:
Đ
S
GIÃM SỐ LẦN QUÉT - HIỂN THỊ
SỐ LẦN QUÉT ≠ 0
(CHƯA QUÉT XONG)
DỊCH ĐỊA CHỈ VÙNG MÃ ĐI MỘT KHUNG MÀN HÌNH LED (8 VỊ TRÍ)
(DPTR) = (DPTR) + 8
MP2:
Đ
S
CHƯA HẾT VÙNG MÃCODEDISP+48)
SCANMATRIXSTA(XEM CTC NÀY TẠI VÍ DỤ C1.2)
;*************************************************** ;CHUONG TRINH HIEN THI CHUOI KY TU A,B,C,a,b,c LAN LUOT TREN MA TRAN LED ;*************************************************** ;KET NOI ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO) ;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0) ;***************************************************
ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MP1: MOV R0,#50 ;BIEN LAP - THOI GIAN CUA 1 TRANG THAI MAN HINH LED MP2: LCALL SCANMATRIXSTA ;HIEN THI DU LIEU DJNZ R0,MP2 MOV A,DPL ;DICH DEN DIA CHI CUA KY TU KE TIEP ADD A,#8 ;ADDNEXT = ADDPREV + 8 (DO DAI KY TU = 8) MOV DPL,A CJNE A,#LOW(CODEDISP+48),MP1 ;KIEM TRA HIEN THI XONG TAT CA CAC CHUOI LJMP MAIN ;*************************************************** ;CTC QUET MA TRAN 8 X 8. ;*************************************************** ;NAME: SCANMATRIXSTA. ;OUTPUT: P1 = COLUMN MATRIX (NOT BUFFER). ; P2 = ROW MATRIX. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI. ;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0). ;*************************************************** SCANMATRIXSTA: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#00H ;VI TRI CUA DU LIEU COT DAU TIEN TRONG VUNG MA MOV R1,#01H ;MA QUET COT DAU TIEN SCAN: MOV A,R0 MOVC A,@A+DPTR ;LAY MA HIEN THI TRONG VUNG MA THEO VI TRI MOV P2,A ;XUAT MA HIEN THI RA HANG MOV P1,R1 ;XUAT MA QUET RA COT
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 3: Chương trình điều khiển hiển thị lần lượt các chữ A, B, C, a, b, c màu đỏ trên LED ma trận (COL-RED
được nối với Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
LCALL DELAYLED MOV P1,#00H ;CHONG LEM INC R0 ;LAY DU LIEU KE TIEP MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP RL A MOV R1,A CJNE R0,#08H,SCAN ;KIEM TRA QUET XONG CAC COT (MA TRAN GOM 8 COT) POP 01H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP 00H POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** CODEDISP: DB 07H,0DBH,0DDH,0DBH,07H,0FFH,0FFH,0FFH ;CHU A DB 01H,6DH,6DH,6DH,93H,0FFH,0FFH,0FFH ;CHU B DB 83H,7DH,7DH,7DH,0BBH,0FFH,0FFH,0FFH ;CHU C DB 0BFH,57H,57H,57H,0FH,0FFH,0FFH,0FFH ;CHU a DB 01H,6FH,77H,77H,8FH,0FFH,0FFH,0FFH ;CHU b DB 8FH,77H,77H,77H,0BFH,0FFH,0FFH,0FFH ;CHU c END
1.4 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: Bài 1: Hãy viết chương trình điều khiển hiển thị số đếm BCD từ 0 lên 9 màu đỏ trên LED ma trận (COL-
RED được nối với Port1, ROW được nối với Port2). Bài 2: Hãy viết chương trình điều khiển hiển thị số đếm BCD từ 9 xuống 0 màu xanh trên LED ma trận
(COL-GRE được nối với Port1, ROW được nối với Port2). Bài 3: Hãy viết chương trình điều khiển hiển thị các ký tự từ A đến Z màu đỏ trên LED ma trận (COL-
RED được nối với Port1, ROW được nối với Port2). Bài 4: Hãy viết chương trình điều khiển hiển thị các ký tự từ Z đến A màu xanh trên LED ma trận (COL-
GRE được nối với Port1, ROW được nối với Port2). Bài 5: Hãy viết chương trình điều khiển hiển thị số đếm BCD từ 0 đến 9 trên LED ma trận (COL-GRE
được nối với Port1, ROW được nối với Port2). Với điều kiện màu của các số sẽ thay đổi liên tục ĐỎ – XANH – VÀNG mỗi khi con số trên LED ma trận thay đổi.
Bài 6: Hãy viết chương trình điều khiển hiển thị các ký tự từ A đến Z trên LED ma trận (COL-GRE được nối với Port1, ROW được nối với Port2). Với điều kiện màu của các ký tự sẽ thay đổi liên tục ĐỎ – XANH – VÀNG sau mỗi một giây đồng hồ.
Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 4: Chương trình điều khiển hiển thị chuỗi ký tự “WELCOME” màu đỏ trên LED ma trận dịch chuyển từ
phải sang trái (COL-RED được nối với Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Sơ đồ nguyên lý của hệ thống: Sơ đồ nguyên lý của hệ thống tương tự như Bài 1.
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
DELAYLED(XEM CTC NÀY TẠI VÍ DỤ B3.1 MBI)
VÙNG DỮ LIỆU HIỂN THỊ CODEDISP81H,7FH,87H,7FH,81H,FFH ;CHỮ W01H,6DH,6DH,6DH,7DH,FFH ;CHỮ E01H,7FH,7FH,7FH,7FH,FFH ;CHỮ L83H,7DH,7DH,7DH,BBH,FFH ;CHỮ C83H,7DH,7DH,7DH,83H,FFH ;CHỮ O01H,FBH,F7H,FBH,01H,FFH ;CHỮ M01H,6DH,6DH,6DH,7DH,FFH ;CHỮ E
NẠP ĐỊA CHỈ VÙNG MÃ(DPTR) = CODEDISP
BEGIN
GỌI CTC QUÉT LED MA TRẬNSCANMATRIXSTA
MAIN:
C4
NẠP THỜI GIAN HIỂN THỊ 1 TRẠNG THÁI(R0) = 20 - SỐ LẦN QUÉT/TỐC ĐỘ DỊCH
MP1:
Đ
S
GIÃM SỐ LẦN QUÉT - HIỂN THỊ
SỐ LẦN QUÉT ≠ 0
(CHƯA QUÉT XONG)
DỊCH ĐỊA CHỈ VÙNG MÃ ĐI MỘT CỘT MÀN HÌNH LED (1 VỊ TRÍ)
(DPTR) = (DPTR) + 1
MP2:
Đ
S
CHƯA HẾT VÙNG MÃCODEDISP+42)
SCANMATRIXSTA(XEM CTC NÀY TẠI VÍ DỤ C1.2)
;*************************************************** ;CHUONG TRINH HIEN THI CHUOI KY TU WELLCOME LAN LUOT TREN MA TRAN LED ;*************************************************** ;ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO) ;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MP1: MOV R0,#20 ;BIEN LAP - THOI GIAN CUA 1 TRANG THAI MAN HINH LED MP2: LCALL SCANMATRIXSTA ;HIEN THI DU LIEU DJNZ R0,MP2 INC DPTR ;DICH CHUOI DI MOT MA KY TU MOV A,DPL CJNE A,#LOW(CODEDISP+42),MP1 ;KIEM TRA HIEN THI XONG CHUOI SJMP MAIN ;SO MA KY TU CUA CHUOI = 7 KY TU * 6 MA = 42 MA KY TU ;*************************************************** ;CTC QUET MA TRAN 8 X 8. ;*************************************************** ;NAME: SCANMATRIXSTA. ;OUTPUT: P1 = COLUMN MATRIX (NOT BUFFER). ; P2 = ROW MATRIX. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI. ;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0). ;*************************************************** SCANMATRIXSTA: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#00H ;VI TRI CUA DU LIEU COT DAU TIEN TRONG VUNG MA MOV R1,#01H ;MA QUET COT DAU TIEN SCAN: MOV A,R0 MOVC A,@A+DPTR ;LAY MA HIEN THI TRONG VUNG MA THEO VI TRI MOV P2,A ;XUAT MA HIEN THI RA HANG
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 4: Chương trình điều khiển hiển thị chuỗi ký tự “WELCOME” màu đỏ trên LED ma trận dịch chuyển từ
phải sang trái (COL-RED được nối với Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
MOV P1,R1 ;XUAT MA QUET RA COT LCALL DELAYLED MOV P1,#00H ;CHONG LEM INC R0 ;LAY DU LIEU KE TIEP MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP RL A MOV R1,A CJNE R0,#08H,SCAN ;KIEM TRA QUET XONG CAC COT (MA TRAN GOM 8 COT) POP 01H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP 00H POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** CODEDISP: DB 81H,7FH,87H,7FH,81H,0FFH ;CHU W DB 01H,6DH,6DH,6DH,7DH,0FFH ;CHU E DB 01H,7FH,7FH,7FH,7FH,0FFH ;CHU L DB 83H,7DH,7DH,7DH,0BBH,0FFH ;CHU C DB 83H,7DH,7DH,7DH,83H,0FFH ;CHU O DB 01H,0FBH,0F7H,0FBH,01H,0FFH ;CHU M DB 01H,6DH,6DH,6DH,7DH,0FFH ;CHU E END
1.4 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: Bài 1: Hãy viết chương trình điều khiển hiển thị chuỗi ký tự “KHOA DIEN TU” màu xanh dịch chuyển từ
phải sang trái trên LED ma trận (COL-GRE được nối với Port1, ROW được nối với Port2). Bài 2: Hãy viết chương trình điều khiển hiển thị chuỗi ký tự “TRUONG DAI HOC CONG NGHIEP TP
HO CHI MINH – KHOA DIEN TU” màu đỏ dịch chuyển từ phải sang trái trên LED ma trận (COL-RED được nối với Port1, ROW được nối với Port2).
Bài 3: Hãy viết chương trình điều khiển hiển thị tương tự như bài tập 1 và 2 nhưng màu của ma trận LED sẽ thay đổi liên tục ĐỎ – XANH – VÀNG sau mỗi một giây đồng hồ.
Bài 4: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.