sfr P0=0x80;
sfr P1=0x90;
sfr P2=0xa0;
sfr P3=0xb0;
sbit cs1=P2^0;
sbit cs2=P2^1;
sbit e=P2^2;
sbit rw=P2^3;//可以直接接地
sbit di=P2^4;
sbit rst=P2^5;//默認為1,可以直接接電源
extern unsigned char code abc[] ;
ys(int ms)
{
int k,d;
for(k=0;k
}
write(bit s,unsigned char d)
{
rw=0;//允許寫
di=s;//0=命令,1=數據
P0=d;//數據
e=1;//有效,下降沿,上升沿都行?
e=0;//無效
rw=1;//禁止寫
}
writexy(unsigned char x,unsigned char y,unsigned char d)
{
cs1=(y/64)%2;//cs1=y/64,//左半=0
cs2=~cs1;//右半=0
write(0,0x3f);//打開顯示
write(0,0xc0);//開始地址
write(0,0xb8+x);//x地址
write(0,0x40+(y%64));//y地址
write(1,d);//寫數據,高位在下
}
hzk16(unsigned char x,unsigned int y,unsigned int d)
{
unsigned int k;
for(k=0;k<16;k++)
{
writexy(x*2+0,y*16+k,abc[d*32+k]);//上半漢字
writexy(x*2+1,y*16+k,abc[d*32+k+16]);//下半漢字
}
}
main()
{
unsigned int k,d;
while(1)
for(k=0;k<4;k++)//行
for(d=0;d<8;d++)//列
{
hzk16(k,d,d);
}
}