THIẾT kế và THI CÔNG MẠCH QUANG báo GIAO TIẾP máy TÍNH (có code và sơ đồ mạch) THIẾT kế và THI CÔNG MẠCH QUANG báo GIAO TIẾP máy TÍNH (có code và sơ đồ mạch) THIẾT kế và THI CÔNG MẠCH QUANG báo GIAO TIẾP máy TÍNH (có code và sơ đồ mạch) THIẾT kế và THI CÔNG MẠCH QUANG báo GIAO TIẾP máy TÍNH (có code và sơ đồ mạch)
Trang 1QUANG BÁO GIAO TIẾP MÁY TÍNH
Trang 2DANH MỤC CÁC BẢNG BIỂU VIII DANH MỤC CÁC TỪ VIẾT TẮT IX
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 MỤC ĐÍCH ĐỀ TÀI 1
1.2 GIỚI THIỆU ĐỀ TÀI 1
1.3 NHIỆM VỤ ĐỀ TÀI 1
1.4 SƠ ĐỒ KHỐI 2
CHƯƠNG 2 GIỚI THIỆU CÁC LINH KIỆN VÀ
CÁC GIAO TIẾP SỬ DỤNG TRONG MẠCH 3
2.1 VI ĐIỀU KHIỂN PIC16F887 3
2.2 IC GHI DỊCH 74HC595 4
2.3 IC ĐỆM DÒNG ULN2803 6
2.4 MODULE CP2102 7
2.5 TRANSISTOR A1015 7
2.6 LED MATRIX 88 8
2.7 GIAO TIẾP NỐI TIẾP USART 9
2.8 CÁC PHƯƠNG PHÁP HIỂN THỊ LED MATRIX 9
2.8.1 Phương pháp quét cột: 9
2.8.2 Phương pháp quét hàng: 10
CHƯƠNG 3 SƠ ĐỒ VÀ NGUYÊN LÝ HOẠT ĐỘNG CỦA MẠCH 11
3.1 SƠ ĐỒ NGUYÊN LÝ 11
3.2 NGUYÊN LÝ HOẠT ĐỘNG 12
3.3 LƯU ĐỒ GIẢI THUẬT 13
3.3.1 Lưu đồ giải thuật của chương trình chính 13
3.3.2 Lưu đồ giải thuật của bảng quang báo 14
Trang 33.5 MẠCH QUANG BÁO TRONG THƯC TẾ 18
CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 20
4.1 KẾT LUẬN 20
4.2 ỨNG DỤNG VÀ HƯỚNG PHÁT TRIỂN 20
TÀI LIỆU THAM KHẢO 21
PHỤ LỤC A 22
Trang 4Hình 2-1: Sơ đồ chân vi điều khiển PIC16F887 3
Hình 2-2: Kiến trúc Harvard của PIC16F887 4
Hình 2-3: Sơ đồ chân IC 74HC595 4
Hình 2-4: Sơ đồ chân IC đệm dòng ULN2803 6
Hình 2-5: Sơ đồ chân module CP2102 7
Hình 2-6: Sơ đồ chân transistor A1015 8
Hình 2-7: Sơ đồ chân LED Matrix 88 8
Hình 2-8: Hình ảnh thực tế LED Matrix 88 8
Hình 3-1: Sơ đồ nguyên lý khối điều khiển 11
Hình 3-2: Sơ đồ nguyên lý khối hiển thị 11
Hình 3-3: Lưu đồ giải thuật chương trình chính 13
Hình 3-4: Lưu đồ giải thuật của bảng quang báo 14
Hình 3-5: Lưu đồ giải thuật của chương trình copy font vào RAM 15
Hình 3-6: Lưu đồ giải thuật chương trình hiển thị 16
Hình 3-7: Sơ đồ mạch in khối hiển thị 17
Hình 3-8: Sơ đồ mạch in khối điều khiển 17
Hình 3-9: Hình ảnh thực tế của mạch quang báo 18
Hình 3-10: Bảng điều khiển nội dung hiển thị 18
Trang 6Bảng 2: Chức năng các chân module CP2102 7
Trang 7I2C Inter-Integrated Circuit
IC Integrated Circuit
LED Light Emitting Diode
PSP Parallel Slave Port
SPI Serial Peripheral Bus
SSP Synchronous Serial Port
UART Universal Asynchronous Receiver/Transmitter
USART Universal Synchronous/Asynchronous Receiver/Transmitter.VDC Voltage Direct Current
ADC Analog-to-Digital Converter
RAM Random Access Memory
ROM Read-Only Memory
EPROM Erasable Programmable Read-Only Memory
TTL Transistor-Transistor Logic
USB Universal Serial Bus
LSB Least Significant Bit
MSB Most Significant Bit
NRZ Non-Return-to-Zero
SMS Short Message Services
Trang 8CHƯƠNG 1.TỔNG QUAN VỀ ĐỀ TÀI
1.1 Mục đích đề tài
Thiết kế và thi công mạch quanq báo hiển thị trên bộ 4 LED Matrix ghép lại832 Mạch có thể giao tiếp với máy tính qua chuẩn giao tiếp UART
1.2 Giới thiệu đề tài
Thông tin liên lạc là vấn đề quan trọng trong xã hội hiện Chúng ta có thểbiết được thông tin thông qua các phương tiện báo chí, mạng internet, truyềnhình Việc thu thập thông tin một cách kịp thời và chính xác giúp chúng tathành công trong mọi lĩnh vực do đó thông tinh cần phải được truyền đinhanh chóng, rộng rãi trong xã hội
Việc dùng vi điều khiển để điều khiển sẽ có nhiều thuận lợi giúp thông tinđược truyền đi một cách nhanh chóng và chính xác Do đó em chọn đề tài:
“ Quang báo giao tiếp máy tính ” dùng vi điều khiển PIC16F887 vì có tínhứng dụng rộng rãi, có thể dùng để làm bảng thông báo ở các cơ quan, trườnghọc hoặc làm bảng quảng cáo
1.3 Nhiệm vụ đề tài
Sử dụng vi điều khiển PIC16F887
Hiển thị trên bộ 4 LED Matrix 832
Điều khiển hiển thị nội dung bằng máy tính thông qua giao tiếp UART
1.4 Sơ đồ khối
Trang 9Hình 1-1 Sơ đồ khối của mạch.
Khối nguồn: Dùng IC 7085 tạo nguồn 5 VDC để cung cấp cho các mạch hoạt động
Khối điều khiển: Dùng bàn phím và chương trình Visual Basic để tạo
chương trình truyền dữ liệu cần hiển thị từ máy tính xuống vi điều khiển
Khối giao tiếp máy tính: Sử dụng module chuyển từ USB sang giao tiếp UART để truyền dữ liệu cần hiển thị
Khổi xử lý trung tâm: Sử dụng vi điều khiển PIC16F887 để thu thập và xử lý
dữ liệu
Khối giải mã và đệm dòng cho cột và hàng:
+ Giải mã cột: Sử dụng IC 74HC595 để ghi dịch và chốt dữ liệu đưa ra
Trang 10CHUẨN GIAO TIẾP 1.5 Vi điều khiển PIC16F887[1].
Hình 2-1: Sơ đồ chân vi điều khiển PIC16F887 [4]
Vi điều khiển PIC16F887 gồm: 40 chân, trong đó có: 33 chân PORT xuất
nhập ( PORT A, PORT B, PORT C, PORT D, PORT E), 2 chân nối với
thạch anh tạo dao động cho vi điều khiển, 1 chân RESET, 2 chân VSS, 2
chân VDD
Vi điều khiển PIC16F877 gồm có:
+ Ba bộ Timer ( Timer 0, Timer 1, Timer 2 ) để định thời gian và đếm
+ Các chuẩn giao tiếp nối tiếp như: SSP, SPI, I2C, USART,
+ Chuẩn giao tiếp song song: PSP
+ ADC 10 bit: có 8 ngõ vào analog (RA4:RA0, RE2:RE0)
Trang 11Hình 2-2: Kiến trúc Harvard của PIC16F887 [4]
Vi điều khiển PIC16F887 gồm có 2 bộ nhớ Program Memory và Data Memory (EPROM)
1.6 IC ghi dịch 74HC595[2]
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
Hình 2-3: Sơ đồ chân IC 74HC595 [7]
Trang 12Bảng 1: Chức năng các chân IC 74HC595 [2]
1.7 IC đệm dòng ULN2803[6]
này của chuỗi là một bộ lý tưởng để giao tiếp với mạch điện dạng số mức
Trang 13logic thấp như: TTL, CMOS hoặc PMOS/NMOS IC ULN2803 được thiết
kế để phù hợp với chuẩn TTL
+ Giá trị dòng điện ngõ ra tới 500 mA/ 50 V
+ Đệm 8 kênh riêng biệt và ngõ ra đảo
1.8 Module CP2102[3]
Là module chuyển đổi từ cổng USB sang giao tiếp URAT
Trang 14Hình 2-5: Sơ đồ chân module CP2102 [3]
Bảng 2: Chức năng các chân của module CP2102 [3]
1.9 Transistor A1015[5]
Transistor A1015 là loại transistor PNP
Transistor A1015 có Uc cực đại là -50 V, dòng Ic cực đại là -150 mA
Hệ số khuếch đại hfe của transistor thấp nhất bằng 70
Trang 15Hình 2-6: Sơ đồ chân transistor A1015 [7]
Trang 16 USART là chuẩn giao tiếp nối tiếp, có thể truyền và nhận cùng 1 thời điểm.
Vi điều khiển PIC16F887 được tích hợp bộ tạo tốc độ Baud 8 bit sử dụngcho giao diện UART
UART bất đồng bộ truyền theo chuẩn NRZ, các bit truyền đi gồm 1 bit start,
1 bit stop, 8 hay 9 bit dữ liệu Truyền theo thứ tự LSB đến MSB
Các thông s trong truy n và nh n c a giao ti p UART:ố trong truyền và nhận của giao tiếp UART: ền và nhận của giao tiếp UART: ận của giao tiếp UART: ủa giao tiếp UART: ếp UART:
+ T c đ Baud: là kho ng th i gian truy n 1 bit.ố trong truyền và nhận của giao tiếp UART: ộ Baud: là khoảng thời gian truyền 1 bit ảng thời gian truyền 1 bit ời gian truyền 1 bit ền và nhận của giao tiếp UART:
+ Khung truy n ( Frame ): quy đ nh v s bit cho m i l n truy n.ền và nhận của giao tiếp UART: ịnh về số bit cho mỗi lần truyền ền và nhận của giao tiếp UART: ố trong truyền và nhận của giao tiếp UART: ỗi lần truyền ần truyền ền và nhận của giao tiếp UART:
+ Start bit: là bit đ u tiên trong khung truy n, báo cho thi t b bi t ần truyền ền và nhận của giao tiếp UART: ếp UART: ịnh về số bit cho mỗi lần truyền ếp UART:
có m t gói d li u s p độ Baud: là khoảng thời gian truyền 1 bit ữ liệu sắp được truyền tới ệu sắp được truyền tới ắp được truyền tới ược truyền tới c truy n t i ền và nhận của giao tiếp UART: ới
+ Data: d li u đữ liệu sắp được truyền tới ệu sắp được truyền tới ược truyền tới c truy n đi ền và nhận của giao tiếp UART:
+ Parity bit: bit ki m tra d li u truy n.ểm tra dữ liệu truyền ữ liệu sắp được truyền tới ệu sắp được truyền tới ền và nhận của giao tiếp UART:
+ Stop bit: là m t ho c nhi u bit báo cho thi t b bi t các bit đã g i ộ Baud: là khoảng thời gian truyền 1 bit ặc nhiều bit báo cho thiết bị biết các bit đã gửi ền và nhận của giao tiếp UART: ếp UART: ịnh về số bit cho mỗi lần truyền ếp UART: ửi xong
1.12 Các phương pháp hiển thị LED Matrix [6]
1.1.1 Phương pháp quét cột[6]:
Quét cột là phương pháp mà trong một khoảng thời gian xác định chỉ có mộtcột được tích cực để hiển thị trong khi đó các cột khác đều tắt Các cột đượcquét tuần tự ở các khoảng thời gian liên tiếp nhau và được lặp lại nhiều lần
Dữ liệu cột thứ nhất được đưa ra hàng sau đó tích cực cột thứ nhất để hiển thị
dữ liệu ra LED Matrix, sau đó tiếp tục đưa dữ liệu cột thứ hai ra hàng rồi tíchcực cột thứ hai để hiển thị dữ liệu ra LED Matrix, cứ nhứ thế cho đến cộtcuối cùng, quá trình trên được lặp lại với tốc độ lớn hơn 24 lần/ 1s nên ta sẽthấy một hình ảnh liên tục được hiển thị lên LED Matrix
1.1.2 Phương pháp quét hàng[6]
Quét hàng là phương pháp mà trong một khoảng thời gian xác định chỉ cómột hàng được tích cức để hiển thị trong khi các hàng khác đều tắt Các hàng
Trang 17được quét tuần tự ở các khoảng thời gian liên tiếp nhau và được lặp lại nhiềulần
Quét hàng sử dụng thanh ghi dịch, dữ liệu lần lượt đưa vào chân data in củathanh ghi dịch rồi tác động xung clock để dịch dữ liệu
Dữ liệu hàng thứ nhất được đưa ra hàng sau đó tích cực hàng thứ nhất đểhiển thị dữ liệu ra LED Matrix, sau đó tiếp tục đưa dữ liệu hàng thứ hai rahàng rồi tích cực hàng thứ hai để hiển thị dữ liệu ra LED Matrix, cứ nhứ thếcho đến hàng cuối cùng, quá trình trên được lặp lại với tốc độ lớn hơn
24 lần/ 1s nên ta sẽ thấy một hình ảnh liên tục được hiển thị lên LED Matrix
Mạch quang báo hiển thị 4 LED Matrix 88 có số lượng hàng nhỏ hơn sốlượng cột nên phương pháp quét hàng thích hợp sử dụng cho mạch này
CHƯƠNG 3 SƠ ĐỒ VÀ NGUYÊN LÝ HOẠT
ĐỘNG CỦA MẠCH1.13 Sơ đồ nguyên lý
Trang 18Hình 3-1: Sơ đồ nguyên lý khối điều khiển.
Hình 3-2: Sơ đồ nguyên lý khối hiển thị.
1.14 Nguyên lý hoạt động
Bắt đầu cấp nguồn cho mạch quang báo, vi điều khiển sẽ đọc dữ liệu đượclưu trước trong ROM Sau đó đối chiếu từng kí tự trong nội dung bản tin đểcopy font tương ứng vào RAM của chương trình hiển thị, sau đó sẽ gọichương trình hiển thị để hiển thị nội dung ra bảng quang báo
Trang 19 Khi chương trình điều khiển hiện thị trên máy tính muốn cập nhật nội dungmới cho bảng quang báo, vi điều khiển sẽ ngưng hiển thị để chờ nhận dữliệu mới từ máy tính Sau đó nội dung vừa nhận được lưu vào ROM để phục
vụ cho việc hiển thị bảng quang báo
Tín hiệu điều khiển từ máy tính được đưa qua 2 chân TXD và RXD củamodule CP2102 và đưa đến chân 26 (RXD), 25 (TXD) của PIC16F887 TạiPIC16F887, dữ liệu mới từ máy tính sẽ được lưu vào bộ nhớ ROM, RAMcủa PIC16F877 đồng thời cũng lưu vào EEPROM Khi dữ liệu được đưa vàochân 14 của IC 74HC595 thì LED đầu tiên sẽ sáng, sau đó dữ liệu này sẽđược dịch từ từ sang những LED tiếp theo
Kỹ thuật quét LED là cấp tín hiệu điều khiển theo dạng xung theo kiểu quétcho các hàng cần hiển thị tần số quét nhỏ nhất cho mỗi chu kỳ cần khoảng
25 Hz (40 ms) nhằm bảo đảm cho mắt thấy các LED sáng đều không nhấpnháy
1.15 Lưu đồ giải thuật
1.1.3 Lưu đồ giải thuật của chương trình chính.
Trang 20Hình 3-3: Lưu đồ giải thuật chương trình chính.
1.1.4 Lưu đồ giải thuật của bảng quang báo
Trang 21Hình 3-4: Lưu đồ giải thuật của bảng quang báo.
1.1.5 Lưu đồ giải thuật chương trình copy font vào RAM
Trang 22Hình 3-5: Lưu đồ giải thuật của chương trình copy font vào RAM.
1.1.6 Lưu đồ giải thuật chương trình hiển thị
Trang 23Hình 3-6: Lưu đồ giải thuật chương trình hiển thị.
1.16 Sơ đồ mạch in
Trang 24Hình 3-7: Sơ đồ mạch in khối hiển thị.
Hình 3-8: Sơ đồ mạch in khối điều khiển.
1.17 Mạch quang báo trong thưc tế
Trang 25Hình 3-9: Hình ảnh thực tế của mạch quang báo.
Hình 3-10: Bảng điều khiển nội dung hiển thị.
Trang 26 Thời gian sáng trung bình của mỗi hàng LED là: ttb = 1/8 s.
Từ thấy dòng qua LED ở chế độ thường trực là 5 mA – 25 mA, chọn dòng trung bình qua 1 LED là 10 mA Mạch gồm 8 LED mắc song song cho mỗi cột nên dòng Ic cao nhất của transistor A1015 là:
+ Nội dung hiển thị rõ ràng, dễ đọc
+ Điều khiển nội dung hiển thị dễ dàng
Trang 27+ Mạch có cấu tạo đơn giản.
Nhược điểm:
+ Khó khăn trong việc lập trình chương trình điều khiển
+ Gia công chưa chắc chắn nên dễ gây hỏng
+ Dễ bị ảnh hưởng bởi tác động bên ngoài
+ Tăng kích thức quang báo
+ Sử dụng nhiều font chữ và LED đa màu để hiển thị đa dạng, sinh độnghơn
+ Có thể điều khiển bằng các giao tiếp khác như: SMS, Bluetooth, Wifi,
…
TÀI LIỆU THAM KHẢO
Trang 29#include <string.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#include <font_ascii.c> //File chua bo font ma hoa ky tu ASCII
// Dinh nghia cac chan cho ket noi 74595
int8 buff_disp[33]; //Bo nho dem cho man hinh LED
int8 max_char=10; //SO ky tu hien thi toi da
int8 time=40; //Bien quy dinh toc do chu chay
int8 count=0; int1 isrun = 0;
char dt[65]="QUANG BAO LED MATRIX 8X32 ";
//=========KHAI BAO CAC CHUONH TRINH CON================
void send_2_595(int8 temp);
void display();
void copy_2_ram1(int8 index_char);
void copy_2_ram2(int8 index_char);
Trang 30write_eeprom(i,32); write_eeprom(i+1,32); write_eeprom(i+2,32); write_eeprom(i+3,32); write_eeprom(i+4,32); write_eeprom(i+5,32);
max_char = read_eeprom(0xff); if(max_char>65) { max_char = 29; luudata(); }
time = read_eeprom(200); if(time>72) time = 40;
//=======BEGIN DISPLAY FUNCTION==============
//Doan chuong trinh nay se hien thi noi dung ban tin luu trong EEPROM
Trang 31// === CAC CHUONG TRINH CON =========
//=======Gui du lieu theo duong noi tiep toi 595============
void send_2_595(int8 temp) {
Trang 32buff_disp[i]= buff_disp[i-1]; // Dich RAM sang trai
buff_disp[0]=font[index_char].b[j]; // Luu ma ascii vao RAM display(); // Goi hien thi
}
buff_disp[0]=0xff;
}
Trang 33for (i=32;i>0;i ) // Dich RAM
buff_disp[i]= buff_disp[i-1]; //Dich RAM sang trai
buff_disp[0]=font2[index_char].b[j]; //Luu ma ascii vao RAM display(); // Goi hien thi
}
buff_disp[0]=0xff; // Them mot khoang trang giua hai ky tu }