[VI ĐIỀU KHIỂN PIC***] - BÀI TẬP MẪU ĐẶC BIỆT CỦA VI ĐIỀU KHIỂN PIC16F877A - BeeLab

Monday, June 5, 2017

[VI ĐIỀU KHIỂN PIC***] - BÀI TẬP MẪU ĐẶC BIỆT CỦA VI ĐIỀU KHIỂN PIC16F877A

Bài 1: Ban đầu: 16 led đơn tắt và dòng 2 LCD không hiển thị (chỉ hiển thị dòng 1)
a. Khi nhấn nút UP rồi thả: có 1 led đơn sáng và hiển thị một dấu “>” trên dòng 2 LCD. Khi led đơn 16 sáng thì nhấn Up không có tác dụng
b. Khi nhấn DW rồi thả: có 1 led đơn tắt và xóa một dấu “>” trên dòng 2 LCD. Khi 16 led đơn tắt hết thì nhấn DW không có tác dụng



=============================================
Bài 2: Viết chương trình đếm sản phẩm hiển thị trên LCD theo yêu cầu sau:
a. 2 nut UP/DOWN thay doi "giatri_dat" hien thi 2 led 7 doan (quet) (2 điểm)
+ giatri_dat chi thay doi trong khoang 0->30 (1 diem)
b. Sử dụng Counter đếm số xung từ bên ngoài và hiển thị giá trị “dem “hien thi dong 1 LCD (3 điểm)
c. Ban đầu khong doc xung sau khi nhan nut START xung bat dau doc xung lưu vào biến “dem”. (2 điểm)
d. So sanh ket qua: (2 điểm)
+ dem > gtri_dat → LCD hien thi "OVER" tren dong 2 LCD
+ dem <= gtri_dat → LCD hien thi "CONTINUE" tren dong 2 LCD
Video giải bài tập để cái bạn hiểu rõ hơn
[Video code chi tiết ===> Click here]


=============================================
Bài 3: Viết chương trình điều khiển đèn giao thông với thời gian đèn xanh là 18s, đèn vàng 2s, đèn đỏ 20s sử dụng ngắt Timer để định thời gian cho chính xác sau đó chạy mô phỏng trên Proteus:
a. Ban đầu: đèn X1 sáng với thời gian 18s và D2 sáng với thời gian 20s sau đó thời gian đếm lùi.
b. Khi thời gian đèn X1 bằng 0 thì X1 tắt, V1 sáng.
c. Khi thời gian đèn V1 bằng 0 thì V1 tắt, D1 và X2 sáng.
Khi thời gian đèn X2 bằng 0 thì X2 tắt, V2 sáng, khi thời gian V2 bằng 0 thì chương trình lặp lại từ đầu.
[Video code chi tiết ===> Click here]


=============================================
Bài 4: 
- Thiết kế mạch điều khiển giống hình 1 trên phần mềm Protues 
- Viết chương trình điều khiển hiển thị 16 mức volume bằng led đơn và trên LCD sau đó chạy mô phỏng trên Proteus:
a. Ban đầu: led đơn sáng đồng thời dòng 1 LCD giá trị ADC và số lượng led đơn đang sáng còn dòng 2 LCD hiển thị tương ứng với vị trí của biến trở.
b. Khi chỉnh biến trở theo chiều mũi tên ↑: thì số led đơn sáng tăng dần và số ký tự “>” trên dòng 2 LCD cũng tăng dần. Khi tăng biến trở đến vị trí max thì 16 led đơn sáng và dòng 2 LCD hiển thị đủ 16 ký tự “>”.
c. Khi chỉnh biến trở theo chiều mũi tên ↓: thì số led đơn sáng giảm dần và số ký tự “>” trên dòng 2 LCD cũng giảm dần. Khi giảm biến trở đến vị trí min thì 16 led đơn tắt và dòng 2 LCD rổng.
* lưu ý: khi đọc ADC thay đổi hơn 63 đơn vị thì volume mới thay đổi 1 mức.
[Video code chi tiết ===> Click here]


=============================================
Bài 5
a. Đọc giá trị LM35 hiển thị nhiệt độ trên dòng 1 LCD và 2 LED 7 đoạn (4 điểm)
b. Đọc giá trị biến trở hiển thị phần trăm trên dòng 2 LCD (3 điểm)
c. So sanh ket qua: (3 điểm bao gồm điểm phần cứng)
+ nhietdo > bientro → quạt quay
+ nhietdo <= bientro → quạt dừng
Video giải bài tập

=============================================
Bài 6: Viết chương trình điều khiển tốc độ động cơ DC (32 cấp) với tần số xung là 200kHz và hiển thị thông tin trên LCD theo yêu cầu sau và chạy mô phỏng trên Proteus:
a. Ban đầu: động cơ DC dừng và màn hình LCD hiển thị thông tin như hình 1.
b. Khi nhấn nút START: Thì động cơ DC chạy ở cấp độ 16, dòng 1 LCD hiển thị "CHAY" và "THUAN", dòng 2 hiển thị “CAP TOC DO”. Nếu động cơ đang chạy mà nhấn START lần nữa thì động cơ dừng lúc này dòng 2 LCD hiển thị “DUNG”.
c. Khi nhấn "DIR" rồi thả: thì động cơ DC đảo chiều đồng thời dòng 1 LCD hiển thị "NGHICH
Khi nhấn UP rồi thả: Thì tốc độ động cơ tăng lên 1 cấp và hiển thị cấp độ ở dòng 2 của LCD. Khi cấp độ bằng 32 thì nhấn UP không có tác dụng.
d. Khi nhấn DW rồi thả: Thì tốc độ động cơ giảm xuống 1 cấp và hiển thị cấp độ ở dòng 2 của LCD. Khi cấp độ bằng 0 thì động cơ dừng và nhấn DW không có tác dụng.
*Lưu ý: Khi động cơ dừng các nút "DIR", "UP", "DW" không có tác dụng

=============================================
Bài 7
- Thiết kế mạch điều khiển giống hình 1 trên phần mềm Protues 
- Viết chương trình theo yêu cầu sau:
a. Viết chương trình đồng hồ thể thao sử dụng ngắt Timer 
b. Đếm ngược giờ, phút, giây, phần trăm giây.
c. Cài đặt được giờ phút giây.
d. Sau khi đồng hồ quay về 00:00:00 báo hết giờ trên dòng 2 LCD

Video mô phỏng và code
[Video code chi tiết ===> Click here]