![]() |
|
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 |
![]() |
#11 | |
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 154
: |
lmd
Trích:
bài của bạn viết khó hiểu quá, vì tôi không hiểu cách trình bày của bạn. tôi có viết một đoạn code tương thích với phần cứng của bạn. bạn chạy thủ xem thế nào nhé. cách này viết hơi khó một tí nhưng nó rất thuận lợi để bạn thực hiện các hiệu ứng 1 cách dễ dàng. chúc vui vẽ #include <16F877a.h> #fuses XT,NOWDT,NOPROTECT,NOLVP #device 16F877a*=16 ADC=8 #use delay(clock=4000000) #use fast_io(a) #byte porta=0x05 #use fast_io(b) #byte portb=0x06 #use fast_io(c) #byte portc=0x07 #use fast_io(d) #byte portd=0x08 #use fast_io(e) #byte porte=0x09 int8 const font[] = {131,191,191,191,255, 131,187,185,130,249,255, 131,235,235,247,255, 255,255,255, 239,131,171,187,199,255, 130,255, 129,42,169,255, 131,247,239,131,255, 255,255,255, 251,131,251,255, 131,190,188,131,249,255, 255,255,255, 183,131,191, 199,187,187,199,255, 255,255}; int const ic[] = {0x01,0x02,0x04,0x08}; int ht[32]; // ram cho man hinh void codinh(); void dinhtrai(); void display(); //============================ void codinh() { int a,b,c; for(a=0;a<32;a++) { ht[a] = font[a]; } for(b=0;b<20;b++)// delay {display();} } //========================= void dinhtrai() { int a,b,c; for(a=0;a<32;a++) { ht[a] = 0xff; } // xoa man hinh for(a=0;a<32;a++) { ht[31] = font[a]; display(); for(b=0;b<32;b++) { ht[b-1] = ht[b]; } } for(a=0;a<32;a++) { ht[31] = 0xff; for(b=0;b<32;b++) { ht[b-1] = ht[b]; } display(); } } //======================================== void display() { int a,b,i; for(a=0;a<20;a++) // toc do dich { for(b=0;b<4;b++) // chon ic quet { portb = ic[b]; for(i=0;i<8;i++) { portd = ht[b*8+i]; porte = i; delay_us(1000); } } } } void main() { set_tris_a(0x00); set_tris_b(0x00); set_tris_c(0x00); set_tris_d(0x00); set_tris_e(0x00); while(1) { codinh(); dinhtrai(); delay_ms(2000); } } |
|
![]() |
![]() |
|
|