Professional Documents
Culture Documents
Báo Cáo VXL
Báo Cáo VXL
HỒ CHÍ MINH
Vi Xử Lý
MSSV: 20146349
Đầu tiên chúng ta khai báo biến cục bộ và khai báo nguyên hàm quét led
Viết Hàm con quetled với 3 biến đầu vào là tram , chuc , donvi.
Viết Lệnh ngắt , cho dem++
Trong while(1) chúng ta thực hiện tính toán tram , chuc , donvi sau đó gọi hàm con cho led sáng lên
hiển thị số đếm từ 00-99
Bài 3) Viết chương trình đếm số lần nhấn nút đếm lên
và đếm xuống, và hiển thị trên led 7 đoạn
(0 -> 99 )
Sử dụng chức năng ngắt ngoài
Bài làm
Cũng tương tự như câu 2 , chỉ là chúng ta tạo thêm 1 ngắt ngoài nữa để thực hiện đếm xuống
Chúng ta khai báo ngắt ngoài .
ở ngắt EXTI1 , khi nhấn nút thì đếm lên 1 đơn vị, ở ngắt EXTI2 khi nhấn nút thì lùi 1 đơn vị là đếm
xuống.
Câu 4: Viết chương trình thực hiện theo yêu cầu sau.
Nhấn nút màu xanh (D11) không giữ, băng tải quay
liên tục.
Nhấn nút vàng (không giữ) băng tải dừng lại.
Nhấn nút đỏ (không giữ), bang tải dùng lại.
Sử dụng chức năng ngắt ngoài
Bài Làm
Đầu tiên chúng ta khai báo GPIO cho băng tải là PB0
Tiếp đến chúng ta khai báo ngắt cho nút D11(xanh)
Sau đó chúng ta khai báo ngắt cho C6(đỏ) và nút C7(vàng) và cho trạng thái Băng tải lúc mới vào là
đứng im
Viết lệnh ngắt cho PD11 , khi nhấn nút thì đảo trạng thái của băng tải cho nó quay
Viết lệnh ngắt ngoài cho C6 và C7: tạo lệnh if(EXTI->PR & (1<<6)) có nghĩa là khi nhấn nút C6(đỏ)
Do trong ngắt từ 5 đến 9 chúng ta sử dụng tới 2 ngắt ngoài 6 và 7 nên phải tạo lệnh if như thế để
phân biết nút nào , còn trường hợp chỉ sử dụng 1 ngắt ngoài như D11 từ 10-15 thì không cần sử
dụng lệnh if .
Bài 5) Viết chương trình thực hiện theo yêu cầu sau.
Nhấn nút màu xanh (không giữ) đèn D1, D2 chớp tắt
với chu kỳ 1s
Nhấn nút đỏ (không giữ), 2 đèn tắt.
Sử dụng chức năng ngắt ngoài
Bài Làm