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

Vi Mạch MCS 51 - Ứng Dụng Thực Tế part 7 potx

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




TRUNG TÂM THÍ NGHIỆM THỰC HÀNH Đ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



















Giáo trình thực hành vi xử lý. 47 Biên soạn: Phạm Quang Trí


MỘT SỐ ĐIỂM CẦN CHÚ Ý
KHI KẾT NỐI MẠCH VÀ VIẾT CHƯƠNG TRÌNH


A. Khi kết nối mạch:

• Tên của từng port xuất nhập trên mô hình.
• Thứ tự các bit (từ LSB đến MSB) tại các port xuất nhập trên mô hình.
• Khi kết nối phải đảm bảo sao cho bit 0 của port vi điều khiển đúng vị trí bit 0 của đối tượng

cần điều khiển.
• Khi kết nối đúng vị trí bit 0 thì các bit còn lại sẽ đúng vị trí.
• Tất cả các chương trình mẫu trong hệ thống này đều được kiểm tra rất kỹ theo đúng như kết
nối mạch được trình bày.
• Nếu một yêu cầu nào đó không đúng thì hãy xem lại phần kết nối và chương trình.

B. Khi viết chương trình:

• Số 0 thường được đánh nhầm là chữ O.
• Thường đánh thiếu tiền tố # và hậu tố H đi kèm trong một số trường hợp.
• Sau lệnh END thì không còn một hàng hay một ký tự nào (kể cả ký tự trắng) nếu không
chương trình biên dịch sẽ báo lỗi. Lỗi này có thể bỏ qua.
• Hãy dùng phím TAB để viết chương trình cho thẳng hàng. Điều này rất có ích cho bạn khi
cần xem lại và kiểm tra lỗi chương trình được nhanh chóng.
• Nếu nhập một chương trình nào đó trong tài liệu mà chương trình chạy không đúng như yêu
cầu thì hãy xem kỹ lại có đánh đầy đủ tất cả các lệnh trong chương trình hay chưa? Có thiếu
sót gì không? Kết nối mạch có theo như hướng dẫn hay không? Tất cả các chương trình
trong tài liệu hướng dẫn đã được chạy thử và luôn luôn đúng.





ĐỌC KỸ HƯỚNG DẪN SỬ DỤNG TRƯỚC KHI THỰC HÀNH










TRUNG TÂM THÍ NGHIỆM THỰC HÀNH Đ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

















A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN
Giáo trình thực hành vi xử lý. 49 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 việc hiển thị bằng cách sử dụng LED đơn.
• Viết các chương trình con tạo thời gian trễ sử dụng trong các ứng dụng điều khiển.

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 đơn ở các chế độ khác nhau.
• Nắm được sơ đồ và nguyên lý hoạt động của khối LED đơn trên mô hình thí nghiệm.
• Nắm được nguyên lý điều khiển LED đơn ở các chế độ khác nhau.
• Biết cách tính toán các thông số delay của Timer trong vi điều khiển.
• Biết cách viết các chương trình tạo thời gian trễ với các khoảng thời gian bất kỳ.



A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN
Bài 1: Chương trình điều khiển 8 LED được nối với Port0 sáng tắt (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 50 Biên soạn: Phạm Quang Trí
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 J12 (BAR LED 2) ở khối dãy LED với J63 (PORT0 / DATA) ở khối vi điều khiển.
• Dùng dây bus 3 nối J103 (POWER) ở khối dãy LED với nguồn +5V ở khối nguồn.
PORT 0PORT 1PORT 3PORT 2
PORT 1PORT 3
40 PINS
20 PINS

1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
;***************************************************
;CHUONG TRINH DIEU KHIEN 8 LED SANG TAT
;***************************************************
;KET NOI: 8 LED -> PORT0 (CO DEM DAO).
;***************************************************
ORG 00H

CHOPTAT:
MOV P0,#00H ;LED TAT
LCALL DELAY500MS
MOV P0,#0FFH ;LED SANG
LCALL DELAY500MS
SJMP CHOPTAT ;QUAY LAI
;****************************************************
DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
PUSH 00H
MOV R0,#100
MOV TMOD,#01H
LOOP2:
MOV TH0,#0ECH
MOV TL0,#78H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R0,LOOP2
POP 00H
RET
END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 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.6 Nạp chương trình vào vi điều khiển.
1.7 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.
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN
Bài 1: Chương trình điều khiển 8 LED được nối với Port0 sáng tắt (có sử dụng bộ đệm đảo).

Giáo trình thực hành vi xử lý. 51 Biên soạn: Phạm Quang Trí
1.8 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 8 LED được nối với Port3 sáng tắt.
• Bài 2: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port0 và Port1) sáng tắt.
• Bài 3: Hãy viết chương trình điều khiển 8 LED được nối với Port0 sáng, 8 LED được nối với Port1 tắt rồi
sau đó 8 LED được nối với Port0 tắt, 8 LED được nối với Port1 sáng.
• Bài 4: Nếu muốn thay đổi tốc độ sáng tắt nhanh hay chậm thì bạn phải làm gì? Thử thực hiện xem ?
• Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN
Bài 2: Chương trình điều khiển đếm lên nhị phân 8 bit và hiển thị trên 8 LED được nối với Port0 (có sử dụng
bộ đệm đảo).
Giáo trình thực hành vi xử lý. 52 Biên soạn: Phạm Quang Trí
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 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
;***************************************************
;CHUONG TRINH DIEU KHIEN 8 LED DEM LEN NHI PHAN
;***************************************************
;KET NOI: 8 LED -> PORT0 (CO DEM DAO).
;***************************************************
ORG 00H
MOV P0,#00H ;LED TAT
LCALL DELAY500MS
LAP:
INC P0 ;TANG NHI PHAN
LCALL DELAY500MS

SJMP LAP ;QUAY LAI
;****************************************************
DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
PUSH 00H
MOV R0,#100
MOV TMOD,#01H
LOOP2:
MOV TH0,#0ECH
MOV TL0,#78H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R0,LOOP2
POP 00H
RET
END
1.3 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 đếm lên nhị phân 8 bit và hiển thị trên 8 LED được nối với Port3.
• Bài 2: Hãy viết chương trình điều khiển đếm lên nhị phân 16 LED được nối với hai Port (Port0 và Port1).
• Bài 3: Hãy viết chương trình điều khiển tương tự như hai bài tập 1 và 2 nhưng là đếm xuống.
• Bài 4: Nếu muốn thay đổi tốc độ đếm nhanh hay chậm thì bạn phải làm gì? Thử thực hiện xem ?
• Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN
Bài 3: Chương trình điều khiển 8 LED được nối với Port0 sáng dần và tắt hết (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 53 Biên soạn: Phạm Quang Trí
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 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1:
;***************************************************
;CHUONG TRINH DIEU KHIEN 8 LED SANG DAN VA TAT HET
;***************************************************
;KET NOI: 8 LED -> PORT0 (CO DEM DAO).
;***************************************************
ORG 00H
MAIN:
MOV P0,#00000000B ;HIEN THI 0 LED
LCALL DELAY500MS
MOV P0,#00000001B ;HIEN THI 1 LED
LCALL DELAY500MS
MOV P0,#00000011B ;HIEN THI 2 LED
LCALL DELAY500MS
MOV P0,#00000111B ;HIEN THI 3 LED
LCALL DELAY500MS
MOV P0,#00001111B ;HIEN THI 4 LED
LCALL DELAY500MS
MOV P0,#00011111B ;HIEN THI 5 LED
LCALL DELAY500MS
MOV P0,#00111111B ;HIEN THI 6 LED
LCALL DELAY500MS
MOV P0,#01111111B ;HIEN THI 7 LED
LCALL DELAY500MS
MOV P0,#11111111B ;HIEN THI 8 LED
LCALL DELAY500MS
SJMP MAIN ;QUAY LAI
;****************************************************
DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS

PUSH 00H
MOV R0,#100
MOV TMOD,#01H
LOOP2:
MOV TH0,#0ECH
MOV TL0,#78H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R0,LOOP2
POP 00H
RET
END
• Cách 2:
;***************************************************
;CHUONG TRINH DIEU KHIEN 8 LED SANG DAN VA TAT HET
;***************************************************
;KET NOI: 8 LED -> PORT0 (CO DEM DAO).
;***************************************************
ORG 00H
MAIN:
MOV R0,#00H ;BIEN DEM SO TRANG THAI HIEN THI
MOV DPTR,#DATADISP ;NAP DIA CHI VUNG DU LIEU
LOOP:
MOV A,R0
MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG NHO
MOV P0,A ;HIEN THI
LCALL DELAY500MS


INC R0 ;LAY DU LIEU KE TIEP
CJNE R0,#9,LOOP ;KIEM TRA SO DU TRANG THAI HIEN THI
SJMP MAIN ;QUAY LAI
;****************************************************
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN
Bài 3: Chương trình điều khiển 8 LED được nối với Port0 sáng dần và tắt hết (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 54 Biên soạn: Phạm Quang Trí
DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
PUSH 00H
MOV R0,#100
MOV TMOD,#01H
LOOP2:
MOV TH0,#0ECH
MOV TL0,#78H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R0,LOOP2
POP 00H
RET
;****************************************************
DATADISP: ;VUNG DU LIEU HIEN THI
DB 00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH
END
• Cách 3:
;***************************************************
;CHUONG TRINH DIEU KHIEN 8 LED SANG DAN VA TAT HET
;***************************************************
;KET NOI: 8 LED -> PORT0 (CO DEM DAO).

;***************************************************
ORG 00H
MAIN:
MOV A,#00H ;KHOI DONG GIA TRI BAN DAU
LAP:
SETB C ;C=1
MOV P0,A ;HIEN THI
LCALL DELAY500MS
RLC A ;DICH BIT 1 SANG TRAI KEM C, SANG DAN
JNC LAP ;CHUA SANG HET THI LAM TIEP
SJMP MAIN ;QUAY LAI
;****************************************************
DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS
PUSH 00H
MOV R0,#100
MOV TMOD,#01H
LOOP2:
MOV TH0,#0ECH
MOV TL0,#78H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R0,LOOP2
POP 00H
RET
END
1.3 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 8 LED được nối với Port3 sáng dần và tắt hết.

• Bài 2: Hãy viết chương trình điều khiển 8 LED được nối với Port2 sáng hết và tắt dần.
• Bài 3: Hãy viết chương trình điều khiển tương tự như hai bài tập 1 và 2 nhưng là theo chiều ngược lại.
• Bài 4: Hãy viết chương trình điều khiển 8 LED được nối với Port1 sáng dần và tắt dần.
• Bài 5: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port2 và Port3) sáng dần và tắt dần.
• Bài 6: Hãy viết chương trình điều khiển tương tự như hai bài tập 4 và 5 nhưng là theo chiều ngược lại.
• Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.

×