![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#5 |
Nhập môn đệ tử
Tham gia ngày: May 2010
Bài gửi: 7
: |
[QUOTE=duy.hut.fet;35905]co anh em nao code va mach thi post luon di.em cung khoai cai nay lam ma chua biet lam tu dau[/QUOTE
mình nghĩ bạn nên dùng ma trận led thì hay. nó có thể được cải tiến theo nhiều kiểu với lại hiển thị theo ý mình. cái này mình cũng làm thử rùi chạy cũng tạm. đây là code mình đã làm sử dụng 74hc595 để quét. sau này nếu dã khá nên chuyên sang dùng file font đính kèm. #include <16f877a.h> #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use fast_io(b) #use fast_io(d) #use delay(clock=20000000) int16 send_reg; int16 const chay[16]={0x8000,0x4000,0x2000,0x1000,0x0800,0x0400,0x0200 ,0x0100, 0x0080,0x0040,0x0020,0x0010,0x0008,0x0004,0x0002,0 x0001}; int8 const data[42]={0xff,0xff,0xff,0xff,0xff,0xff,0xff, //dau cach 0xff,0x80,0xf7,0xf7,0xf7,0x80,0xff, //chu h 0xff,0x81,0xfe,0xfe,0xfe,0x81,0xff, //chu u 0xff,0xc0,0xb7,0xb7,0xb7,0xc0,0xff, //chu a 0xff,0x80,0xef,0xf7,0xfb,0x80,0xff, //chu n 0xff,0xff,0xff,0xff,0xff,0xff,0xff}; //dau cach int8 m,l,x; void serout() { int8 n; #bit d7=send_reg.15 { n=0; for(n=0;n<16;n++) { output_low(pin_b0); if(d7!=0) output_high(pin_b0); output_high(pin_b1); output_low(pin_b1); send_reg=send_reg<<1; } } } void hien_thi() { set_tris_b(0xf0); output_b(0x04); output_low(pin_b2); output_high(pin_b2); serout(); output_high(pin_b3); output_low(pin_b3); } void hc595(l) { m=0; for(m=0;m<16;m++) { x=m+l; if(x<42) { send_reg=chay[m]; hien_thi(); output_d(data[x]); delay_ms(5); } else { send_reg=chay[m]; hien_thi(); output_d(data[x-42]); delay_ms(5); } } } void main() { while(1) { set_tris_d(0); l=0; for(l=0;l<42;l++) hc595(l); } } thay đổi nội dung bởi: huankhi, 11-05-2010 lúc 10:47 PM. Lý do: quyên không post code |
![]() |
![]() |
|
|