View Full Version : ai xem giúp e đoạn code quét led matrix với?
yukul
29-04-2012, 10:25 PM
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
}
}
}
}
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
}
}
}
}
tách phần dk 74138 sang port khác:
void main()
{
int8 i,j;
while(1)
{
for(i=0;i<8;i++)
{
output_c(i);//dk 74138
sen595(cot1[i]);
// sent138(Dong[i]);
delay_ms(2); //Tao thoi gian tre
}
}
}
yukul
30-04-2012, 08:18 PM
tách phần dk 74138 sang port khác:
void main()
{
int8 i,j;
while(1)
{
for(i=0;i<8;i++)
{
output_c(i);//dk 74138
sen595(cot1[i]);
// sent138(Dong[i]);
delay_ms(2); //Tao thoi gian tre
}
}
}
cám ơn a nhưng e làm phần cứng trên cùng 1 port rùi a có thể xem có cách nào giúp e không ạ?e cám ơn a nhiêu lắm ạ.giúp e với.huhu
yukul
30-04-2012, 08:59 PM
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 ạ
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 ạ
phần cứng thiết kế gì mà kinh dị vậy.
code:
#include <18f4520.h>
#use delay(clock=12000000)
int8 m,i;
int8 hang[8]={0,4,2,6,1,5,3,7}; //coi kĩ chỗ này nhé em
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(i=0;i<8;i++)
{
output_a(hang[i]);
sen595(cot1[i]);
// sent138(Dong[i]);
delay_ms(2); //Tao thoi gian tre
}
}
}
yukul
01-05-2012, 12:45 AM
phần cứng thiết kế gì mà kinh dị vậy.
code:
#include <18f4520.h>
#use delay(clock=12000000)
int8 m,i;
int8 hang[8]={0,4,2,6,1,5,3,7}; //coi kĩ chỗ này nhé em
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(i=0;i<8;i++)
{
output_a(hang[i]);
sen595(cot1[i]);
// sent138(Dong[i]);
delay_ms(2); //Tao thoi gian tre
}
}
}
cám ơn a nhiều lắm.e chậy thư mô phỏng thì ok.nhưng e cho vào mạch thật nó chạy không đúng lắm a à.chữ L ban đầu bị nhòe và các chữ nó cũng sáng không đều.
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
các chữ nó cũng sáng không đều.
dòng ra của 74138 không đủ để cấp dòng cho một hàng.
khắc phục dùng tranzitor khuếch đại dòng.
em đang học ở trường nào.
yukul
01-05-2012, 07:25 PM
dòng ra của 74138 không đủ để cấp dòng cho một hàng.
khắc phục dùng tranzitor khuếch đại dòng.
em đang học ở trường nào.
em học truong dhcnhn ạ.a có thể cho e yahoo để e hỏi a chút được không ạ?tại thing thoảng mới thấy a lên. cứ lúc e lại vào diễn đàn xem anh trả lời chưa?sốt ruột quá ạ.hihi
222222222
04-05-2012, 10:06 PM
#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.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.