📄 lcd.txt
字号:
{
ocmj_write(0xf3);
ocmj_write(x);
ocmj_write(y);
ocmj_write(*bmp_p);
bmp_p++;
x++;
}
x-=width;
y++;
}
}
/* 传送LCD内部汉字数据到LCD */
/* x:0x00~0x07 y:0x00~0x03 */
void hz_tran(unsigned char x,unsigned char y,unsigned char *hz_p)
{
x+=2;
while((*hz_p)!=0)
{
ocmj_write(0xf0);
ocmj_write(x);
ocmj_write(y);
ocmj_write(*hz_p-0xa0);
hz_p++;
ocmj_write(*hz_p-0xa0);
hz_p++;
if(x<0x09)
x++;
else
{
x=0x02;
y++;
}
}
}
/* 传送ASCII字母到LCD */
/* x:0x00~0x0f y:0~64 */
void asc_tran(unsigned char x,unsigned char y,unsigned char *asc_p)
{
x+=4;
while((*asc_p)!=0)
{
ocmj_write(0xf1);
ocmj_write(x);
ocmj_write(y);
ocmj_write(*asc_p);
asc_p++;
if (x<0x13)
x++;
else
{
x=0x04;
y+=8;
}
}
}
/* 画点函数 */
void pset(unsigned char x,unsigned char y)
{
ocmj_write(0xf2);
ocmj_write(x+32);
ocmj_write(y);
}
/* 画线函数 */
void line(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2)
{
unsigned char t;
signed int xerr=0,yerr=0;
signed int delta_x,delta_y,distance;
signed char incx,incy;
/* 计算两个方向的长度 */
delta_x=x2-x1;
delta_y=y2-y1;
/* 计算增量的方向,增量为"0"表示为垂直或水平线 */
if(delta_x>0)
incx=1;
else
{
if( delta_x==0 )
incx=0;
else
{
incx=-1;
delta_x =-delta_x;
}
}
if(delta_y>0)
incy=1;
else
{
if( delta_y==0 )
incy=0;
else
{
incy=-1;
delta_y =-delta_y;
}
}
/* 确定画线的范围 */
if( delta_x > delta_y ) distance=delta_x;
else distance=delta_y;
/* 画线 */
for(t=0;t<= distance+1;t++)
{
ocmj_write(0xf2);
ocmj_write(x1+32);
ocmj_write(y1);
xerr += delta_x ;
yerr += delta_y ;
if( xerr > distance )
{
xerr-=distance;
x1+=incx;
}
if( yerr > distance )
{
yerr-=distance;
y1+=incy;
}
}
}
/* 画圆函数 */
void circle(unsigned char x0,unsigned char y0,unsigned char r)
{
unsigned char x,y;
unsigned int xx,rr,xt,yt,rs;
yt=r;
rr=r*r+1; //补偿 1 修正方形
rs=yt*3/4; //画8分之一圆弧
for (xt=0;xt<=rs;xt++)
{
xx=xt*xt;
while ((yt*yt)>(rr-xx))
yt--;
x=x0+xt; //第一象限
y=y0-yt;
pset(x,y);
x=x0-xt; //第二象限
pset(x,y);
y=y0+yt; //第三象限
pset(x,y);
x=x0+xt; //第四象限
pset(x,y);
/******45度镜象画另外8分之一圆弧******/
x=x0+yt; //第一象限
y=y0-xt;
pset(x,y);
x=x0-yt; //第二象限
pset(x,y);
y=y0+xt; //第三象限
pset(x,y);
x=x0+yt; //第四象限
pset(x,y);
}
}
/* MAIN入口 */
void main(void)
{
unsigned char i;
ocmj_init();//初始化
while(1)
{
ocmj_write(0xf4);//清屏
/*ico_tran(0,0,sl_ico);//传送图标,也可用bmp_tran()传送
hz_tran(3,0,"广州双龙");//传送内部汉字
hz_tran(2,1,"电子有限公司");
asc_tran(5,39,"HTTP://");//传送ASCII字符
*/
asc_tran(2,50,"WWW.SL.COM.CN");
delay_ms(1000);//延时
ocmj_write(0xf4);//清屏
bmp_tran(4,2,60,8,hz1);//传送汉字"和"
delay_ms(1000);
ocmj_write(0xf4);
//bmp_tran(1,3,49,13,atmel_bmp);//传送ATMEL标志图形
asc_tran(2,54,"WWW.ATMEL.COM");
delay_ms(1000);
/*
ocmj_write(0xf4);
bmp_tran(2,15,33,4,hz2);//传送汉字"欢"
bmp_tran(6,15,33,4,hz3);//传送汉字"迎"
bmp_tran(10,15,33,4,hz4);//传送汉字"您"
hz_tran(0,0,"恭");
hz_tran(0,1,"祝");
hz_tran(0,2,"各");
hz_tran(0,3,"位");
hz_tran(7,0,"万");
hz_tran(7,1,"事");
hz_tran(7,2,"如");
hz_tran(7,3,"意");
delay_ms(3000);
for(i=0;i<32;i++)
{
ocmj_write(0xf4);
line(i*2,32,64,i);
line(64,i,(127-i*2),32);
line((127-i*2),32,64,(63-i));
line(64,(63-i),i*2,32);
delay_ms(100);
}
for(i=0;i<32;i++)
{
ocmj_write(0xf4);
circle(63,31,i);
delay_ms(100);
}
*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -