Sunset_Pro Thành viên chính thức
Tổng số bài gửi : 55 Điểm : 97 Danh tiếng : 11 Ngày tham gia : 25/12/2010 Đến từ : UNETI
| Tiêu đề: Re: HIỂN THỊ CHỮ "DIEN-DIENTU " CHẠY TỪ TRÁI SANG PHẢI Sun May 08, 2011 7:04 am | |
| /*************************************************************************************************/ /* So do ma tran led 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 P1_4 P0_5 P0_4 P1_1 P0_2 P1_2 P1_6 P1_7 P2_3 P3_2 P3_3 P2_6 P3_5 P2_5 P2_1 P2_0 P1_0 1 P2_7 1 P1_5 2 P2_2 1 P0_0 3 P3_7 1 P1_3 4 P2_4 1 P0_7 5 P3_0 1 P0_1 6 P3_6 1 P0_6 7 P3_1 1 P0_3 8 P3_4 1 */ #include #define N 75 #define M 16 /*************************************************************************************************/ const unsigned char code luukytu[][6]={ 126,129,129,129,129,126, //0 moi chu so gom 8 hang va 6 cot cac cot tu trai sang phai co gia //tri 8 bit bieu dien gia tri cac hang tuong ung 33,65,255,1,1,0, //1 32,65,131,133,73,49, //2 0,66,129,153,153,102, //3 24,40,72,136,31,8, //4 114,145,145,145,145,14, //5 126,137,137,137,137,70, //6 129,130,132,136,144,225, //7 102,153,153,153,153,102, //8 112,136,137,137,137,126, //9
31,40,200,200,40,31, //A 125,124,125,12,12,125, //B 60,66,129,129,66,0, //C 255,129,129,129,66,60, //D 255,153,153,153,129,129, //E 255,144,144,144,128,128, //F 126,129,129,137,78,8, //G 255,24,24,24,24,255, //H 0,129,255,255,129,0, //I 2,129,129,254,128,128, //J 255,16,40,68,130,1, //K 255,1,1,1,1,2, //L 255,64,48,48,64,255, //M 255,112,24,12,6,255, //N 60,126,129,129,126,60, //O 255,144,144,144,144,96, //P 126,129,129,133,126,1, //Q 255,144,152,148,146,97, //R 98,144,145,145,145,78, //S 128,128,255,255,128,128, //T 252,2,1,1,2,252, //U 224,30,1,1,30,224, //V 125,124,125,12,12,125, //W 129,102,24,24,102,129, //X 192,32,31,31,32,192, //Y 131,133,137,145,161,193, //Z 0,0,0,0,0,0, // dau cach }; // Mang luu tru 10 chu so 0..10 va 24 ky tu A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z const unsigned char code matranvitri[255]={ 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,36,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,8,9,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33, 34,35,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4, }; // Luu vi tri cua ki tu thu x duoc bieu dien o vi tri thu may cua ma tran luukytu const unsigned char scan[8]={128,64,32,16,8,4,2,1}; // diu hieu la cai gi //unsigned char ch[70]; // luu gia tri cac chu so va chu cai unsigned char matrix[M]; // Luu gia tri 16 cot cua ma tran 8x16 unsigned char index,k,tg,tg1,t; // vi tri can lay cho bang ma tran matrix /*************************************************************************************************/ void delay(void) // thoi gian dung sau moi lan hien thi cot { unsigned char i,j; for(i=0;i<10;i++) for(j=0;j<25;j++); } /*************************************************************************************************/ void delayms(unsigned char n) { unsigned char i,j; for(i=0;i for(j=0;j<250;j++); } /*************************************************************************************************/ void loaddata(unsigned char i,d) { unsigned char b; for (b=d;b<6;b++) { if (k<16){ matrix[k]=luukytu[matranvitri[i]][b]; k++; } } if (k<16){ matrix[k]=0x00;// Tat het k++; } } /*************************************************************************************************/ void gan_cho_cot() { tg=matrix[k]; tg1=tg/2; P0_3=tg-tg1*2; tg=tg1/2; P0_6=tg1-tg*2; tg1=tg/2; P0_1=tg-tg1*2; tg=tg1/2; P0_7=tg1-tg*2; tg1=tg/2; P1_3=tg-tg1*2; tg=tg1/2; P0_0=tg1-tg*2; tg1=tg/2; P1_5=tg-tg1*2; tg=tg1/2; P1_0=tg1-tg*2;
tg=matrix[k+8]; tg1=tg/2; P3_4=tg-tg1*2; tg=tg1/2; P3_1=tg1-tg*2; tg1=tg/2; P3_6=tg-tg1*2; tg=tg1/2; P3_0=tg1-tg*2; tg1=tg/2; P2_4=tg-tg1*2; tg=tg1/2; P3_7=tg1-tg*2; tg1=tg/2; P2_2=tg-tg1*2; tg=tg1/2; P2_7=tg1-tg*2; }
/*************************************************************************************************/ void disp(char str[N]) { unsigned char dem; unsigned char i,j,vt; /* P0=t; P0=str[0]; P0=str[1]; P0=str[2]; P0=str[3]; P0=str[4]; P0=str[5]; P0=str[6]; P0=str[7]; P0=str[8]; P0=str[9]; P0=str[10]; P0=str[11]; P0=str[12];
*/ vt=0; while (1) { dem=vt/7; j=vt-dem*7; k=0; loaddata(str[dem],j); while (k<16) { dem++; if (dem>t-1) {dem=0;} loaddata(str[dem],0); }// cho tat tam thoi mot hoi gian // P1_4=1; P0_5=1; P0_4=1; P1_1=1; P0_2=1; P1_2=1; P1_6=1; P1_7=1; //Cot Matran led 1 // P2_3=1; P3_2=1; P3_3=1; P2_6=1; P3_5=1; P2_5=1; P2_1=1; P2_0=1; //Cot Matran led 2 // delayms(5); for(j=0;j<70;j++) // cho hien 70x250x16=250ms de chuyen dich for(k=0;k<8;k++) { P1_4=1; P0_5=1; P0_4=1; P1_1=1; P0_2=1; P1_2=1; P1_6=1; P1_7=1; //Cot Matran led 1 P2_3=1; P3_2=1; P3_3=1; P2_6=1; P3_5=1; P2_5=1; P2_1=1; P2_0=1; //Cot Matran led 2
switch (k) { case 0:P1_4=0; P2_3=0;break; case 1:P0_5=0; P3_2=0;break; case 2:P0_4=0; P3_3=0;break; case 3:P1_1=0; P2_6=0;break; case 4:P0_2=0; P3_5=0;break; case 5:P1_2=0; P2_5=0;break; case 6:P1_6=0; P2_1=0;break; case 7:P1_7=0; P2_0=0;break; }; gan_cho_cot();/*Gan gia tri cho cot k */ delay(); // cho sang mot thoi gian nhat dinh }
vt++; if (vt==t*7){vt=0;}; } } /*************************************************************************************************/ void tat() { P0=0xFF; P1=0xFF; P2=0xFF; P3=0xFF; } /************************************************************************************************/ void main(void) { tat(); /* k=0; P1_4=0; P0_5=1; P0_4=1; P1_1=1; P0_2=1; P1_2=1; P1_6=1; P1_7=1; //Cot Matran led 1 P2_3=1; P3_2=1; P3_3=1; P2_6=1; P3_5=1; P2_5=1; P2_1=1; P2_0=1; //Cot Matran led 2
matrix[k]=luukytu[0][1]; gan_cho_cot();//Gan gia tri cho cot k while (1){}; */ while(P1_0==1) { } tat();
t=sizeof("DIEN-DIEN TU ")-1; while(1) { disp("DIEN-DIEN TU "); } } //VỚI BÀI NÀY LÀ LẬP TRÌNH CHO MATRAN 8x8.bạn có thể tăng lên 8x16 (chương trình tự nhận số cột và số hàng mới) | |
|