📄 text1.c
字号:
0x00,0x08,0xF8,0xA4,0x04,0xFC,0x00,0x24,0x28,0xE0,0x98,0x96,0x92,0x80,0x00,0x00,
0x08,0x08,0x07,0x04,0x02,0x3F,0x11,0x09,0x05,0x03,0x04,0x08,0x18,0x10,0x10,0x00,
/*-- 文字: 合 --*/
/*-- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x80,0x40,0x20,0x90,0x88,0x86,0x48,0x50,0x20,0x40,0xC0,0x80,0x80,0x80,0x00,
0x01,0x00,0x00,0x0C,0x34,0x24,0x24,0x22,0x12,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 法 --*/
/*-- 楷体_GB231212; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x20,0x44,0x08,0x00,0x20,0x20,0x20,0xFE,0x90,0x90,0x90,0x80,0x80,0x00,0x00,
0x00,0x18,0x0C,0x03,0x01,0x11,0x19,0x15,0x13,0x08,0x0C,0x08,0x10,0x00,0x00,0x00};
/************函数声明******************/
void clear_sreen_12864 (); //清屏(即清除显存)
void delay_12864 (); //延时1ms
void delay(void); //延时
void init_lcd_12864 (); //LCD初始化
void write_command_12864 (unsigned char cmdcode); //写指令
void write_data_12864 (unsigned char dispdata); //写数据
void rddata(void) ; //读数据
/**********清除显屏(清除显示内存)***********/
void clear_screen_12864()
{
unsigned char i,j;
cs1_12864 =0;cs2_12864=1; /**清除左屏**/
for(i=0;i<8;i++)
{
write_command_12864 (row_12864 +i);
write_command_12864 (col_12864 +0); //列地址0
for(j=0;j<64;j++)
write_data_12864 (0x00); //每做一次写操作,列地址加1
}
cs1_12864 =1;cs2_12864 =0; /**清除右屏**/
for(i=0;i<8;i++)
{
write_command_12864(row_12864 +i);
write_command_12864(col_12864+0); //列地址0
for(j=0;j<64;j++)
write_data_12864(0x00); //每做一次写操作,列地址加1
}
}
/***********延时1ms**************/
void delay_12864()
{ unsigned int dy=500;
while(--dy);
}
/*************初始化LCD屏***************/
void init_lcd_12864()
{
clear_screen_12864();
cs1_12864=1;cs2_12864=0; //右屏
delay_12864();
write_command_12864(disp_off_12864);
write_command_12864(start_line_12864);
write_command_12864(disp_on_12864);
cs1_12864=0;cs2_12864=1; //左屏
delay_12864();
write_command_12864(disp_off_12864);
write_command_12864(start_line_12864);
write_command_12864(disp_on_12864);
}
/*******写指令到LCD*********/
void write_command_12864 (unsigned char cmdcode)
{
//lcd_busy();
di_12864 =0;
rw_12864 =0;
lcd_bus_12864 =cmdcode; //输入控制命令(display on/off,display startline,row,col)
enable_12864 =1;
_nop_();
enable_12864 =0;
}
/***********写显示的数据到LCD***********/
void write_data_12864 (unsigned char dispdata)
{
//lcd_busy();
di_12864 =1;
rw_12864 =0;
lcd_bus_12864 =dispdata;
enable_12864 =1;
_nop_();
enable_12864 =0;
}
/*****位置 X 表示行, Y表示列 , Z 表示要亮的点 *********/
void write(x,y,uchar c)
{
z=c;
cs1_12864=0;
cs2_12864=1; //选择左屏幕
if (y>64)
{
y=y-64 ;
cs1_12864=1;
cs2_12864=0; //选择右屏幕
}
write_command_12864(row_12864+x); //8大行位置 X 1到 8
write_command_12864(col_12864+y); //128 列位置 y 1 到 128
write_data_12864(z);
}
uchar getkey()
{
unsigned char keycode=0xff,temp,i;
P2=0x0f;
temp=P2&0x0f;
if(temp!=0x0f) //判是否有键按下
{
// beep=0;
P2=0xef; //自第0行开始扫描输出,自列读入键值
for(i=0;i<4;i++)
{
temp=P1&0x0f;
if(temp==0x07) //判断第0列是否有键按下
{
keycode=i*4+0;
break;
}
else if(temp==0x0b)//判断第1列是否有键按下
{
keycode=i*4+1;
break;
}
else if(temp==0x0d)//判断第2列是否有键按下
{
keycode=i*4+2;
break;
}
else if(temp==0x0e)//判断第3列是否有键按下
{
keycode=i*4+3;
break;
}
P2=(P2<<1)|0x1;
}
while((P1&0x0f)!=0x0f) //等待释放
{
P2=0x0f;
}
// beep=1;
}
return keycode;
}
void rewrite(uchar c)
{
write(x,y,c);
y++;
if (y==129) {y=1;x++;}
if (x==9) { x=1;y=1;}
}
main()
{
uchar k=0;
uint i,j;
init_lcd_12864();
clear_screen_12864();
while(1)
{
x=0;
y=0;
/* for(i=0;i<128*8;i++)
{ //k=i/12;
write_command_12864(row_12864+x+1); //8大行位置 X 1到 8
write_command_12864(col_12864+y); //128 列位置 y 1 到 128
write_data_12864 (0xff);
y++;
if(y==64)
{
if((cs1_12864==0)&&(cs2_12864==1))
{
cs1_12864=1;
cs2_12864=0;
}
else
{
cs1_12864=0;
cs2_12864=1;
}
y=0;
}
} */
for (i=0;i<128*8;i++)
{
rewrite(pan[i]);
}
for(j=0;j<30;j++)
delay_12864 ();
clear_screen_12864();
for (i=0;i<128*8;i++)
{
rewrite(pan[i+1+i/64]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -