📄 lcd.h
字号:
/*-- 文字: 循 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x90,0x48,0xE4,0x3B,0x12,0x00,0xFE,0x12,0xD2,0x52,0x7F,0x51,0x51,0xD1,0x10,0x00,
0x00,0x00,0xFF,0x00,0x80,0x60,0x1F,0x00,0x7F,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,
/*-- 文字: 环 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x22,0x22,0xFE,0x22,0x22,0x00,0x02,0xC2,0x32,0xFE,0x42,0x82,0x02,0x02,0x00,
0x00,0x04,0x04,0x03,0x12,0x0A,0x04,0x03,0x00,0x00,0xFF,0x00,0x00,0x03,0x0E,0x00,
/*-- 文字: 泵 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x21,0x21,0x11,0x11,0x09,0x7D,0x4B,0xC9,0x49,0x49,0x49,0x79,0x01,0x01,0x01,0x00,
0x40,0x41,0x21,0x11,0x0D,0x43,0x80,0x7F,0x02,0x04,0x0A,0x12,0x31,0x61,0x20,0x00,
/*-- 文字: : --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 4 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 开 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x40,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: / --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-- 文字: 关 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x10,0x10,0x10,0x11,0x1E,0x14,0xF0,0x10,0x18,0x17,0x12,0x18,0x10,0x00,0x00,
0x01,0x81,0x41,0x21,0x11,0x09,0x05,0x03,0x05,0x09,0x31,0x61,0xC1,0x41,0x01,0x00,
}; //数据表 存于 F200-F3FF
#pragma memory = default
//=====================================================
//**********************************************
#define disp_off 0x3e
#define disp_on 0x3f
#define disp_x 0xb8
#define disp_z 0xc0
#define disp_y 0x40
#define comm 0
#define dat 1
#define data_ora P4OUT //MCU P4<------> LCM
//*************************************************
#define rs BIT0
#define rw BIT1
#define e BIT2
#define cs1 BIT3
#define cs2 BIT4
#define rst BIT5
#define bf BIT7
#define res BIT4
//=======================================================
void delay(unsigned int u);
void chk_busy (void);
void init_lcd (void);
/*------------写数据或命令到LCD--------------*/
void wr_lcd (uchar dat_comm,uchar content)
{
chk_busy ();
if(dat_comm==dat)
P5OUT |=rs;
if(dat_comm==comm)
P5OUT &=~rs;
P5OUT &=~rw;
P4DIR =0xff;
data_ora=content;
P5OUT |=e;
;
P5OUT &=~e;
}
/*-----------------检测忙函数-------------------------*/
void chk_busy (void)
{
P4DIR=0x00;
P5OUT &=~rs;
P5OUT |=rw;
;
P5OUT |=e;
;
while((P4IN & bf)||(P4IN & res)==1);
P5OUT &=~e;
}
/*--------------写点阵------------------*/
void lat_disp (uchar data1,uchar data2)
{
uchar i,j;
init_lcd();
for(j=0;j<8;j++)
{
wr_lcd (comm,disp_x+j);
wr_lcd (comm,disp_z);
wr_lcd (comm,disp_y);
for(i=0;i<32;i++)
{
wr_lcd (dat,data1);
wr_lcd (dat,data2);
}
}
}
/*——————————清屏(光强的显示)————————*/
void lat_dispL1 (uchar data1,uchar data2)
{
uchar i,j;
P5OUT |=cs2;P5OUT &=~cs1;
for(j=0;j<4;j++)
{
wr_lcd (comm,disp_x+j);
wr_lcd (comm,disp_z);
wr_lcd (comm,disp_y);
for(i=0;i<32;i++)
{
wr_lcd (dat,data1);
wr_lcd (dat,data2);
}
}
}
/*---指定位置(x,y)显示row_xl行(每行row_yl个)汉字(大小8xl*yl)---*/
void chn_disp (uchar x,uchar y,uchar xl,uchar yl,uchar row_xl,uchar row_yl,const uchar *chn)
{
uchar i,j,k,l;
const uchar *temp;
wr_lcd (comm,disp_on);
for(l=0;l<row_xl;l++)
{
for(k=0;k<row_yl;k++)
{
for(j=0;j<xl;j++)
{
wr_lcd (comm,disp_x+x+l*xl+j);
wr_lcd (comm,disp_z);
wr_lcd (comm,disp_y+y+k*yl); //确定显示的位置
//a=l*xl*yl*row_yl+k*xl*yl+j*yl;
temp=chn;//intr中间量获取当前地址
temp+=l*xl*yl*row_yl+k*xl*yl+j*yl;//指针的偏移量
for(i=0;i<yl;i++)
//wr_lcd (dat,chn[a+i]);
wr_lcd(dat,*(temp+i)); //显示当前位置的数据
}
}
}
}
/*------------------初始化-----------------*/
void lcd (void)
{
P5DIR=0xff;
P5OUT |=cs1;
P5OUT |=cs2;
wr_lcd (comm,disp_off);
wr_lcd (comm,disp_on);
}
/*---指定位置(x,y)显示row_xl行(每行row_yl个)汉字(大小8xl*yl)---*/
void chn_disps (uchar x,uchar y,uchar m) //x为页初始,y为列初始,m为数字变量。
{
uchar i,j,k,d,b;
d=m/10;
b=m%10;
wr_lcd (comm,disp_on);
temp=Temper;
for(k=0;k<2;k++)
{
for(j=0;j<2;j++)
{
wr_lcd (comm,disp_x+x+j);
wr_lcd (comm,disp_z);
wr_lcd (comm,disp_y+y+k*8);
if(k==0)
{
for(i=0;i<8;i++){
wr_lcd (dat,a[d*16+j*8+i]);
}
}
else
{
for(i=0;i<8;i++)
{
wr_lcd (dat,a[b*16+j*8+i]);
}
}
}
}
}
//----------------- 显示强度 -------------
void chn_dispd(uchar x,uchar y,uchar m) // x为页初始,y为列初始, m为0~~64。
{
uchar i;
wr_lcd (comm,disp_x+x);
wr_lcd (comm,disp_z);
wr_lcd (comm,disp_y+y);
temp=light;
for(i=0;i<m;i++)
wr_lcd (dat,*(temp+i));
}
/*——————显示函数区——————*/
void disp1 (uchar q,uchar x,uchar c) //显示数字
{
P5OUT |=cs2;P5OUT &=~cs1;
chn_disps(q,x,c);
}
void disp2 (uchar t,uchar o,uchar v) //显示光强度
{
lat_dispL1(0x00,0x00)
P5OUT |=cs2;P5OUT &=~cs1;
chn_dispd(t,o,v);
}
//*********************主程序**************************//
void init_lcd(void)
{
WDTCTL=WDTPW+WDTHOLD;
p=abc;
lcd ();
lat_disp(0x00,0x00);
show_p1();
show_p2();
show_p3();
void show_pag0(void)
{
lat_disp(0x00,0x00);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp (0,32,2,16,2,2,sy11);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp (0,0,2,16,2,2,sy21);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp(4,16,2,16,1,3,sy13);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(4,0,2,16,1,3,sy23);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp(6,16,2,16,1,3,sy14);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(6,0,2,16,1,4,sy24);
}
void show_pag1(void)
{
lat_disp(0x00,0x00);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp (0,0,2,16,2,4,de11);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp (0,0,2,16,2,3,de21);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp(4,0,2,16,2,4,de13);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(4,0,2,16,2,3,de23);
}
void show_pag21(void)
{
lat_disp(0x00,0x00);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp (0,0,2,16,2,4,ds11);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp (4,0,2,16,2,4,ds13);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(0,0,2,16,2,1,ds21);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(4,0,2,16,2,1,ds23);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(0,48,2,8,2,2,ds15);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(4,40,2,8,2,3,ds16);
disp1(0,32,shishu_inner);
disp1(2,32,shishu_out);
disp1(4,24,WetI);
disp1(6,24,WetO);
}
void show_pag22(void)
{
lat_disp(0x00,0x00);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp(0,0,2,16,2,4,ds14);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp(5,0,2,16,1,3,ds17);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(5,0,2,16,1,2,ds18);
disp2(0,0,LightI);
disp2(2,0,lightO);
}
void show_pag3(void)
{
lat_disp(0x00,0x00);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp(0,0,2,16,1,4,dw51);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(0,0,2,16,1,4,dw52);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp(2,0,2,16,1,4,dw53);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(2,0,2,16,1,4,dw54);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp(4,0,2,16,1,4,dw55);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(4,0,2,16,1,4,dw56);
P5OUT |=cs1;P5OUT &=~cs2;
chn_disp(6,0,2,16,1,4,dw57);
P5OUT |=cs2;P5OUT &=~cs1;
chn_disp(6,0,2,16,1,4,dw58);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -