Tình hình là em mới học VXL. Ông thầy em cho cái bài tập là làm chữ chạy từ trái qua phải.
Em dùng PIC 18F4550
74HC 595
8 em B562
1 em 2803
Code quét theo hàng thì em làm đc rồi nhưng chữ chạy thì em ko hiểu lắm. đọc tài liệu thì thấy mọi người bảo dùng mảng Buffer đểu lưu trữ mà em ko biết làm ra sao. Mong mọi người giúp đỡ ạ :-s
Dưới là 2 chương trình con em viết và chạy đc rồi ạ :-s Giờ chỉ cần dịch trái dịch phải nữa là OK. Thanks mọi người nhiêu ạ :-s. Newbie khổ thế đấy
Em dùng PIC 18F4550
74HC 595
8 em B562
1 em 2803
Code quét theo hàng thì em làm đc rồi nhưng chữ chạy thì em ko hiểu lắm. đọc tài liệu thì thấy mọi người bảo dùng mảng Buffer đểu lưu trữ mà em ko biết làm ra sao. Mong mọi người giúp đỡ ạ :-s
Dưới là 2 chương trình con em viết và chạy đc rồi ạ :-s Giờ chỉ cần dịch trái dịch phải nữa là OK. Thanks mọi người nhiêu ạ :-s. Newbie khổ thế đấy

Code:
void guidl(unsigned char x)
{
unsigned char i,tg;
INTCON2bits.RBPU=0;// keo pull up len duong nguon
ADCON1=0X0f;// dua các chân cong B vao che do IO Degital
TRISBbits.TRISB5=0;
TRISBbits.TRISB4=0;
TRISBbits.TRISB3=0;
for(i=1;i<=8;i++)
{
tg=x&128;
if( tg==0)
LATBbits.LATB5=0;
else
LATBbits.LATB5=1;
//Kich hoat xung
LATBbits.LATB4=0;
LATBbits.LATB4=1;
LATBbits.LATB4=0;
//Dich trai 1 bit
x=x*2;
}
//Kich hoat chot
LATBbits.LATB3=0;
LATBbits.LATB3=1;
LATBbits.LATB3=0;
}
void hang(unsigned char hang,unsigned char giatri)
{
int i;
unsigned char m;
TRISD=0;
m=0b000000001;
for(i=0;i<hang;i++)
{
m=m*2;
}
m=255-m;
LATD=m;
guidl(giatri);
}

Comment