📄 lcd12864.c
字号:
{
if(err < 0)
{
show_dot(x - 1,y + 1);
x -= 1;
y += 1;
err += (dy + dx);
}
else
{
show_dot(x,y + 1);
y += 1;
err += dx;
}
}
}
}
else
{
dx = x; dy = x1;
if(x < x1)
{
dx = x1;
dy = x;
}
for(;dy < dx;dy++)
show_dot(dy,y);
}
}
void Show_Picture_data(uint8 data,uint8 x,uint8 y)
{
uint8 w=8,h=16;
switch(data)
{
case '0':
show_picture(ASCII_0,x,y,w,h);
break;
case '1':
show_picture(ASCII_1,x,y,w,h);
break;
case '2':
show_picture(ASCII_2,x,y,w,h);
break;
case '3':
show_picture(ASCII_3,x,y,w,h);
break;
case '4':
show_picture(ASCII_4,x,y,w,h);
break;
case '5':
show_picture(ASCII_5,x,y,w,h);
break;
case '6':
show_picture(ASCII_6,x,y,w,h);
break;
case '7':
show_picture(ASCII_7,x,y,w,h);
break;
case '8':
show_picture(ASCII_8,x,y,w,h);
break;
case '9':
show_picture(ASCII_9,x,y,w,h);
break;
case 'A':
show_picture(asc_A,x,y,w,h);
break;
case 'B':
show_picture(asc_B,x,y,w,h);
break;
case 'C':
show_picture(asc_C,x,y,w,h);
break;
case 'D':
show_picture(asc_D,x,y,w,h);
break;
case 'E':
show_picture(asc_E,x,y,w,h);
break;
case 'F':
show_picture(asc_F,x,y,w,h);
break;
case 'G':
show_picture(asc_G,x,y,w,h);
break;
case 'H':
show_picture(asc_H,x,y,w,h);
break;
case 'I':
show_picture(asc_I,x,y,w,h);
break;
case 'J':
show_picture(asc_J,x,y,w,h);
break;
case 'K':
show_picture(asc_K,x,y,w,h);
break;
case 'L':
show_picture(asc_L,x,y,w,h);
break;
case 'M':
show_picture(asc_M,x,y,w,h);
break;
case 'N':
show_picture(asc_N,x,y,w,h);
break;
case 'O':
show_picture(asc_O,x,y,w,h);
break;
case 'P':
show_picture(asc_P,x,y,w,h);
break;
case 'Q':
show_picture(asc_Q,x,y,w,h);
break;
case 'R':
show_picture(asc_R,x,y,w,h);
break;
case 'S':
show_picture(asc_S,x,y,w,h);
break;
case 'T':
show_picture(asc_T,x,y,w,h);
break;
case 'U':
show_picture(asc_U,x,y,w,h);
break;
case 'V':
show_picture(asc_V,x,y,w,h);
break;
case 'W':
show_picture(asc_W,x,y,w,h);
break;
case 'X':
show_picture(asc_X,x,y,w,h);
break;
case 'Y':
show_picture(asc_Y,x,y,w,h);
break;
case 'Z':
show_picture(asc_Z,x,y,w,h);
break;
/*
case 'a':
show_picture(asc_a,x,y,w,h);
break;
case 'b':
show_picture(asc_b,x,y,w,h);
break;
case 'c':
show_picture(asc_c,x,y,w,h);
break;
case 'd':
show_picture(asc_d,x,y,w,h);
break;
case 'e':
show_picture(asc_e,x,y,w,h);
break;
case 'f':
show_picture(asc_f,x,y,w,h);
break;
case 'g':
show_picture(asc_g,x,y,w,h);
break;
case 'h':
show_picture(asc_h,x,y,w,h);
break;
case 'i':
show_picture(asc_i,x,y,w,h);
break;
case 'j':
show_picture(asc_j,x,y,w,h);
break;
case 'k':
show_picture(asc_k,x,y,w,h);
break;
case 'l':
show_picture(asc_l,x,y,w,h);
break;
case 'm':
show_picture(asc_m,x,y,w,h);
break;
case 'n':
show_picture(asc_n,x,y,w,h);
break;
case 'o':
show_picture(asc_o,x,y,w,h);
break;
case 'p':
show_picture(asc_p,x,y,w,h);
break;
case 'q':
show_picture(asc_q,x,y,w,h);
break;
case 'r':
show_picture(asc_r,x,y,w,h);
break;
case 's':
show_picture(asc_s,x,y,w,h);
break;
case 't':
show_picture(asc_t,x,y,w,h);
break;
case 'u':
show_picture(asc_u,x,y,w,h);
break;
case 'v':
show_picture(asc_v,x,y,w,h);
break;
case 'w':
show_picture(asc_w,x,y,w,h);
break;
case 'x':
show_picture(asc_x,x,y,w,h);
break;
case 'y':
show_picture(asc_y,x,y,w,h);
break;
case 'z':
show_picture(asc_z,x,y,w,h);
break;
case ':':
show_picture(maohao,x,y,w,h);
break;
case '_':
show_picture(Xhx,x,y,w,h);
break;
case '|':
show_picture(Shx,x,y,w,h);
break;
case '.':
show_picture(dian,x,y,w,h);
break;
default:
show_picture(ASCII_0,x,y,w,h);
break;
*/
}
}
void Show_Str(uint8 *str,uint8 x,uint8 y,uint8 lenth)
{
uint8 i;
for(i=0;i<lenth;i++)
{
Show_Picture_data(str[i],x,(y+(8*i)));
}
}
void lcd_test(void)
{
init_LCD();
clr_LCD_screen();
while(1)
{
show_picture(rzjdq2,0,0,128,64);
// DelayNS(300);
// clr_LCD_screen();
DelayNS(300);
}
}
void clr_LCD(uint8 Bselect_area)////// clear the LCD_screen
{
if(1==Bselect_area)
{
IO0SET|=LCD_CS1;
IO0SET|=LCD_CS2;
IO0SET|=LCD_RW;
IO0CLR|=LCD_E;
IO0CLR|=LCD_D0;
IO0CLR|=LCD_D2;
IO0CLR|=LCD_D3;
IO0CLR|=LCD_D5;
IO0CLR|=LCD_D7;
IO1SET|=LCD_RS;
IO1SET|=LCD_D1;
IO1SET|=LCD_D4;
IO1SET|=LCD_D6;
lcd_delay(50);
IO0CLR|= LCD_CS1;
IO0CLR|=LCD_CS2;
IO0CLR|=LCD_RW;
IO0SET|=LCD_E;
IO0SET|=LCD_D0;
IO0SET|=LCD_D2;
IO0SET|=LCD_D3;
IO0SET|=LCD_D5;
IO0SET|=LCD_D7;
IO1CLR|= LCD_RS;
IO1CLR|= LCD_D1;
IO1CLR|= LCD_D4;
IO1CLR|= LCD_D6;
IO1SET|= LCD_RS;
IO1SET|= LCD_D1;
IO1SET|= LCD_D4;
IO1SET|= LCD_D6;
lcd_delay(50);
}
}
/****************************************************************************/
//键扫描并处理
/****************************************************************************/
void ReadKeyProcess(void)
{
temp_value=0;
if((IO0PIN & UP ) == 0)
temp_value|=0x01;
else
temp_value&=0xfe;
if((IO0PIN & DOWN ) == 0)
temp_value|=0x02;
else
temp_value&=0xfd;
if((IO0PIN & CANCEL ) == 0)
temp_value|=0x04;
else
temp_value&=0xfb;
if((IO0PIN & ENTER ) == 0)
temp_value|=0x08;
else
temp_value&=0xf7;
temp_value&=0x0f;
if(temp_value) //如果有键按下
{
if(Bkey_delay) //延时去抖动,位标识,如果本位为1,则表示键有效
{
//------------------------
if(temp_value==key_value0) //两次键值相等?
{
if (key_delay==0) //正常延时,
{
Bkey_been_down=1;
}
else
{
key_delay--;
}
}
else //不等则为干扰
{
Bkey_delay=0;
key_value=0x00;
Bread_key=0;
}
//------------------------
}
else
{
Bkey_delay=1;
key_value=0;
key_value0=temp_value;
key_delay=1;
}
}
else //没有键下按,表示键释放,则处理上次键值,//no key down
{
if(Bkey_been_down)
{
Bkey_been_down=0;
Bkey_delay=0;
key_value=key_value0;
Bread_key=0;
}
}
}
void key_test(void)
{
if(Bread_key==1)
ReadKeyProcess();
Bread_key=1;
if ((key_value&0x01)||((key_value&0x02))||((key_value&0x04))||((key_value&0x08)))
{
key_value=0;
if ( (IO1SET&RY4) == 0 ) IO1SET |= RY4; // 控制LED4点亮
else IO1CLR |= RY4; // 控制LED4熄灭
}
}
void ReadKey(void)
{
temp_value=0;
if((IO0PIN & UP ) == 0)
{
delay(200);
if((IO0PIN & UP ) == 0)
{
while((IO0PIN & UP ) == 0);
temp_value|=0x01;
}
}
else
{
temp_value&=0xfe;
}
if((IO0PIN & DOWN ) == 0)
{
delay(200);
if((IO0PIN & DOWN ) == 0)
{
while((IO0PIN & DOWN ) == 0);
temp_value|=0x02;
}
}
else
{
temp_value&=0xfd;
}
if((IO0PIN & CANCEL ) == 0)
{
delay(200);
if((IO0PIN & CANCEL ) == 0)
{
while((IO0PIN & CANCEL ) == 0);
temp_value|=0x04;
}
}
else
{
temp_value&=0xfb;
}
if((IO0PIN & ENTER ) == 0)
{
delay(200);
if((IO0PIN & ENTER ) == 0)
{
while((IO0PIN & ENTER ) == 0);
temp_value|=0x08;
}
}
else
{
temp_value&=0xf7;
}
// return temp_value;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -