仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <AT89X52.H>
- unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//行选
- unsigned char code tabb[]={0x08,0x49,0x49,0x7F,0x08,0x49,0x49,0x7F};//选列"出"
- unsigned char code tabc[]={0x00,0x02,0x04,0x08,0x18,0x24,0x42,0x81};//"入"
- unsigned char code tabd[]={0xFF,0x4A,0x2A,0x1C,0xFF,0x08,0x08,0x08};//"平"
- unsigned char code tabe[]={0x08,0xFF,0x89,0x04,0x7F,0x14,0x1C,0x63};//"安"
- unsigned char i,j;
- void delay(void)//延时5ms
- {
- unsigned char i,j;
- for(i=10;i>0;i--)
- for(j=248;j>0;j--);
- }
- void delay1(void)//延时10ms
- {
- unsigned char i,j,k;
- for(k=10;k>0;k--)
- for(i=20;i>0;i--)
- for(j=248;j>0;j--);
- }
- void main(void)
- {
-
- while(1)
- {
- for(j=0; j<10; j++) //from 上 to 下 3 time
- {
- for(i=0;i<8;i++)
- {
- P2=taba[i];
- P3=tabb[i];
- //P1=0xff;
- delay();
- }
- }
- //for(j=0; j<2; j++) //from 下 to 上 3 time
- //{
- for(i=0;i<8;i++)
- {
- P2=taba[i];
- //P3=tabb[i];
- P3=0xff;
- delay1();
- }
- //}
- for(j=0; j<10; j++) //from 上 to 下 3 time
- {
- for(i=0;i<8;i++)
- {
- P2=taba[i];
- P3=tabc[i];
- //P1=0xff;
- delay();
- }
- }
- for(i=0;i<8;i++)
- {
- delay1();
- }
- for(j=0; j<10; j++) //from 上 to 下 3 time
- {
- for(i=0;i<8;i++)
- {
- P2=taba[i];
- P3=tabd[i]; //"平"
- //P1=0xff;
- delay();
- }
- }
- for(i=0;i<8;i++)
- {
- P2=taba[7-i];
- //P3=tabb[i];
- P3=0xff;
- delay1();
- }
- for(i=0;i<8;i++)
- {
- delay1();
- }
- for(j=0; j<10; j++) //from 上 to 下 3 time
- {
- for(i=0;i<8;i++)
- {
- P2=taba[i];
- P3=tabe[i];
- //P1=0xff;
- delay();
- }
- }
- for(i=0;i<8;i++)
- {
- delay1();
- }
- /*for(i=0;i<8;i++)
- {
- P2=taba[7-i];
- //P3=tabb[i];
- P1=0xff;
- delay1();
- }*/
- }
- }
复制代码
所有资料51hei提供下载:
8x8LED汉字显示.zip
(39.75 KB, 下载次数: 17)
|