thx khanhduy nhiều nha, tuy mình không dùng buffer nhưng dựa vào ý tưởng của bạn mình đã làm được rồi, được hết bảng chữ cái, thêm 10 chữ số nữa thì nó vượt quá RAM >"< hihi.
Giờ nếu mún thêm các chữ số và 1 số ký tự khác thì phải dùng ram ngoài àh???
Code của như sau :
Giờ nếu mún thêm các chữ số và 1 số ký tự khác thì phải dùng ram ngoài àh???
Code của như sau :
Code:
#include <regx52.h>
unsigned char ud1,ud2,kt=1;
unsigned char mang1[8],mang2[8];
void delay(unsigned int ms)
{
unsigned int i,j;
for (i=0; i<ms; i++)
for (j=0; j<120; j++);
}
void ht(char mang[]);
void chonmang(unsigned char ud,unsigned char mang[]);
void ui()
{
SCON=0x50; TMOD&=0x0F; TMOD|=0x20; TH1=0xFD; TL1=0xFD; ES=1; EA=1; TR1=1;
}
/*void send_data(char uart_data)//gui du lieu qua cong COM
{
TI=0;
SBUF=0x00;
SBUF=uart_data;
while(TI==0){}//cho trong khi dang gui du lieu
TI=0;
} */
void re() interrupt 4
{
if(RI==1)
{
RI=0;
if (kt==1) {ud1=SBUF;kt=2;chonmang(ud1,mang1);}
else {ud2=SBUF;kt=1;chonmang(ud2,mang2);}
}
}
void chonmang(unsigned char ud,unsigned char mang[])
{
switch (ud)
{
case 'a' :
mang[0]=247;mang[1]=235;mang[2]=221;mang[3]=190;mang[4]=128;mang[5]=190;mang[6]=190;mang[7]=190;
break;
case 'b' :
mang[0]=240;mang[1]=238;mang[2]=238;mang[3]=224;mang[4]=222;mang[5]=222;mang[6]=222;mang[7]=224;
break;
case 'c':
mang[0]=225;mang[1]=222;mang[2]=254;mang[3]=254;mang[4]=254;mang[5]=254;mang[6]=222;mang[7]=225;
break;
case 'd':
mang[0]=240;mang[1]=238;mang[2]=222;mang[3]=222 ;mang[4]=222;mang[5]=222;mang[6]=238;mang[7]=240;
break;
case 'e' :
mang[0]=192;mang[1]=254;mang[2]=254;mang[3]=192;mang[4]=254;mang[5]=254;mang[6]=254;mang[7]=192;
break;
case 'f' :
mang[0]=192;mang[1]=254;mang[2]=254;mang[3]=192;mang[4]=254;mang[5]=254;mang[6]=254;mang[7]=254;
break;
case 'g' :
mang[0]=225;mang[1]=222;mang[2]=254;mang[3]=254;mang[4]=198;mang[5]=222;mang[6]=222;mang[7]=225;
break;
case 'h' :
mang[0]=222;mang[1]=222;mang[2]=222;mang[3]=192;mang[4]=222;mang[5]=222;mang[6]=222;mang[7]=222;
break;
case 'i' :
mang[0]=193;mang[1]=247;mang[2]=247;mang[3]=247;mang[4]=247;mang[5]=247;mang[6]=247;mang[7]=128;
break;
case 'j' :
mang[0]=193;mang[1]=247;mang[2]=247;mang[3]=247;mang[4]=247;mang[5]=247;mang[6]=246;mang[7]=249;
break;
case 'k' :
mang[0]=238;mang[1]=246;mang[2]=250;mang[3]=252;mang[4]=250;mang[5]=246;mang[6]=238;mang[7]=222;
break;
case 'l' :
mang[0]=254;mang[1]=254;mang[2]=254;mang[3]=254;mang[4]=254;mang[5]=254;mang[6]=254;mang[7]=192;
break;
case 'm' :
mang[0]=190;mang[1]=156;mang[2]=170;mang[3]=182;mang[4]=190;mang[5]=190;mang[6]=190;mang[7]=190;
break;
case 'n' :
mang[0]=190;mang[1]=188;mang[2]=186;mang[3]=182;mang[4]=174;mang[5]=158;mang[6]=190;mang[7]=190;
break;
case 'o' :
mang[0]=225;mang[1]=222;mang[2]=222;mang[3]=222;mang[4]=222;mang[5]=222;mang[6]=222;mang[7]=225;
break;
case 'p' :
mang[0]=224;mang[1]=222;mang[2]=222;mang[3]=222;mang[4]=224;mang[5]=254;mang[6]=254;mang[7]=254;
break;
case 'q' :
mang[0]=225;mang[1]=222;mang[2]=222;mang[3]=222;mang[4]=222;mang[5]=198;mang[6]=222;mang[7]=161;
break;
case 'r' :
mang[0]=224;mang[1]=222;mang[2]=222;mang[3]=224;mang[4]=250;mang[5]=246;mang[6]=238;mang[7]=222;
break;
case 's' :
mang[0]=225;mang[1]=222;mang[2]=254;mang[3]=225;mang[4]=223;mang[5]=223;mang[6]=222;mang[7]=225;
break;
case 't' :
mang[0]=128;mang[1]=247;mang[2]=247;mang[3]=247;mang[4]=247;mang[5]=247;mang[6]=247;mang[7]=247;
break;
case 'u' :
mang[0]=222;mang[1]=222;mang[2]=222;mang[3]=222;mang[4]=222;mang[5]=222;mang[6]=206;mang[7]=209;
break;
case 'v' :
mang[0]=190;mang[1]=190;mang[2]=190;mang[3]=190;mang[4]=190;mang[5]=221;mang[6]=235;mang[7]=247;
break;
case 'w' :
mang[0]=190;mang[1]=190;mang[2]=190;mang[3]=190;mang[4]=182;mang[5]=182;mang[6]=213;mang[7]=235;
break;
case 'x' :
mang[0]=222;mang[1]=222;mang[2]=237;mang[3]=243;mang[4]=243;mang[5]=237;mang[6]=222;mang[7]=222;
break;
case 'y' :
mang[0]=190;mang[1]=190;mang[2]=221;mang[3]=235;mang[4]=247;mang[5]=247;mang[6]=247;mang[7]=247;
break;
case 'z' :
mang[0]=192;mang[1]=222;mang[2]=239;mang[3]=247;mang[4]=251;mang[5]=253;mang[6]=222;mang[7]=192;
break;
case '0' :
mang[0] = 225;mang[1] = 222;mang[2] = 206;mang[3] = 214;mang[4] = 218;mang[5] = 220;mang[6] = 222;mang[7] = 225;
break;
/* case '1' :
mang[0] = 251;mang[1] = 249;mang[2] = 250;mang[3] = 251;mang[4] = 251;mang[5] = 251;mang[6] = 251;mang[7] = 224;
break;
case '2' :
mang[0] = 241;mang[1] = 238;mang[2] = 239;mang[3] = 247;mang[4] = 251;mang[5] = 253;mang[6] = 254;mang[7] = 224;
break;
case '3' :
mang[0] = 241;mang[1] = 238;mang[2] = 239;mang[3] = 243;mang[4] = 239;mang[5] = 239;mang[6] = 238;mang[7] = 241;
break;
case '4' :
mang[0] = 247;mang[1] = 243;mang[2] = 245;mang[3] = 246;mang[4] = 224;mang[5] = 237;mang[6] = 237;mang[7] = 247;
break;
case '5' :
mang[0] = 224;mang[1] = 254;mang[2] = 254;mang[3] = 240;mang[4] = 249;mang[5] = 239;mang[6] = 238;mang[7] = 241;
break;
case '6' :
mang[0] = 241;mang[1] = 238;mang[2] = 254;mang[3] = 240;mang[4] = 238;mang[5] = 238;mang[6] = 238;mang[7] = 241;
break;
case '7' :
mang[0] = 192;mang[1] = 222;mang[2] = 239;mang[3] = 239;mang[4] = 247;mang[5] = 247;mang[6] = 251;mang[7] = 251;
break;
case '8' :
mang[0] = 241;mang[1] = 238;mang[2] = 238;mang[3] = 241;mang[4] = 238;mang[5] = 238;mang[6] = 238;mang[7] = 241;
break;
case '9' :
mang[0] = 241;mang[1] = 238;mang[2] = 238;mang[3] = 225;mang[4] = 239;mang[5] = 239;mang[6] = 238;mang[7] = 241;
break; */
default :
mang[0] = 0;mang[1] = 0;mang[2] = 0;mang[3] = 0;mang[4] = 0;mang[5] = 0;mang[6] = 0;mang[7] = 0;
break;
}
}
char p3[3][8] = {{0,1,0,1,0,1,0,1},{0,0,1,1,0,0,1,1},{0,0,0,0,1,1,1,1}};
char col;
main(void)
{
ui();
while(1)
{
P3_4=p3[0][col]; P3_5=p3[1][col]; P3_6=p3[2][col]; P3_7=0x00;
P0 = mang1[col]; P2 = mang2[col];
col++;
if(col==8)col=0;
delay(5);
}
}
, bản này hình như bạn xài là Free phải không?).
.
Comment