ai xem giúp e đoạn code quét led matrix với?
2 Attachment(s)
chả là e muốn dùng 595 để gửi dữ liệu ra cod.còn 138 để cáp nguồn cho hàng
code e nó đây ạ #include <18f4520.h> #use delay(clock=12000000) int8 m,i; int8 Cot1[8]={0x68,0x6c,0x66,0x63,0xff,0xff,0x60,0x60}; //H{0x36,0x36,0x36,0x7e,0x7e,0x36,0x36,0x36} //A{0x4c,0x6e,0x33,0x33,0x7f,0x7f,0x33,0x33} //D{0x4E,0x26,0x36,0x36,0x36,0x36,0x26,0x4E} //T{0x7e,0x7e,0x48,0x48,0x48,0x48,0x48,0x48} //4{0x68,0x6c,0x66,0x63,0xff,0xff,0x60,0x60} //int8 Dong[]={0b00000000, 0b00000001, 0b00000010, 0b00000011, 0b00000100, 0b00000101, 0b00000110,0b00000111}; //int8 hang[8]={0b000,0b001,0b010,0b011,0b100,0b101,0b110,0b111} ; #define SH PIN_A5 // clock #define DS PIN_A3 // data #define ST PIN_A4 // chot int8 team; void sen595(int8 x) { #bit fla=x.7; for (i=0;i<=7;i++) { if (fla) output_high(DS); //Dich 1 bit vao 74HC595 else output_low(DS); output_high(SH); //Tao xung Clock delay_us(10); output_low(SH); //tao xung Clock x = x<<1; //Dich trai 1 bit cua Data } output_high(ST); //Chot 8 bit cho dau ra output_low(ST); //Chot 8 bit cho dau ra } void main() { int8 i,j; while(1) { for(j=0;j<8;j++) { for(i=0;i<8;i++) { sen595(cot1[i]); output_a(i); delay_ms(10); //Tao thoi gian tre } } } } |
1 Attachment(s)
Trích:
Code:
void main() |
Trích:
|
e thử lại cách nối giống của a cùng 1 port thì nó vẫn chạy.nhưng vấn đề ở đây của e là.trong phần cứng e lại nối chân A với pin_a2,chân B với pin_a1 và chân C với pin_a0.e nghĩ là nó ngược bit lơn nhất thành bit thấp nhất.a có cách nào sửa lại code với phần cứng để nó chạy không ạ?e cám ơn nhiều lắm ạ
|
Trích:
code: Code:
#include <18f4520.h> |
Trích:
code e đây ạ: #include <18f4520.h> #use delay(clock=12000000) #use fast_io(a) int8 m,i; int8 hang[8]={0,4,2,6,1,5,3,7}; int8 Cot[78]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x06,0x06,0x06,0x06,0x06,0x06,0x7e,0x7e, 0x00,0x00, //L 0x36,0x36,0x36,0x7e,0x7e,0x36,0x36,0x36, 0x00,0x00, //H 0x36,0x36,0x36,0x36,0x36,0x36,0x6c,0x48, 0x00,0x00, //V 0x4E,0x26,0x36,0x36,0x36,0x36,0x26,0x4E, 0x00,0x00, //D 0x7e,0x7e,0x48,0x48,0x48,0x48,0x48,0x48, 0x00,0x00, //T 0x68,0x6c,0x66,0x63,0xff,0xff,0x60,0x60, 0x00,0x00, //4 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00 }; //int8 Dong[]={0b00000000, 0b00000001, 0b00000010, 0b00000011, 0b00000100, 0b00000101, 0b00000110,0b00000111}; //int8 hang[8]={0b000,0b001,0b010,0b011,0b100,0b101,0b110,0b111} ; #define SH PIN_A5 // clock #define DS PIN_A3 // data #define ST PIN_A4 // chot int8 team; void sen595(int8 x) { #bit fla=x.7; for (i=0;i<=7;i++) { if (fla) output_high(DS); //Dich 1 bit vao 74HC595 else output_low(DS); output_high(SH); //Tao xung Clock delay_us(10); output_low(SH); //tao xung Clock x = x<<1; //Dich trai 1 bit cua Data } output_high(ST); //Chot 8 bit cho dau ra output_low(ST); //Chot 8 bit cho dau ra } void main() { set_tris_a(0x00); int8 i,j,k; while(1) { for(i=0;i<70;i++) { for(k=0;k<30;k++) { for(j=0;j<=7;j++) { output_a(hang[j]); output_b(j); sen595(cot[j+i]); delay_us(5); //Tao thoi gian tre } } } } } P/S :nếu a có thể cho e yahoo và số điện thoại thì tốt quá ạ.e cám ơn a nhiều ạ.hihi |
Trích:
khắc phục dùng tranzitor khuếch đại dòng. em đang học ở trường nào. |
Trích:
|
help me
#bit d7=send_reg.31 câu lệnh này nghĩa là gì vậy mọi người.ai giải giải thích dủm em cái.
|
Múi giờ GMT. Hiện tại là 06:25 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam