📄 lcd16_96.c
字号:
#include <config.h>
flash unsigned char tab_char[68][8]=
{
{0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00},/*"0", 0*/
{0x00,0x10,0x1c,0x10,0x10,0x10,0x3c,0x00},/*"1", 1*/
{0x00,0x3C,0x42,0x60,0x1C,0x02,0x7E,0x00},/*"2", 2*/
{0x00,0x3C,0x42,0x38,0x40,0x42,0x3C,0x00},/*"3", 3*/
{0x00,0x30,0x2C,0x22,0x7e,0x20,0x20,0x00},/*"4", 4*/
{0x00,0x7C,0x04,0x3c,0x40,0x40,0x3C,0x00},/*"5", 5*/
{0x00,0x3C,0x02,0x3E,0x42,0x42,0x3C,0x00},/*"6", 6*/
{0x00,0x7E,0x20,0x10,0x08,0x08,0x08,0x00},/*"7", 7*/
{0x00,0x3C,0x42,0x3C,0x42,0x42,0x3C,0x00},/*"8", 8*/
{0x00,0x3c,0x42,0x42,0x7C,0x40,0x3e,0x00},/*"9", 9*/
{0x00,0x00,0x3E,0x40,0x7C,0x42,0xFC,0x00},/*"a", 0*/
{0x00,0x02,0x02,0x3E,0x42,0x42,0x3E,0x00},/*"b", 1*/
{0x00,0x00,0x7C,0x02,0x02,0x02,0x7C,0x00},/*"c", 2*/
{0x00,0x40,0x40,0x7C,0x42,0x42,0x7C,0x00},/*"d", 3*/
{0x00,0x3C,0x42,0x42,0x3E,0x02,0x7C,0x00},/*"e", 4*/
{0x00,0x38,0x08,0x3C,0x08,0x08,0x08,0x00},/*"f", 5*/
{0x00,0x00,0x00,0x5C,0x62,0x42,0x7C,0x3E},/*"g", 6*/
{0x00,0x02,0x02,0x7E,0x42,0x42,0x42,0x00},/*"h", 7*/
{0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x00},/*"i", 8*/
{0x00,0x00,0x00,0x5C,0x62,0x42,0x7C,0x3E},/*"g", 9*/
{0x00,0x02,0x22,0x12,0x0E,0x12,0x22,0x00},/*"k",10*/
{0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00},/*"l",11*/
{0x00,0x00,0x00,0x7E,0x52,0x52,0x52,0x00},/*"m",12*/
{0x00,0x00,0x00,0x7E,0x42,0x42,0x42,0x00},/*"n",13*/
{0x00,0x00,0x00,0x3C,0x42,0x42,0x3C,0x00},/*"o",14*/
{0x00,0x00,0x00,0x3E,0x42,0x42,0x3E,0x02},/*"p",15*/
{0x00,0x00,0x00,0x7C,0x42,0x42,0x7C,0x40},/*"q",16*/
{0x00,0x00,0x04,0x3C,0x0C,0x04,0x04,0x00},/*"r",17*/
{0x00,0x00,0x3C,0x02,0x3E,0x40,0x3E,0x00},/*"s",18*/
{0x00,0x00,0x08,0x3C,0x08,0x08,0x38,0x00},/*"t",19*/
{0x00,0x00,0x00,0x42,0x42,0x42,0x7E,0x00},/*"u",20*/
{0x00,0x00,0x00,0x42,0x24,0x14,0x18,0x00},/*"v",21*/
{0x00,0x00,0x00,0x99,0x59,0x66,0x66,0x00},/*"w",22*/
{0x00,0x00,0x00,0x7E,0x3E,0x40,0x3E,0x00},/*"s",23*/
{0x00,0x00,0x00,0x42,0x24,0x14,0x08,0x0E},/*"y",24*/
{0x00,0x00,0x00,0x7E,0x10,0x0C,0x7E,0x00},/*"z",25*/
{0x00,0x18,0x18,0x24,0x7E,0x42,0x81,0x00},/*"A",0*/
{0x00,0x3E,0x42,0x3E,0x42,0x82,0x7E,0x00},/*"B",1*/
{0x00,0x3C,0x46,0x02,0x02,0x86,0x7C,0x00},/*"C",2*/
{0x00,0x3E,0x62,0x42,0x42,0x62,0x3E,0x00},/*"D",3*/
{0x00,0x7E,0x02,0x7E,0x02,0x02,0x7E,0x00},/*"E",4*/
{0x00,0x7E,0x02,0x7E,0x02,0x02,0x02,0x00},/*"F",5*/
{0x00,0x3C,0x46,0x02,0x72,0x46,0x7C,0x00},/*"G",6*/
{0x00,0x42,0x42,0x7E,0x42,0x42,0x42,0x00},/*"H",7*/
{0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00},/*"I",8*/
{0x00,0x3C,0x46,0x02,0x72,0x46,0x7C,0x00},/*"G",9*/
{0x00,0x62,0x12,0x0A,0x16,0x22,0x42,0x00},/*"K",10*/
{0x00,0x02,0x02,0x02,0x02,0x02,0x7E,0x00},/*"L",11*/
{0x00,0x66,0x66,0x66,0x5A,0x5A,0x5A,0x00},/*"M",12*/
{0x00,0x46,0x46,0x4A,0x52,0x62,0x62,0x00},/*"N",13*/
{0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00},/*"O",14*/
{0x00,0x3E,0x42,0x42,0x3E,0x02,0x02,0x00},/*"P",15*/
{0x00,0x3C,0x66,0x42,0x42,0x56,0x3C,0x40},/*"Q",16*/
{0x00,0x3E,0x42,0x7E,0x42,0x42,0x42,0x00},/*"R",17*/
{0x00,0x7C,0x02,0x3C,0x40,0x82,0x7C,0x00},/*"S",18*/
{0x00,0x7F,0x08,0x08,0x08,0x08,0x08,0x00},/*"T",19*/
{0x00,0x42,0x42,0x42,0x42,0x42,0x3C,0x00},/*"U",20*/
{0x00,0x81,0x42,0x22,0x24,0x1C,0x08,0x00},/*"V",21*/
{0x00,0x81,0x5A,0x5A,0x5A,0x24,0x24,0x00},/*"W",22*/
{0x00,0x22,0x14,0x08,0x1C,0x26,0x43,0x00},/*"X",23*/
{0x00,0x43,0x26,0x1C,0x08,0x08,0x08,0x00},/*"Y",24*/
{0x00,0x7F,0x20,0x18,0x04,0x02,0x7F,0x00},/*"Z",25*/
{0x00,0x09,0x05,0x73,0x53,0x75,0x49,0x71}, //kg
{0x00,0x00,0x82,0x92,0x92,0xAA,0x44,0x44}, //w
{0x00,0x00,0x00,0x4C,0x12,0x4E,0x42,0x5C}, //ei
{0x00,0x00,0x20,0x2E,0x2A,0xEE,0xA8,0xAE}, //gh
{0x00,0x00,0x00,0x04,0x6E,0x04,0x64,0x0C}, //tt
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00} //nop
};
void written_add_data(unsigned int temp_add,unsigned char temp_data)
{
unsigned char temp;
RAM_EN=0;
RAM_ADRESS=0;
RAM_WRITTEN=0;
temp=(unsigned char)(temp_add>>8);
PORTC=temp;
// delay_us(1); //Tw>=700ns
RAM_WRITTEN=1;
// delay_us(1); //Tdd>=100ns
RAM_WRITTEN=0;
temp=(unsigned char)(temp_add);
PORTC=temp;
// delay_us(1); //Tw>=700ns
RAM_WRITTEN=1;
// delay_us(1); //Tdd>=100ns
RAM_ADRESS=1; //2次确保有效
RAM_ADRESS=1;
RAM_WRITTEN=0;
PORTC=temp_data;
// delay_us(1); //Tw>=700ns
RAM_WRITTEN=1;
// RAM_EN=1;
}
void written(unsigned char temp_1)
{
// RAM_EN=0;
// RAM_ADRESS=1; //数据
RAM_WRITTEN=0;
PORTC=temp_1;
// PORTC=(temp_1&0xf0);
// delay_us(1); //Tdd>=100ns
RAM_WRITTEN=1;
// RAM_EN=1;
}
/*
void inintially(void) //初始化LCD
{
written_add_data(0x500,0x7a);
delay_ms(10);
written_add_data(0x501,0xb7);
delay_ms(10);
written_add_data(0x502,0x06);
}
*/
void Lcd_inint(void) //初始化LCD
{
POWER_EN=0; //OPEN POWER FOR IC
light=1; //LCD's light open
written_add_data(0x500,0xe8);
//delay_ms(10);
written(0xa6);
//delay_ms(10);
written(0x04);
display_clear(); //清屏
}
void display_clear(void) //清除所有显示
{
unsigned char i;
for(i=0;i<16;i++)
{
written_add_data((unsigned int)i*16,0x0);
written(0x0);
}
for(i=0;i<16;i++)
{
written_add_data((unsigned int)i*16+2,0x0);
written(0x0);
}
for(i=0;i<16;i++)
{
written_add_data((unsigned int)i*16+4,0x0);
written(0x0);
}
for(i=0;i<16;i++)
{
written_add_data((unsigned int)i*16+256,0x0);
written(0x0);
}
for(i=0;i<16;i++)
{
written_add_data((unsigned int)i*16+258,0x0);
written(0x0);
}
for(i=0;i<16;i++)
{
written_add_data((unsigned int)i*16+260,0x0);
written( 0x0);
}
}
void Written_char(unsigned char line,unsigned char row,unsigned char z)
{
unsigned char i;
if(row<6)
{
switch(line)
{
case 0:
for(i=0;i<8;i++) written_add_data((unsigned int)i*16+row,tab_char[z][i]);
break;
case 1:
for(i=8;i<16;i++) written_add_data((unsigned int)i*16+row,tab_char[z][i-8]);
break;
}
}
else
{
switch(line)
{
case 0:
for(i=0;i<8;i++) written_add_data((unsigned int)i*16+row+250,tab_char[z][i]);
break;
case 1:
for(i=8;i<16;i++) written_add_data((unsigned int)i*16+row+250,tab_char[z][i-8]);
break;
}
}
}
//********************************************************************
//改进的显示方式,占用8个字节的动态内存
//优点:速度快
//********************************************************************
/*
void Display_AD(unsigned int Dis_data)
{
Written_char(0,3,( unsigned char)Dis_data/1000);
Written_char(0,4,( unsigned char)Dis_data%1000/100);
Written_char(0,5,( unsigned char)Dis_data%1000%100/10);
Written_char(0,6,( unsigned char)Dis_data%1000%100%10);
}
void Display_AD_1(unsigned int Dis_data)
{
Written_char(0,8,( unsigned char)Dis_data/100);
Written_char(0,9,( unsigned char)Dis_data%100/10);
Written_char(0,10,( unsigned char)Dis_data%100%10);
}
*/
//********************************************************************
//改进的显示方式,占用8个字节的动态内存
//优点:速度快
//********************************************************************
void Display_AD(unsigned int Dis_data)
{
unsigned int temp1=0,temp2=0,temp3=0,temp4=0;
temp1=Dis_data/10000;// 最高位
temp2=Dis_data%10000;
temp3=temp2%1000;
temp4=temp3%100;
Written_char(0,3,temp1);
Written_char(0,4,(temp2/1000));
Written_char(0,5,(temp3/100));
Written_char(0,6,(temp4/10));
Written_char(0,7,temp4%10);//个位
}
/*
void Display_AD(unsigned long int Dis_data) //Dis_data<524288
{
unsigned char temp0; //最高位,十万位
unsigned long int temp1;
unsigned char temp2; //万位
unsigned int temp3; //万%万
unsigned char temp4; //1000位
unsigned int temp5;
unsigned char temp6;
unsigned char temp7;
temp0=( unsigned char)(Dis_data/100000); // 最高位
temp1=Dis_data%100000;
temp2=( unsigned char)temp1/10000; //万位
temp3=( unsigned int)temp2%10000;
temp4=( unsigned char)temp3/1000; //1000位
temp5=temp4%1000; //百
temp6=( unsigned char)temp5/100; //百位
temp7=( unsigned char)temp6%100;
Written_char(0,4,temp0);
Written_char(0,5,temp2);
Written_char(0,6,temp4);
Written_char(0,7,temp6);
Written_char(0,8,(temp7/10));//10位
Written_char(0,9,(temp7%10));//个位
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -