📄 cgm12864b.c
字号:
{
int i; // delay counter
OSCXCN = 0x67; // start external oscillator with
// 18.432MHz crystal
for (i=0; i < 256; i++) ; // Wait for osc. to start up
while (!(OSCXCN & 0x80)) ; // Wait for crystal osc. to settle
OSCICN = 0x88; // select external oscillator as SYSCLK
} */ // source and enable missing clock
// detector
/*displaybmp(uchar * x)
{
uchar i=0;
while(x[i]!='\0')
{
LCD_WriteData(x[i]);
i++;
}
} */
//-------------------------------------------------------------------------
//函数名称: PORT_Init ()
//函数功能: 端口初始化;使能交叉开关
//入口参数: 无
//出口参数: 无
//全局变量引用: 无
//调用模块: 无
//----------------------------------------------------------------------
/*void PORT_Init (void)
{
XBR2 = 0x40; // Enable crossbar and weak pull-ups
P74OUT = 0XFf;
P2MDOUT = 0xff;
} */
/*void WriteCGRAM(uchar * p,uchar CgramAdress) //造字
{
uchar i;
LCD_WriteCommand(CgramAdress);
for(i=0;i<16;i++)
{
LCD_WriteCommand(CgramAdress+i);
LCD_WriteData(p[i*2]);
LCD_WriteData(p[i*2+1]);
delay(50);
}
}
void ReadCGRAM(DdramAdress,CgramCode)
{
LCD_WriteCommand(DdramAdress);
LCD_WriteData(0x00);
LCD_WriteData(CgramCode);
} */
void SetDraw() //绘图设置
{
LCD_WriteCommand(0x01);
delay(100);
LCD_WriteCommand(0x34); //8位数据接口,扩充指令集
delay(100);
}
//---------------------------------------------------------------------------
// 主程序
//----------------------------------------------------------------------------
void Draw_Pic(uchar x, uchar y, const uchar *Draw) //绘图函数
{
uchar i, j, temp_x, temp_y;
temp_x = x;
temp_y = y;
temp_x |= 0x80;
temp_y |= 0x80;
for(i=0;i<32;i++ ) //上半屏32行
{
LCD_WriteCommand(temp_y++); //设置绘图区的Y地址坐标0
LCD_WriteCommand(temp_x); //设置绘图区的X地址坐标0
for(j=0;j<16;j++)
{
LCD_WriteData(*Draw++);
}
}
temp_x = 0x88;
temp_y = 0x80;
for(;i<64;i++ )
{
LCD_WriteCommand(temp_y++); //设置绘图区的Y地址坐标
LCD_WriteCommand(temp_x); //设置绘图区的X地址坐标
for(j=0;j<16;j++)
{
LCD_WriteData(*Draw++);
}
}
}
void Write0(uchar x, uchar y) //绘图区清零
{
uchar i, j, temp_x, temp_y;
temp_x = x;
temp_y = y;
temp_x |= 0x80;
temp_y |= 0x80;
for(i=0;i<32;i++ ) //上半屏32行
{
LCD_WriteCommand(temp_y++); //设置绘图区的Y地址坐标0
LCD_WriteCommand(temp_x); //设置绘图区的X地址坐标0
for(j=0;j<16;j++)
{
LCD_WriteData(0x00); //写00清除绘图区
}
}
temp_x = 0x88;
temp_y = 0x80;
for(;i<64;i++ )
{
LCD_WriteCommand(temp_y++); //设置绘图区的Y地址坐标
LCD_WriteCommand(temp_x); //设置绘图区的X地址坐标
for(j=0;j<16;j++)
{
LCD_WriteData(0x00);
}
}
}
void draw_cicle(uchar *p,uchar k) //绘曲线
{
uchar n,j,Y,X;
uint a=0x8000;
for(n=0;n<256;n++)
{
Y=0x80+0x1f-p[k*n+1]/8;
if((n+1)%16==0)
j++;
if(j>=8)
j=0;
X=0x80|j;
LCD_WriteCommand(Y);
LCD_WriteCommand(X);
delay(10);
LCD_WriteData2(a);
a>>=1;
if(a==0)
a=0x8000;
LCD_WriteCommand(0x36);
if(k*n>=255)
break;
}
}
void main (void)
{
// uchar i=1,key;
// WDTCN = 0xde;
// WDTCN = 0xad; //关看门狗
// SYSCLK_Init (); //初始化时钟
// PORT_Init (); //初始化IO口
SysInit();
EA=1; //开中断
InitLCD(); //清屏
delay(100); //延时1S
SetDraw();
// LCD_WriteCommand(0x80);
// LCD_WriteCommand(0x80);
delay(100);
Write0(0,0);
/* while(1)
{
key=KeyScan();
if(key==1)
{
i++;
Write0(0,0);
}
draw_cicle(sin_table,i);
} */
//LCD_WriteCommand(0x36);
Draw_Pic(0,0,*gImage_123);
LCD_WriteCommand(0x36);
/* LCD_WriteCommand(0x30);
for(i=0;i<15;i++)
LCD_WriteCommand(0x06);
delay(10); 未通 */
// while(1);
// {
/* LCD_WriteCommand(0x80);
LCD_WriteData(0xb8);
LCD_WriteData(0xdf);
LCD_WriteCommand(0x90);
LCD_WriteData(0xba);
LCD_WriteData(0xba);
delay(10);
LCD_WriteCommand(0x88);
LCD_WriteData(0xb2);
LCD_WriteData(0xc5);
delay(10);
LCD_WriteCommand(0x98);
LCD_WriteData(0xb2);
LCD_WriteData(0xc5);*/
// LCD_WriteCommand(0x34);
// LCD_WriteCommand(0x30);
/* for(i=0;i<16;i++)
LCD_WriteCommand(0x07);
LCD_WriteCommand(0x34);
LCD_WriteCommand(0x36); */
// LCD_WriteCommand(0x01);
// Char_Set_XY(0,0, "集成运放测试仪示波器输出信号该程");
// Char_Set_XY(0,1, "高汉才先生,你好吗!");
// Char_Set_XY(0,3, "皮肤之魔兽主题");
/* for(i=0;;i++)
{
LCD_WriteCommand(0x30);
delay(100);
LCD_WriteCommand(0x07);
delay(100);
}*/
/* LCD_WriteCommand(0x34);
LCD_WriteCommand(0x05);
LCD_WriteCommand(0x30);
LCD_WriteCommand(0x01);
LCD_WriteCommand(0x34);
LCD_WriteCommand(0x36); */
/*Char_Set_XY(1,1, "欢迎您使用!");
Char_Set_XY(0,2, "制作人:");
Char_Set_XY(4,3, "高汉才"); */
/* delay(50);
WriteCGRAM(gao,0x40);
WriteCGRAM(gao,0x50);
WriteCGRAM(gao,0x60);
WriteCGRAM(gao,0x70);
ReadCGRAM(0x80,0x00);
ReadCGRAM(0x81,0x02);
ReadCGRAM(0x82,0x04);
ReadCGRAM(0x83,0x06); */
/* LCD_WriteCommand(0x34|0x02);
LCD_WriteCommand(0x36);
// LCD_WriteCommand(0x30);
LCD_WriteCommand(0x01);
for(i=0;i<16;i++)
{
LCD_WriteCommand(0x80+i);
LCD_WriteCommand(0x80);
LCD_WriteData(gao[i]);
} */
// displaybmp(screen1);
// }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -