📄 lcd.c
字号:
#include "LCD.H"
/*--------------------------
*** initialising the LCD ***
--------------------------*/
void ini()
{
command(56);
command(12);
command(1);
command(6);
command(0x80);
}
/*----------------------------
*** checking the busy flag ***
----------------------------*/
void busy()
{
d7=1;
rs=0;
rw=1;
while(d7!=0)
{
en=0;
en=1;
}
}
/*-------------------------
*** send command to LCD ***
-------------------------*/
void command(bit_8 val)
{
busy();
lcd_port=val;
rs=0;
rw=0;
en=1;
en=0;
}
/*--------------------------
*** entering data to LCD ***
--------------------------*/
void data_in(bit_8 *string)
{
while(*string)
lcd_data(*string++);
}
void lcd_data(bit_8 ch)
{
busy();
lcd_port=ch;
rs=1;
rw=0;
en=1;
en=0;
}
void cgrambuild(void)
{
bit_8 code char1[]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01};
bit_8 code char2[]={0x1F,0X11,0X11,0X11,0X11,0X11,0X11,0X11};
bit_8 code char3[]={0X1F,0X10,0X10,0X10,0X10,0X10,0X10,0X1F};
bit_8 code char4[]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1F};
bit_8 code char5[]={0x1F,0x11,0x11,0x11,0x11,0x11,0x11,0x1F};
bit_8 code char6[]={0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1F};
bit_8 code char7[]={0x1F,0x01,0x01,0x01,0x01,0x01,0x01,0x1F};
bit_8 code char8[]={0x1F,0x01,0x01,0x01,0x01,0x01,0x01,0x01};
bit_8 i;
command(0x40);
for(i=0;i<8;i++)
lcd_data(char1[i]);
for(i=0;i<8;i++)
lcd_data(char2[i]);
for(i=0;i<8;i++)
lcd_data(char3[i]);
for(i=0;i<8;i++)
lcd_data(char4[i]);
for(i=0;i<8;i++)
lcd_data(char5[i]);
for(i=0;i<8;i++)
lcd_data(char6[i]);
for(i=0;i<8;i++)
lcd_data(char7[i]);
for(i=0;i<8;i++)
lcd_data(char8[i]);
command(0x80);
}
void bdata_in(bit_8 a, bit_8 addr)
{
bit_8 j;
j=a/10;
big_data_in(j,addr);
j=a%10;
big_data_in(j,addr+2);
}
void big_data_in(bit_8 a, bit_8 addr)
{
switch(a)
{
case 0:
lcd_zero(addr);
break;
case 1:
lcd_one(addr);
break;
case 2:
lcd_two(addr);
break;
case 3:
lcd_three(addr);
break;
case 4:
lcd_four(addr);
break;
case 5:
lcd_five(addr);
break;
case 6:
lcd_six(addr);
break;
case 7:
lcd_seven(addr);
break;
case 8:
lcd_eight(addr);
break;
case 9:
lcd_nine(addr);
break;
}
}
void lcd_zero(bit_8 addr)
{
command(addr);
lcd_data(1);
command(addr+0x40);
lcd_data(5);
}
void lcd_one(bit_8 addr)
{
command(addr);
lcd_data(0);
command(addr+0x40);
lcd_data(0);
}
void lcd_two(bit_8 addr)
{
command(addr);
lcd_data(7);
command(addr+0x40);
lcd_data(2);
}
void lcd_three(bit_8 addr)
{
command(addr);
lcd_data(6);
command(addr+0x40);
lcd_data(3);
}
void lcd_four(bit_8 addr)
{
command(addr);
lcd_data(5);
command(addr+0x40);
lcd_data(0);
}
void lcd_five(bit_8 addr)
{
command(addr);
lcd_data(2);
command(addr+0x40);
lcd_data(3);
}
void lcd_six(bit_8 addr)
{
command(addr);
lcd_data(2);
command(addr+0x40);
lcd_data(5);
}
void lcd_seven(bit_8 addr)
{
command(addr);
lcd_data(7);
command(addr+0x40);
lcd_data(0);
}
void lcd_eight(bit_8 addr)
{
command(addr);
lcd_data(4);
command(addr+0x40);
lcd_data(5);
}
void lcd_nine(bit_8 addr)
{
command(addr);
lcd_data(4);
command(addr+0x40);
lcd_data(3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -