就是在這個程序上添加獨立按鍵控制LED點陣的不同顯示(例如靜止、閃爍、平移)
就是可以讓它被獨立按鍵控制,我這個程序是向左平移顯示0~9,怎么才能讓按鍵控制它讓它靜止
程序如下:
#include<reg52.h>
void delay();
unsigned char code digittab[88]={ //行選通
0x00,0x00,0x00,0x00,//緩沖下,0從右端出來啦!!!
0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,//0
0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00,/*1*/
0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00,/*2*/
0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00,/*3*/
0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,/*4*/
0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00,/*5*/
0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00,/*6*/
0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00,/*7*/
0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00,/*8*/
0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00,/*9*/
0x00,0x00,0x00,0x00//讓9繼續(xù)滾動完
};
unsigned char code tab[]={0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,}; //列選通
void main()
{
unsigned char i=1,x=0,j=0,tcount=0;
unsigned int ledroll[8];
for(j=0;j<8;j++)
ledroll[j]=digittab[j];
while(1)
{
for(x=0;x<8;x++)//掃描顯示出當(dāng)前字樣
{
P1=tab[x];
P0=ledroll[x];
delay();//暫留一下下
}
/*將行選通后移一個*/
if(++tcount>30)//掃描30次
{
tcount=0;
for(j=0;j<8;j++)
ledroll[j]=digittab[j+i];//此處重點
if(++i>=80)//88減8當(dāng)然等于80啦
i=0;
}
}
}
void delay()//制造視覺暫留效應(yīng)
{
unsigned int x,y;
for(x=2;x>0;x--)
for(y=123;y>0;y--);
}
|