Phương phápquétLEDPhươngphápQuétLed - Giả sử cho bài toán: Dùng PIC 16F84(13 chân I/O) để hiện thị số lên 6 LED 7 đoạn.Bình thường để hiển thị số lên LED 7 đoạn bạn có thể dùng trực tiếp các chân I/O(8 chân/ 1 LED 7 đoạn),Hoặc dùng bộ giải mã BCD(4 chân I/O / 1 LED 7 đoạn).Như vậy để hiển thị số lên 6 LED 7 đoạn bạn cần dùng tối thiểu 24 chân I/O.-- > bài toán buộc phải thay đổi ,không dùng PIC 16F84 nữa! dùng con khác có nhiều chân hơn. - Nhưng bài toán trên vẫn có thể giải quyết được bằng phương phápquétLED sử dụng tính chất lưu ảnh trên võng mạc(24 ảnh/giây) thì ảnh như liên tục.Do vậy ta phải quét hết 6 LED 24 lần/ 1s. Các LED lần lượt sáng theo thứ tự từ LED thứ 1 cho tới LED thứ 6 trong một khoảng thời gian nào đó(Tùy thuộc vào tần số quét ta chọn). Linh kiện: PIC 16F84A Giải mã BCD 74LS47N 6 Led 7 đoạn Anốt chung 6 Tranzitor C828 Sơ đồ mạch<không upload được ảnh!!!> Mô tả: 6 Led Anode chung được nối qua Transitor C828 tới nguồn Vcc.Chân RB0-RB5 nối tương ứng qua một điện trở tới chân Bazơ của Transitor C828. Tất cả các chân của Led 7 đoạn (a,b,c,d,e,f,g) được nối chung với BUS. - 4 lối ra của PORTA (RA3-RA0) nối với lối vào của 74LS47.Lối vào nhị phân này tương ứng với lối ra là số thập phân được hiển thị.Giả sử ta cần số 5 sáng thì RB0 phải bằng 1- để mở Transitor.Còn RA3,RA2,RA1,RA0=0101 tương tự đối với các LED 7 đoạn khác. Chương trình được viết như sau: Code: //****************************************** //QUET LED //author: noisepic@gmail.com //date:20/07/2005 //status:OK //Mota:PIC16F84A + Bo giai ma BCD 7447 //4 vao 7447: RA3-RA0 //PORTB(RB0-RB5 ket noi voi Transitor C828) //******************************************* #include<16f84A.h> #include<def_84.h> #fuses NOWDT,PUT,HS,NOPROTECT #use delay(clock=4000000) main() { //gia su ta can quet so 1,2,3,4,5,6 TRISA=0x00; TRISB=0x00; PORTA=0xff; PORTB=0x00;// ban dau chua Led 7 doan nao sang while(TRUE) { //hien so 1 PORTB=0x01;//transitor 1 mo PORTA=0x01; delay_us(3333); //hien so 2 PORTB=0x02;//transitor 2 mo PORTA=0x02; delay_us(3333); //hien so 3//transitor 3 mo PORTB=0x04; PORTA=0x03; delay_us(3333); //hien so 4//transitor 4 mo PORTB=0x08; PORTA=0x04; delay_us(3333); //hien so 5 //transitor 5 mo PORTB=0x10; PORTA=0x05; delay_us(3333); //hien so 6//transitor 6 mo PORTB=0x20; PORTA=0x06; delay_us(3333); } } Với thời gian trễ là 3333us~3.3 ms tương đương với quét 50 ảnh/ s. 3.3*6*50~999ms=1s. Chương trình trên hiển thị số 1 2 3 4 5 6 - Trong chương trình có sử dụng hàm delay_us(3333).Tại sao lại là 3333. Theo nguyên lý làm phim, nếu có 24 hình ảnh của vật xuất hiện trong 1 giây thì dường như vật đó luôn luôn xuất hiện- ứng dụng của hiện tượng lưu ảnh trên võng mạc.Nhưng do trong thiết kế khi dùng 24 ảnh/s đèn led hơi nháy.Do vậy noisepic tăng tần số quét lên 50 ảnh /s . Phương pháp quét LED Phương pháp Quét Led - Giả sử cho bài toán: Dùng PIC 16F84(13 chân I/O) để hiện thị số lên 6 LED 7 đoạn.Bình thường. bằng phương pháp quét LED sử dụng tính chất lưu ảnh trên võng mạc(24 ảnh/giây) thì ảnh như liên tục.Do vậy ta phải quét hết 6 LED 24 lần/ 1s. Các LED lần