Mạch quang báo dùng vi điều khiển PIC16F88

17 2.1K 0
Mạch quang báo dùng vi điều khiển PIC16F88

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đồ án môn Thiết kế mạch Logic Giáo viên hớng dẫn: Nguyễn Nam Quân Nhóm sinh viên: Nguyễn Chí Linh Tek Song Leng Chơng 3 Mạch quang báo dùng Vi Điều Khiển PIC16F88 I. Nguyên lý làm việc của mạch quang báo I.1 Giới thiệu về bảng LED ma trận Trớc khi đi vào nguyên lý hoạt động của mạch ta tìm hiểu qua về bảng ma trận LED đợc sử dụng trong đề tài. Bảng hiển thị ma trận LED (dot-matrix display) có rất nhiều loại và đủ kích cỡ to nhỏ khác nhau, mỗi bảng gồm có rất nhiều LED đơn đợc ghép lại với nhau trong một khối. Trong khối đó các LED đơn đợc sắp sếp theo các hàng và các cột, tại mỗi giao điểm của hàng với cột là một LED đơn, và ngời ta thờng phân biệt các loại bảng LED theo số hàng và cột. Một bảng LED 5x7 tức là có 5 cột dọc và 7 hàng ngang, tổng cộng sẽ có 5x7=35 LED đơn đợc ghép lại. Cũng nh vậy một bảng 8x8 là có 8 hàng và 8 cột, do 64 LED đơn ghép lại. Và nhiều loại cỡ to hơn nh 16x16 hay 32x32 Trên thị trờng ta thờng thấy các bảng LED cỡ lớn, dài hàng mét với đủ kích cỡ. Các bảng LED đó là do hàng nghìn LED đơn ghép lại. Khi thiết kế những bảng LED to nh vậy ta cần chú ý đến sự đồng đều về độ sáng của các LED để việc hiển thị đợc đồng đều. Bên cạnh đó vấn đề cấp nguồn cho mạch cũng cần đợc chú ý và thiết kế cho phù hợp. Trong đề tài này em sử dụng hai bảng LED 8x8 cho việc hiển thị, sử dụng ma trận 5x7 cho việc hiển thị mỗi một ký tự. Sau đây là sơ đồ ghép nối của hai loại bảng LED thông dụng là 5x7 và 8x8. Đồ án môn Thiết kế mạch Logic Giáo viên hớng dẫn: Nguyễn Nam Quân Nhóm sinh viên: Nguyễn Chí Linh Tek Song Leng H1.1 Bảng LED 8x8 Bảng ma trận LED có hai loại, loại có các cột là các chân Anode, còn hàng là các chân Cathode và loại kia thì ngợc lại các cột là Cathode, hàng là Anode. Khi sử dụng LED ta cần chú ý điều này để điều khiển cho đúng. Khi đóng vỏ, sự phân bố chân các hàng và cột là không theo thứ tự (do tính phức tạp trong ghép nối), do đó ta cần tìm hiểu kỹ để mắc mạch cho đúng. Dới đây là sơ đồ chân của bảng LED 8x8 đợc dùng trong đề tài. Các số gạch chân là hàng Các số không gạch chân là cột §å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¸o viªn h−íng dÉn: NguyÔn Nam Qu©n Nhãm sinh viªn: NguyÔn ChÝ Linh – Tek Song Leng 6 3 4 1 6 7 2 4 Hµng Cét 8 5 3 5 8 7 2 1 H1.2 B¶ng LED 5x7 Đồ án môn Thiết kế mạch Logic Giáo viên hớng dẫn: Nguyễn Nam Quân Nhóm sinh viên: Nguyễn Chí Linh Tek Song Leng I.2 Nguyên tắc làm sáng đèn LED trên bảng LED Khi muốn làm sáng LED dơn, ta cần đa điên áp dơng vào chân Anode và điện áp âm vào chân Cathode với giá trị thích hợp, khi đó LED sáng. Giá trị điện áp và dòng điện tuỳ thuộc vào màu sắc từng loại LED. Dòng chảy qua các LED để đảm bảo độ sáng bình thờng là từ 10mA cho đến 25mA. Về điện áp ta có bảng sau. Màu LED\Điện áp V min V V max Đỏ 1.88 1.9 1.93 Xanh 2.08 2.1 2.12 Vàng 1.98 2.0 2.02 Khi ta muốn làm sáng một điểm trên bảng ma trận LED ta cũng làm tơng tự. Xét với bảng LED 5x7 dới đây (H1.3). H1.3 Bảng LED 5x7 Ta muốn làm sáng LED tại vị trí hàng 5 - cột 3 (Row = 5 : Col = 3), ta đa mức điện áp dơng (mức logic 1) đến chân số 4 tức hàng thứ 5 và nối chân số 10 tức cột 3 xuống đất (GND hay mức logic 0), đèn LED tại vị trí đó sẽ sáng. Việc hiển thị thông tin trên bảng LED ta cũng làm tơng tự, cho sáng những điểm theo sự điều khiển của ta để tạo ra chữ và hình ảnh. Việc điều khiển hiển thị sẽ đợc trình bày trong phần dới dây. Đồ án môn Thiết kế mạch Logic Giáo viên hớng dẫn: Nguyễn Nam Quân Nhóm sinh viên: Nguyễn Chí Linh Tek Song Leng I.3 Nguyên tắc quét bảng ma trận LED Trong đề tài này em sử dụng hai bảng LED 8x8 ghép lại thành một bảng cỡ 8x16 (8 hàng và 16 cột). Mỗi ký tự sẽ đợc hiển thị trong một khung cỡ 5x7. Dới đây là nguyên tắc quét và hiển thị một ký tự (giả thiết là chữ R) trên khung hình 5x7. Để hiển thị ký tự lên bảng LED, ở đây ta dùng phơng pháp quét cột và xuất dữ liệu hàng. Quá trình quét cột là ta gửi tín hiệu cho phép đến từng cột trong từng thời điểm. Cùng lúc đó ta gửi dữ liệu hàng đến 7 hàng. Trong đề tài này tín hiệu cho phép cột là mức logic 1, và dữ liệu hàng tơng ứng là mức 0 hay 1 của từng hàng, mức 0 ứng với LED sáng (on) và mức 1 là tắt (off). - Đầu tiên ta đa dữ liệu cần hiển thị đến 7 hàng, ví dụ 11100110 - Kích hoạt cột thứ nhất và các LED tơng ứng sẽ sáng. Tạo một thời gian trễ, sau đó tắt cột thứ nhất. - Gửi tiếp giá trị dữ liệu 7 hàng của cột thứ 2, kích hoạt cột thứ 2, tạo trễ và lại tắt cột thứ 2. - Quá trình quét đó cứ tiếp diễn cho đến khi quét hết 16 cột của bảng LED. Việc quét hiển thị này diễn ra trong thời gian rất ngắn, cỡ vài chục mili giây, ta sẽ thấy hình ảnh hay chữ hiển thị trên bảng LED. Tuy rằng trong mỗi thời điểm chỉ có một cột đợc sáng nhng do thời gian quét rất nhanh và do hiện tơng lu ảnh trong võng mạc của mắt nên ta thấy hình ảnh xuất hiện liên tục. Tần số quét cần phải đảm bảo sao cho đủ hoặc lớn hơn 24hình/s. Thờng ta chọn tần số quét từ 40Hz đến 100Hz hoặc có thể lớn hơn. Dữ liệu hiển thị của hàng đợc lấy từ EEPROM hoặc từ Flash ROM của Vi Điều Khiển hay từ ROM ngoài. Trong đề tài này ban đầu dữ liệu đợc lấy từ ROM trong PIC16F88, khi câp nhật dữ liệu từ máy tính thì dữ liệu sẽ đợc lấy từ EEPROM trong PIC16F88 (256 byte). Quét cột D liu h ng Tín hiệu kích hoạt cột (C1 -> C5) Đồ án môn Thiết kế mạch Logic Giáo viên hớng dẫn: Nguyễn Nam Quân Nhóm sinh viên: Nguyễn Chí Linh Tek Song Leng I.4 Phơng pháp tạo hiệu ứng chữ chạy từ phải qua trái trên bảng LED Sau khi đ hiển thị đợc hình ảnh lên bảng LED. Bây giờ ta sẽ tìm hiểu cách tạo hiệu ứng chữ chạy trên bảng LED. Thủ thuật ở đây là quét và hiển thị một hình ảnh trong một thời gian nhất định, sau đó ta dịch dữ liệu của các cột sang trái một vị trí, khi đó ta sẽ tạo đợc hiệu ứng chữ chạy trên bảng LED. Đề tài này ta sử dụng mạch mẫu là bảng LED 8x16, sử dụng 16 byte RAM làm bộ đệm cho màn hình, lu giá trị dữ liệu hàng của 16 cột. Bộ đệm đợc khai báo trong RAM nội của chip PIC16F88 là một mảng gồm 17 phần tử. Chơng trình hiển thị làm nhiệm vụ đọc dữ liệu từ các vị trí 0 đến 16 của bộ đệm và đa ra màn hình hiển thị. Hiệu ứng chữ chạy đợc tạo ra bằng cách dịch giá trị các phần tử đi một vị trí (15 ->16, 14 ->15, 13 ->12). Sau mỗi lần dịch ta lại gọi chơng trình hiển thị. Khi đó trên bảng LED ta sẽ quan sát đợc hiệu ứng chữ chạy. II. Nguyên lý làm việc của mạch quang báo Mạch điện sử dụng Vi Điều Khiển PIC nên về phần cứng khá đơn giản. Mạch gồm có 3 khối chính với 3 IC chính đợc sử dụng. Khối điều khiển trung tâm sử dụng Vi Điều Khiển PIC16F88. Vi Điều Khiển này có 18 chân (kích thớc nhỏ nhất của dòng PIC Mid-range). Tuy vậy, với nhiều tính năng mạnh đợc tích hợp sẵn nên PIC16F88 đợc chọn. Khối giải m địa chỉ cột sử dụng IC 74HC154 là IC giải m/giả đa hợp. Chíp CMOS này đợc dùng để giải m cột, 4 đờng vào và 16 đớng ra. 16 đờng ra này đợc nối đến 16 cột để làm nhiệm vụ đa tín hiệu cho phép cột. KhốI giải m dữ liệu hàng sử dụng IC 74HC595, đây là thanh ghi dịch 8-bit vào nối tiếp ra song song. Ta sử dụng IC này nhằm mục đích tiết kiệm chân giao tiếp giữa IC giải m với Vi Điều Khiển. Chân DATA-IN (14) để đa dữ liệu nối tiếp vào, chân CLK (11) đa xung đồng hồ dịch bit, chân LATCH(12) để chốt dữ liệu đợc gửi ra. 8 đầu ra đợc nối đến 8 hàng của bang LED thông qua mạch đệm dòng. Nguyên lý hoạt động: Chơng trình phần mềm chứa trong Vi Điều Khiển làm nhiệm vụ điều khiển chính mọi hoạt động của mạch. Chơng trình phần mềm gồm có nhiều chơng trình con: chơng trình hiển thị, chơng trình cập nhật EEPROM Đồ án môn Thiết kế mạch Logic Giáo viên hớng dẫn: Nguyễn Nam Quân Nhóm sinh viên: Nguyễn Chí Linh Tek Song Leng Lu đồ thuật toán YES NO YES NO Khởi tạo ban đầ u: - Định nghĩa các chân vào ra - Thiết lập cho ADC(kênh,tốc độ) - Lu bản tin vào EEPROM) Xoá bộ đệm màn hình Đọc giá trị ADC Trở về Update_flag ? Gọi chơng trình cập nhật: - Số từ hiển thị mới - Vị trí EEPROM - Số ký tự thêm vào - Nhập Chơng trình hiển thị trên bảng LED Nhập bản tin mới ? START Hiển thị nội dung: - Bản tin - EEPROM Cập nhật bản tin END §å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¸o viªn h−íng dÉn: NguyÔn Nam Qu©n Nhãm sinh viªn: NguyÔn ChÝ Linh – Tek Song Leng III. S¬ ®å nguyªn lý m¹ch ®iÖn. a. Khèi m¹ch chÝnh vµ hiÓn thÞ. U6 PIC16F88 14 15 4 16 17 18 1 2 3 6 7 8 9 10 11 12 13 VDD OSC2/CLKOUT MCLR OSC1/CLKIN RA0 RA1 RA2 RA3 RA4/TOCKI RB0/INT RB1 RB2/RX RB3 RB4 RB5/TX RB6 RB7 R1 4k7 Col4 Col8 row4 Col7 XTAL2 R9 4k7VCC row5 Col1 Q7 A1015 Col10 A3 VCC Ma tran 8x8 Q8 A1015 A0 A1015 Dieu chinh toc do 10K Q1 A1015 Col0 A1015 U4 74HC595 14 11 10 12 13 15 1 2 3 4 5 6 7 9 SER SRCLK SRCLR RCLK G QA QB QC QD QE QF QG QH QH' row6 Col13 U5 74154 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 23 22 21 20 18 19 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15 A B C D G1 G2 XTAL1 A2 Ma tran 8x8 A0 Col6 Col12 R2 4k7 row8 A1015 A2 row1 R9 4k7 Col3 Col9 Q3 A1015 VCC R3 4k7 VCC Col5 A3 R3 4k7 row2 R1 4k7 A1 R2 4k7 A1 Col11 Col15 Col2 row3 Col14 row7 A1015 b. Khèi t¹o dao ®éng, m¹ch Reset C5 22p 10MHz XTAL2XTAL1 C6 22p C4 10u VCC RST R15 10k c. Khèi giao tiÕp m¸y tÝnh MAX232 1 3 4 5 2 6 12 9 11 10 13 8 14 7 C1+ C1- C2+ C2- V+ V- R1OUT R2OUT T1IN T2IN R1IN R2IN T1OUT T2OUT C2 10uF C3 C7 VCC TX (RB5) C1 COM on PC 5 9 4 8 3 7 2 6 1 RX (RB2) Nèi ®Õn ch©n MCLR(1) Đồ án môn Thiết kế mạch Logic Giáo viên hớng dẫn: Nguyễn Nam Quân Nhóm sinh viên: Nguyễn Chí Linh Tek Song Leng d. Khối nguồn 7805 1 3 2 VIN VOUT GND 100uF +5V 10uF +9V +12V 10447uF IV. Linh kiện sử dụng trong mạch a. Khối điều khiển trung tâm: Vi điều khiển PIC16F88 b. GiảI m dữ liệu hàng: IC 74HC595 c. GiảI m địa chỉ cột: IC 74HC154 d. Đệm dòng cho hàng dùng Transistor A1015 e. Giao tiếp máy tính: IC MAX232 (MAXIM-DALLAS) f. Điện trở 4K7, 10K, tụ 10àF, 100àF, 47àF, IC 7805 (ổn áp 5 V ) g. Bảng LED 8x8 (2 bảng) V. M nguồn chơng trình Dới đây là m nguồn của chơng trình hiển thị LED. Chơng trình sử dụng ngôn ngữ C, sử dụng trình biên dịch PCWH Compiler của hng Custom Computer Services, Inc (CCS), phiên bản 3.227. Đây là phần mềm chuyên dụng trong việc lập trình PIC các dòng PIC16F và PIC18F Để lập trình cho PIC ta có thể sử dụng rất nhiều ngôn ngữ khác nhau nh C, C++, BASIC, ASM Mỗi ngôn ngữ lại có một trình biên dịch khac nhau. Riêng nhà cung cấp chip là hng MicroChip thì hỗ trợ ngời dùng trình dịch bằng ASM là MPLAB IDE (phiên bản mới nhất là 7.21). Đây là phần mềm hoàn toàn miễn phí, cho phép ngời dùng phát triển trên môi trờng ASM các ứng dụng. Tuy vậy trong đề tài này em chọn dùng ngôn ngữ C để viết m chơng trình vì C là ngôn ngữ bậc cao, cho phép ta thực hiện nhiều phép toàn phức tạp với câu lệnh đơn giản. Trong trình biên dịch PCWH Compiler có hỗ trợ khá nhiều hàm cho phép ta lập trình với PIC một cách nhanh chóng nh: các hàm giao tiếp I2C, RS232, SPI, các hàm xử lý với EEPROM nh write_eeprom, read_eeprom, §å ¸n m«n ThiÕt kÕ m¹ch Logic Gi¸o viªn h−íng dÉn: NguyÔn Nam Qu©n Nhãm sinh viªn: NguyÔn ChÝ Linh – Tek Song Leng //+===Chuong trinh LED matrix display===========+ //| Thiet ke: Nguyen Chi Linh - DT8K47 - DHBKHN | //| MCU: PIC16F88 (4K FLASH ROM, 256K EEPROM) | //| Cac IC khac: 74154 - demux/decoder 1-of-16 | //| 74595 - Ghi dich 8bit | //+=============================================+ #include <16f88.h> #include <defs_88.h> #device *=16 ADC=8 #FUSES NOWDT, HS, NOPUT, MCLR, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG, NOPROTECT, NOFCMEN, NOIESO #use delay(clock=20000000) #use rs232(baud=9600,parity=N,xmit=PIN_B5,rcv=PIN_B2,bits=9) #include <input.c> #include <font_ascii.c> //File chua bo font ma hoa ky tu ASCII // Dinh nghia cac chan cho ket noi 74595 #bit clk = 0x06.1 //RB0 #bit data = 0x06.3 //RB1 #bit latch = 0x06.4 //RB3 // Bo nho dem man hinh hien thi int8 buff_disp[25]; //Bo nho dem cho man hinh LED int8 max_char=117; //SO ky tu hien thi toi da int8 time=5; //Bien quy dinh toc do chu chay int1 text_on_rom=0; int8 chon=0; int8 address; int8 choose_text; //=========KHAI BAO CAC CHUONH TRINH CON================ int8 doc_eeprom(int8 addr); void send_2_595(int8 temp); void display(); void copy_2_ram1(int8 index_char); void copy_2_ram2(int8 index_char); void update_eeprom(); void convert_bcd(int8 x); //============================================= #INT_EXT EXT_ISR() { disable_interrupts(GLOBAL); clear_interrupt(int_ext); chon++; if(chon==3) chon = 0; choose_text = 0; text_on_rom = 0; [...]... hai mặt Nhóm sinh vi n: Nguyễn Chí Linh Tek Song Leng Đồ án môn Thiết kế mạch Logic Giáo vi n hớng dẫn: Nguyễn Nam Quân B Khối điều khiển trung tâm Khối điều khiển trung tâm gồm có Vi điều khiển PIC16F88 v IC MAX232 để giao tiếp máy tính To n bộ mạch đợc thực hiện trên bo cắm, đi đây Hình ảnh mạch điện Nhóm sinh vi n: Nguyễn Chí Linh Tek Song Leng ... khối điều khiển trung tâm v giao tiếp A Khối giải m hiển thị - Mạch giải m gồm có 3 IC IC giải m dữ liệu h ng 74HC595 v các IC giải m địa chỉ cột 74HC154 v 74HC138 Ngo i ra còn có các Transistor A1015 l m nhiệm vụ đệm dòng cho các LED Sau đây l hình ảnh mạch điện Mạch đợc l m trên đế h n linh kiện, có sẵn chân đế Mạch đi dây cả hai mặt Nhóm sinh vi n: Nguyễn Chí Linh Tek Song Leng Đồ án môn Thiết kế mạch. .. so hang don vi write_eeprom(0xf7,temp+0x30); //Cong them 0x30 de tra ve gia tri SCII a=x/10; //tach hang tram va hang chuc temp=a%10; //tach so hang chuc write_eeprom(0xf6,temp+0x30); temp=x/100; write_eeprom(0xf5,temp+0x30); } Nhóm sinh vi n: Nguyễn Chí Linh Tek Song Leng Đồ án môn Thiết kế mạch Logic VI Giáo vi n hớng dẫn: Nguyễn Nam Quân Thực hiện mạch lắp ráp Từ sơ đồ nguyên lý trên, mạch lắp ráp... Dich trai 1 bit } latch=1; latch=0; //Chot du lieu } Nhóm sinh vi n: Nguyễn Chí Linh Tek Song Leng Đồ án môn Thiết kế mạch Logic Giáo vi n hớng dẫn: Nguyễn Nam Quân //===========Chuong trinh con hien thi========= void display() { int8 count,column_count; int8 i; time = read_adc()/10; // Viec doc gia tri ADC truoc khi hien thi lam cho viec thay doi // toc do chu chay linh hoat hon, truc tiep tha doi... trinh ghi vao ROM (cap nhat du lieu moi) { write_eeprom(addr,string[i]); addr=addr+1; } text_on_rom=1; } else { printf("Tro ve !"); // Ket thuc viec cap nhat, tro ve hien thi Nhóm sinh vi n: Nguyễn Chí Linh Tek Song Leng Đồ án môn Thiết kế mạch Logic Giáo vi n hớng dẫn: Nguyễn Nam Quân text_on_rom = 0; } } //=============READ EEPROM===================== int8 doc_eeprom(int8 addr) { EEADR=addr; RD=1;... buff_disp[0]=0xff; // Them mot khoang trang giua hai ky tu } Nhóm sinh vi n: Nguyễn Chí Linh Tek Song Leng Đồ án môn Thiết kế mạch Logic Giáo vi n hớng dẫn: Nguyễn Nam Quân //=========Update EEPROM=================== void update_eeprom() { byte i,j,addr,max; char temp; char string[64]; // Hien thi noi dung cua EEPROM printf("\r\n256 byte EEPROM of PIC16F88: \r\n"); for(i=0; i . kế mạch Logic Giáo vi n hớng dẫn: Nguyễn Nam Quân Nhóm sinh vi n: Nguyễn Chí Linh Tek Song Leng Chơng 3 Mạch quang báo dùng Vi Điều Khiển PIC16F88 I. Nguyên lý làm vi c của mạch quang báo. làm vi c của mạch quang báo Mạch điện sử dụng Vi Điều Khiển PIC nên về phần cứng khá đơn giản. Mạch gồm có 3 khối chính với 3 IC chính đợc sử dụng. Khối điều khiển trung tâm sử dụng Vi Điều Khiển. kiện sử dụng trong mạch a. Khối điều khiển trung tâm: Vi điều khiển PIC16F88 b. GiảI m dữ liệu hàng: IC 74HC595 c. GiảI m địa chỉ cột: IC 74HC154 d. Đệm dòng cho hàng dùng Transistor A1015

Ngày đăng: 22/04/2015, 15:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan