|
回复 板凳 的帖子
来一个自定义图案的程序。
1602中还可以自定义8个字符图案
图案规格5*8
下面是一个向上的箭头↑
0 0 0| 0 0 1 0 0 // 0x04
|
0 0 0| 0 1 1 1 0 // 0x0e
|
0 0 0| 1 0 1 0 1 // 0x15
|
0 0 0| 0 0 1 0 0 // 0x04
|
0 0 0| 0 0 1 0 0 // 0x04
|
0 0 0| 0 0 1 0 0 //0x04
|
0 0 0| 0 0 1 0 0 // 0x04
|
0 0 0| 0 0 0 0 0 // 0x00
unsigned char data[8]={0x04,0x0e,0x15,0x04,0x04,0x04,0x04,0x00};//↑
unsigned char data1[8]={0x04,0x04,0x04,0x04,0x15,0x0e,0x04,0x00};//↓
void my_signs(unsigned char ascii,unsigned char *z)//0x00
{
unsigned char address=0,i,temp=0; //ascii为与要定义的图案对应的ascii码值(0x00到
temp=(ascii&0x07)<<3; //0x007间任选)
for(i=0;i<8;i++)
{
address = 0x40 +temp+ i;
LCD_write_command( address );
delay_nus(1);
LCD_write_data ( *(z++));
delay_nus(1);
}
}
//建立图案
void LCD_init(void) //液晶初始化
{
LCD_DATA_DDR|=LCD_DATA; // 数据为输出
LCD_EN_DDR|=LCD_EN; //设置RS.EN方向
LCD_RS_DDR|=LCD_RS;
LCD_write_command(0x28); //4位显示
LCD_en_write();
delay_nms(15);
LCD_write_command(0x28); //4位显示
LCD_write_command(0x0c); //显示开
my_signs(0x00,data);//↑ //建立图案
my_signs(0x01,data1);//↓
LCD_write_command(0x01); //清屏
}
显示自定义图案
LCD_write_char(9,0,0x00);//↑
LCD_write_char(9,0,0x01);//↓ |
|