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); } }
Comment