📄 lcm_disp.c
字号:
/***********************************************************************
* 文件名:LCM_DISP.C
* 功能:DP_51PRO实验仪图形液晶显示实验。先在屏幕上的随机位置显示随机数字(0--9),
* 然后调用画直线函数以屏幕中心为中点画对称的直线,最后显示一个简单的窗口。
***********************************************************************/
#include "CONFIG.H"
/***********************************************************************
* 名称:DelayS()
* 功能:长软件延时。
* 入口参数:delayno 延时时间控制
***********************************************************************/
void DelayS(uint16 delayno)
{ uint16 i;
for(; delayno>0; delayno--)
{ for(i=0; i<1000; i++);
}
}
/***************************************************************
* 名称:main()
* 功能:主函数,初始化图形液晶模块,在屏幕上的随机位置显示随机数字(0--9),
* 然后调用画直线函数以屏幕中心为中点画对称的直线,最后显示一个简单
* 的窗口。
***************************************************************/
void main(void)
{ uint8 i;
uint8 bak;
while(1)
{ LCM_DispIni(); // 初始化图形液晶模块
/* 提示加载程序,即显示"Load..." */
LCM_DispStr(6, 3, "Load" );
for(i=0; i<5; i++)
{ LCM_DispChar(6, i+7, '.');
DelayS(10);
}
/* 数字显示演示 */
srand(168); // 初始化随机种子
LCM_DispClr();
for(i=0; i<250; i++)
{ uint8 x, y;
x = rand()&0x07; // 取得随机显示位置
y = rand()&0x0f;
bak = rand()%10 + '0'; // 取利随机显示数字'0'--'9'
LCM_DispChar(x, y, bak);
DelayS(2);
}
#define CENTER_X 64
#define CENTER_Y 32
/* 直线演示。由于直线要基于中心点,具有对称性,所以只要取出第一个点,
即可推出这条直线。这样做同样达到不同角度的目的。
*/
LCM_DispClr();
for(i=0; i<250; i++)
{ uint8 x0, y0;
uint8 x1, y1;
/* 取第一个点坐标 */
x0 = rand()&0x7f; // 取得随机起点
y0 = rand()&0x3f;
/* 计算出中心对称点 */
x1 = 2*CENTER_X - x0;
y1 = 2*CENTER_Y - y0;
Line(x0, y0, x1, y1, 1);
DelayS(5);
}
/* 画窗口演示 */
LCM_DispClr();
Rectangle(0, 0, 127, 63, 1); // 显示窗口
HLine(0, 10, 127, 1);
RLine(10, 0, 10, 1);
Line(0, 0, 10, 10, 1);
Line(10, 0, 0, 10, 1);
RLine(120, 10, 63, 1); // 显示滚动条
RectangleFill(120, 20, 127, 30, 1);
LCM_DispStr(4, 4, "DP-51PRO" ); // 在窗口中显示内容
LCM_DispStr(5, 1, "www.zlgmcu.com" );
DelayS(1500);
} // end of while(1) ...
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -