Đề Bài Thiết kế hệ thống đèn quảng cáo ít nhất 4 hiệu ứng cho cổng trại sử dụng Timer nháy đèn theo chu trình dòng chữ: TĐH3-K62.. Sử dụng thêm một nút nhấn để tạo 4 hiệu ứng đơn... Giới
Trang 1WELCOM
GROUP 1 Học phần: kỹ thuật vi xử lý Giảng viên: Nguyễn Trung Thị Hoa Trang
Lớp: KTĐK- TĐH3
Trang 52 Giới thiệu linh kiện sử dụng
Trang 6✘ 2.5, PIC16F877A
✘ - Là loại vi điều khiển 8 bit với 35 lệnh cơ bản
✘ - PIC16F877A có tổng cộng 40 chân trong đó
có 33 chân là I/O
✘ - Tốc độ hoạt động tối đa cho phép là 20MHz
✘ - Bộ nhớ dữ liệu: là bộ nhớ EEPROM
✘ - Gồm 5 cổng xuất nhập: PORTA, PORTB,
PORTC, PORTD, PORTE
✘ 2.6, Led đơn 5 mm
- LED là một biến thể trên diode cơ bản
- Đèn LED 5 mm thực tế chỉ là một chip LED DIP được bọc trong một cấu trúc vòm epoxy bảo vệ
- Kết nối nguồn được thực hiện thông qua hai chân nối dưới cùng
- Chân dài hơn là cực dương nối với Anode
và chân ngắn hơn là cực âm nối với Cathode
Trang 72.9, Tụ điện
- Tụ gốm là tụ điện có điện môi được chế tạo theo công nghệ gốm
- Tụ điện phân cực có bản cực dương được làm bằng kim loại sau đó tạo thành một lớp oxit cách điện giữa hai chân tụ
- Khi muốn nạp chương trình
từ trên máy tính xuống ta phải kết nối cổng USB với mạch nạp và đồng thời kết nối đầu ra của mạch nạp tới cổng nạp P1
Trang 8- Tiện dụng cho việc test nhanh một mạch
- Vật liệu: nhựa
- Bố trí dây dẫn: hai hang ngang trên và dưới dây chạy theo chiều ngang,
phần còn lại dây sẽ chạy theo chiều dọc
2.10, Board test mạch
Đường dẫn điện
Trang 94 phần mềm mô phỏng
Trang 105.Cơ sở lý thuyết
• Cách tính giá trị nạp cho Timer0:
RegValue = 256 - ((Delay*Fosc)/(Prescaler*4))
Trang 11- Ghép nối LED
✘ Sử dụng transistor NPN để ghép nối nhiều Led đơn
lại với nhau Các led được nối song song với nhau với chân dương được nối với nguồn Vcc và chân âm nối với chân C của transistor
✘ Chân E của transistor được nối với đất và chân B của BJT NPN được nối với I/O PORT qua điện trở
220 Ω
✘ Với BJT NPN để các led sáng cần đưa giá trị logic 1
và logic 0 để led tắt
Trang 12- Ghép nối với nút bấm
Nút bấm được nối với chân RB0 có điện trở
kéo lên Khi chưa bấm nút thì chân RB0 ở mức
logic 1 và khi nút bấm được bấm thì sẽ đọc
được giá trị ở chân RB0 ở mức logic 0
- Kết nối PIC16F877A với LED qua transistor
Các chân từ RD0 đến RD7 được nối với các chân base trên transistor qua điện trở để truyền tín hiệu giúp bật, tắt các led để tạo hiệu ứng quảng cáo.
Trang 135 Chương trình thực hiện
#pragma config FOSC = HS
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config BOREN = ON
#pragma config LVP = OFF
#pragma config CPD = OFF
#pragma config WRT = OFF
#pragma config CP= OFF
#define_XTAL_FREQ 8000000 // Khai báo thạch anh
#include <xc.h> // Khai báo thư viện
int count = 0; // Khai báo biến đếm
Trang 14* Hàm delay sử dụng Timer0
Sơ đồ thuật toán
void delayTimer_ms (unsigned int t){
while (t ) {
TMR0 = 6;
TMR0IF = 0;
while ( !TMR0IF) {
} }}
Trang 15* Hàm ngắt ngoại vi
void interrupt () ISR (void){
if (INTF ==1) {
count ++;
INTF = 0;
}}
Sơ đồ thuật toán
Trang 16* Hàm LED sáng đuổi
void sangduoi(){
}
Sơ đồ thuật toán
Trang 17* Hàm LED sáng dần
void sangdan(){
PORTD = 0x00; int i;
int a=0x80;
for (i=0; i<8; i++) {
PORTD = a>>i; delayTimer_ms(200) }
}
Sơ đồ thuật toán
Trang 18* Hàm LED sáng đơn
void sangdon(){
PORTD = 0x00;
int a=0; a=0b00000000; for (int i=0; i<8; i++) {
for (int j=0; j<8-i; j++)
{
PORTD = (0x80>>j) | a; delayTimer_ms(200); }
a=PORTD; }
}
Sơ đồ thuật toán
Trang 19* Hàm LED sáng dồn 2 bên
void sangdonhaiben(){
PORTD = 0x00;
int a=0x80, b=0x01; for (int i=0; i<4; i++) {
PORTD = a>>i | b<<i |
PORTD; delayTimer ms(200); }
delayTimer ms(200);}
Sơ đồ thuật toán
Trang 20* Hàm main
Sơ đồ thuật toán
Trang 21delayTimer_ms(200);
sangdon();
} else if (count%4==0 && count !=0) {
delayTimer_ms(200);
sangdonhaiben();
}
}return;}
Trang 226 Hình ảnh mô
phỏng mạch
Trang 23Mô phỏng trên phần mềm proteus
Trang 24Mô phỏng mạch trên phần mềm Fritzing
Trang 25Mạch lắp thực tế trên Bread board
Trang 26THANKS for watching!