Quảng báo được sử dụng trong rất nhiều lĩnh vực của đời sống xã hội . Hầu như đi đâu ta cũng có thể thấy những bảng quảng cáo với nhiều hình thức khác nhau. Với mục đích làm nổi bật lên sản phẩm của mình cả khi trời sáng hay tối người ta đã sử dụng rộng rãi các bảng quảng cáo điện tử. Bảng quảng báo điện tử có nhiều loại , được sử dụng trong nhiều lĩnh vực khác nhau , có khả năng hiển thị hình ảnh và màu sắc phong phú . Tuy nhiên do điều kiện có hạn nên trong đồ án này chúng em mong muốn tìm hiểu về nguyên lý thiết kế một bảng quảng cáo điện tử có khả năng điều khiển hiển thị các kí tự theo như mong muốn và thiết kế một module led quảng báo cỡ nhỏ để thử nghiệm.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: THIẾT KẾ BẢNG QUẢNG CÁO LED SỬ DỤNG VI ĐIỀU KHIỂN ATMEGA 16 MODULE ĐIỀU KHIỂN HIỂN THỊ Sinh viên thực hiện: PHẠM MINH ĐỨC Lớp ĐT12 – K49 Giảng viên hướng dẫn: TS NGUYỄN TIẾN DŨNG Cán phản biện: TS HOÀNG MẠNH THẮNG BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI CỘNG HỊA XÃ HƠI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc - NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: …PHẠM MINH ĐỨC…… Số hiệu sinh viên: …20040847… Khoá:……… 49.……….Khoa: Điện tử - Viễn thông Ngành: ……………… Đầu đề đồ án: Thiết kế bảng quảng cáo LED sử dụng vi điều khiển ATMEGA16 Module điều khiển hiển thị Các số liệu liệu ban đầu: …………………………………… …………………………………………… …… …………………………… ……………………………………………………………………………………………………………………………… … ……………………… …………………………………………………………………………………… Nội dung phần thuyết minh tính tốn: ……………………………………………………………………………………………………………… … ……………………………………………………………………………………………………………………………… …… … ……………………………………………………………………………………………………………………………… ……… ….…………………………………………………………………………………………… Các vẽ, đồ thị ( ghi rõ loại kích thước vẽ ): ……………………………………………………………………………………………………………………… … ………………………………………………………………………………………………………………………… ……….………………………………………………………………………………………………………… Họ tên giảng viên hướng dẫn: …………… NGUYỄN TIẾN DŨNG Ngày giao nhiệm vụ đồ án: ……………………………………………….…………… Ngày hoàn thành đồ án: ……………………………………………………………………… ……… Ngày Chủ nhiệm Bộ môn …………………… tháng năm Giảng viên hướng dẫn Sinh viên hoàn thành nộp đồ án tốt nghiệp ngày tháng năm Cán phản biện BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: PHẠM MINH ĐỨC Số hiệu sinh viên: .20040847 Ngành: Khoá: 49 Giảng viên hướng dẫn: TS NGUYỄN TIẾN DŨNG Cán phản biện: Nội dung thiết kế tốt nghiệp: Nhận xét cán phản biện: Ngày tháng Cán phản biện năm Lời nói đầu Quảng báo sử dụng nhiều lĩnh vực đời sống xã hội Hầu đâu ta thấy bảng quảng cáo với nhiều hình thức khác Với mục đích làm bật lên sản phẩm trời sáng hay tối người ta sử dụng rộng rãi bảng quảng cáo điện tử Bảng quảng báo điện tử có nhiều loại , sử dụng nhiều lĩnh vực khác , có khả hiển thị hình ảnh màu sắc phong phú Tuy nhiên điều kiện có hạn nên đồ án chúng em mong muốn tìm hiểu nguyên lý thiết kế bảng quảng cáo điện tử có khả điều khiển hiển thị kí tự theo mong muốn thiết kế module led quảng báo cỡ nhỏ để thử nghiệm Đầu tiên chúng em xin cảm ơn hướng dẫn bảo tận tình thầy Nguyễn Tiến Dũng Thầy cung cấp cho chúng em tài liệu đề tài giúp chúng em dễ dàng trình tìm hiểu đồ án Trong trình làm thực đồ án thầy bảo chúng em gặp khó khăn để đồ án hồn thành Chúng em xin cảm ơn thầy cô giáo khoa tận tình dạy dỗ chúng em năm học vừa qua giúp chúng em có kiến thức sở để làm đồ án Sinh viên Phạm Minh Đức Tóm tắt đồ án Nội dung đồ án việc điều khiển hiển thị led ma trận Khi điều khiển hiển thị led ma trận có phương pháp cấp nguồn theo hàng hay cột Đồ án tập trung trình bày phương pháp cấp nguồn theo cột Việc cấp nguồn cho cột thực cách sử dụng IC giải mã 74HC138 , cấp nguồn cho hàng cột thực cách sử dụng ghi dịch 74HC595 Dữ liệu mã hóa cấp nguồn cho hàng cột gửi ghi dịch thông qua việc sử dụng SPI vi điều khiển Việc điều khiển thời gian cấp nguồn cho ma trận tạo tốc độ quét thực cách sử dụng định thời Phần cuối đồ án trình bày cách tạo số hiệu ứng cho ma trận led sử dụng phương pháp cấp nguồn theo cột Project abstract The main content of this project is led matrix display control There has two power supply methods for controlling the led matrix : row by row or column by column In this project , I will introduce the column once When using this method, the 74HC138 decoder is used to power for each column and the 74HC595 shift register is used to power every row in the column which is chosen by 74HC138 The data which is coded the power suply for every row in each column is tranfered to the shift register by using the SPI of the microcontroller Timing to power the led matrix can be done by using the timer/counter of the microcontroller This is the simple method to controll the scan rate for led matix display Some led matrix display effects will be presented in the final part of this document Mục lục Lời nói đầu Tóm tắt đồ án Danh sách hình vẽ Danh sách bảng .6 Danh sách công thức .7 Phần mở đầu Chương : Giới thiệu chung 10 1.1) Quảng cáo 10 1.2) Bảng led quảng báo 11 1.2.1) Một số đặc trưng 11 1.1.2) Quảng cáo led 12 1.3) Giới thiệu chung hệ thống 16 Chương : Giới thiệu vi điều khiển AVR Atmega16 19 2.1) Giới thiệu vi điều khiển họ AVR .19 2.1.1) Một số đặc trưng 19 2.1.2) Một số đặc trưng 20 2.1.3) Một số đặc trưng 22 2.1.4) Một số họ vi diều khiển AVR .23 2.2) Sơ vi điều khiển Atmega16 23 2.2.1) Đặc trưng .25 2.2.2) CPU .27 2.2.3) Bộ nhớ 34 Chương : Nguyên tắc điều khiển led ma trận 39 3.1) Cấu trúc nguyên lý cấp nguồn cho led ma trận .39 3.2) Nguyên tắc tạo font chữ hiển thị 40 3.3) Điều khiển hiển thị led ma trận 41 Chương 4: Điều khiển cấp nguồn cho led ma trận 44 4.1) Điều khiển cấp nguồn cho cột dùng 74HC138 44 4.1.1) Chức 74HC138 .44 4.1.2) Sử dụng 74HC138 để cấp nguồn cho cột ma trận 45 4.2) Điều khiển cấp nguồn cho hàng dùng 74HC595 47 4.2.1) Chức 74HC595 .47 4.2.2) Sử dụng 74HC595để cấp nguồn cho hàng ma trận 49 4.3) Truyền liệu cấp nguồn cho hàng sử dụng SPI .51 4.3.1) Atmega16 SPI 51 4.3.2) Thiết lập SPI truyền liệu cho 74HC595 55 4.3) Kết luận 56 Chương5: Tạo tần số quét cho ma trận .57 5.1) Timer1 Atmega16 57 5.1.1) Một số chế độ hoạt động 57 5.1.2) Các ghi .62 5.2) Tạo tần số quét ma trận .67 5.3) Kết luận .68 Chương 6: Hiệu ứng hiển thị bảng led .69 6.1) Bảng led hiển thị 69 6.2) Dịch trái, phải 71 6.3) Dịch lên xuống 74 6.4) Hiển thị kí tự 77 6.5) Kết luận 79 Kết luận 80 Tài liệu tham khảo .81 Phụ lục A: Sơ đồ ghép nối hệ thống điều khiển led ma trận 82 Phụ lục B: Mã chương trình nạp cho vi điều khiển 86 Danh sách hình vẽ Hình - Sơ đồ khối hệ thống 16 Hình - Cấu trúc nhớ AVR 21 Hình - Cấu trúc bên AVR 22 Hình - Sơ đồ khối Atmega16 .24 Hình - Sơ đồ chân Atmega16 26 Hình - Sơ đồ khối cấu trúc ATmega16 .29 Hình - Các ghi hỗ trợ làm việc AVR CPU 31 Hình - Sơ đồ nhớ process 34 Hình - Sơ đồ nhớ liệu .35 Hình - Những chu kỳ truy xuất SRAM 35 Hình - Led ma trận chung anot 39 Hình - Lưu đồ thuật toán cấp nguồn cho ma trận led 42 Hình - Sơ đồ chân 74HC138 44 Hình - Ghép nối 74HC138 với vi diều khiển dể cấp nguồn cho cột ma trận 46 Hình - Sơ đồ chân 74HC595 47 Hình - Ghép nối 74HC595 với vi điều khiển để cấp nguồn cho hàng ma trận 49 Hình - Ghép nối tiếp IC 74HC595 50 Hình - Sơ đồ khối SPI .51 Hình - Ghép nối vi điều khiển với 74HC595 sử dụng SPI 55 Hình - Giản đồ thời gian chế độ CTC 58 Hình - Giản đồ thời gian chế độ Fast PWM 60 Hình - Giản đồ thời gian chế độ Phase Corect PWM 61 Hình - Bảng led hiển thị 69 Hình - Mô hiệu ứng dịch trái 71 Hình - Lưu đồ thuật toán hiệu ứng dịch trái 72 Hình - Mơ hiệu ứng dịch lên 74 Hình - Lưu đồ thuật toán hiệu ứng dịch lên .75 Hình - Mơ hiệu ứng hiển thị chữ 77 Hình - Lưu đồ thuật tốn hiệu ứng hiển thị tưng ký tự 78 Hình A - Sơ đồ ghép nối hệ thống .82 Hình A - Khối cấp nguồn 83 Hình A - Khối chốt liệu hàng 83 Hình A - Khối giao tiếp máy tính 84 Hình A - Khối khuếch đại dòng cho cột 84 Hình A - Khối xử lý trung tâm quét cột 85 Danh sách bảng Bảng - Tạo font chữ cho kí tự .40 Bảng - Chức nămg hoạt động 74HC138 45 Bảng - Chức hoạt động 74HC595 48 Bảng - Chức bit CPOL .53 Bảng - Chức bit CPHA .53 Bảng - Quan hệ tần số SCK tần số giao động 54 Bảng - Thiết lập chế độ đầu cho timer 62 Bảng - Các chế độ điều chế xung 63 Bảng - Lựa chọn tần số cho đếm 64 Bảng - Tạo tốc độ quét 60 Hz cho ma trận 68 Danh sách công thức Công thức - Quan hệ tần số đầu với tần số timer chế dộ CTC 59 Công thức - Độ phân giải PWM 59 Công thức - Quan hệ tần số đầu với tần số timer chế độ Fast PWM 61 KHỐI ĐIỀU KHIỂN TRUNG TÂM VÀ QUÉT CỘT: U8 E1 E2 E3 74HC138 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 15 14 13 12 11 10 C0 C1 C2 C3 C4 C5 C6 C7 C[0 7] C2 U7 33pF 13 12 C1 40 39 38 37 36 35 34 33 33pF OC0 KHoi dieu khien trung tam va chon cot MOSI SCK RESET XTAL1 XTAL2 PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PB0/XCK/T0 PB1/T1 PB2/INT2/AIN0 PB3/OC0/AIN1 PB4/SS PB5/MOSI PB6/MISO PB7/SCK PC0/SCL PC1/SDA PC2/TCK PC3/TMS PC4/TDO PC5/TDI PC6/TOSC1 PC7/TOSC2 PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP PD7/OC2 AVCC AREF 22 23 24 25 26 27 28 29 14 15 16 17 18 19 20 21 RXD TXD 30 32 ATMEGA16 Hình A - Khối xử lý trung tâm quét cột 87 Phụ lục B: Mã chương trình nạp cho vi điều khiển #include #include #include #include #define SCL PORTB.3 unsigned char flash FONT []={0, 62,65,65,65,62,0, 17,33,127,1,1,0, 35,69,73,73,49,0, 34,65,73,73,54,0, 12,20,36,79,4,0, 114,73,73,73,70,0, 62,73,73,73,38,0, 65,66,68,72,112,0, 54,73,73,73,54,0, 50,73,73,73,62,0, 63,68,68,68,63,0, 127,73,73,73,54,0, 62,65,65,65,34,0, 127,65,65,65,62,0, 127,73,73,73,65,0, 127,72,72,72,64,0, 62,65,73,73,46,0, 127,8,8,8,127,0, 65,65,127,65,65,0, 70,65,65,126,64,0, 127,8,20,34,65,0, 127,1,1,1,1,0, 127,32,24,32,127,0, 127,32,16,8,127,0, 62,65,65,65,62,0, 127,68,68,68,56,0, 62,65,69,66,61,0, 127,68,68,74,49,0, 50,73,73,73,38,0, 64,64,127,64,64,0, 126,1,1,1,126,0, 124,2,1,2,124,0, 127,2,12,2,127,0, 65,34,28,34,65,0, //0 //1 //2 //3 //4 //5 //6 //7 //8 //9 //A //B //C //D //E //F //G //H //I //J //K //L //M //N //O //P //Q //R //S //T //U //V //W //X 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 31 33 34 88 96,16,15,16,96,0, 67,69,73,81,97,0, 4,42,42,42,28,0, 126,18,18,18,12,0, 28,34,34,34,20,0, 12,18,18,20,126,0, 28,42,42,16,0,0, 4,62,72,64,32,0, 24,37,37,37,30,0, 126,16,16,16,14,0, 0,92,2,2,4,0, 4,2,2,92,0,0, 126,8,20,34,0,0, 124,2,2,2,0,0, 30,32,30,32,30,0, 62,8,16,62,0,0, 28,34,34,34,28,0, 31,36,36,36,24,0, 24,36,36,36,31,0, 0,30,32,32,24,0, 18,42,42,42,36,0, 0,32,124,34,4,0, 60,2,2,2,60,0, 56,4,2,4,56,0, 56,2,12,2,56,0, 34,20,8,20,34,0, 48,8,14,8,48,0, 34,38,42,50,34,0, 0,0,0,0,0,0, 255}; //Y //Z //a //b //c //d //e //f //g //h //i //j //k //l //m //n //o //p //q //r //s //t //u //v //w //x //y //z // 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 unsigned char dong1[192],dong2[192]; unsigned char tocdo_quet=50,tocdo_chay=3,c,col=2,eff=1,sc=0,sp=0; unsigned char tg,m=0,t=0,k=0,i,j,sokt=4,sokt1=4,sokt2=4; unsigned char chuoi1[16]={8,8,8,8,8,8,8,8}; unsigned char chuoi2[16]={6,6,6,6,6,6,6,6}; void LatchData(){ SCL=0; SCL=1; } 89 void lm1() { for (i=0;i