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

vi xử lý hệ thống điều khiển công tắc

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 (515.47 KB, 7 trang )


KHOA CÔNG NGHỆ ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP




T
T
À
À
I
I


L
L
I
I


U
U


H
H
Ư
Ư



N
N
G
G


D
D


N
N


T
T
H
H
Í
Í


N
N
G
G
H
H
I
I



M
M


-
-


T
T
H
H


C
C


H
H
À
À
N
N
H
H




















G. HỆ THỐNG ĐIỀU KHIỂN CÔNG TẮC.
Giáo trình thực hành vi xử lý. 2 Biên soạn: Phạm Quang Trí

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 các thiết bị ngoại vi bằng công tắc.
• Trình bày một số ứng dụng điều khiển các thiết bị ngoại vi có sử dụng công tắc.

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 công tắc.
• Nắm được sơ đồ và nguyên lý hoạt động của khối công tắc trên mô hình thí nghiệm.
• Biết cách viết các chương trình ứng dụng có sử dụng công tắc để điều khiển các thiết bị ngoại vi khác
nhau.




G. H THNG IU KHIN CễNG TC.
Bi tp: Chng trỡnh iu khin cụng tc v hin th lờn tỏm LED mc logic hin ti (LED sỏng = mc cao,
LED tt = mc thp) ca tỏm cụng tc gt (SWITCH c ni vi Port0, LED c ni vi Port1 (cú s
dng b m o)).
Giỏo trỡnh thc hnh vi x lý. 3 Biờn son: Phm Quang Trớ
1 Trỡnh t tin hnh thớ nghim:
1.1 Kt ni thit b thớ nghim.
Tt ngun cp cho mụ hỡnh thớ nghim.
Dựng dõy bus 8 ni J64 (PORT1) khi vi iu khin vi J11 (BAR LED 1) khi dóy LED.
Dựng dõy bus 8 ni J63 (PORT0 / DATA) khi vi iu khin vi J34 (SWITCH) khi cụng tc.
Dựng hai dõy bus 3 ni J103 (POWER) khi dóy LED v J106 (POWER) khi cụng tc vi ngun
+5V khi ngun.
POWERSWITCH
PORT 0PORT 1PORT 3PORT 2
PORT 1PORT 3
40 PINS
20 PINS
3
3

1.2 S nguyờn lý ca h thng:

AD7
AD0
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
AD6
AD5
AD4
AD3
AD2
AD1
D0
D0 D0
D1 D1
D2 D2
D3 D3
D4 D4
D5 D5
D6 D6
D7 D7
D7
D6
D5
D4
D3

D2
D1
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
XTAL2
18
XTAL1
19
ALE
30
EA
31
PSEN
29
RST
9
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36

P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6
33
P0.7/AD7
32
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12

P3.3/INT1
13
P3.4/T0
14
P3.7/RD
17
P3.6/WR
16
P3.5/T1
15
P2.7/A15
28
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27
U1
AT89C51
C1
33p

C2
33p
X1
12MHz
C3
10uF
R1
10k
+5V
D0
R2
330
+5V
D1
R3
330
+5V
D2
R4
330
+5V
D3
R5
330
+5V
D4
R6
330
+5V
D5

R7
330
+5V
D6
R8
330
+5V
D7
R9
330
+5V
1B
1
2B
2
3B
3
4B
4
5B
5
6B
6
7B
7
8B
8
1C
18
2C

17
3C
16
4C
15
5C
14
6C
13
7C
12
8C
11
COM
10
U2
ULN2803
2
3
4
5
6
7
8
9
1
RP1
10K
+5V
MAẽCH ẹIEU KHIEN CONG TAẫC

MAẽCH ẹIEU KHIEN CONG TAẫCMAẽCH ẹIEU KHIEN CONG TAẫC
MAẽCH ẹIEU KHIEN CONG TAẫC
2
3
4
5
6
7
8
9
1
RP2
10K
+5V
+5V
SW7 SW6 SW5 SW4 SW3 SW2 SW1 SW0

1.3 V lu gii thut v vit chng trỡnh iu khin.
G. HỆ THỐNG ĐIỀU KHIỂN CÔNG TẮC.
Bài tập: Chương trình điều khiển công tắc và hiển thị lên tám LED mức logic hiện tại (LED sáng = mức cao,
LED tắt = mức thấp) của tám công tắc gạt (SWITCH được nối với Port0, LED được nối với Port1 (có sử
dụng bộ đệm đảo)).
Giáo trình thực hành vi xử lý. 4 Biên soạn: Phạm Quang Trí
BEGIN
ĐIỀU KHIỂN TẮT LED 0
(P1.0) = 0
MAIN:
G
Đ
S

SW0 BẬT (ON) ?
(P0.0) = 0
ĐIỀU KHIỂN TẮT LED
(P1) = 00H
SW1:
ĐIỀU KHIỂN SÁNG LED 0
(P1.0) = 1
SW0:
SW0OK:
ĐIỀU KHIỂN TẮT LED 1
(P1.1) = 0
Đ
S
SW1 BẬT (ON) ?
(P0.1) = 0
SW2:
ĐIỀU KHIỂN SÁNG LED 1
(P1.1) = 1
SW1OK:
ĐIỀU KHIỂN TẮT LED 2
(P1.2) = 0
Đ
S
SW2 BẬT (ON) ?
(P0.2) = 0
SW3:
ĐIỀU KHIỂN SÁNG LED 2
(P1.2) = 1
SW2OK:
ĐIỀU KHIỂN TẮT LED 3

(P1.3) = 0
Đ
S
SW3 BẬT (ON) ?
(P0.3) = 0
SW4:
ĐIỀU KHIỂN SÁNG LED 3
(P1.3) = 1
SW3:
SW3OK:
ĐIỀU KHIỂN TẮT LED 4
(P1.4) = 0
Đ
S
SW4 BẬT (ON) ?
(P0.4) = 0
SW5:
ĐIỀU KHIỂN SÁNG LED 4
(P1.4) = 1
SW4OK:
ĐIỀU KHIỂN TẮT LED 5
(P1.5) = 0
Đ
S
SW5 BẬT (ON) ?
(P0.5) = 0
SW6:
ĐIỀU KHIỂN SÁNG LED 5
(P1.5) = 1
SW5OK:

ĐIỀU KHIỂN TẮT LED 6
(P1.6) = 0
Đ
S
SW6 BẬT (ON) ?
(P0.6) = 0
SW7:
ĐIỀU KHIỂN SÁNG LED 6
(P1.6) = 1
SW6OK:
ĐIỀU KHIỂN TẮT LED 7
(P1.7) = 0
Đ
S
SW7 BẬT (ON) ?
(P0.7) = 0
ĐIỀU KHIỂN SÁNG LED 7
(P1.7) = 1
SW7OK:
SW6:

;***************************************************
;CHUONG TRINH DIEU KHIEN CONG TAC LAM 8 LED HOAT DONG
;***************************************************
;KET NOI: 8 LED -> PORT1
; SWITCH -> PORT0
;***************************************************
ORG 00H
MAIN:


MOV P1,#00H ;TAT CAC LED
SW0: ;SW0
JB P0.0,SW0OK ;KIEM TRA CONG TAC SW0 - Y: SW0 = 1
CLR P1.0 ;SW0 NHA -> LED TAT
G. HỆ THỐNG ĐIỀU KHIỂN CÔNG TẮC.
Bài tập: Chương trình điều khiển công tắc và hiển thị lên tám LED mức logic hiện tại (LED sáng = mức cao,
LED tắt = mức thấp) của tám công tắc gạt (SWITCH được nối với Port0, LED được nối với Port1 (có sử
dụng bộ đệm đảo)).
Giáo trình thực hành vi xử lý. 5 Biên soạn: Phạm Quang Trí
SJMP SW1 ;KIEM TRA CONG TAC KE TIEP
SW0OK:
SETB P1.0 ;SW0 NHAN -> LED SANG
SW1: ;SW1
JB P0.1,SW1OK ;KIEM TRA CONG TAC SW1 - Y: SW1 = 1
CLR P1.1 ;SW1 NHA -> LED TAT
SJMP SW2 ;KIEM TRA CONG TAC KE TIEP
SW1OK:
SETB P1.1 ;SW1 NHAN -> LED SANG
SW2: ;SW2
JB P0.2,SW2OK ;KIEM TRA CONG TAC SW2 - Y: SW2 = 1
CLR P1.2 ;SW2 NHA -> LED TAT
SJMP SW3 ;KIEM TRA CONG TAC KE TIEP
SW2OK:
SETB P1.2 ;SW2 NHAN -> LED SANG
SW3: ;SW3
JB P0.3,SW3OK ;KIEM TRA CONG TAC SW3 - Y: SW3 = 1
CLR P1.3 ;SW3 NHA -> LED TAT
SJMP SW4 ;KIEM TRA CONG TAC KE TIEP
SW3OK:
SETB P1.3 ;SW3 NHAN -> LED SANG

SW4: ;SW4
JB P0.4,SW4OK ;KIEM TRA CONG TAC SW4 - Y: SW4 = 1
CLR P1.4 ;SW4 NHA -> LED TAT
SJMP SW5 ;KIEM TRA CONG TAC KE TIEP
SW4OK:
SETB P1.4 ;SW4 NHAN -> LED SANG
SW5: ;SW5
JB P0.5,SW5OK ;KIEM TRA CONG TAC SW5 - Y: SW5 = 1
CLR P1.5 ;SW5 NHA -> LED TAT
SJMP SW6 ;KIEM TRA CONG TAC KE TIEP
SW5OK:
SETB P1.5 ;SW5 NHAN -> LED SANG
SW6: ;SW6
JB P0.6,SW6OK ;KIEM TRA CONG TAC SW6 - Y: SW6 = 1
CLR P1.6 ;SW6 NHA -> LED TAT
SJMP SW7 ;KIEM TRA CONG TAC KE TIEP
SW6OK:
SETB P1.6 ;SW6 NHAN -> LED SANG
SW7: ;SW7
JB P0.7,SW7OK ;KIEM TRA CONG TAC SW7 - Y: SW7 = 1
CLR P1.7 ;SW7 NHA -> LED TAT
SJMP SW0 ;KIEM TRA CONG TAC KE TIEP
SW7OK:
SETB P1.7 ;SW7 NHAN -> LED SANG
SJMP SW0
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ị giá trị nhị phân của tám công tắc gạt dưới dạng số HEX
trên hai LED 7 đoạn (LED6 và LED7).
• Bài 2:
Hãy viết chương trình điều khiển hiển thị giá trị nhị phân của tám công tắc gạt dưới dạng số DEC
trên ba LED 7 đoạn (LED5, LED6 và LED7).
G. HỆ THỐNG ĐIỀU KHIỂN CÔNG TẮC.
Bài tập: Chương trình điều khiển công tắc và hiển thị lên tám LED mức logic hiện tại (LED sáng = mức cao,
LED tắt = mức thấp) của tám công tắc gạt (SWITCH được nối với Port0, LED được nối với Port1 (có sử
dụng bộ đệm đảo)).
Giáo trình thực hành vi xử lý. 6 Biên soạn: Phạm Quang Trí
• Bài 3: Hãy viết chương trình điều khiển công tắc và biểu diễn các kiểu hiển thị trên 8 LED.
 SW1 = ON (mức thấp): 8 LED tắt hết (không hoạt động).
 SW2 = ON (mức thấp): 8 LED sáng tắt liên tục.
 SW3 = ON (mức thấp): 8 LED sáng dần và tắt hết liên tục.
 SW4 = ON (mức thấp): 8 LED đếm lên nhị phân 8 bit liên tục.
 SW5 = ON (mức thấp): 8 LED sáng đuổi liên tục.
 SW6 = ON (mức thấp): 8 LED sáng dồn liên tục.
 SW7 = ON (mức thấp): 8 LED sáng hết và tắt dần liên tục.
 SW8 = ON (mức thấp): 8 LED đếm xuống nhị phân 8 bit liên tục.
• Bài 4: Hãy viết chương trình điều khiển công tắc để đóng ngắt RELAY1. RELAY1 sẽ đóng khi các công
tắc được gạt đúng vị trí đã chọn trước (SW1, 3, 5, 7 = ON và SW2, 4, 6, 8 = OFF) và nhấn nút nhấn KEY0.
Ngược lại thì RELAY1 sẽ ngắt. Khi RELAY1 đóng thì trên LED ma trận hiển thị chữ Y, còn khi RELAY1
ngắt thì LED ma trận hiển thị chữ N.
• Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.


3 Hướng dẫn:
Đổi số nhị phân 8 bit thành mã BCD nén (packed BCD):
o Lấy giá trị cần chuyển đổi (0 – 255) chia cho 10

Số dư sẽ là mã BCD hàng đơn vị.
o Lấy kết quả (thương số) của phép chia trên chia tiếp cho 10

Số dư sẽ là mã BCD hàng chục.
o Kết quả (thương số) của phép chia trên

Mã BCD hàng trăm.
o Kết hợp mã BCD của hàng chục và hàng đơn vị lại thành mã BCD nén. Còn mã BCD của hàng
trăm thì giữ nguyên.
o Chương trình mẫu:
;***************************************************
;CTC CHUYEN DOI SO BINARY 8 BIT (<= 255) SANG SO BCD.
;***************************************************
;NAME: BIN8TOBCD.
;INPUT: R7 = SO BIN 8 BIT (<= 255).
;OUTPUT: R7,R6 = SO BCD (TRAM - CHUC - DON VI).
;***************************************************
BIN8TOBCD:
PUSH ACC
PUSH B
MOV B,#10
MOV A,R7
DIV AB ;LAY R7 CHIA CHO 10
PUSH B ;CAT SO HANG DON VI
MOV B,#10

DIV AB ;LAY KET QUA TREN CHIA TIEP CHO 10
MOV R7,A ;R7 = TRAM
MOV A,B ;LAY SO HANG CHUC
SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO
POP B ;LAY SO HANG DON VI TU STACK
ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI
MOV R6,A ;R6 = CHUC - DON VI
POP B
POP ACC
RET
;***************************************************
G. HỆ THỐNG ĐIỀU KHIỂN CÔNG TẮC.
Bài tập: Chương trình điều khiển công tắc và hiển thị lên tám LED mức logic hiện tại (LED sáng = mức cao,
LED tắt = mức thấp) của tám công tắc gạt (SWITCH được nối với Port0, LED được nối với Port1 (có sử
dụng bộ đệm đảo)).
Giáo trình thực hành vi xử lý. 7 Biên soạn: Phạm Quang Trí
o Lưu đồ:

×