Lập trình xuất dữ liệu điều khiển led đơn Bước 1: Sử dụng phần mềm Proteus ISIS vẽ mạch điện dưới đây Bước 2: Sử dụng phần mềm Keil C viết chương trình điều khiển 8 led lần lượt sáng nhấ
Trang 1BÀI THỰC HÀNH
SỐ 3
Phần 1 Làm theo hướng dẫn
Bài 1 Lập trình xuất dữ liệu điều khiển led đơn
Bước 1: Sử dụng phần mềm Proteus ISIS vẽ mạch điện dưới đây
Bước 2: Sử dụng phần mềm Keil C viết chương trình điều khiển 8 led lần lượt sáng nhấp nháy, so le nhau
#include <at89x51.h>
void delay(int interval){
int i,j;
for(i=0;i<255;i++){
for(j=0;j<interval;j++);
}
}
void main(){
while(1){
P0=0x55;
delay(100);
P0=0xAA;
delay(100);
}
}
Trang 2Bài 2 Lập trình đọc dữ liệu từ chân vào
Bước 1: Chỉnh sửa thiết kế trong bài 1, thêm một nút bấm B2 vào mạch
Bước 2: Sử dụng phần mềm Keil C viết chương trình điều khiển 8 led lần lượt sáng nhấp nháy,
so le nhau khi người dùng không bấm nút B2 Khi người dùng bấm và giữ nút B2 thì các led giữ nguyên trạng thái
#include <at89x51.h>
void delay(int interval){
int i,j;
for(i=0;i<255;i++){
for(j=0;j<interval;j++);
}
}
void main(){
while(1){
//Kiem tra trang thai chan P1_0 (dau voi cong tac) if(P1_0 == 1){
P0=0x55;
delay(100);
P0=0xAA;
delay(100);
} }
}
Trang 3Bước 3: Quan sát kết quả, nhận xét và đặt câu hỏi với giáo viên để nhận giải đáp.
Bài 3 Lập trình điều khiển led 7 thanh
Bước 1: Sử dụng phần mềm Proteus ISIS vẽ mạch điện dưới đây Chú ý trong thiết
kế này chúng ta sử dụng led 7 thanh kiểu Anode chung
Bước 2: Sử dụng phần mềm Keil C viết chương trình điều khiển cho led 7 thanh lần lượt hiển thị các số 0, 1, 2 và quay lại
#include <at89x51.h>
void delay(int interval){
int i,j;
for(i=0;i<255;i++){
for(j=0;j<interval;j++);
}
}
void main(){
while(1){
P0=0x40; //Hien thi so 0
Trang 4P0=0x79; //Hien thi so 1 delay(100);
P0=0x24; //Hien thi so 2 delay(100);
}
}
Bước 3: Quan sát kết quả, nhận xét và đặt câu hỏi với giáo viên để nhận giải đáp
Phần 2 Tự thực hành
Bài 4 Sử dụng thiết kế mạch như bài 1, tiến hành lập trình thực hiện các yêu cầu sau
1) Cho tất cả các led nhấp nháy (Mô tả: cả 8 led cùng sáng sau đó cùng tắt và tiếp tục)
2) Thực hiện hiệu ứng “sáng đuổi” (Mô tả: các led sáng lần lượt từ led 1 tới led 8)
3) Điều khiển cho các led sáng từ hai đầu (từ led 1 tới led 4, từ led 8 về led 5) sau đó quay đầu (từ led 4 về led 1 và led 5 về led 8), quá trình lặp đi lặp lại liên tục hai thao tác đó
Bài 5 Sử dụng thiết kế mạch như bài 2, tiến hành lập trình thực hiện công việc
Khi người dùng bấm nút B2 lần đầu tiên, thực hiện hiệu ứng như bài 4.1
Khi người dùng bấm nút B2 lần thứ hai, thực hiện hiệu ứng như bài 4.2
Khi người dùng bấm nút B2 lần thứ ba, thực hiện hiệu ứng như bài 4.3
Khi người dùng bấm nút B2 lần thứ 4, quay lại thực hiện hiệu ứng như bài 4.1
…quá trình cứ thế tiếp diễn
Bài 6 Viết chương trình con điều khiển hiển thị led 7 thanh
Chỉnh sửa chương trình trong Bài 3, xây dựng chương trình con hiển thị led 7 thanh có khai báo như sau
void Display_7seg(unsigned char value)
Hàm này có chức năng nhận đầu vào là các số 0,1,…9 và điều khiển led 7 thanh để hiển thị các số đó
Trang 5Bài 7 Lập trình điều khiển module led 7 thanh sử dụng IC giải mã BCD->led
7 thanh 74LS47 và 7446
IC 74LS47 và IC 7446 là các IC giải mã từ mã BCD ra mã 7 thanh Việc sử dụng
IC này cho phép tiết kiệm chân của vi điều khiển Bạn hãy tiến hành đọc tài liệu hướng dẫn (datasheet) của IC 74LS47 và IC 7446 (gửi kèm bài thực hành này) và tiến hành thiết kế mạch ghép nối vi điều khiển với IC này để điều khiển led 7 thanh
Chú ý: nên viết chương trình ghép nối module giải mã dưới dạng chương trình con để tiện sử dụng lại
Bài 8 Lập trình điều khiển module gồm 4 led 7 thanh
Trong nhiều trường hợp, ta cần hiển thị nhiều thông tin Thay vì phải sử dụng nhiều led 7 thanh đơn lẻ, chúng ta có thể sử dụng các module led 7 thanh cho phép điều khiển hiển thị 2,4…led 7 thanh khác nhau
Bạn hãy tìm hiểu cách sử dụng, lập trình module gồm 4 led 7 thanh như trên hình (Sử dụng từ khóa tìm kiếm linh kiện là “7seg” trong phần mềm Proteus ISIS, tìm đến linh kiện có mã là 7SEG-MPX4-CA, ở đây có nghĩa là module 4 led 7 thanh mắc kiểu Anode chung)