8*8點陣仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (12.61 KB, 下載次數: 90)
下載附件
2018-5-22 01:13 上傳
單片機源程序如下:
- #include<reg52.h>
- #define uchar unsigned char //宏定義
- code uchar jiantou[]={0x00,0x18,0x3C,0x7E,0x99,0x18,0x18,0x00,0x00,0x18,0x3C,0x7E,0x99,0x18,0x18,0x00,0x00,0x18,0x3C,0x7E,0x99,0x18,0x18,0x00,0x00,0x18,0x3C,0x7E,0x99,0x18,0x18,0x00};
- code uchar ling[]={0x00,0x7C,0x44,0x44,0x44,0x44,0x44,0x7C};//定義數組 0
- code uchar yi[]={0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04};//定義數組 1
- code uchar er[]={0x00,0x7C,0x04,0x04,0x7C,0x40,0x40,0x7C};//定義數組 2
- code uchar san[]={0x00,0x7C,0x04,0x04,0x7C,0x04,0x04,0x7C};//定義數組 3
- code uchar si[]={0x00,0x44,0x44,0x44,0x7C,0x04,0x04,0x04};//定義數組 4
- code uchar wu[]={0x00,0x7C,0x40,0x40,0x7C,0x04,0x04,0x7C};//定義數組 5
- code uchar liu[]={0x00,0x7C,0x40,0x40,0x7C,0x44,0x44,0x7C};//定義數組 6
- code uchar qi[]={0x00,0x3C,0x04,0x04,0x04,0x04,0x04,0x04};//定義數組 7
- code uchar ba[]={0x00,0x7C,0x44,0x44,0x7C,0x44,0x44,0x7C};//定義數組 8
- code uchar jiu[]={0x00,0x7C,0x44,0x44,0x7C,0x04,0x04,0x7C};//定義數組 9
- code uchar xin[]={0x00,0x66,0x99,0x81,0x81,0x42,0x24,0x18};//定義數組 心
- code uchar sanjiao[]={0x00,0x00,0x10,0x28,0x44,0xFE,0x00,0x00};//定義數組 三角
- code uchar zhang[]={0xE9,0x2A,0xEC,0x9F,0xEC,0x2A,0xED,0x00};//定義數組 “張”
- code uchar f[]={0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40};//定義數組 字母“F”
- sbit P20=P2^7;
- unsigned char date=0;
- int i;
- uchar b;
- void delay()//延時函數
- {
- for(i=0;i<50;i++);
- }
- void zuoyi()
- {
- int i,a,b,c;
- for(a=0;a<24;a++)
- {for(b=0;b<50;b++)
- {
- P3=0xfe; //行控制
- for(c=0;c<8;c++)//掃描一針取八個數據
- {
- P1=jiantou[a+c];//a+c表示第a針第c列
- delay();
- P3=P3<<7|P3>>1;
- }
- }
- }
- }
- void youyi()
- {
- int i,a,b,c;
- for(a=0;a<24;a++)
- {for(b=0;b<50;b++)
- {
- P3=0xfe; //行控制
- for(c=0;c<8;c++)//掃描一針取八個數據
- {
- P1=jiantou[a+c];//a+c表示第a針第c列
- delay();
- P3=P3<<1|P3>>7;
- }
- }
- }
- }
- void xiayi()
- {
- int i,a,b,c;
- for(a=0;a<24;a++)
- {for(b=0;b<50;b++)
- {
- P1=~0xfe; //行控制
- for(c=0;c<8;c++)//掃描一針取八個數據
- {
- P3=~jiantou[a+c];//a+c表示第a針第c列
- delay();
- P1=P1<<7|P1>>1;
- }
- }
- }
- }
- void shangyi()
- {
- int i,a,b,c;
- for(a=0;a<24;a++)
- {for(b=0;b<50;b++)
- {
- P1=~0xfe; //行控制
- for(c=0;c<8;c++)//掃描一針取八個數據
- {
- P3=~jiantou[a+c];//a+c表示第a針第c列
- delay();
- P1=P1<<1|P1>>7;
- }
- }
- }
- }
- void anjian()
- {
- P1=~0xfe; //行控制
- for(b=0;b<8;b++)//循環數組內容
- {
- if(P20==0)
- {
- date++;
- while(!P20);
- }
- switch(date)
- {
- case 0:P3=~ling[b]; break;
- case 1:P3=~yi[b]; break;
- case 2:P3=~er[b]; break;
- case 3:P3=~san[b]; break;
- case 4:P3=~si[b]; break;
- case 5:P3=~wu[b]; break;
- case 6:P3=~liu[b]; break;
- case 7:P3=~qi[b]; break;
- case 8:P3=~ba[b]; break;
- case 9:P3=~jiu[b]; break;
- case 10:P3=~xin[b]; break;
- case 11:P3=~sanjiao[b]; break;
- case 12:P3=~zhang[b]; break;
- case 13:P3=~f[b]; break;
- case 14:date=0; break;
- }
- delay();
- P1=P1<<1|P1>>7;
- }
- }
- main()
- {
- shangyi();
- xiayi();
- zuoyi();
- youyi();
- while(1)
- {
- anjian();
- }
- }
復制代碼
0.png (51.97 KB, 下載次數: 76)
下載附件
2018-5-22 01:13 上傳
所有資料51hei提供下載:
8X8點陣.rar
(54.3 KB, 下載次數: 50)
2018-5-21 18:53 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|