Tải bản đầy đủ (.docx) (16 trang)

Báo cáo project– thiết kế hệ thống nhúng led matrix 8x32 running text

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (434.72 KB, 16 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ

BÁO CÁO PROJECT – THIẾT KẾ HỆ THỐNG NHÚNG
LED MATRIX 8X32 RUNNING TEXT

GIẢNG VIÊN HƯỚNG DẪN: TRƯƠNG QUANG VINH

Nhóm 3

TP.HCM Ngày 22/4/2014

Trang 1


MỤC LỤC
I – Phân chia công việc trong nhóm..............................Trang 03
II - Đặc tả hệ thống.
12345-

Product Specification....................................................Trang 03
Engineering Specification............................................Trang 03
Hardware Specification................................................Trang 04
Software Specifacation.................................................Trang 04
Test Specification..........................................................Trang 04

III – Thiết kế phần cứng.
123-

Sơ đồ khối của hệ thống.................................................Trang 05


Sơ đồ nguyên lý..............................................................Trang 06
Linh kiện.........................................................................Trang 07

IV – Thiết kế phần mềm.
12-

Sơ đồ giải thuật...............................................................Trang 11
Code CCS........................................................................Trang 12

I – Phân chia công việc trong nhóm.
Trang 2


123-

Lê Khánh Hưng.
Viết code phần mềm cho hệ thống.
Mô phỏng và test hệ thống.
Làm báo cáo.
Phạm Tuyển.
Vẽ mạch, sơ đồ nguyên lý.
Hoàn thiện layout.
Đặc tả hệ thống.
Chuẩn bị slide thuyết trình.
Nguyễn Linh Sơn.
Tìm hiểu nguyên lý hoạt động.
Thi công phần cứng.

II - Đặc tả hệ thống.
1-


2-

3-

Product Specification.
Hệ thống dùng để làm các tầm biển quảng cáo, biển chỉ dẫn.
User interface: Led matrix 8x32.
Constraints:
• Ổn định.
• Công suất thấp, hiệu năng ít.
• Giá rẻ, áp dụng thực tế cho đời thường.
Engineering Specification.
Hệ thống dùng PIC16F877A (20MHz), Matrix led 8x32 (4 LED
8x8), 4 IC ghi dịch 74H595, 4 IC đệm dòngULN2830.
Yêu cầu:
• Chạy chữ trên ma trận led 8x32.

Real-time.
Hardware Specification.
Port B (8-bit) của 16F877a xuất data ra 8 hàng của 4 con LED.
Trang 3


-

Port C (C4, C5, C6) điều khiển nhập và xuất cho 74H595.
Đầu ra của 74H595 được nối với ULN2830 để đệm dòng trước khi
nối vào các cột của Matrix Led.


4-

Software Specifacation.

-

Hàm / thư viện
#include <font5x7.h>
void HC595(int8 column)
int8 Str_length(char str[])
void Output_Buffer(int8 *Buffer)
void Shift_Buffer(int8 *Buffer)
Void main()
5-

Test Specification.
Test hàng cột led (kiểm tra hoạt động của ma trận led).
Test timing, thời gian để dòng chữ xuất hiện.

III – Thiết kế phần cứng.
1-

Đặc tả
Bảng mã hex của các ký tự
Điều khiển 74H595
Lấy độ dài một chuỗi ký tự
Xuất Buffer ra Matrix Led
Dịch Buffer sang phải
Chương trình chính


Sơ đồ khối của hệ thống.

Trang 4


-

Khối nguồn: tạo ra điện áp 1 chiều 5V ổn định từ nguồn xoay
chiều 220V để cung cấp cho các khối và linh kiện trong hệ thống.

-

Khối xử lý trung tâm: tạo ra tín hiệu điều khiển khối điều khiển
và xuất data ra khối hiển thị.
• PIC16F877A thạch anh 20MHz.

-

Khối điều khiển LED ma trân: nhận tín hiệu từ khối giải mã
trung tâm, giải mã, cung cấp nguồn ổn định và đủ lớn để chuyển
qua khối hiển thị.
• IC ghi dịch 74HC595.
• IC đệm dòng ULN2830.

-

Khối hiển thị: nhận tín hiệu từ khối xử lý trung tâm và khối điều
khiển LED ma trận để hiển thị các kí tự theo chương trình trong
khối xử lý trung tâm.
• Dùng Maxtrix LED 8x32 (Common Anode).

• Các hàng (H1-H8) được nối chung.
• Các cột được tách riêng nối vào Module điều khiển.
Trang 5


2-

Sơ đồ nguyên lý.

3-

Linh kiện.
a. Vi điều khiển PIC16F877A.
PIC 16F877A là loại vi điều khiển 8-bit tầm trung của hãng
microchip.
PIC 16F877A có kiến trúc Havard, sử dụng tập lệnh kiểu RISC
(Reduced Instruction Set Computer) với chỉ 35 lệnh cơ bản.

-

Trang 6


-

Tất cả các lệnh được thực hiện trong một chu kì lệnh ngoại trừ các
lệnh rẽ nhánh.
Sơ đồ chân với chip loại cắm 40 chân:

Trang 7



Các chức năng cơ bản:

-

IC 74HC595.
Là IC ghi dịch 8-bit kết hợp chốt dữ liệu, đầu vào nối tiếp đầu ra
song song.
Chức năng: Thường dùng trong các mạch quét led 7, led matrix để
tiết kiệm số chân VĐK tối đa (3 chân). Có thể mở rộng số chân
b.

-

Trang 8


-

-

VĐK bao nhiêu tùy thích mà không IC nào có thể làm được bằng
việc mắc nối tiếp đầu vào dữ liệu các IC với nhau.
Cách mở rộng ta chỉ việc nối Q7' của IC trước với chân DATA
(chân 14) của IC sau, với IC đầu tiên nhận dữ liệu từ VĐK.

Giải thích ý nghĩa hoạt động của một số chân quan trọng:
• Chân 14 (input): Đầu vào dữ liệu nối tiếp. Tại 1 thời điểm
xung clock chỉ đưa vào được 1 bit.

• Chân
Q0-Q7 (output): Đầu ra trên các chân
(15,1,2,3,4,5,6,7). Xuất dữ liệu khi chân chân 13 tích cực ở
mức thấp và có một xung tích cực ở sườn âm tại chân chốt
12.
• Chân 13 (output-enable): Chân cho phép tích cực ở mức thấp.
Khi ở mức cao, tất cả các đầu ra của 74HC595 trở về trạng
thái cao trở, không có đầu ra nào được cho phép.

Trang 9










Chân 9 (SQH): Chân dữ liệu nối tiếp. Nếu dùng nhiều
74HC595 mắc nối tiếp nhau thì chân này đưa vào đầu vào
của con tiếp theo khi đã dịch đủ 8-bit.
Chân 11 (Shift clock): Chân vào xung clock. Khi có 1 xung
clock tích cực ở sườn dương (từ 0 lên 1) thì 1-bit được dịch
vào IC.
Chân 12 (Latch clock): Xung clock chốt dữ liệu. Khi có 1
xung clock tích cực ở sườn dương thì cho phép xuất dữ liệu
trên các chân output. Lưu ý có thể xuất dữ liệu bất kỳ lúc
nào,ví dụ đầu vào chân 14 được 2 bit khi có xung clock ở

chân 12 thì dữ liệu sẽ ra ở chân Q0 và Q1 (chiều dịch dữ liệu
từ Q0-Q7).
Chân 10 (Reset): Khi chân này ở mức thấp (mức 0) thì dữ
liệu sẽ bị xóa trên chip).

Trang 10


III – Thiết kế phần mềm.
1-

Sơ đồ giải thuật.

Trang 11


2-

Code CCS.

Trang 12


a.
b.

Khai báo thư viện và các biến.
//==============================================================================
// Ten chuong trinh : Maxtrix LED Running Text
// Ham dieu khien IC 74HC595 set dung bit cua cot can hien thi

// Nguoi thuc hien : Khanh Hung - Pham Tuyen - Linh Son
// Chu y data bi dao bit khi qua IC ULN2803
// Ngay thuc hien : 26/04/2014
void HC595(int8 column)
// Mo ta phan cung : PIC16F877A - thach anh 20MHz
{
//
PortB dung de dieu khien hang
int8 i;
//
PortC dung de dieu khien cot
for (i = 0; i < 32; i++)
//
IC dich bit 74HC595
{
//
IC dem dong ULN2803
if (i == column)
//==============================================================================
data = 0;
// Chi set 1 dung cot can hien thi, cac cot khac bang 0
#include <16F877A.h>
else
#use delay(clock=20000000)
data = 1;
#include <font5x7.h>
// Bang ma hex cua cac ky tu
clock = 1; clock = 0; // Tao xung clock tai PIN_C5
}
#byte TRIS_B = 0x86

// Dinh nghia thanh ghi Tris B
latch = 1; latch = 0; // Tao xung latch tai PIN_C6
#byte TRIS_C = 0x87
// Dinh nghia thanh ghi Tris C
}
#bit data = 0x07.4
// data = PIN_C4
#bit

clock = 0x07.5

// clock = PIN_C5

#bit

latch = 0x07.6

// latch = PIN_C6

unsigned char My_string[] = "Le Khanh Hung 2014"; // Chuoi can chay

Hàm điều khiển nhập và xuất data cho 74HC595.
Trang 13


c.

Hàm lấy độ dài 1 chuỗi.

d.

// Ham lay do dai mot chuoi
int8
Str_length(char
//Ham
xuat Buffer rastr[])
Matrix Led
{void Output_Buffer(int8 *Buffer)
{ int8 length = 0;
while
int8 i;((str[length]) != '\0')
length++;
for
(i = 0; i < 32; i++)

// Quet lan luot 32 cot

return
length;
{

}

HC595(i);

// Set cot i len 1

output_B(Buffer[i]);

// Xuat ma hex cua Buffer[i] tuong ung len cot i


delay_ms(1);
output_B(0xFF);

// Tat cot i truoc khi set cot i + 1 de tranh bi double column

delay_us(10);
}
delay_ms(13);
}

Hàm xuất Buffer ra Led.
e. Hàm dịch Buffer sang trái.
//Ham dich Buffer qua trai 1 don vi (chu chay tu phai qua trai)
void Shift_Buffer(int8 *Buffer)
{
int8 i;
for (i = 31; i > 0; i--)
{
Buffer[i] = Buffer[i - 1];
Buffer[i - 1] = 0xFF;
}

}

Trang 14


f.

Chương trình chính.

//Chuong trinh chinh
void main()
{
int8 Buffer[32];

// Mang chua ma hex can hien thi

int8 i, k, L;
while(1)
{
TRIS_B = 0x00; TRIS_C = 0x00;

// Khai bao Output cho PortB va PortC

L = Str_length(My_string);

// L la so ky tu cua chuoi

// Khoi tao Buffer
for (i = 0; i < 32 ; i++)
Buffer[i] = 0xFF;
// Vong lap lan luot quet het ma hex cua tung ky tu dua vao Buffer va hien thi ra LED
for (k = 0; k < L; k++)

// k la ky tu dang xet (k = 0 -> L-1)

{
for (i = 0; i < 5; i++)

// i la ma hex thu i cua ky tu k (i = 0 -> 4)


{
Shift_Buffer(&Buffer);

// Dich Buffer sang phai 1 don vi

Buffer[0] = Font [My_string[k] - 32] [i];

// Lay ma hex can hien thi tiep theo dua vao Buffer[0]

Output_Buffer(&Buffer);

// Xuat Buffer ra LED

}
Shift_Buffer(&Buffer);

// Tao mot khoang cach giua 2 ky tu

Output_Buffer(&Buffer);
}

Trang 15


// Sau khi lay het ky tu trong chuoi tiep tuc dich phai them 31 lan de chu chay het man hinh
for (i = 0; i < 31; i++)
{
Shift_Buffer(&Buffer);
Output_Buffer(&Buffer);

}
}
}

Trang 16



×