You are on page 1of 26

WELCOM

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
Thành viên nhóm 1
NGUYỄN CÔNG BÁCH

HỒ SỸ KIÊN

ĐÀO THỊ LAN HƯƠNG

ĐÀO THỊ MY

NGUYỄN ANH SƠN

LÊ THỊ TỐ UYÊN
Nội dung trình bày

1. Đề bài
2. Giới thiệu linh kiện sử dụng
3. Phần mềm mô phỏng
4. Cơ sở lý thuyết
5. Chương trình thực hiện
6. Hình ảnh mô phỏng mạch
1. Đề 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.
- Nhấn lần 1 thì hiệu ứng 1
- Nhấn lần 2 thì hiệu ứng 2
- Nhấn lần 3 thì hiệu ứng 3
- Nhấn lần 4 thì hiệu ứng 4
2. Giới thiệu linh kiện sử dụng
2.1, Thạch anh 8MHz 2.2, Transistor NPN
- Thạch anh là bộ dao động để - Khi ghép nối LED đơn sử dụng
tạo ra tần số dao động cho vi BJT NPN, ta ghép nhiều LED
điều khiển. song song và để các LED phát
- Tần số: 8MHz sáng cần đưa ra giá trị logic 1
- Kiểu chân: DIP (cắm)

HIGH VALUE 1
LOW VALUE 1

2.3, Nút nhấn 2.4, Dây nối


- Số chân: 4 - Chiều dài: 20 cm
- Kích thước: 6x6x5 mm - Loại dây: đực-đực
- Loại chân cắm thẳng - Lõi dây đồng độ dẫn điện
cao, dây cắm với các đầu kim
cứng, tiếp xúc tốt

LOW VALUE 2
✘ 2.5, PIC16F877A ✘ 2.6, Led đơn 5 mm
✘ - Là loại vi điều khiển 8 bit với 35 lệnh cơ bản - LED là một biến thể trên diode cơ bản
✘ - PIC16F877A có tổng cộng 40 chân trong đó - Đèn LED 5 mm thực tế chỉ là một chip
có 33 chân là I/O LED DIP được bọc trong một cấu trúc vòm
✘ - Tốc độ hoạt động tối đa cho phép là 20MHz epoxy bảo vệ

✘ - Bộ nhớ dữ liệu: là bộ nhớ EEPROM - Kết nối nguồn được thực hiện thông qua
hai chân nối dưới cùng
✘ - Gồm 5 cổng xuất nhập: PORTA, PORTB,
PORTC, PORTD, PORTE - 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
2.7, Điện trở 2.8, Bộ nạp PIC KIT2 2.9, Tụ điện

- Là linh kiện quan trọng, được - Khi muốn nạp chương trình - Tụ gốm là tụ điện có điện môi
làm từ hợp chất cacbon và kim từ trên máy tính xuống ta phải được chế tạo theo công nghệ
loại kết nối cổng USB với mạch gốm
nạp và đồng thời kết nối đầu ra - Tụ điện phân cực có bản cực
của mạch nạp tới cổng nạp P1.
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ụ
2.10, Board test mạch
- 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

Đường dẫn điện


4. phần mềm mô phỏng
5.Cơ sở lý thuyết

• Cách tính giá trị nạp cho Timer0:


RegValue = 256 - ((Delay*Fosc)/(Prescaler*4))
- 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.
- Ghép nối với nút bấm - Kết nối PIC16F877A với LED qua transistor

Nút bấm được nối với chân RB0 có điện trở Các chân từ RD0 đến RD7 được nối với các chân
kéo lên. Khi chưa bấm nút thì chân RB0 ở mức base trên transistor qua điện trở để truyền tín hiệu
logic 1 và khi nút bấm được bấm thì sẽ đọc giúp bật, tắt các led để tạo hiệu ứng quảng cáo .
được giá trị ở chân RB0 ở mức logic 0.
5. 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
* Hàm delay sử dụng Timer0

void delayTimer_ms (unsigned int t)


{
while (t--)
{
TMR0 = 6;
TMR0IF = 0;
while ( !TMR0IF)
{

}
}
}

Sơ đồ thuật toán
* Hàm ngắt ngoại vi

void __interrupt () ISR (void)


{
if (INTF ==1)
{
count ++;
INTF = 0;
}
}

Sơ đồ thuật toán
* Hàm LED sáng đuổi

void sangduoi()
{
PORTD = 0x00;
int a=0x80;
for (int i=0; i<8; i++)
{
PORTD = a>>i | PORTD;
delayTimer_ms(200);
}
}

Sơ đồ thuật toán
* 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
* 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
* 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
* Hàm main

Sơ đồ thuật toán
* Hàm main
void main(void)
else if (count%4==3)
{
{
TRISB = 0xFF;
delayTimer_ms(200);
TRISD = 0x00;
sangdon();
TRISD4 = 0;
}
PORTD = 0x00;
else if (count%4==0 && count !=0)
OPTION_REG = 0x02;
{
INTCON = 0xD0;
delayTimer_ms(200);
while(1)
sangdonhaiben();
{
}
if(count %4==1)
{
}
delayTimer_ms(200);
return;
sangduoi();
}
}
else if (count %4==2)
{
delayTimer_ms(200);
sangdan();
}
}
6. Hình ảnh mô
phỏng mạch
Mô phỏng trên phần mềm proteus
Mô phỏng mạch trên phần mềm Fritzing
Mạch lắp thực tế trên Bread board
THANKS for
watching!

26

You might also like