//16x16點陣,可暫停,左右移動,取摸方式;pctolcd2002完美版,
//陰碼,逐列式,順向, 最簡單
、、、、
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define data1 P0
#define data2 P2
sbit S1=P3^6;
sbit S2=P3^7;
bit fangxiang;
uint alt=0,net=0,k=144;
bit mode;
uchar code tab[]={
// 歡(0) 迎(1) 你(2) 美(3) 人(4) !(5)
0x20,0x08,0x24,0x10,0x22,0x60,0x21,0x80,0x26,0x41,0x39,0x32,0x02,0x04,0x0C,0x18,
0xF0,0x60,0x13,0x80,0x10,0x60,0x10,0x18,0x14,0x04,0x18,0x02,0x00,0x01,0x00,0x00,/*"歡",0*/
/* (16 X 16 , 宋體 ) */
0x02,0x00,0x02,0x02,0x42,0x04,0x33,0xF8,0x00,0x04,0x00,0x02,0x3F,0xF2,0x20,0x22,
0x40,0x42,0x00,0x02,0x3F,0xFE,0x20,0x42,0x20,0x22,0x3F,0xC2,0x00,0x02,0x00,0x00,/*"迎",1*/
/* (16 X 16 , 宋體 ) */
0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x00,0x02,0x08,0x04,0x30,0x18,0xC0,
0xF0,0x02,0x10,0x01,0x13,0xFE,0x10,0x00,0x10,0x80,0x14,0x60,0x18,0x18,0x00,0x00,/*"你",2*/
/* (16 X 16 , 宋體 ) */
0x00,0x81,0x20,0x91,0x24,0x91,0x24,0x92,0xA4,0x92,0x64,0x94,0x24,0x98,0x3F,0xF0,
0x24,0x98,0x64,0x94,0xA4,0x92,0x24,0x92,0x24,0x91,0x20,0x91,0x00,0x81,0x00,0x00,/*"美",3*/
/* (16 X 16 , 宋體 ) */
0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x30,0x00,0xC0,0x03,0x00,0xFC,0x00,
0x03,0x00,0x00,0xC0,0x00,0x30,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x01,0x00,0x00,/*"人",4*/
/* (16 X 16 , 宋體 ) */
0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xCC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",5*/
/* (16 X 16 , 宋體 ) */
};
void delay(uint z)
{
uchar x;
for(;z>0;z--)
for(x=110;x>0;x--);
}
void xingshi()
{uchar aa,i;
for(i=0;i<16;i++)
{P1=i;
data1=tab[net+aa];
aa++;
data2=tab[net+aa];
aa++;
delay(5);
data1=0;
data2=0;
P1=0x00;
if(aa>30)aa=0;
}
}
void main()
{
ET1=1;
EA=1;
TR1=1;
while(1)
{
xingshi();
if(S1==0)// 檢測按鈕
{
delay(30);//延時消抖
TR1=~TR1;
while(!S1)xingshi();
delay(30);
}
if(S2==0)// 檢測按鈕
{
delay(30);//延時消抖
fangxiang=~fangxiang;
while(!S2)xingshi();
delay(30);
}
}
}
void timer1() interrupt 3
{
alt++;
if(alt==10)
{
alt=0;
if(fangxiang==0)
{
net=net+2;
if(net>k)
net=0;
}
else
{
net=net-2;
if(net<2)//s2
net=k;
}
}
}
|