当前位置:首页 > 单片机 > 单片机
[导读]void curve(unsigned char xlable,unsigned char ylable,bit dot){unsigned char H[1]={0};//读RAM寄存unsigned char L[1]={0};unsigned char xbuf;w_com(0x01);w_com(0x34);w_com(0x36); //功能设置:一次送8位数据,

void curve(unsigned char xlable,unsigned char ylable,bit dot)
{
unsigned char H[1]={0};//读RAM寄存
unsigned char L[1]={0};
unsigned char xbuf;

w_com(0x01);
w_com(0x34);
w_com(0x36); //功能设置:一次送8位数据,扩展指令集

xlable=xlable+xoffset;//求相对零点
ylable=ylable+yoffset;

if(xlable<0)xlable=-1;//超出边界处理
if(ylable<0)ylable=0;
if(ylable>64)ylable=65;

xbuf=xlable%16;
xlable=xlable/16;
if(ylable>32)//上半屏
{
ylable=64-ylable;//切换上下屏
xbuf=15-xbuf;//x坐标归位
w_com(0x80|ylable); //输入垂直地址
w_com(0x80|xlable); //输入水平地址
read_RAM();//屏蔽
if(xbuf>7)
{
if(dot==0)
H[0]=read_RAM()&(~(1<else
H[0]=read_RAM()|1<L[0]=read_RAM();
}
else
{
H[0]=read_RAM();//插点,需要打的点
if(dot==0)
L[0]=read_RAM()&(~(1<else
L[0]=read_RAM()|1<}
w_com(0x80|ylable); //输入垂直地址
w_com(0x80|xlable); //输入水平地址
w_byte(H[0]);
w_byte(L[0]);
}
else //下半屏
{
ylable=32-ylable;
xbuf=15-xbuf;//x坐标归位
w_com(0x80|ylable); //输入垂直地址
w_com(0x88|xlable); //输入水平地址
read_RAM();//屏蔽
if(xbuf>7)
{
if(dot==0)
H[0]=read_RAM()&(~(1<else
H[0]=read_RAM()|1<L[0]=read_RAM();
}
else
{
H[0]=read_RAM();//插点,需要打的点
if(dot==0)
L[0]=read_RAM()&(~(1<else
L[0]=read_RAM()|1<}
w_com(0x80|ylable); //输入垂直地址
w_com(0x88|xlable); //输入水平地址
w_byte(H[0]);
w_byte(L[0]);
}
}

//清除屏幕
void BMP_clear( void )
{
unsigned char i,j;unsigned char L[1]={0};
w_com(0x34); //8Bit扩充指令集,即使是36H也要写两次
w_com(0x36); //绘图ON,基本指令集里面36H不能开绘图
for(i=0;i<32;i++) //12864实际为256x32
{

w_com(0x80|i); //行位置
w_com(0x80); //列位置
for(j=0;j<32;j++) //256/8=32 byte
w_byte(L[0]);
}
}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭