📄 lcd1.c
字号:
const unsigned char gf9[]={0x3F,0xF8,0xCF,0xE7,0xF7,0xDF,0xF7,0xDF,0xF7,0xDD,0xC7,0xE1,0xFF,0xFD,0xFF,0xFF
}; //黑底白字 G
const unsigned char hf9[]={0xF7,0xDF,0x07,0xC0,0xF7,0xDE,0xFF,0xFE,0xFF,0xFE,0xF7,0xDE,0x07,0xC0,0xF7,0xDF
}; //黑底白字 H
const unsigned char if9[]={0xFF,0xFF,0xF7,0xDF,0xF7,0xDF,0x07,0xC0,0xF7,0xDF,0xF7,0xDF,0xFF,0xFF,0xFF,0xFF
}; //黑底白字 I
const unsigned char jf9[]={0xFF,0x3F,0xFF,0x7F,0xF7,0x7F,0xF7,0x7F,0x07,0x80,0xF7,0xFF,0xF7,0xFF,0xFF,0xFF
}; //黑底白字 J
const unsigned char kf9[]={0xF7,0xDF,0x07,0xC0,0x77,0xDF,0x3F,0xFE,0xD7,0xD9,0xE7,0xC7,0xF7,0xDF,0xFF,0xFF
}; //黑底白字 K
const unsigned char kongge[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
const unsigned char wuxing[]={0x40,0x00,0xC0,0x00,0x40,0x41,0x40,0x39,0x40,0x26,0x60,0x10,0x1C,0x10,0x03,0x08,
0x1C,0x08,0x60,0x10,0x40,0x26,0x40,0x39,0x40,0x41,0xC0,0x00,0x40,0x00,0x00,0x00
}; //☆
const unsigned char dayuhao[]={0x00,0x00,0x08,0x20,0x10,0x10,0x20,0x08,0x40,0x04,0x80,0x02,0x00,0x01,0x00,0x00
}; //>
const unsigned char xiaoyuhao[]={0x00,0x00,0x00,0x01,0x80,0x02,0x40,0x04,0x20,0x08,0x10,0x10,0x08,0x20,0x00,0x00
}; //<
const unsigned char xiaom[]={0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x00,0x80,0x3F,0x80,0x20,0x80,0x00,0x00,0x3F
}; //m
const unsigned char xiaoi[]={0x00,0x00,0x80,0x20,0x98,0x20,0x98,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00
}; //i
const unsigned char xiaon[]={0x80,0x20,0x80,0x3F,0x00,0x21,0x80,0x00,0x80,0x00,0x80,0x20,0x00,0x3F,0x00,0x20
}; //n
const unsigned char k1[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x3F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(1)
const unsigned char k2[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0x00,0x00,0x18,0x38,0x04,0x24,0x04,0x22,0x04,0x22,
0x04,0x21,0xF8,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(2)
const unsigned char k3[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0x00,0x00,0x18,0x18,0x04,0x20,0x84,0x20,0x84,0x20,
0x44,0x21,0x38,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(3)
const unsigned char k4[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0x00,0x00,0x80,0x03,0x60,0x02,0x1C,0x02,0x02,0x02,
0xFE,0x3F,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(4)
const unsigned char k5[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0x00,0x00,0xFC,0x19,0x84,0x20,0x44,0x20,0x44,0x20,
0x44,0x20,0x84,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(5)
const unsigned char k6[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0x00,0x00,0xF8,0x1F,0x04,0x21,0x84,0x20,0x84,0x20,
0x84,0x20,0x18,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(6)
const unsigned char k7[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0x00,0x00,0x1C,0x00,0x04,0x00,0x04,0x00,0x04,0x3E,
0xC4,0x01,0x24,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(7)
const unsigned char k8[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0x00,0x00,0x78,0x1F,0x84,0x20,0x84,0x20,0x84,0x20,
0x84,0x20,0x78,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(8)
const unsigned char k9[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0x00,0x00,0xF8,0x18,0x04,0x21,0x04,0x21,0x04,0x21,
0x84,0x20,0xF8,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(9)
const unsigned char k10[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0xF8,0x1F,
0x04,0x20,0x04,0x20,0x04,0x20,0xF8,0x1F,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(10)
const unsigned char k11[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(11)
const unsigned char k12[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0x18,0x3C,0x04,0x22,
0x04,0x21,0x04,0x21,0x84,0x20,0x78,0x38,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(12)
const unsigned char k13[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0x18,0x18,0x04,0x20,
0x84,0x20,0x84,0x20,0x44,0x21,0x38,0x1E,0x00,0x00,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(13)
const unsigned char k14[]={0xFC,0x3F,0x02,0x40,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x04,
0x38,0x04,0x04,0x04,0xFC,0x3F,0x00,0x04,0x00,0x04,0x02,0x40,0xFC,0x3F,0x00,0x00
}; //(14)
unsigned char line;
unsigned char pagenum;
void lcd_init(void)
{
CLEAR_LRST();
// NOP();
// NOP();
SET_LRST();
// NOP();
// NOP();
lcdwr(0,0,0xa4);
lcdwr(1,0,0xa4);
lcdwr(0,0,0xa9);
lcdwr(1,0,0xa9);
lcdwr(0,0,0xa0);
lcdwr(1,0,0xa0);
lcdwr(0,0,0xc0);
lcdwr(1,0,0xc0);
lcdwr(0,0,0xaf);
lcdwr(1,0,0xaf);
}
void clear_lcd(void)
{
line=61;
LCDF(2);
LCDF(0);
line=62;
LCDF(2);
LCDF(0);
}
void LCDF(unsigned char pagenum)
{
unsigned char dd,i;
unsigned char rlflg,diflg,lenth;
unsigned char sd;
if(line>61)
{
rlflg=1;
sd=line-62;
lenth=122-line+1;
}
else
{
rlflg=0;
sd=0;
lenth=line;
}
diflg=0;
dd=0xb8|pagenum;
lcdwr(rlflg,diflg,dd);
for(i=0;i<lenth;i++)
{
diflg=0;
lcdwr(rlflg,diflg,sd+i);
diflg=1;
lcdwr(rlflg,diflg,0);
}
pagenum=pagenum+1;
diflg=0;
dd=0xb8|pagenum;
lcdwr(rlflg,diflg,dd);
for(i=0;i<lenth;i++)
{
diflg=0;
lcdwr(rlflg,diflg,sd+i);
diflg=1;
lcdwr(rlflg,diflg,0);
}
}
void LCD_DIS(unsigned char width,unsigned char const*chardata)
{
unsigned char dd,rlflg,diflg;
unsigned char sd,i;
if(line<61)
{
rlflg=0;
sd=line;
}
else
{
rlflg=1;
sd=line-61;
}
for(i=0;i<width;i++)
{
diflg=0;
dd=0xb8|pagenum;
lcdwr(rlflg,diflg,dd);
lcdwr(rlflg,diflg,sd+i);
diflg=1;
lcdwr(rlflg,diflg,chardata[2*i]);
pagenum=pagenum+1;
diflg=0;
dd=0xb8|pagenum;
lcdwr(rlflg,diflg,dd);
pagenum=pagenum-1;
lcdwr(rlflg,diflg,sd+i);
diflg=1;
lcdwr(rlflg,diflg,chardata[2*i+1]);
}
line=line+width;
}
void lcdwr(unsigned char rlflg,unsigned char diflg,unsigned char data)
// RLFLG(0:L,1:R),DIFLG(D:1,I:0),A(DATA)
{
unsigned char i;
SET_E1();
SET_E2();
for(i=0;i<10;i++);
CLEAR_ALE();
NOP();
NOP();
if (diflg)
SET_ALE();
NOP();
NOP();
DDRA = ~data;
NOP();
CLEAR_LCDE12(rlflg);
if(rlflg)
for(i=0;i<10;i++);
SET_LCDE12(rlflg);
CLEAR_ALE();
}
void display_1(void) //display 中大附属一院,内科手术记录仪
{
line=5;
pagenum=2;
LCDF(2);
LCD_DIS(8,zhongz9);
LCD_DIS(8,zhongy9);
LCD_DIS(16,da9);
LCD_DIS(16,fu9);
LCD_DIS(8,yiz);
LCD_DIS(8,yiy);
LCD_DIS(16,ji88);
LCD_DIS(16,zheng204);
LCD_DIS(16,ke9);
LCDF(2);
line=21;
pagenum=0;
LCDF(0);
LCD_DIS(8,c9);
LCD_DIS(8,p9);
LCD_DIS(8,c9);
LCD_DIS(8,rr9);
LCD_DIS(8,jiz);
LCD_DIS(8,jiy);
LCD_DIS(16,lu9);
LCD_DIS(16,yi999);
LCDF(0);
}
unsigned char u_ser(void)
{
unsigned int i;
unsigned char j=0,y1,y2,y3;
unsigned char ss0,ss1;
timecounter=0;
gg: while(j<3)
{
if(timecounter>200)
return 1;
ss0=scankey();
if(ss0==0)
{
for(i=0;i<20000;i++);
ss1=keyvalue();
if(ss1>=0x0a)
goto gg;
else
{
if(j==0)
{
y1=ss1;
line=70;
pagenum=0;
get_b(y1);
LCD_DIS(8,cc1);
while(!scankey()){;}
j++;
}
else if(j==1)
{
y2=ss1;
get_b(y2);
LCD_DIS(8,cc1);
while(!scankey()){;}
j++;
}
else if(j==2)
{
y3=ss1;
get_b(y3);
LCD_DIS(8,cc1);
while(!scankey()){;}
j++;
}
}
}
}
cradserno=y1*100+y2*10+y3;
return 0;
}
void display_setuptime(void)
{
line=13;
pagenum=2;
LCDF(2);
LCD_DIS(16,xiu);
LCD_DIS(16,zheng);
LCD_DIS(16,xi011);
LCD_DIS(16,tong011);
LCD_DIS(16,shi0);
LCD_DIS(16,jian011);
LCDF(2);
}
void update_time(void)
{
line=5;
pagenum=2;
LCDF(2);
LCD_DIS(8,kongbai);
LCD_DIS(8,kongbai);
LCD_DIS(8,nian011);
LCD_DIS(8,kongbai);
LCD_DIS(8,kongbai);
LCD_DIS(8,yue011);
LCD_DIS(8,kongbai);
LCD_DIS(8,kongbai);
LCD_DIS(8,ri011);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -