1.1: Nắm bắt các bước thực hiện một ứng dụng sử dụng vi điều khiển: mạch phần cứng, soạn thảo chương trình điều khiển, biên dịch chương trình, nạp chuơng trình vào vi điều khiển, chạy ứn
Trang 1BÀI 1: ĐIỀU KHIỂN MỘT LED ĐƠN TỪ VI ĐIỀU
1 Mục tiêu.
1.1: Nắm bắt các bước thực hiện một ứng dụng sử dụng vi điều khiển: mạch phần cứng, soạn thảo chương trình điều khiển, biên dịch chương trình, nạp chuơng trình vào vi điều khiển, chạy ứng dụng
1.2: Tìm hiểu nguyên lý hoạt động của một hệ vi điều khiển
1.3: Cách thức phối ghép vi điều khiển với các thiết bị ngoại vi, xuất tín hiệu điều khiển từ vi điều khiển để điều khiển thiết bị ngoại vi
1.4: Thực hiện mô phỏng trên máy tính
2 Công tác chuẩn bị của sinh viên:
2.1: Đọc kĩ tài liệu hướng dẫn thực hành, đối chiếu với thiết bị tại phòng thí nghiệm
2.2: Tìm hiểu các đối tượng điều khiển có liên quan
3 Trang thiết bị cần thiết.
3.1: Máy tính PC với đầy đủ các phần mềm liên quan như : Reads51, Proteus 3.2: Mạch vi xử lí (KIT ME950)
4 Các nội dung quy trình.
4.1: Xây dựng mạch với một LED đơn được nối với cổng P0.0 của vi điều khiển
8051 (đã được thực hiện trên KIT ME950 hoặc mô phỏng bằng phần mềm proteus trên PC)
Trang 24.2: Viết chương trình để điều khiển LED nháy với tần số 4Hz
_ Xây dựng lưu đồ thuật toán
_ Soạn thảo và biên dịch chương trình điều khiển bằng phần mềm Reads51 trên PC.
#include <sfr51.inc>
org 0h
;==nhay led tan so 4Hz==
led:
setb p0.0
acall delay_250ms
clr p0.0
lcall delay_250ms
sjmp led
;==tao tre 250ms==
delay_250ms:
mov r0,#5
lap:
Trang 3mov tmod,#01h mov th0,high(-50000) mov tl0,low(-50000) setb tr0
cho:
jnb tf0,cho clr tf0 clr tr0 djnz r0,lap ret
end
4.3: Nạp chương trình vào Vi điều khiển trên KIT ME950 hoặc mạch mô phỏng trên Proteus
4.4: Chạy thử và đánh giá kết quả.
_ Đánh giá: Đèn nháy với độ trễ 250ms
5 Kết luận, các yêu cầu đạt được với sinh viên sau khi thực hành.
_ Xây dựng mạch nguyên lí đúng theo yêu cầu
_ Thuật toán và chuơng trình điều khiển đáo ứng đúng yêu cầu đề ra
Trang 4BÀI 2: ĐIỀU KHIỂN 8 LED ĐƠN TỪ VI ĐIỀU
KHIỂN
1 Mục tiêu
1.1: Nắm bắt được các bước thực hiện một ứng dụng sử dụng Vi điều khiển: Mạch phần cứng, soạn thảo chương trình điều khiển, biên dịch chương trình, nạp chương trình vào Vi điều khiển, chạy ứng dụng
1.2: Tìm hiểu nguyên lý hoạt động của một hệ Vi điều khiển
1.3: Cách thức phối ghép Vi điều khiển với các thiết bị ngoại vi (LED, nút ấn), xuất/nhập tín hiệu giữa Vi điều khiển và thiết bị ngoại vi
1.4: Thực hiện mô phỏng trên máy tính
2 Công tác chuẩn bị của sinh viên
2.1: Đọc kĩ tài liệu hướng dẫn thực hành, đối chiếu với thiết bị tại phòng thí nghiệm
2.2: Tìm hiểu các đối tượng điều khiển có liên quan
3 Trang thiết bị cần thiết
3.1: Máy tính PC với đầy đủ các phần mềm liên quan như : Reads51, Proteus 3.2: Mạch vi xử lí (KIT ME950)
4 Các nội dung quy trình
4.1: Mô phỏng trên proteus: Xây dựng mạch với 8 LED đơn được nối với cổng P0.0 của VĐK 8051 và 2 nút ấn được nối với cổng P1.0 và P1.1 (nút ấn cho mức logic 0)
Trang 54.2: Viết chương trình để điều khiển 8 LED: Khi bắt đầu chương trình các LED được điều khiển để sáng theo thứ tự mẫu Bit 11100000B Khi ấn nút P1.0 thì xoay trái trình tự sáng của các LED Khi ấn nút P1.1 thì xoay phải trình tự sáng của các LED Nếu nút ấn được ấn liên tục thì việc xoay trái or phải sẽ được thực hiện 250ms/1 lần
_ Xây dựng lưu đồ thuật toán
_ Soạn thảo và biên dịch chương trình điều khiển trên Reads51
#include <sfr51.inc>
org 0h
;==cho den sang theo thu tu 111000b==
mov p0,#11100000b
;==dat lenh nut an==
kt:
jnb p1.0,xt
jnb p1.1,xp
sjmp kt
;==xoay trai trinh tu sang==
xt:
mov a,p0
Trang 6rl a
mov p0,a
acall delay_250ms
sjmp kt
;==xoay phai trinh tu sang==
xp:
mov a,p0
rr a
mov p0,a
acall delay_250ms
sjmp kt
;==tao tre 250ms==
delay_250ms:
mov r0,#5
lap:
mov tmod,#01h mov th0,high(-50000) mov tl0,low(-50000) setb tr0
wait:
jnb tf0, wait clr tf0
clr tr0 djnz r0,lap ret
end
4.3: Nạp chương trình vào Vi điều khiển trên KIT ME950 hoặc mạch mô phỏng trên Proteus
4.4: Chạy thử và đánh giá kết quả.
Trang 7*Khi chưa ấn nút :
* Ấn nút P1.0 :
Trang 8*Ấn nút P1.1:
_ Đánh giá: Khi bắt đầu đèn sáng theo trình tự 111000B
Ấn nút P1.0 tạo thành dải 3 LED sáng chạy từ trái sáng phải, nếu giữ
liên tục thì 1s xoay 4 lần
Ấn nút P1.1 tạo thành dải 3 LED sáng chạy từ phải sang trái, nếu giữ liên tục thì 1s xoay 4 lần
5 Kết luận, các yêu cầu đạt được với sinh viên sau khi thực hành
_ Xây dựng mạch nguyên lý theo đúng yêu cầu
_ Thuật toán và chương trình điều khiển đáp ứng đúng yêu cầu đề ra
Trang 9BÀI 3: ĐIỀU KHIỂN MỘT LED 7 VẠCH TRỰC TIẾP TỪ
VI ĐIỀU KHIỂN
1 Mục tiêu:
1.1: Nắm bắt được các bước thực hiện một ứng dụng sử dụng Vi điều khiển: Mạch phần cứng, soạn thảo chương trình điều khiển, biên dịch chương trình, nạp chương trình vào Vi điều khiển, chạy ứng dụng
1.2: Tìm hiểu nguyên lý hoạt động của một hệ Vi điều khiển
1.3: Cách thức phối ghép Vi điều khiển với các thiết bị ngoại vi (LED, nút ấn), xuất/nhập tín hiệu giữa Vi điều khiển và thiết bị ngoại vi Nguyên lí điều khiển LED 7 vạch trực tiếp từ Vi điều khiển
1.4: Thực hiện mô phỏng trên máy tính
2 Công tác chuẩn bị của sinh viên
2.1: Đọc kĩ tài liệu hướng dẫn thực hành, đối chiếu với thiết bị tại phòng thí nghiệm
2.2: Tìm hiểu các đối tượng điều khiển có liên quan
3 Trang thiết bị cần thiết
3.1: Máy tính PC với đầy đủ các phần mềm liên quan như : Reads51, Proteus 3.2: Mạch vi xử lí (KIT ME950)
4 Các nội dung quy trình
4.1: Mô phỏng trên Proteus: Xây dựng mạch với một LED 7 đoạn (anode chung) được nối với cổng P2 của VĐK 8051 theo trình tự các LED a, b, c,…, g được nối tương ứng với P2.0, P2.1,…, P2.6
Trang 104.2: Viết chương trình để điều khiển LED này hiển thị các giá trị từ 0 đến 9, mỗi giá trị hiển thị trong 500ms
_ Xây dựng lưu đồ thuật toán
_ Soạn thảo và biên dịch chương trình điều khiển trên Reads51
#include <sfr51.inc>
org 1000h
db c0h,f9h,a4h,b0h,99h,92h,82h,f8h,80h,90h
org 0h
led7v:
mov dptr,#1000h
Trang 11mov r0,#0
lap:
mov a,r0
movc a,@a+dptr
mov p2,a
lcall delay_500ms
inc r0
cjne r0,#10,lap
mov r0,#0
sjmp lap
;============================ delay_500ms:
mov r2,#10
lood:
mov tmod,#01h
mov th0,#high(-50000)
mov tl0,#low(-50000)
setb tr0
wait:
jnb tf0,wait
clr tf0
clr tr0
djnz r2,lood
ret
end
Trang 124.3: Nạp chương trình vào Vi điều khiển trên KIT ME950 hoặc mạch mô phỏng trên Proteus
4.4: Chạy thử và đánh giá kết quả.
Trang 13
_ Đánh giá: Khi chạy chương trình, LED 7 vạch sẽ đếm từ 0 đến 9 liên tục
5 Kết luận, các yêu cầu đạt được với sinh viên sau khi thực hành
_ Xây dựng mạch nguyên lý theo đúng yêu cầu
_ Thuật toán và chương trình điều khiển đáp ứng đúng yêu cầu đề ra
Trang 14BÀI 4: ĐIỀU KHIỂN HIỂN THỊ KÝ TỰ TRÊN LCDX16
TRỰC TIẾP TỪ VI ĐIỀU KHIỂN
1 Mục tiêu
- Nắm bắt các bước thực hiện một úng dụng sử dụng vi điều khiển: mạch phần cứng,soạn thảo chương trình điều khiển, biên dịch chương trình, nạp chương trình vào vi điều khiển,chạy ứng dụng
-Tìm hiểu nguyên lý hoạt động của LCDx16.
-Cách thức phối ghép vi điều khiển với các thiết bị ngoại vi, xuất tín hiệu điều khiển từ vi điều khiển để điều khiển thiết bị ngoại vi.Nguyên lý điều khiển
LCDx16 trực tiếp từ vi điều khiển.
-Mô phỏng trên máy tính
1 Trang thiết bị cần thiết
-Máy tính PC với đầy đủ phàn mềm liên quan
-Mạch vi xử lý(KIT ME950).
-Mạch LCD(Modul LCD).
2 Nội dung
-Xây dựng mạch ghép nối VĐK 8051 và màn hình LCD 16x2.Trong đó : các đường dữ liệu D0…D7 của LCD được nối với cổng P0 của VDK 8051,chân RS
nối với P2.0,chân RW nối với P2.1, chân E nối vơi P2.2
-Viết chương trình hiển thị ra trên LCD dòng “Hello!”.
3 Soạn thảo chương trình điều khiển trên Reads51
#include<sfr51.inc>
ORG 0H
LCD:
MOV A,#38H
LCALL GUI_LENH
MOV A,#0CH
LCALL GUI_LENH
MOV A,#06H
LCALL GUI_LENH
Trang 15MOV A,#02H
LCALL GUI_LENH MOV A,#01H
LCALL GUI_LENH
; -MOV A,#'H'
LCALL GUI_DU_LIEU MOV A,#'E'
LCALL GUI_DU_LIEU MOV A,#'L'
LCALL GUI_DU_LIEU MOV A,#'L'
LCALL GUI_DU_LIEU MOV A,#'O'
LCALL GUI_DU_LIEU SJMP $
GUI_LENH:
CLR P2.0
CLR P2.1
MOV P0,A
SETB P2.2
LCALL DELAY5
CLR P2.2
LCALL DELAY5
RET
;================
GUI_DU_LIEU:
SETB P2.0
CLR P2.1
MOV P0,A
SETB P2.2
LCALL DELAY5
CLR P2.2
LCALL DELAY5
RET
Trang 16MOV TMOD,#01H
MOV TL0,#LOW(60536) MOV TH0,#HIGH(60536) SETB TR0
CHO:
JNB TF0,CHO
CLR TF0
CLR TR0
RET
END
4 Mô phỏng trên Proteus
Trang 17BÀI 5: ĐIỀU KHIỂN TRUYỀN /NHẬN DỮ LIỆU TỪ VI ĐIỀU KHIỂN VỚI MT THÔNG QUA CỔNG UART
1 Mục tiêu
- Nắm bắt các bước thực hiện một úng dụng sử dụng vi điều khiển: mạch phần cứng,soạn thảo chương trình điều khiển, biên dịch chương trình, nạp chương trình vào vi điều khiển,chạy ứng dụng
-Tìm hiểu nguyên lý hoạt động của một hệ vi điều khiển
-Cách thức truyền nhận dữ liệu giữa vi điều khiển với thiết bị khác qua cổng
UART.
2 Trang thiết bị cần thiết
-Máy tính PC với đầy đủ phàn mềm liên quan
-Mạch vi xử lý(KIT ME950).
-Cáp RS232
3 Nội dung
-Xây dựng mạch với 8 nút ấn được nối với cổng P1,8LED đơn được nối với cổng P0, KIT ME950 được nối với máy tính thông qua cổng RS232
-Viết chương trình để mỗi khi AT89S52 nhận được một byte từ máy tính nó sẽ đưa byte này za cổng P0,sau đó đọc cổng P1 gửi về máy tính
4 Soạn thảo chương trình điều khiển trên Reads51
#include<sfr51.inc>
ORG 0H
MOV SCON,#52H
MOV TMOD,#20H
MOV TH1,#-3H
SETB TR1
;==============
LAP:
JNB TI,NEXT
MOV SBUF,#41H
CLR TI
Trang 18NEXT:
JNB RI,NEXT2
MOV A,SBUF
MOV P2,A
CLR RI
NEXT2:
SJMP LAP
END
5 Mô phỏng trên Proteus