Set_lcd_e();
Cls_lcd_e(); Set_lcd_e(); // for(i=200;i>0;i--);
// for(i=10;i>0;i--);
rdlcddata=PINA; // Cls_lcd_e(); // for(i=200;i>0;i--); // Set_lcd_e(); //for(i=200;i>0;i--); rdlcddata=PINA;
Cls_lcd_e(); DDRA=0xff; return rdlcddata; }
//读命令字
unsigned char Rd_lcd_cmd(void) {
unsigned char rdlcdcmd,i; // for(i=100;i>0;i--); // Set_lcd_rs(); Cls_lcd_e(); Cls_lcd_rs(); Set_lcd_rw(); Cls_lcd_e(); DDRA=0x00; PORTA=0xff; Set_lcd_e();
15
// for(i=200;i>0;i--); rdlcdcmd=PINA; Cls_lcd_e(); DDRA=0xff; return rdlcdcmd; }
/////////////////////////////// //lcd 初始化 void Lcd_ini(void) {
Set_lcd_cs1(); Set_lcd_cs2();
Wr_lcd_cmd(0xc0);//起始行0 Wr_lcd_cmd(0xb8);//页地址0 Wr_lcd_cmd(0x40);//列地址0 Wr_lcd_cmd(0x3f);//开显示 }
/////////////////////////////// //lcd 忙?//////////////////// unsigned char Lcd_busy(void) {
unsigned char lcdbusy; lcdbusy=Rd_lcd_cmd();
if((lcdbusy&&0x80)||(lcdbusy&&0x10)) return 1; else return 0; }
16
/*------------------清屏---------------*/ void Clr_Scr(void) {
unsigned char j,k; //CS1=1;CS2=1; Set_lcd_cs1(); Set_lcd_cs2();
Wr_lcd_cmd(Col_Addr); for(k=0;k<8;k++){
Wr_lcd_cmd(Page_Addr+k); for(j=0;j<64;j++) Wr_lcd_data(0x00); } }
//////////////////// //////////画点/////////
void pset(unsigned char x1,unsigned char y1, unsigned char data) {
unsigned char pagex; unsigned char x; unsigned char temp;
if((x1>63)||(y1>127)) { return; } else {
if(y1>63) {
17
Set_lcd_cs2(); Cls_lcd_cs1(); } else {
Set_lcd_cs1(); Cls_lcd_cs2();
}
y1=y1d; pagex=x1/8;
Wr_lcd_cmd(0xb8+pagex); Wr_lcd_cmd(0x40+y1); temp=Rd_lcd_cmd();
x=x1-pagex*8; temp=temp&((0< temp=temp^(data< } } ////////////////////////////////////////////// ////////////////////////////////////////////// ///////////////显示字符串 //输入:起始行,列号,字符串 //字库为自编字库 // unsigned char printstr(unsigned char hang,unsigned char lie,unsigned char *str) 18 { unsigned char c; unsigned char i,j,lcdpart,lcdcur; i=0; j=0; lcdpart=0; lcdcur=0; Set_lcd_cs1(); Cls_lcd_cs2(); if((lie>=16)||(hang>=4)) return 0; i=lie; while(*str) { if(i<8) { if(lcdcur!=0) { Set_lcd_cs1(); Cls_lcd_cs2(); lcdcur=0; } } else { if(lcdcur!=1) { Set_lcd_cs2(); Cls_lcd_cs1(); lcdcur=1; j=8; } 19