TRƯỜNG ĐH SƯ PHẠM KĨ THUẬT TP.HCM
KHOA CƠ KHÍ CHẾ TẠO MÁY
BỘ MÔN CƠ ĐIỆN TỬ
♦♦♦♦♦♦♦
BÁO CÁO GIỮA KÌ VI ĐIỀU KHIỂN
ĐỀ TÀI: BỐN LED MA TRẬN
GVHD:
LÊ TẤN CƯỜNG
SVTH:
Nguyễn Minh Tuấn MSSV: 05111112
I. GIỚI THIỆU PHẦN CỨNG:
1. Giới Thiệu Chung:
Modul điều khiển sử dụng vi điều khiển AT89s52.
+ Sử dụng Vi điều khiển AT89S52
+ Thạch anh dao động 12MHz
+ Sử dụng port0 của vi điều khiển để đưa mã chữ vào các hàng.
+ Port P2.0 đưa dữ liệu cho màu đỏ của led.
+ Port P2.1 xung clock để quét cột đỏ.
+ Port P2.0 đưa dữ liệu cho màu xanh của led.
+ Port P2.1 xung clock để quét cột xanh.
Modul điều khiển sử dụng ATMega32:
+ Sử dụng vi điều khiển ATmega32.
+ Gồm có: 32Kbytes bộ nhớ Flash bên trong, 2Kbytes SRAM, 1024Bytes
EEPROM.
+ Sử dụng thạch anh 16MHz.
+ Sử dụng PortB để đưa mã chữ vào, PortA với các chân A.0, A.1, A.2, A.3 lần
lượt là data màu đỏ, xung màu đỏ, data màu xanh, xung màu xanh.
Bộ phận thực hiện gồm có 4 led ma trận (8*8)
hai màu xanh và đỏ.
Nguyên lý hoạt động:
Sử dụng một port điều khiển các transistor đóng ngắt để
đưa mã chữ để quét hàng. Để hiển thị được trên led
thì ta cho phép cột tương ứng của led sáng(thông qua
các chân của PortA để điều khiển 74HC164).
Mạch này thực hiện thực hiện theo phương pháp quét
lặp lại(truy xuất vào ô nhớ nào đó một cách liên tục rồi
quét lặp đi lặp lại nhiều lần với tần số cao, sau một
thời gian định trước sẽ chuyển sang ô nhớ tiếp theo).
Muốn cho màu đỏ sáng thì cho cột đỏ đó sáng, màu
xanh sáng thì cho cột xanh đó sáng, muốn 2 màu đều
sáng thì cho cả 2 cột xanh và đỏ đó sáng. Tại 1 thời
điểm trên bảng led chỉ cho phép 1 cột led sáng, nhưng
do thời gian quét rất nhanh nên ta thấy chữ hiện liên
tục.
2. Kết Nối Phần Cứng:
♦ Vấn đề đặt ra là quét 4 led theo phương pháp tiết kiệm port.
Sử dụng IC ghi dịch 74HC164 để quét 32 cột, thông qua IC ULN2803 để đệm
dòng cho led.
♦ Tám hàng của led được điều khiển bởi 8 transitor PNP A1015, các transitor
này được kích dẫn bởi Vi điều khiển thông qua IC đệm đảo ULN2803.
3. Sơ Đồ Nguyên Lý:
•
4 Led Ma Trận:
C 5
R 1
G 1 1
G 1 7
G 3 1
C 2 C 2
R 6
G 4
R 1 3
R 1 9 G 2 7
C 7
C 1
G 1 6
C 4
C 7
C 4
G 2 3
R 2 9
R 2
G 1 2
G 1 8
G 3 2
C 4
C 3 C 6
R 7
G 5
R 1 4
R 2 0
C 8
C 2
R 9
C 6
C 8
G 2 4
G 2 8
R 3
C 1
C 6
G 1
U 4
M A T R I X N H O
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
2 0
1 9
1 8
1 7
1 6
1 5
1 4
1 3
2 1
2 2
2 3
2 4
C 1
C 2
C 3
C 4
G 1
G 2
G 3
G 4
G 5
G 6
G 7
G 8
R 1
R 2
R 3
R 4
R 5
R 6
R 7
R 8
C 5
C 6
C 7
C 8
C 1
G 1 3
G 1 9
R 2 5
C 3
R 8
R 3 0G 6
R 1 5
R 2 1
C 3
R 1 0
C 5
C 7
R 1 7
R 2 4
U 2
M A T R I X N H O
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
2 0
1 9
1 8
1 7
1 6
1 5
1 4
1 3
2 1
2 2
2 3
2 4
C 1
C 2
C 3
C 4
G 1
G 2
G 3
G 4
G 5
G 6
G 7
G 8
R 1
R 2
R 3
R 4
R 5
R 6
R 7
R 8
C 5
C 6
C 7
C 8
C 1
G 2 0
R 2 6
C 5
R 4
G 9
G 2 9
U 3
M A T R I X N H O
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
2 0
1 9
1 8
1 7
1 6
1 5
1 4
1 3
2 1
2 2
2 3
2 4
C 1
C 2
C 3
C 4
G 1
G 2
G 3
G 4
G 5
G 6
G 7
G 8
R 1
R 2
R 3
R 4
R 5
R 6
R 7
R 8
C 5
C 6
C 7
C 8
G 2
G 7
R 2 2G 1 4
C 4
R 1 1
R 3 1
C 6
G 2 5
R 1 6
C 7 C 2
G 2 1
R 2 7
G 8
G 1 0 R 1 8
G 3 0
C 8 C 8
R 2 3
R 5
R 1 2
R 3 2
G 3
G 2 6
U 1
M A T R I X N H O
1
2
3
4
5
6
7
8
9
1 0
1 1
1 2
2 0
1 9
1 8
1 7
1 6
1 5
1 4
1 3
2 1
2 2
2 3
2 4
C 1
C 2
C 3
C 4
G 1
G 2
G 3
G 4
G 5
G 6
G 7
G 8
R 1
R 2
R 3
R 4
R 5
R 6
R 7
R 8
C 5
C 6
C 7
C 8
C 5
G 1 5
C 3
G 2 2
R 2 8
Phần Điều Khiển Hàng:
R 7
1 K
Q 8
P N P E C B
C 2
J 1
C O N 8
1
2
3
4
5
6
7
8
R 2 1 K
D A T A X A N H
C 7
R 3 1 K
V C C _ A R R O W
V C C _ A R R O W
C L K X A N H
Q 2
P N P E C B
C 1
C 6
R 1 1 K
V C C _ A R R O W
Q 5
P N P E C B
J 2
C O N 4
1
2
3
4
C 5
J 3
C O N 2
1
2
V C C _ A R R O W
Q 1
P N P E C B
R 8
1 K
Q 3
P N P E C B
D A T A D O
V C C _ A R R O W
V C C _ A R R O W
C 4
V C C _ A R R O W
R 4
1 K
Q 7
P N P E C B
Q 4
P N P E C B
V C C _ A R R O W
U 5
U L N 2 8 0 3
1 0
9
1
2
3
4
5
6
7
8
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1
C O M
G N D
I N 1
I N 2
I N 3
I N 4
I N 5
I N 6
I N 7
I N 8
O U T 1
O U T 2
O U T 3
O U T 4
O U T 5
O U T 6
O U T 7
O U T 8
R 9
R E S I S T O R S I P 9
12
3
4
5
6
7
8
9
R 5
1 K
C 3
R 6
1 K
C 8
V C C _ A R R O W
C L K D O
V C C _ A R R O W
V C C _ A R R O W
Q 6
P N P E C B
Phần Quét Cột Màu Đỏ:
R 2
R 2 2
U 9
U L N 2 8 0 3
109
1
2
3
4
5
6
7
8
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1
COMGND
I N 1
I N 2
I N 3
I N 4
I N 5
I N 6
I N 7
I N 8
O U T 1
O U T 2
O U T 3
O U T 4
O U T 5
O U T 6
O U T 7
O U T 8
U 8
7 4 H C 1 6 4
7
8
9
14
3
4
5
6
1 0
1 1
1 2
1 3
1
2
GND
C L K
CLR
VCC
Q A
Q B
Q C
Q D
Q E
Q F
Q G
Q H
A
B
R 7
R 1 6 R 3 2
U 6
7 4 H C 1 6 4
7
8
9
14
3
4
5
6
1 0
1 1
1 2
1 3
1
2
GND
C L K
CLR
VCC
Q A
Q B
Q C
Q D
Q E
Q F
Q G
Q H
A
B
U 1 1
U L N 2 8 0 3
10
9
1
2
3
4
5
6
7
8
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1
COM
GND
I N 1
I N 2
I N 3
I N 4
I N 5
I N 6
I N 7
I N 8
O U T 1
O U T 2
O U T 3
O U T 4
O U T 5
O U T 6
O U T 7
O U T 8
R 1 1
R 2 8
R 1 8
R 3
R 2 3
V C C _ A R R O W
R 8
V C C _ A R R O W
V C C _ A R R O W
R 1 2
U 7
U L N 2 8 0 3
109
1
2
3
4
5
6
7
8
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1
COMGND
I N 1
I N 2
I N 3
I N 4
I N 5
I N 6
I N 7
I N 8
O U T 1
O U T 2
O U T 3
O U T 4
O U T 5
O U T 6
O U T 7
O U T 8
U 1 0
7 4 H C 1 6 4
7
8
9
14
3
4
5
6
1 0
1 1
1 2
1 3
1
2
GND
C L K
CLR
VCC
Q A
Q B
Q C
Q D
Q E
Q F
Q G
Q H
A
B
R 2 4
R 2 9
U 1 2
7 4 H C 1 6 4
7
8
9
14
3
4
5
6
1 0
1 1
1 2
1 3
1
2
GND
C L K
CLR
VCC
Q A
Q B
Q C
Q D
Q E
Q F
Q G
Q H
A
B
R 1 9
R 4
R 1 3
R 2 5
V C C _ A R R O WV C C _ A R R O W
R 9
R 2 0
U 1 3
U L N 2 8 0 3
109
1
2
3
4
5
6
7
8
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1
COMGND
I N 1
I N 2
I N 3
I N 4
I N 5
I N 6
I N 7
I N 8
O U T 1
O U T 2
O U T 3
O U T 4
O U T 5
O U T 6
O U T 7
O U T 8
R 5
R 1 4 R 3 0
R 1
R 2 6
D A T A D O
R 2 1
R 6
R 1 5
V C C _ A R R O W
R 3 1
V C C _ A R R O W V C C _ A R R O W
R 1 0
R 1 7
R 2 7
C L K D O
Phần Quét Cột Màu Xanh:
G 1 1
G 1
G 8
U 1 7
U L N 2 8 0 3
109
1
2
3
4
5
6
7
8
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1
COMGND
I N 1
I N 2
I N 3
I N 4
I N 5
I N 6
I N 7
I N 8
O U T 1
O U T 2
O U T 3
O U T 4
O U T 5
O U T 6
O U T 7
O U T 8
V C C _ A R R O W
V C C _ A R R O W
G 6
G 2 6
G 1 9
G 1 2
G 2 4
U 1 9
U L N 2 8 0 3
10
9
1
2
3
4
5
6
7
8
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1
COM
GND
I N 1
I N 2
I N 3
I N 4
I N 5
I N 6
I N 7
I N 8
O U T 1
O U T 2
O U T 3
O U T 4
O U T 5
O U T 6
O U T 7
O U T 8
V C C _ A R R O W
D A T A X A N H
G 1 5
U 2 1
U L N 2 8 0 3
109
1
2
3
4
5
6
7
8
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1
COMGND
I N 1
I N 2
I N 3
I N 4
I N 5
I N 6
I N 7
I N 8
O U T 1
O U T 2
O U T 3
O U T 4
O U T 5
O U T 6
O U T 7
O U T 8
G 3 0
G 2 0
G 2 9
U 1 5
U L N 2 8 0 3
109
1
2
3
4
5
6
7
8
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1
COMGND
I N 1
I N 2
I N 3
I N 4
I N 5
I N 6
I N 7
I N 8
O U T 1
O U T 2
O U T 3
O U T 4
O U T 5
O U T 6
O U T 7
O U T 8
C L K X A N H
G 3 1
U 2 0
7 4 H C 1 6 4
7
8
9
14
3
4
5
6
1 0
1 1
1 2
1 3
1
2
GND
C L K
CLR
VCC
Q A
Q B
Q C
Q D
Q E
Q F
Q G
Q H
A
B
V C C _ A R R O W
V C C _ A R R O W
G 2
G 2 1
G 1 6
V C C _ A R R O W
G 2 3
G 3 2
U 1 4
7 4 H C 1 6 4
7
8
9
14
3
4
5
6
1 0
1 1
1 2
1 3
1
2
GND
C L K
CLR
VCC
Q A
Q B
Q C
Q D
Q E
Q F
Q G
Q H
A
B
G 2 8
G 1 3
G 2 5G 9
G 3
G 5
U 1 6
7 4 H C 1 6 4
7
8
9
14
3
4
5
6
1 0
1 1
1 2
1 3
1
2
GND
C L K
CLR
VCC
Q A
Q B
Q C
Q D
Q E
Q F
Q G
Q H
A
B
V C C _ A R R O W V C C _ A R R O W
G 1 4
G 1 7
G 2 2
G 2 7
G 1 8
U 1 8
7 4 H C 1 6 4
7
8
9
14
3
4
5
6
1 0
1 1
1 2
1 3
1
2
GND
C L K
CLR
VCC
Q A
Q B
Q C
Q D
Q E
Q F
Q G
Q H
A
B
G 1 0
G 4
G 7
II. Chương Trình Điều Khiển Quét Led Dùng
Modul Vi điều khiển 89S52 Chạy Chữ
“TUAN 05111112”:
•
Lưu Đồ Giải Thuật:
S
T
A
R
T
D
ị
c
h
c
h
ữ
“
T
U
A
N
0
5
1
1
1
1
1
2
”
m
à
u
đ
ỏ
t
ừ
p
h
ả
i
q
u
a
t
r
á
i
R
2
=
5
7
S
D
ị
c
h
c
h
ữ
“
T
U
A
N
0
5
1
1
1
1
1
2
”
m
à
u
x
a
n
h
t
ừ
t
r
á
i
q
u
a
p
h
ả
i
R
2
=
0
S
Đ
Đ
D
ị
c
h
c
h
ữ
“
T
U
A
N
”
c
h
ạ
y
t
ừ
t
r
ê
n
x
u
ố
n
g
R
2
=
8
S
Đ
•
Đoạn CT dịch chữ “TUAN 05111112” màu đỏ:
•
MAIN5:
•
MOV DPTR,#MACHU1
•
MOV R2,#0 R2 BIEN DEM DICH CHU
•
MAIN4: MOV R3,#25 ;R3 DELAY THOI GIAN DICH CHU
•
MAIN3: MOV R0,#0 ;R0 BIEN DEM XUNG DO
•
SETB P2.0 ;DU LIEU LED DO
•
MAIN2: MOV P0,#00000000B ;TAT LED CHONG LEM
•
SETB P2.1 ;CANH LEN XUNG CLOCK DO
•
NOP ;TON
•
NOP
•
NOP
•
CLR P2.1 ;CANH XUONG XUNG CLOCK DO
•
CLR P2.0
•
MOV A,R0
•
ADD A,R2 ;GIAI MA*****************
•
MOVC A,@A+DPTR ;GIAI MA
•
MOV P0,A ;GIAI MA
•
MOV R1,#100 ;R1 DELAY THOI GIAN NGAN
•
DJNZ R1,$
•
INC R0
•
CJNE R0,#32,MAIN2
•
DJNZ R3,MAIN3
•
INC R2
•
CJNE R2,#57,MAIN4
•
Đoạn CT dịch chữ “TUAN 05111112” màu xanh:
•
MAIN6: MOV R3,#25 ;R3 DELAY THOI GIAN DICH CHU
•
MAIN7: MOV R0,#0 ;R0 BIEN DEM XUNG XANH
•
SETB P2.2 ;DU LIEU LED XANH
•
MAIN8: MOV P0,#00000000B ;TAT LED CHONG LEM
•
SETB P2.3 ;CANH LEN XUNG CLOCK XANH
•
NOP ;TON
•
NOP
•
NOP
•
CLR P2.3 ;CANH XUONG XUNG CLOCK XANH
•
CLR P2.2
•
MOV A,R0
•
ADD A,R2 ;GIAI MA*****************
•
MOVC A,@A+DPTR ;GIAI MA
•
MOV P0,A ;GIAI MA
•
MOV R1,#100 ;R1 DELAY THOI GIAN NGAN
•
DJNZ R1,$
•
INC R0
•
CJNE R0,#32,MAIN8
•
DJNZ R3,MAIN7
•
DEC R2
•
CJNE R2,#0,MAIN6
•
Đoạn CT dịch chữ “TUAN” từ trên xuống:
•
MOV R2,#0 ;R2 BIEN DEM DE CHON MA,0->8
•
MAIN11: CJNE R2,#0,KT1
•
MOV DPTR,#MACHU2_1
•
KT1: CJNE R2,#1,KT2
•
MOV DPTR,#MACHU2_2
•
KT2: CJNE R2,#2,KT3
•
MOV DPTR,#MACHU2_3
•
KT3: CJNE R2,#3,KT4
•
MOV DPTR,#MACHU2_4
•
KT4: CJNE R2,#4,KT5
•
MOV DPTR,#MACHU2_5
•
KT5: CJNE R2,#5,KT6
•
MOV DPTR,#MACHU2_6
•
KT6: CJNE R2,#6,KT7
•
MOV DPTR,#MACHU2_7
•
KT7: CJNE R2,#7,KT8
•
MOV DPTR,#MACHU2_8
•
MOV R3,#250 ;RIENG LAN CUOI DELAY LAU HON.
•
SJMP MAIN10
•
KT8: MOV R3,#75 ;R3 DELAY DICH CHU XUONG.
•
MAIN10: MOV R0,#0 ;R0,0->32 QUET LED.
•
SETB P2.0 ;SET BIT DATA
•
SETB P2.2 ;XANH VA DO
•
MAIN9: MOV P0,#00000000B
•
SETB P2.1 ;CANH LEN XUNG
•
SETB P2.3 ;CHO 2 MAU.
•
NOP
•
NOP
•
NOP
•
CLR P2.1 ;CANH XUONG XUNG
•
CLR P2.3 ;CHO 2 MAU.
•
CLR P2.0 ;XOA BIT DATA
•
CLR P2.2 ;XANH VA DO.
•
MOV A,R0
•
MOVC A,@A+DPTR
•
MOV P0,A
•
MOV R1,#100 ;R1 DELAY THOI GIAN NGAN
•
DJNZ R1,$
•
INC R0
•
CJNE R0,#32,MAIN9
•
DJNZ R3,MAIN10
•
INC R2
•
CJNE R2,#8,MAIN11
III. ĐIỀU KHIỂN QUÉT LED DÙNG
MODUL Vi ĐIỀU KHIỂN ATMEGA32:
Lưu đồ giải thuật:
Chương trình được viết bằng CodeVision, Gồm:
+ Chương trình chính: Để gọi hai chương trình
con.
void main(void)
while (1)
{
// Place your code here
for(j=0;j<=30;j++)
{
PORTB=0x00;
data1=0;
data2=0;
xung1=1;
xung2=1;
xung1=0;
xung2=0;
}
for(j=0;j<2;j++)
{
if(j==0)
{
CHUCTHAY();
data1=0;
xung1=0;
delay_ms(25);
}
else
{
HAPPYNEWYEAR();
data2=0;
xung2=0;
delay_ms(25);
}
}
};
+ HAI CHƯƠNG TRÌNH CON: Để hiện thị chữ.
Chương trình 1 chạy chữ màu đỏ từ phai qua trái với chữ:’’LOP
CĐT05 CHUC THAY 1 NAM MOI AN KHANG THINH VUONG “
void CHUCTHAY(void)
{
for(t=0;t<=333;t++)
{
for(n=0;n<30;n++)
{
for(i=0;i<=32;i++)
{
PORTB=0x00;
delay_us(100);
xung1 =0;
if(i==0) {data1=1;}
else {data1=0;}
xung1=1;
PORTB=chu2[i+t];
delay_us(30);
}
}
}
}
Chương trình 2 chạy chữ màu xanh chạy từ trái qua phải với
chữ:++ HAPPY NEW YEAR 2009 ++
void HAPPYNEWYEAR(void)
{
for(t=184;t>=32;t )
{
for(n=0;n<30;n++)
{
for(i=0;i<=32;i++)
{
PORTB=0x00;
delay_us(100); // chong lem
xung2 =0;
if(i==0) {data2=1;}
else {data2=0;}
xung2=1;
PORTB=chu1[i+t];
delay_us(30); // thoi gian
delay
}
}
}
}
CÁM ƠN THẦY VÀ CÁC
BẠN ĐÃ THEO DÕI!!!