void main()
{
int i;
init();
while(1)
{
for(i=0;i<10;i++)
{
put_point(i,1);
delay10ms(20);
}
while(1);
}
}
void put_point(uchar x,uchar y)
{
uint bt=0,read=0;
uchar x_adr,y_adr,h_bit,l_bit;
y_adr=0x80+y%32; //计算Y轴的地址,应为纵坐标有64个,所有对32求余,当Y大于31时,Y的坐标是下半屏的。
if(y>31) //计算X轴的地址当Y大于31时X的地址在下半屏,从0X88开始,小于31时X的地址是在上半屏,从0X80开始
x_adr=0x88+x/16;
else
x_adr=0x80+x/16;
bt=0x8000>>(x%16); //求这个点到底是在哪个点
write_cmd(0x34);
write_cmd(0x34);
write_cmd(y_adr); //读取数据的时候要先写入所取数据的地址
write_cmd(x_adr);
read_data(); //读取的第一个字节不要,
read=read_data(); //从第二个字节开始接收。
read<<=8;
read|=read_data();
bt=bt|read;
h_bit=bt>>8;
l_bit=bt;
write_cmd(y_adr); //写入点的时候,重新写入地址,因为地址已经改变。
write_cmd(x_adr);
write_data(h_bit);
write_data(l_bit);
write_cmd(0x36); //开显示
write_cmd(0x30); //转回基本指令集
} |