/////////////////////////////////////
//
// at89s52 LED點陣漢字顯示
// 作者:倪建華 QQ:10772919
// 江蘇省南通技師學院
// 2014.5.30
//
//////////////////////////////////////
//
sfr P0=0x80;
sfr P2=0xa0;
sbit ROW0=P2^0;
sbit ROW1=P2^1;
sbit COL0=P2^2;
sbit COL1=P2^3;
sbit COL2=P2^4;
sbit COL3=P2^5;
//YL-236自帶 zimo221軟件,橫向取模,字節倒序
unsigned char zm[]=
{
/*-- 文字: 點 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x80,0x00,0x80,0x00,0x80,0x1F,0x80,0x00,0x80,0x08,0xF8,0x1F,0x08,0x08,0x08,0x08,
0x08,0x08,0xF8,0x0F,0x08,0x08,0x80,0x08,0x14,0x11,0x24,0x22,0x22,0x22,0x00,0x00,
/*-- 文字: 陣 --*/
/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/
0x00,0x01,0x1F,0x01,0x11,0x01,0xE9,0x3F,0x85,0x00,0x89,0x02,0x51,0x02,0xF1,0x3F,
0x11,0x02,0x15,0x02,0xE9,0x7F,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,
};
ys(int ms)
{
int k,d;
for(k=0;k
main()
{
unsigned char x,y,s,k;
while(1)
for(k=0;k<16;k++)//從上往下掃描16行
{
x=k/8;//k>>3,掃描上半個和下半個漢字
y=k%8;//k&7;,從上往下掃描8行
P0=0;//行消隱,很重要
ROW1=1;ROW1=0;
ROW0=1;ROW0=0;
P0=1<
ROW0=x+1;ROW0=0;
s=x*16+y*2;//每行兩個字節,(y<<1);半個汗字16個字節,x<<4;
P0=zm[s+0];//左半個
COL0=1;COL0=0;
P0=zm[s+1];//右半個
COL1=1;COL1=0;
P0=zm[s+32+0];//左半個
COL2=1;COL2=0;
P0=zm[s+32+1];//右半個
COL3=1;COL3=0;
ys(1);//>1ms時明顯閃爍
}
}
下面是仿真原理圖