?? g19264.c
字號:
#include "g19264-ly.h"
#include <stdio.h>
/********************************/
/* 演示主程序 */
/********************************/
void main(void)
{ Uchar x;
RST=0; //LCD復位
Delay(30);
RST=1;
col=0; row=0; Delay(40); /*延時大約40Ms,等待外設準備好 */
Lcminit(); /*液晶模塊初始化,包括全屏幕清屏*/
Putstr(STR2,24); /*第一行字符輸出our friend over the world. 24字節 */
col=0; row=2;
// Putstr(STR1,12); /*第二行字符輸出,12字節 */
col=0; row=4;
Putstr(STR3,24); /*第三行字符輸出,24字節 */
col=0; row=6;
Putstr(STR4,24); /*第四行字符輸出,12字節 */
x=0;col=0;row=0;
xy = 1; /*方向標志。定為水平方向 */
Linehv(192); /*畫一條橫線(0,0)-(191,0) */
col=0;
row=0;
xy = 1;
Linehv(192); /*畫一條橫線(0,15)-(191,15) */
col=0;
row=15;
xy = 1;
Linehv(192); /*畫一條橫線(0,15)-(191,15) */
col=0;
row=32;
xy = 1;
Linehv(192); /*畫一條橫線(0,32)-(191,32) */
col=0;
row=47;
xy = 1;
Linehv(192); /*畫一條橫線(0,15)-(191,15) */
col=0;
row=1;
xy = 0; /*方向標志。定為垂直方向 */
Linehv(31); /*畫一條豎線(0,1)-(0,31) */
col=191;
row=1;
xy = 0;
Linehv(31); /*畫一條豎線(191,1)-(191,31) */
// col=0; /*設定斜線的起點坐標 */
// row=63;
// Linexy(44,31); /*畫一段斜線(0,63)-(44,31) */
// col=44;
// row=31;
// Linexy(190,62); /*繼續畫斜線(44,31)-(191,63) */
while(1)
{ Rollscreen(x); /*定位新的顯示起始行 */
x++;x++;x++;
Delay(200); /*延時,控制滾動速度 */
};
}
/************************************************/
/*畫線。任意方向的斜線,不支持垂直的或水平線 */
/************************************************/
void Linexy(Uchar endx,Uchar endy)
{
register Uchar t;
int xerr=0,yerr=0,delta_x,delta_y,distance;
Uchar incx,incy;
/* compute the distance in both directions */
delta_x=endx-col; //X終點坐標減起點坐標,得X的坐標差
delta_y=endy-row; //Y終點坐標減起點坐標,得Y的坐標差
/* compute the direction of the increment ,
an increment of "0" means either a vertical or horizontal lines */
if(delta_x>0) incx=1;
else if( delta_x==0 ) incx=0;
else incx=-1;
if(delta_y>0) incy=1;
else if( delta_y==0 ) incy=0;
else incy=-1;
/* determine which distance is greater */
delta_x = cabs( delta_x );
delta_y = cabs( delta_y );
if( delta_x > delta_y ) distance=delta_x;
else distance=delta_y;
/* draw the line */
for( t=0;t <= distance+1; t++ ) {
point();
xerr =xerr + delta_x ;
yerr =yerr + delta_y ;
if( xerr > distance ) {xerr=xerr-distance; col=col+incx;}
if( yerr > distance ) {yerr=yerr-distance; row=row+incy;}
}
}
/****************************************/
/*畫線。只提供X或Y方向的,不支持斜線 */
/****************************************/
void Linehv(Uchar length) //length為線的長度
{
Uchar xs,ys;
if (xy){ys = col; //xy=1為水平方向,XY=0為垂直方向
for (xs=0;xs<length;xs++){
col = ys + xs;
point();}
}
else {xs = row;
for (ys=0;ys<length;ys++){
row = xs + ys;
point();}
}
}
/****************************************/
/* 畫點 */
/****************************************/
void point(void)
{
Uchar x1,y1,x,y;
x1=col; //列緩存
y1=row; //行緩存
row=y1>>3; /*取Y方向分頁地址 */
Rddata(); //從液晶片上讀數據,存于cbyte全局變量中
y=y1&0x07; /*字節內位置計算 */
x=0x01;
x=x<<y; /*移入所畫點 */
Wrdata(cbyte|x);/*畫上屏幕 */
col=x1; /*恢復xy坐標 */
row=y1;
}
/****************************************/
/* 屏幕滾動定位 */
/****************************************/
void Rollscreen(Uchar x)
{
cbyte = DISPFIRST|x; /*定義顯示起始行為x
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -