HẢI PHÒNG – 2024BÀI 1: ĐIỀU KHIỂN MỘT LED ĐƠN TỪ VI ĐIỀU KHIỂN 1.Mục tiêu: 1.1.Nắm 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ể
Trang 1TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỰ ĐỘNG CÔNG NGHIỆP
BÁO CÁO THỰC HÀNH
HỌC PHẦN: KỸ THUẬT VI ĐIỀU KHIỂN
MÃ HỌC PHẦN: 13305
Nhóm: N06-TH1
Giảng viên: NGUYỄN VĂN TIẾN
Bùi Đức Cường 9636
Đỗ Duy Hùng 9532 8 ĐTĐ63ĐH
Trần Đức Anh 9543 4 ĐTĐ63ĐH
Trang 2HẢI PHÒNG – 2024
BÀI 1: ĐIỀU KHIỂN MỘT LED ĐƠN TỪ VI ĐIỀU KHIỂN 1.Mục tiêu:
1.1.Nắm 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, xuất tín hiệu điều khiển từ vi đ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
3.2.Mạch 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 của VĐK 8051:
Sơ đồ mô phỏng trên phần mềm Proteus
Trang 34.2.Viết chương trình để điều khiển LED nhấp nháy với tần số 4Hz -Lưu đồ thuật toán:
Bắt đầu
P1.0=0
P0.0=1 Đ
Delay 125ms
P0.0=0
Delay 125ms
Trang 4Chương trình điều khiển:
#include <sfr51.inc>
ORG 0000H
NHAY_LED:
SETB P0.0
LCALL DELAY0_125s
CLR P0.0
LCALL DELAY0_125s
SJMP NHAY_LED
DELAY0_125s:
MOV R0,#12
BACK1:
MOV R1,#50
BACK2:
MOV R2,#102
BACK3:
DJNZ R2,BACK3
DJNZ R1,BACK2
DJNZ R0,BACK1
RET
END
4.3.Nạp chương trình vào VĐK trên mạch mô phỏng:
Trang 54.4.Chạy thử và đánh giá kết quả
-Mô phỏng thành công, phần mềm chạy ổn định đúng như yêu cầu đề bài, không xảy ra lỗi kỹ thuật
-LED sáng tắt với tần số 4Hz
-Xây dựng mạch đúng theo yêu cầu
-Thuật toán và chương trình điều khiển đáp ứng đúng theo yêu cầu đề ra
Trang 6BÀI 2: ĐIỀU KHIỂN TÁM LED ĐƠN TỪ VI ĐIỀU KHIỂN 1.Mục tiêu:
1.1.Nắm 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, xuất tín hiệu điều khiển từ vi đ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
3.2.Mạch xử lý (kit ME950)
4 Các nội dung, quy trình
4.1.Xây dựng mạch với tám LED đơn được nối với cổng P0 của VĐK 8051và 2 nút ấn được nối với cổng P1.0 và P1.1 (nút ấn cho mức logic 0, tích cực thấp)
4.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 ấn nối với P1.0 thì xoay trái trình tự sáng của các LED Khi ấn nút ấn nối với P1.1 thì xoay
Trang 7phả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 phải sẽ thực hiện 250ms/1lần
-Lưu đồ thuật toán:
Bắt đầu
P0=A
Delay 250ms
Kết thúc
A=E0H
P1.0=0
Đ
P1.1=0 S
S
P1.0=0 S Delay 250ms
P1.1=0
Đ
Đ
S
RL A
Đ
Dừng
S
Đ
RR A
Dừng S Đ
Trang 8#include <sfr51.inc> ORG 0000H
PHIM_DON1: MOV A,#E0H WAIT:
MOV P0,A
TEST1:
JB P1.0,TEST2 LCALL DELAY250MS
JB P1.0,TEST2
RL A
SJMP WAIT
TEST2:
JB P1.1,TEST3 LCALL DELAY250MS
JB P1.1,TEST3
RR A
SJMP WAIT
TEST3:
SJMP TEST1
DELAY250MS:
MOV R0,#12
BACK1:
MOV R1,#103 BACK2:
MOV R2,#100 BACK3:
Trang 9DJNZ R2,BACK3
DJNZ R1,BACK2
DJNZ R0,BACK1
RET
END
4.3.Nạp chương trình vào VĐK trên mạch mô phỏng:
- Đèn sáng theo thứ tự 11100000B khi bắt đầu
- Xoay trái 1 lần khi nút nối với P1.0 được ấn 1 lần
- Xoay phải 4 lần/giây khi nút nối với 1.1 được ấn liên tục
Trang 104.4.Chạy thử và đánh giá kết quả
-Mô phỏng thành công, phần mềm chạy ổn định đúng như yêu cầu đề bài, không xảy ra lỗi kỹ thuật
-Khi ấn nút ấn nối với P1.0 thì LED xoay Khi ấn nút ấn nối với P1.1 thì LED xoay phải Khi nút ấn được ấn liên tục thìLED xoay trái phải thực hiện 250ms/1lần
-Xây dựng mạch đúng theo yêu cầu
-Thuật toán và chương trình điều khiển đáp ứng đúng theo yêu cầu đề ra
Trang 11BÀ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 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, xuất tín hiệu điều khiển từ vi điều khiển thiết bị ngoại vi.Nguyên lý điều khiển LED 7 vạch trực tiếp từ VĐK
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(cấu tạo LED 7 vạch và cách thức điều khiển)
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
3.2.Mạch xử lý (kit ME950)
4 Các nội dung, quy trình
+Cấu tạo LED 7 đoạn (anot chung)
-Các chân a,b,c,d,e,f,g:Hiển thị 7 đoạn LED
tương ứng
-Chân dp:dấu chấm trên LED 7 đoạn
COM: Chân anot chung
Trang 124.1 Xây dựng mạch với 1 LED 7đoạn (anot chung) được nối với cổng P0 của VĐK 8051 theo trình tự các LED a,b,c,…g được nối tương ứng với P0.0, P0.1,
…P0.6
4.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
-Lưu đồ thuật toán:
Chương trình điều khiển:
#include <sfr51.inc>
ORG 0000H
BD:
MOV DPTR,#MALED
MOV A,#0
MOV R0,#0
MAIN:
MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
INC R0
LCALL DELAY
CJNE R0,#10,MAIN
SJMP BD
DELAY:
MOV R1,#4
BACK1:
MOV R2,#250
BACK2:
MOV R3,#250
DJNZ R3,$
Trang 13DJNZ R2,BACK2
DJNZ R1,BACK1
RET
MALED:
DB C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H END
Trang 144.4.Chạy thử và đánh giá kết quả
-Mô phỏng thành công, phần mềm chạy ổn định đúng như yêu cầu đề bài, không xảy ra lỗi kỹ thuật
-Khi ấn nút ấn nối với P1.0 thì 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 mạch đúng theo yêu cầu
-Thuật toán và chương trình điều khiển đáp ứng đúng theo yêu cầu đề ra
Trang 15BÀI 4: ĐIỀU KHIỂN HIỂN THỊ KÍ TỰ TRÊN LCD 2x16 TRỰC TIẾP
TỪ VI ĐIỀU KHIỂN 1.Mục tiêu:
1.1.Nắm 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, xuất tín hiệu điều khiển từ vi điều khiển thiết bị ngoại vi.Nguyên lý điều khiển điều khiển hiển thị ký tự trên lcd
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(cấu tạo nguyên lý hoạt động các tín hiệu điều khiển lcd 16x2)
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
3.2.Mạch xử lý (kit ME950)
3.3.mạch lcd
4.Nội dung quy trình
Chương trình điều khiển:
#include <sfr51.h>
org 0h
lcd16x2:
mov a,#38h
lcall nhap
mov a,#0Ch
lcall nhap
mov a,#06h
Trang 16lcall nhap mov a,#02h lcall nhap mov a,#01h lcall nhap mov a,#'h' lcall nhapvaolcd mov a,#'e' lcall nhapvaolcd mov a,#'l' lcall nhapvaolcd mov a,#'l' lcall nhapvaolcd mov a,#'o' lcall nhapvaolcd mov a,#'!' lcall nhapvaolcd sjmp $ nhap:
clr p2.0 clr p2.1 mov p0,a setb p2.2 lcall tre clr p2.2 lcall tre ret
Trang 17nhapvaolcd: setb p2.0 clr p2.1 mov p0,a setb p2.2 lcall tre clr p2.2 lcall tre ret
tre: mov r0,#30 tre1: mov r1,#20 tre2: mov r2,#100 tre3: djnz r2,tre3 djnz r1,tre2 djnz r0,tre1 ret
end
Trang 19BÀI 5: Điều khiển truyền/nhận dữ liệu từ vi điều khiển với máy tính thông
qua cổng UALT
1 Nội dung:
- Xây dựng mạch với 8 nút ấn được nối với cổng P1, 8 LED đơn được nối với cổng P0
- 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 ra cổng P0, sau đó đọc cổng P1 gửi về máy tính
2 Soạn thảo và dịch chương trình điều khiển trên Reads51
#include <sfr51.inc>
ORG 0H
TH:
MOV SCON,#01010010b
MOV TMOD,#20H
MOV TH1,#253
SETB TR1
MOV DPTR,#NHAN
LOOP:
MOVC A,@A+DPTR
CJNE A,#'$',CONT
SJMP $
CONT:
LCALL OUTCHAR
INC DPTR
MOV A,#0
SJMP LOOP
OUTCHAR:
JNB TI,OUTCHAR
Trang 20CLR TI
MOV SBUF,A
RET
ORG 100H
NHAN:
DB "CHUC MUNG NAM MOI" END