Sơ đồ nguyên lí các cấu trúc kết nối của PIC 16f877a với một số thiết bị trên kit thực hành:b Điều khiển led 7 đoạn bằng PIC 16f877a a Nguyên lý IC ULN2003A trên kit thực hành : Sơ lư
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
1 MỤC LỤC
2 Điều khiển led 7 đoạn bằng PIC 16f877a 6
a) Nguyên lý IC ULN2003A trên kit thực hành: 6
b) Mạch nguyên lý: 7
c) Chương trình test led cơ bản xuất số ‘1 2 3 4’ lên 4 led 7 đoạn đầu tiên bằng
phương pháp quét led 8
d) Tiếp theo sẽ là chương trình nâng cao hơn với led 7 đoạn, nhấn SW0 xuất số đếm từ 1-9999 trên 4 led cuối 9
3 Sử dụng pic 16f877a điều khiển hiển thị led ma trận 8x8 11
a) Cấu trúc led ma trận 1088BS: 11
b) Sơ đồ mạch nguyên lý pic 16f877a kết nối với led ma trận 8x8 12
c) Sau khi đã hiểu rõ nguyên lí kết nối ta tiến hành lập trình hiển thị led, ở đây bật on switch s4 để on tất cả led ma trận, để led sáng đều nên tắt Switch S2 .14
4 Sử dụng PIC 16f877a điều khiển động cơ bước 19
a) Sơ đồ mạch nguyên lý pic 16f877a kết nối với động cơ bước 19
b) Lập trình điều khiển động cơ bước chạy đơn giản 20
5 Ma trận phím 4x4 với PIC 16f877a 22
a) Sơ đồ nguyên lí kết nối pic 16f877a với ma trận phím 4x4 22
b) Một chương trình đơn giản cho pic 16f877a sử dụng nguyên lí quét phím ma trận 22
Trang 26 Sử dụng PIC 16f877a điều khiển hiển thị lên lCD 16x2 25
a) Sơ đồ nguyên lí kết nối LCD 16X2 với piC 16f877a 25
b) Viết chương trình cơ bản hiển thị trên LCD, ví dụ chương trình dùng để hiển thị chữ và thời gian on display LCD 25
7 Sử dụng PIC 16f877a điều khiển bật tắt Buzzy 30
a) Sơ đồ kết nối còi báo với pic 16f877a 30
b) Chương trình điều khiển BUZZY bằng pic 16f877a 30
8 Phần mở rộng 32
Trang 3 Mô tả các thiết bị có trong kit thực hành PIC 16f877a
Trang 4 Các ứng dụng thường gặp khi thực hành với kit PIC 16f877a
- PIC 16f877a điều khiển led 7 đoạn
- PIC 16f877a điều khiển led ma trận
- Sử dụng PIC 16f877a điều khiển động cơ bước
- Ma trận phím 4x4 với PIC 16f877a
- Sử dụng PIC 16f877a điều khiển hiển thị lên lCD 16x2
- Sử dụng PIC 16f877a điều khiển bật tắt Buzzy
Figure 2 PIC 16f877a
Trang 5 Sơ đồ nguyên lí các cấu trúc kết nối của PIC 16f877a với một số thiết bị trên kit thực hành:
b) Điều khiển led 7 đoạn bằng PIC 16f877a
a) Nguyên lý IC ULN2003A trên kit thực hành :
Sơ lược về ULN2003a là một vi mạch đệm, bản chất cấu tạo là các mảng
darlington chịu được dòng điện lớn và điện áp cao, trong đó có chứa 7 cặp transistor NPN ghép darlington gực góp hở với các cực phát chung Mỗi kênh của ULN2003a cómột diode chặn có thể sử dụng trong trường hợp tải có tính cảm ứng ULN2003a có
Figure 3 Mạch nguyên lí
Trang 6khả năng điều khiển 7 kênh riêng biệt , có thể kết nối trực tiếp với vi điều khiển 5v Bên cạnh đó, mỗi kênh có thể chịu được dòng điện lên tới 500Ma.
b) Mạch nguyên lý:
Trang 7- Với led 7 đoạn kathot chung, các đầu ra ULN2003a với vai trò cổng đảo vì vậy cần kích mức 1 đối với các chân điều khiển.
c) Chương trình test led cơ bản xuất số ‘1 2 3 4’ lên 4 led 7 đoạn đầu tiên bằng phương pháp quét led
Trang 11f) Sơ đồ mạch nguyên lý pic 16f877a kết nối với led ma trận 8x8
Trang 12g) Viết chương trình hiển thị led ma trận.
Sau khi đã hiểu rõ nguyên lí kết nối ta tiến hành lập trình hiển thị led, ở đây bật
on switch s4 để on tất cả led ma trận, để led sáng đều nên tắt Switch S2
Đoạn chương trình để hiển thị hình trái tim trên led ma trận:
Trang 17d) Sử dụng PIC 16f877a điều khiển động cơ bước
h) Sơ đồ mạch nguyên lý pic 16f877a kết nối với động cơ bước
Trang 19Kết nối chân 1,2,3,4 của động cơ bước lần lượt với chân RC0,RE2,RE1,RE0
i) Lập trình điều khiển động cơ bước chạy đơn giản
Nhấn nút SW0 động cơ chạy, nhấn lại SW0 động cơ dừng
Trang 21else goto lap2;
e) Ma trận phím 4x4 với PIC 16f877a
j) Sơ đồ nguyên lí kết nối pic 16f877a với ma trận phím 4x4
Để điều khiển mỗi nút bàn phím 4x4 bằng 2 chân khác nhau phải bật off Switch S3
k) Một chương trình đơn giản cho pic 16f877a sử dụng nguyên lí quét phím ma trận
Nhấn nút SW0 còi kêu luân phiên 0.25 giây
Trang 23if(rb0==1) goto lapphim;
else goto lap2;
if(rb0==1) goto lapphim;
else goto lap3;
Trang 24f) Sử dụng PIC 16f877a điều khiển hiển thị lên lCD 16x2
l) Sơ đồ nguyên lí kết nối LCD 16X2 với piC 16f877a
Phần này hãy để ý jump cắm màu đỏ trên KIT rút ra và cắm ngược lại trên các chân EN,RS,RW để sử dụng được LCD
m) Viết chương trình cơ bản hiển thị trên LCD, ví dụ chương trình dùng để hiểnthị chữ và thời gian on display LCD 00:00:00
#include <16f877a.h>
#include <def_877a.h>
#use delay(crystal=4000000)
Trang 25#define lcd_enable_pin pin_a5
#define lcd_rw_pin pin_a3
#define lcd_rs_pin pin_a2
#define lcd_data0 pin_d0
#define lcd_data1 pin_d1
#define lcd_data2 pin_d2
#define lcd_data3 pin_d3
#define lcd_data4 pin_d4
#define lcd_data5 pin_d5
#define lcd_data6 pin_d6
#define lcd_data7 pin_d7
Trang 28lcd_putc(" ");
lcd_gotoxy(14,1);
printf(lcd_putc,"%d",g);
delay_ms(1000);
}
}
}
}
}
}
Lưu ý chương trình trên sử dụng thư viện LCD.C cho pic
Trang 29g) Sử dụng PIC 16f877a điều khiển bật tắt Buzzy
n) Sơ đồ kết nối còi báo với pic 16f877a
-o) Chương trình điều khiển BUZZY bằng pic 16f877a
Sử dụng bài quét bàn phím, nhấn nút SW0 còi báo 5s rồi tự tắt, hoặc nhấn lại SW0 lại lần nữa còi sẽ tắt
Trang 31ct:
rc1=1;
for(i=1; i<50;i++)
{
for(j=1; j<5000;j++) {
lap2: if(rb0==0) {
delay_ms(1); if(rb0==1) goto lapphim; else goto lap2; }
}
}
rc1=0;
goto lapphim;
}
}
h) Phần mở rộng
Ngoài những bài học trên còn một số thứ có thể lập trình với PIC trên kit 16f877a như đồng hồ thời gian thực, truy xuất dữ liệu thẻ SD, điều khiển thiết bị bằng hồng ngoại dùng PIC, Đọc giá trị nhiệt độ bằng cảm biến DS18B20
16f877a
Trang 32-Sơ đồ cảm biến nhiệt độ kết nối với pic 16f877
-Sơ đồ ic thời gian thực kết nối với pic 16f877a
- Bài tập phần mở rộng:…