📄 lcd12864.i
字号:
IO0SET|=LCD_CS2;
}
lcd_delay(40);
write_LCD_comd1(0XB8,word_position_x/8);
write_LCD_comd1(0X40,word_position_y%64);
write_LCD_comd0(0x57);
}
void DrawLines(int8 x,int8 y,int8 x1,int8 y1)
{
int dx,dy,err = 0;
if(y != y1)
{
if(y1 < y)
{
dx = y1; dy = x1;
y1 = y; x1 = x;
y = dx; x = dy;
}
dy = y1 - y;
dx = x1 - x;
if((x1 >= x)&&((y1 - y) <= (x1 - x)))
{
for(;x != x1;)
{
if(err < 0)
{
show_dot(x + 1,y);
x += 1;
err += dy;
}
else
{
show_dot(x + 1,y + 1);
x += 1;
y += 1;
err += (dy - dx);
}
}
}
else
if((x1 >= x)&&((y1 - y) > (x1 - x)))
{
for(;y != y1;)
{
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
if((x1 < x)&&((y1 - y) <= (x - x1)))
{
for(;x != x1;)
{
if(err < 0)
{
show_dot(x - 1,y);
x -= 1;
err += dy;
}
else
{
show_dot(x - 1,y + 1);
x -= 1;
y += 1;
err += (dy + dx);
}
}
}
else
if((x1 < x)&&((y1 - y) > (x1 - x)))
{
for(;y != y1;)
{
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;
}
}
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);
}
}
void clr_LCD(uint8 Bselect_area)
{
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)
{
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
{
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;
else IO1CLR |= RY4;
}
}
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;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -