分享一个8*8LED点阵屏纵向滚动并且显示三个字"我爱你"
附件包含
proteus仿真图
keilc源码
取模软件
另外附加proteus快速连接导线的方法(很实用的小技巧)

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include<reg51.h>
- unsigned char code image[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- 0xC3,0xE7,0xE7,0xE7,0xE7,0xE7,0xC3,0xFF,
- 0x99,0x00,0x00,0x00,0x81,0xC3,0xE7,0xFF,
- 0x99,0x99,0x99,0x99,0x99,0x81,0xC3,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; //24个
- unsigned char code TAB[8] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
- void main(){
- EA=1;
- TMOD=0x01;
- TH0=0xfc;
- TL0=0x67;
- ET0=1;
- TR0=1;
- while(1);
- }
- void int0() interrupt 1{
- static unsigned char i=0;
- static unsigned char tmr=0;
- static unsigned char index=0;
- TH0=0xfc;
- TL0=0x67;
-
- P0=0xff;
- switch(i){
-
- case 0: P1=TAB[7];i++;P0=image[index+0]; break;
- case 1: P1=TAB[6];i++;P0=image[index+1]; break;
- case 2: P1=TAB[5];i++;P0=image[index+2]; break;
- case 3: P1=TAB[4];i++;P0=image[index+3]; break;
- case 4: P1=TAB[3];i++;P0=image[index+4]; break;
- case 5: P1=TAB[2];i++;P0=image[index+5]; break;
- case 6: P1=TAB[1];i++;P0=image[index+6]; break;
- case 7: P1=TAB[0];i=0;P0=image[index+7]; break;
- default: break;
- }
- tmr++;
- if(tmr>=250){
-
- tmr=0;
- index++;
- if(index>=32){
- index=0;
- }
-
- }
-
-
- }
复制代码
顺便分享一个小技巧:Protues小技巧之元件导线快速连
所有资料51hei提供下载:
LED点阵纵向滚动我爱你.rar
(269.79 KB, 下载次数: 167)
|