1.Nhận xét của GVHD.trang 1
2. Nhận xét của GVPB .2
3.Lời giới thiệu .3
4.Giới thiệu phần cứng .4
5.Sơ đồ khối mach quang báo .15
6.Chức năng từng khối .16
7.Nguy ên lý hoạt động 19
8.Lưu đồ giải thuật chương trình .22
9.Giải thích hoạt động của chương trình .27
10.Chương trình chính 28
57 trang |
Chia sẻ: lethao | Lượt xem: 1929 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Đề tài Quang báo điều chỉnh qua bàn phím, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g qua Port 2 để quét hàng và xuất dữ liệu hiển thị ra cột thông qua Port 1.
II. Khối phân kênh :
Khối phân kênh dùng 2 IC 74LS154 dùng điều khiển hoạt động của 4 led ma
trận. Việc dùng IC 74LS154 làm giảm bớt việc phải tốn Port ở khối CPU do IC
này phân kênh 4 è 16 ( 2 IC sẽ được 32 đường điều khiển ).
III. Khối Led Matrix :
VCC
VCC
U7A
74LS00
1
2
3
14
7
P0
12345678
1
74LS15412
3
4
5
6
7
8
9
10
11
13
14
15
16
17
24
12
23
22
21
20
18
19
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
Y9
Y10
Y11
Y12
Y13
Y14
Y15
V
C
C
G
N
D
A
B
C
D
G1
G2
LE
D
3
1
2
3
4
5
6
7
8
2
1
2
3
4
5
6
7
8
9
10
11
13
14
15
16
17
24
12
23
22
21
20
18
19
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
Y9
Y10
Y11
Y12
Y13
Y14
Y15
V
C
C
G
N
D
A
B
C
D
G1
G2
LE
D
2
1
2
3
4
5
6
7
8
LE
D
4
1
2
3
4
5
6
7
8
VCC
LE
D
1
1
2
3
4
5
6
7
8
P2
H
I
0
PIN
1
2
3
4
5
6
7
8
A.0
A.1
A.2
A.3
A.4
A.5
A.6
A.7
U7
INT/EXT
1
2
3
INT
COM
EXT
Y1
ZTA
HI
R2
R
1
2
3
4
5
6
7
8
A.0
A.1
A.2
A.3
A.4
A.5
A.6
A.7
H
I
U12
1
2
3
4
5
6
7
8
A.0
A.1
A.2
A.3
A.4
A.5
A.6
A.7
C3
C
0
R4
R
0
SW1
U4
89C51
1
2
3
4
5
6
7
8
10
11
12
13
14
15
16
17 32
33
34
35
36
37
38
39
21
22
23
24
25
26
27
28
30
29
40
20
18
19
9
31
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7 P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
ALE
PSEN
VCC
GND
X2
X1
RST
EA
C3
C
U10
1
2
3
4
5
6
7
8
A.0
A.1
A.2
A.3
A.4
A.5
A.6
A.7
C1
C
Quang báo điều chỉnh qua bàn phím
Page 15
Khối led matrix với 4 led dùng để hiện được 4 ký tự.
Các Led ma được thiết kế theo kiểu cột nối chung(cột hiển thị màu đỏ riêng ,cột
hiển thị màu xanh riêng) được nối với Port 1 để hiển thị ký tự,còn các hàng
đuợc nối riêng theo từng Led để cấp tín hiệu quét.
IV. Khối phím Matrix:
R
6
G
2
G
4
R
3
1
R
Q
1
3
C15
C2
G3
DG1
P2
R
3
5
R
Q
6
C22
P
3
2
P31
R
1
3
R
P
D
DR3
Q
3
1
G
6
P
1
0
DG6
P
D
C29
P21
R
2
6
R
Q
1
9
R
4
5
R
C
1
8
R
1
R
3
8
R
P
C
R
3
R
0
DG0
R
4
2
R
G1
DG4
P
1
7
P
A
P
2
9
P16
V
C
C
C
1
1
P
2
3
R
5
DR1
R
9
R
R
1
5
R
C
1
2 G0
Q
3
0
R
2
7
R
R
2
R
C14
P
D
C21
R
0
P11
Q
2
0
P
A
P
D
R
6
R
4
7
R
R
2
2
R
R
3
3
R
G4
G
6
DR6
Q
9
C1
C
7
P
B
P
1
4
R1
P
2
0
P6
G5
Q
1
2
G
0R
4
8
R
V
C
C
C7
G
3
G
7
DG2
P32
P1
R
5
R
C
3
0
P
2
7
R
1
1
R
R
5
R
3
R
4
3
R
P
9
DG7
R
3
R
C13
C20
P27
Q
2
5
DR7
R
6
R
Q
7
C
1
7
C
2
G6
R
3
4
R
C
6
P15
U
4
le
d
m
a
tirx
2
4
2
1
1
8
1
5
1471
0
12
9
6
3
13
16
19
22
1
1 8 5 2
1
4
1
7
2
0
2
3
C
0
G
C
1
G
C
2
G
C
3
G
C
4
G
C
5
G
C
6
G
C
7
G
R7
R6
R5
R4
R3
R2
R1
R0
C
7
R
C
6
R
C
5
R
C
4
R
C
3
R
C
2
R
C
1
R
C
0
R
R4
DR2
R
6
R
3
R
1
R
1
6
R
Q
3
2
P
A
R
6
P20
R
3
2
R
P
8
C11
P
C
R5
DG3
DR5
Q
2
7
R
2
0
R
P
B
G
3
R
4
G
2
Q
2
9
R
1
0
R
R
4
6
R
R
2
5
R
R
3
7
R
Q
8
P
4
C
1
0
C
2
3
P
C
P
B
R
7
P5
Q
5
J
8
C
O
N
3
1
2
3
C19
P
2
2
R7
P
3
1
R
1
9
R
R3
C
2
5
DR0
C
2
7
G7
P
D
DG3
C
3
2
P
2
8
P10
R
4
R
P
1
6
R
1
2
R
P
1
5
G
1
G
0
R
2
9
R
C17
DG7
R
4
1
R
Q
3
P28
C6
C10
R
1
8
R
C
9
C25
DR6
Q
1
6
C
1
6
P24
P
A
J
4
C
O
N
8
1
2
3
4
5
6
7
8
Q
2
3
C18
C23
G
7
DR1
Q
2
2
R
3
6
R
R
1
4
R
P
C
R2
G
4
R
4
Q
1
7
R
1
R
Q
2
1
P
A
C26
P19
P
C
R
7
P
A
R
7
G
1
DR4
R
3
9
R
C
2
0
P
2
1
P
C
G
7
R
5
P
5
R
4
P14
R
2
P
3
0
R
8
R
Q
2
C9
C
1
9
G
0
G
4
J
6
C
O
N
8
1
2
3
4
5
6
7
8
C
2
6
G
0
DG4
P
D
P9
R
2
4
R
Q
1
1
C
2
2
P
1
3
P
2
6
R
2
1
R
C
2
4
P
1
2
G
6
DG2
C
3
R
2
DG6
P4
P
2
P29
DR5
C32
P
B
Q
4
C5
P23
C
1
3
G
5
G
1
DR0
J
3
C
O
N
8
1
2
3
4
5
6
7
8
V
C
C
C
1
5
P
B
G
4
P
D
C28
C12
P
B
R
1
R
7
R
V
C
C
V
C
C
P
A
G
3
P25
P18
Q
1
5
P
B
G
2
DR3
R
4
0
R
P
1
8
P
B
R
0
G
5
C30
U
1
le
d
m
a
tirx
2
4
2
1
1
8
1
5
1471
0
12
9
6
3
13
16
19
22
1
1 8 5 2
1
4
1
7
2
0
2
3
C
0
G
C
1
G
C
2
G
C
3
G
C
4
G
C
5
G
C
6
G
C
7
G
R7
R6
R5
R4
R3
R2
R1
R0
C
7
R
C
6
R
C
5
R
C
4
R
C
3
R
C
2
R
C
1
R
C
0
R
C8
P
2
4
R
5
DG0
G
5
P13
P
D
C
2
8
R
2
R
3
R
3
0
R
P
7
P
1
P
D
Q
1
4
P
1
1
P8
C4
C
5
C
1
G
7
R
7
DG1
Q
2
6
C
1
4
DG5
P30
P3
R
2
3
R
P
2
5
Q
2
8
R
1
DR4
DG5
Q
1
P22
P
C
R
4
4
R
P
C
R
0
R
2
8
R
G
6
DR7U
3
le
d
m
a
tirx
2
4
2
1
1
8
1
5
1471
0
12
9
6
3
13
16
19
22
1
1 8 5 2
1
4
1
7
2
0
2
3
C
0
G
C
1
G
C
2
G
C
3
G
C
4
G
C
5
G
C
6
G
C
7
G
R7
R6
R5
R4
R3
R2
R1
R0
C
7
R
C
6
R
C
5
R
C
4
R
C
3
R
C
2
R
C
1
R
C
0
R
C16
P
B
C27
R6
J
1
C
O
N
8
1
2
3
4
5
6
7
8
P17
R
1
7
R
J
5
C
O
N
8
1
2
3
4
5
6
7
8
C3
C
8
P
1
9
P
A
G2
J
2
C
O
N
8
1
2
3
4
5
6
7
8
U
2
le
d
m
a
tirx
2
4
2
1
1
8
1
5
1471
0
12
9
6
3
13
16
19
22
1
1 8 5 2
1
4
1
7
2
0
2
3
C
0
G
C
1
G
C
2
G
C
3
G
C
4
G
C
5
G
C
6
G
C
7
G
R7
R6
R5
R4
R3
R2
R1
R0
C
7
R
C
6
R
C
5
R
C
4
R
C
3
R
C
2
R
C
1
R
C
0
R
C
4
G
2
DR2
C24
R
2
P12
P
3
C
2
1
C
3
1
G
5
G
3
G
1
P
C
C
2
9
R
4
P
6
R0
C31
P7
Q
1
8
Q
1
0
P
A
P26
Q
2
4
Quang báo điều chỉnh qua bàn phím
Page 16
Khối bàn phím này được thiết kế dựa vào cấu trúc hàng và cột của ma trận.
Bàn phím gồm 16 phím được sắp xếp theo ma trận 4x4 (4 hàng x 4 cột). Các
hàng và cột của ma trận phím này được kết nối với vi điều khiển thông qua đầu
nối jack 8. R0-R3 các hàng của ma trận phím. C0-C3 các cột của ma trận phím.
V. Khối nguồn:
Mạch ổn áp có điện áp ngõ ra cố định 5V sử dụng IC ổn áp 7805(ổn áp dương
có điện áp ngõ ra là 5V,dòng điện ngõ ra đến 1A)
Các tụ 0,33 và 0,1uF dùng chống nhiễu .Phần tử điện trở công suất chủ yếu của
mạch này là bảng đèn .Ic ổn áp 7805 chịu đựoc dòng đển 1A nên bảo đảm cung
cấp dòng cho toàn mạch mà bản thân nó không bị quá dòng .Tuy nhiên ta cũng
cần gắn tản nhiệt cho IC để nó hoạt đông ở điều kiện tốt nhất.
D. NGUYÊN LÝ HOẠT ĐỘNG:
VI
0,33µ F 0,1µF
7805 VO 1 2
3
7805
1 3 2
SƠ ĐỒ CHÂN
IC 7805
Quang báo điều chỉnh qua bàn phím
Page 17
I. Khối Led Matrix:
- Loại Led ma trận sử dụng là Led 24 chân gồm 8 hàng và 8 cột.Ma
trận Led có 2 màu chính là xanh và đỏ,ngoài ra còn có 1 màu phụ là màu
cam khi kết hợp 2 màu trên lại.Mõi điểm Led trên ma trận có cấu tạo gồm 2
Led xanh và đỏ ghép lại theo nguyên tắc Anode chung còn Cathode để
riêng.Ma trận Led 8 hàng x 8 cột gồm 24 chân được chia làm 3 nhóm chân :
8 hàng từ R0-R7( là các anode chung của các Led trên cùng 1 hàng, 8 cột đỏ
C0R-C7R ( là các Cathode chung của các led màu đỏ trên cùng 1 cột) , 8 cột
xanh C0X-C7X ( là các Cathode chung của các led màu xanh trên cùng 1
cột).Sự kết hợp các mức logic cao/thấp thích hợp trên các hàng và cột theo
một quy luật nhất định mà ta sẽ có hình ảnh như mong muốn.
- Phương pháp điều khiển: đầu tiên ta cấp tín hiệu sao cho hàng 1
sáng có nguồn rồi đưa ra mã nhị phân tương ứng của hình ảnh cần hiển thị
tại hàng đó ra các cột.Kế tiếp ta cấp tín hiệu cho hàng 2 có nguồn rồi đưa mã
nhị phân tương ứng của hình ảnh cần hiển thị tại hàng đó ra cột.Quá trình
cứ diễn ra một cách tuần tự và liên tục như vậy và do hiện tượng lưu ảnh
của mắt mà ta thấy được các Led dường như sáng như cùng một lúc để tạo ra
hình ảnh mong muốn trên Led ma trận
- Các ngõ vào điều khiển hàng và cột đều sử dụng mức thấp để điều
khiển.
II. Khối vi điều khiển:
- Ở đây ta dùng con 89V51RB2, có 40 chân,gồm 4 Port dùng xuất
nhập dữ liệu,mõi Port 8 chân; 2 chân nguồn 20 mass và 40 Vcc; 2 chân gắn
thạch anh (chân 18,19);1 chân reset chân 9;chân 29 là chân cho phép bộ nhớ
chương trình;chân 30 là chân chốt địa chỉ và cuối cùng chân 31 là chân cho
phép truy xuất ngoài.
- Để reset chíp ta dùng nút nhấn . Trong mạch,chúng ta có thể reset
tự động bằng tụ hoặc reset bằng tay bởi nút nhấn.
III. Khối phím ma trận:
- Được thiết kế dựa trên cấu trúc hàng và cột của ma trận.Bàn phím
gồm 16 phím được sắp xếp theo ma trận 4 x 4 (tức 4 hàng 4 cột).Các hàng và
cột của ma trân phím này được kết nối với vi điều khiển thông qua Port
0.R0-R3 : các hàng của ma trận phím,C0-C3 : các cột của ma trận phím
Để điều khiển bàn phím ma trận nhày ta sử dụng phương pháp quét
phím. Để điều khiển quét phím này ta xuất 1 dữ liệu 4 bit( trong đó 1 bit ở
mức logic thấp và 3 bit ở mức logic cao) ra các cột của ma trận phím, đọc 4
bit dữ liệu các hàng của ma trận phím vào để kiểm tra xem có phím nào
được ấn không.Nếu có phím ấn thì trong 4 bit đọc vào sẽ có một bit ở mức
logic thấp và dựa trên cơ sở đó để thiết lập mã ấn phím.Nếu không có phím
ấn thì 4 bit đọc vào đều ở mức logic cao,khi đó ta chuyển mức logic thấp
sang cột kế tiếp để dò tìm phím khác.
Quang báo điều chỉnh qua bàn phím
Page 18
IV. Khối phân kênh:
Khối phân kênh dùng 2 IC 74LS154 dùng điều khiển hoạt động của 4 led
ma trận. Việc dùng IC 74LS154 làm giảm bớt việc phải tốn Port ở khối CPU do
IC này phân kênh 4 è 16 ( 2 IC sẽ được 32 đường điều khiển ).
Nguyên lý hoạt động của khối phân kênh : Dùng 5 bit ở Port 2 để điều
khiển. Trong đó, 4 bit dùng để điều khiển ngõ vào của cả hai IC 74LS154. Còn
bit thứ 5 điều khiển cho phép trong một thời điểm chỉ có một IC hoạt động.
Điều này thực hiện được nhờ vào IC cổng đảo 74LS00. Ngõ vào của cổng đảo
sẽ được nối với bit thứ 5 và chân số 18,19 của IC thứ nhất. Ngõ ra được nối với
chân số 18,19 con thứ 2của IC thứ hai.Khi bit thứ 5 ở mức 0 thì IC1 sẽ hoạt
động điều khiển Led ma trận 1 và 2. Khi bit 5 ở mức 1 thì IC2 sẽ hoạt động điều
khiển Led ma trận 3 và 4.
Bảng trạng thái IC74LS154
VCC
VCC
U7A
74LS00
1
2
3
14
7
P0
12345678
1
74LS15412
3
4
5
6
7
8
9
10
11
13
14
15
16
17
24
12
23
22
21
20
18
19
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
Y9
Y10
Y11
Y12
Y13
Y14
Y15
V
C
C
G
N
D
A
B
C
D
G1
G2
LE
D
3
1
2
3
4
5
6
7
8
2
1
2
3
4
5
6
7
8
9
10
11
13
14
15
16
17
24
12
23
22
21
20
18
19
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
Y9
Y10
Y11
Y12
Y13
Y14
Y15
V
C
C
G
N
D
A
B
C
D
G1
G2
LE
D
2
1
2
3
4
5
6
7
8
LE
D
4
1
2
3
4
5
6
7
8
VCC
LE
D
1
1
2
3
4
5
6
7
8
2
Quang báo điều chỉnh qua bàn phím
Page 19
H: High Voltage Level
L: Low Voltage Level
X: Don’t Care
E. LƯU ĐỒ GIẢI THUẬT CHƯƠNG TRÌNH
Quang báo điều chỉnh qua bàn phím
Page 20
I. Chương trình chính:
II. Chương trình hiển thị con trỏ:
Quang báo điều chỉnh qua bàn phím
Page 21
III. Chương trình con quét phím :
Quang báo điều chỉnh qua bàn phím
Page 22
Sơ đồ giải thuật quét phím , mỗi phím tương đương với 2 chữ cái trong
bảng chữ cái
ü Phím A và B
ü Phím Y và Z (tương tự cho các chữ cái khác)
SCANKEYPAD
A = 01H
NEXT11
22Hß0, 23Hß0, 24Hß0,
25Hß0, 26Hß0, 27Hß0,
28Hß0, 29Hß0, 2AHß0,
2BHß0, 2CHß0, 2DHß0,
2EHß0, 2FHß0, 30Hß0
R7 ß 21H
INC R7
R7 = 1
CHUB
CHU_A
Đ
Đ
S
S
RET
21H ß R7
SCANKEYPAD
A = 0DH
21Hß0,22Hß0, 23Hß0,
24Hß0, 25Hß0, 26Hß0,
27Hß0, 28Hß0, 29Hß0,
Đ
Quang báo điều chỉnh qua bàn phím
Page 23
ü Phím Enter
ü Hiển thị từng chữ cái lần lượt trên 4 vị trí con trỏ: )
Quang báo điều chỉnh qua bàn phím
Page 24
Các chữ cái khác tương tự nhưng cơ sỡ dữ liệu sẽ lấy giống trong bảng
chữ cái lưu trong ROM.Ví dụ,chữ B ,ta vẫn so sánh R2 nhưng khi nhập dữ liệu
vào các ô nhớ 31H,32H,33H,34H lúc này sẽ được nạp vào giá trị là 08,hay chữ
C là giá trị 16.
IV. GIẢI THÍCH HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH:
TROVE
34H ß 00
TROVE
VT_A4
TROVE
31H ß 00
Đ
VT_A2
S
VT_A3
R2 = 0
R2 = 2
33H ß 00
VT_A4
S
Đ
R2 = 1
32H ß 00
VT_A3
S
Đ
TROVE
VT_A2
Quang báo điều chỉnh qua bàn phím
Page 25
Trước tiên khi bước vào gọi chương trình chính của chương trình hiển
thị con trỏ trên con Led thứ nhất.Tiếp tục gọi chương trình chính 1 để thực hiện
các bước lấy và lưu dữ liệu vào RAM,tại cuối bước này ta thực hiện việc tăng
R2 ( R2 là biến đếm để dịch chuyển vị trí con trỏ sang vị trí con Led kế
tiếp).Thời gian để chuyển từ con Led này sang con Led kế tiếp được xác định
bởi biến đếm R4 (R4 là biến đếm quy định thời gian để qua con Led kế tiếp).
Trong chương trình kiểm tra phím,sau khi dùng chương trình quét phím
ma trận để coi có phím nào được nhấn hay không.Trong chương trình này,mõi
phím trên bàn phím ma trận đều được lưu bằng 1 ô nhớ từ 21H đến 2DH trong
bộ nhớ RAM nội con 89V51RB2.Mõi phím được dùng cho ra 2 chữ cái,thứ tự
các chữ cái mà phím ấn được được ghi trên bề mặt bàn phím ma trận.Mõi phím
lưu được 2 chữ cái khi bấm là do ta dùng biến đếm R7 để xác định chữ cái cần
hiển thị ra.Chẳng hạn như chúng ta muốn nhấn chữ A,ta nhấn vào bàn phím nút
hiển thị chữ A,nếu ta muốn hiển thị chữ B ta tiếp tục ấn vào phím vừa ấn sẽ hiển
thị được chữ B.Lí do ở đây là chúng ta so sánh biến đếm R7,nếu R7 = 1 ( tương
đương với phím đó được ấn 1 lần) sẽ hiện thị lên chữ A,khi ta ấn tiếp tức R7 = 2
thì chữ sẽ nhảy sang chữ B.Ta chỉcho phép một phím hiển thị 2 chữ cái nên khi
ta ấn tiếp sau chữ B sẽ trở về hiện thị lại chữ A và cứ thế tiếp diễn.Trong
chương trình này ta sử dụng 13 nút nhấn để lấy 26 chữ cái ( từ A đến Z) và 1
nút nhấn Enter dùng để cho chạy chữ sau khi đã tạo ra dòng 4 chữ cái. Ở cuối
đoạn chương trình này chúng ta tăng biến đếm R4 để xác định thời gian dịch
qua con Led kế tiếp .Chương trình dùng Port 0 để quét phím tạo mã.
Trong chương trình hiện thị chữ,ta dùng Port 1 làm Port xuất dữ liệu và
Port 2 làm Port quét.Port 2 kết nối với khối phân kênh để điều khiển việc quét
Led. Đây là chương trình dùng hiển thị các chữ cái có trong bảng mã có sẵn
trong ROM nội IC 89V51RB2( từ A đến Z).Mõi lần quét qua được lưu vào
trong 1 ô nhớ,tổng cộng cò 32 ô nhớ từ 40H đến 5FH để lưu các byte của các
chữ cái được ấn trong chương trình kiểm tra phím.
Chương trình chạy là chương trình hiển thị ra các Byte của các chữ cái đã
được lưu trữ trong RAM sau đó được cho dịch cột,giống như chương trính chạy
lấy cơ sở dữ liệu từ ROM học lúc trước. Để khỏi bị lem trong quá trình dich cột
thì ta phải nạp giá trị cho các ô nhớ từ 60H đến 7FH là 0FFH.
F. CHƯƠNG TRÌNH CHÍNH
Quang báo điều chỉnh qua bàn phím
Page 26
$MOD51
org 00h
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV 31H,#216
MOV 32H,#216
MOV 33H,#216
MOV 34H,#216
MOV R7, #0
MOV R2,#0
MAIN:
MOV R4,#0
ACALL CONTRO
LCALL MAIN1
SJMP MAIN
;**************CHUONG TRINH CHINH ***********
MAIN1:
LCALL KTPHIM1
LCALL HIENTHI1
CJNE R4,#20,MAIN1
INC R2 ;VI TRI HIEN THI LED
RET
;****************CHUONG TRINH HIEN THI CON TRO****************
CONTRO:
CJNE R2,#0,VT_2
MOV 31H,#208
JMP HTH
VT_2:
CJNE R2,#1,VT_3
MOV 32H,#208
Quang báo điều chỉnh qua bàn phím
Page 27
JMP HTH
VT_3:
CJNE R2,#2,VT_4
MOV 33H,#208
JMP HTH
VT_4:
CJNE R2,#3,VT_5
MOV 34H,#208
JMP HTH
VT_5:
LCALL NEXT131
JMP eexit
HTH:
LCALL HIENTHI1
eexit:
RET
;**********CHUONG TRINH KIEM TRA PHIM LED *******
KTPHIM1:
LCALL SCANKEYPAD
CJNE A,#01H,NEXT11
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,21H
INC R7
CJNE R7,#1,CHUB
LCALL CHU_A
MOV 21H, R7
RET
CHUB:
LCALL CHU_B
MOV 21H,#0
RET
;________________
Quang báo điều chỉnh qua bàn phím
Page 28
NEXT11:
CJNE A,#02H,NEXT21
MOV 21H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,22H
INC R7
CJNE R7,#1,CHUD
LCALL CHU_C
MOV 22H, R7
RET
CHUD:
LCALL CHU_D
MOV 22H,#0
RET
;________________________
NEXT21:
CJNE A,#03H,NEXT31
MOV 21H,#0
MOV 22H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,23H
INC R7
CJNE R7,#1,CHUF
Quang báo điều chỉnh qua bàn phím
Page 29
LCALL CHU_E
MOV 23H,R7
RET
CHUF:
LCALL CHU_F
MOV 23H,#0
RET
;_________________
NEXT31:
CJNE A,#04H,NEXT41
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,24H
INC R7
CJNE R7,#1,CHUH
LCALL CHU_G
MOV 24H,R7
RET
CHUH:
LCALL CHU_H
MOV 24H,#0
RET
;_____________________
NEXT41:
CJNE A,#05H,NEXT51
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
Quang báo điều chỉnh qua bàn phím
Page 30
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,25H
INC R7
CJNE R7,#1,CHUJ
LCALL CHU_I
MOV 25H,R7
RET
CHUJ:
LCALL CHU_J
MOV 25H,#0
RET
;_________________________
NEXT51:
CJNE A,#06H,NEXT61
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,26H
INC R7
CJNE R7,#1,CHUL
LCALL CHU_K
MOV 26H, R7
RET
CHUL:
LCALL CHU_L
MOV 26H,#0
RET
;_________________________
NEXT61:
CJNE A,#07H,NEXT71
Quang báo điều chỉnh qua bàn phím
Page 31
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,27H
INC R7
CJNE R7,#1,CHUN
LCALL CHU_M
MOV 27H, R7
RET
CHUN:
LCALL CHU_N
MOV 27H,#0
RET
;_________________________
NEXT71:
CJNE A,#08H,NEXT81
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,28H
INC R7
CJNE R7,#1,CHUP
LCALL CHU_O
MOV 28H, R7
Quang báo điều chỉnh qua bàn phím
Page 32
RET
CHUP:
LCALL CHU_P
MOV 28H,#0
RET
;_________________________
NEXT81:
CJNE A,#09H,NEXT91
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,29H
INC R7
CJNE R7,#1,CHUR
LCALL CHU_Q
MOV 29H, R7
RET
CHUR:
LCALL CHU_R
MOV 29H,#0
RET
;__________________________
NEXT91:
CJNE A,#0AH,NEXT101
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2BH,#0
MOV 2CH,#0
Quang báo điều chỉnh qua bàn phím
Page 33
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,2AH
INC R7
CJNE R7,#1,CHUT
LCALL CHU_S
MOV 2AH, R7
RET
CHUT:
LCALL CHU_T
MOV 2AH,#0
RET
;_________________________
NEXT101:
CJNE A,#0BH,NEXT111
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,2BH
INC R7
CJNE R7,#1,CHUV
LCALL CHU_U
MOV 2BH, R7
RET
CHUV:
LCALL CHU_V
MOV 2BH,#0
RET
;_________________________
NEXT111:
CJNE A,#0CH,NEXT121
MOV 21H,#0
Quang báo điều chỉnh qua bàn phím
Page 34
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,2CH
INC R7
CJNE R7,#1,CHUX
LCALL CHU_W
MOV 2CH, R7
RET
CHUX:
LCALL CHU_X
MOV 2CH,#0
RET
;_________________________
NEXT121:
CJNE A,#0DH,NEXT131
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,2DH
INC R7
CJNE R7,#1,CHUZ
LCALL CHU_Y
MOV 2DH, R7
Quang báo điều chỉnh qua bàn phím
Page 35
RET
CHUZ:
LCALL CHU_Z
MOV 2DH,#0
RET
;**********************************************************
NEXT131:
CJNE A,#00H,NEXT141
PUSH 02H
MOV R2,#0
NHIEU:
lcall chay
INC R2
CJNE R2,#4,NHIEU
POP 02H
RET
NEXT141:
INC R4
RET
;******************CHUONG TRINH QUET PHIM MA TRAN*********
SCANKEYPAD:
PUSH 03H
MOV R3,#50
BACK:
ACALL QUETPHIM
JNC NOPRESSED
DJNZ R3,BACK
NOPRESSED:
POP 03H
RET
QUETPHIM:
PUSH 04H
PUSH 05H
PUSH 06H
MOV A,#0EFH
MOV R6,#4
TEST:
MOV P0,A
MOV R7,A
MOV A,P0
ANL A,#0FH
CJNE A,#0FH,KEYPRESSED
MOV A,R7
RL A
DJNZ R6,TEST
CLR C
SJMP EXIT
KEYPRESSED:
MOV R7,A
Quang báo điều chỉnh qua bàn phím
Page 36
MOV A,#4
CLR C
SUBB A,R6
MOV R6,A
MOV A,R7
MOV R5,#4
AGAIN:
RRC A
JNC DONE
INC R6
INC R6
INC R6
DJNZ R5,AGAIN
DONE:
SETB C
MOV A,R6
EXIT:
POP 06H
POP 05H
POP 04H
RET
; ****************************
CHU_A:
CJNE R2,#0, VT_A2
MOV 31H,#00
LJMP TROVE
VT_A2:
CJNE R2, #1, VT_A3
MOV 32H,#00
LJMP TROVE
VT_A3:
CJNE R2,#2,VT_A4
MOV 33H,#00
LJMP TROVE
VT_A4:
MOV 34H,#00
LJMP TROVE
CHU_B:
CJNE R2,#0,VT_B2
MOV 31H,#08
LJMP TROVE
VT_B2:
CJNE R2,#1,VT_B3
MOV 32H,#08
LJMP TROVE
VT_B3:
CJNE R2,#2,VT_B4
MOV 33H,#08
Quang báo điều chỉnh qua bàn phím
Page 37
LJMP TROVE
VT_B4:
MOV 34H,#08
LJMP TROVE
CHU_C:
CJNE R2,#0,VT_C2
MOV 31H,#16
LJMP TROVE
VT_C2:
CJNE R2,#1,VT_C3
MOV 32H,#16
LJMP TROVE
VT_C3:
CJNE R2,#2,VT_C4
MOV 33H,#16
LJMP TROVE
VT_C4:
MOV 34H,#16
LJMP TROVE
CHU_D:
CJNE R2,#0,VT_D2
MOV 31H,#24
LJMP TROVE
VT_D2:
CJNE R2,#1,VT_D3
MOV 32H,#24
LJMP TROVE
VT_D3:
CJNE R2,#2,VT_D4
MOV 33H,#24
LJMP TROVE
VT_D4:
MOV 34H,#24
LJMP TROVE
CHU_E:
CJNE R2,#0,VT_E2
MOV 31H,#32
LJMP TROVE
VT_E2:
CJNE R2,#1,VT_E3
MOV 32H,#32
LJMP TROVE
VT_E3:
CJNE R2,#2,VT_E4
MOV 33H,#32
LJMP TROVE
VT_E4:
MOV 34H,#32
LJMP TROVE
Quang báo điều chỉnh qua bàn phím
Page 38
CHU_F:
CJNE R2,#0,VT_F2
MOV 31H,#40
LJMP TROVE
VT_F2:
CJNE R2,#1,VT_F3
MOV 32H,#40
LJMP TROVE
VT_F3:
CJNE R2,#2,VT_F4
MOV 33H,#40
LJMP TROVE
VT_F4:
MOV 34H,#40
LJMP TROVE
CHU_G:
CJNE R2,#0,VT_G2
MOV 31H,#48
LJMP TROVE
VT_G2:
CJNE R2,#1,VT_G3
MOV 32H,#48
LJMP TROVE
VT_G3:
CJNE R2,#2,VT_G4
MOV 33H,#48
LJMP TROVE
VT_G4:
MOV 34H,#48
LJMP TROVE
CHU_H:
CJNE R2,#0,VT_H2
MOV 31H,#56
LJMP TROVE
VT_H2:
CJNE R2,#1,VT_H3
MOV 32H,#56
LJMP TROVE
VT_H3:
CJNE R2,#2,VT_H4
MOV 33H,#56
LJMP TROVE
VT_H4:
MOV 34H,#56
LJMP TROVE
CHU_I:
CJNE R2,#0,VT_I2
MOV 31H,#64
LJMP TROVE
VT_I2:
Quang báo điều chỉnh qua bàn phím
Page 39
CJNE R2,#1,VT_I3
MOV 32H,#64
LJMP TROVE
VT_I3:
CJNE R2,#2,VT_I4
MOV 33H,#64
LJMP TROVE
VT_I4:
MOV 34H,#64
LJMP TROVE
CHU_J:
CJNE R2,#0,VT_J2
MOV 31H,#72
LJMP TROVE
VT_J2:
CJNE R2,#1,VT_J3
MOV 32H,#72
LJMP TROVE
VT_J3:
CJNE R2,#2,VT_J4
MOV 33H,#72
LJMP TROVE
VT_J4:
MOV 34H,#72
LJMP TROVE
CHU_K:
CJNE R2,#0,VT_K2
MOV 31H,#80
LJMP TROVE
VT_K2:
CJNE R2,#1,VT_K3
MOV 32H
Các file đính kèm theo tài liệu này:
- 73898021-Quang-Bao-Nhap-Tu-Ban-Phim-net.pdf