www.pudn.com > newrlb.rar > lcd.h
/* * copyright (c) 兰州瑞德高科技有限公司电专项目组 * all rights reserved. * 文件名称: lcd.c * 摘 要: lcd的显示控制 * 当前版本: v1.0 * 作 者: 杨晓卫 * 完成日期: 2004.7.29 */ #ifndef LCD_H #define LCD_H #include#include "predef.h" char *LCD=LCDMEM; uchar BufferDat[10]; uchar number[10]={ 0xfa ,//0 0x60 ,//1 0xd6 ,//2 0xf4 ,//3 0x6c ,//4 0xBC ,//5 0xbe ,//6 0xe0 ,//7 0xfe ,//8 0xfc //9 }; void Clear_LCD(void); //void Off_LCD(void); void Set_digit(uchar digit,uchar data); //void Set_day(void); void Set_hour(void); void Set_pleasebuy(void);//请存 void Set_cunru(void); //存入 void Set_cardwrong(void);//插卡错 //void Set_ganrao(void);// 电磁干扰 void Set_chaibiao(void);//拆表破坏 //void Set_xianlu(void);// 线路破坏 void Set_fakai(void);// 阀开 void Set_faguan(void);// 阀关 void Set_reliang(void);//reliang void Set_battery(void);// battery void Set_left(void);//余额 void Set_temp(void);//温度 void Set_point(uchar digit);// void delay10us(void); void Set_MWh(void); void Set_KWh(void); void Set_MJ(void); void Set_GJ(void); void Set_leiji(void);//累积 void Set_shunshi(void);//瞬时 void Set_liuliang(void); void Set_cardok(void); void Set_number(ulongint number,int decimal); void Set_input(void); void Set_output(void); //进水回水温度指示 void Clear_LCD(void) { uchar i; for(i=0;i<10;i++) { LCD[i]=0; } } void Set_digit(uchar digit,uchar data) { LCD[8-digit]|=number[data]; } /* void Set_day(void) { LCD[9]|=0X04; } */ void Set_hour(void) { LCD[9]|=0X08; } void Set_pleasebuy(void) { LCD[9]|=0x02; } void Set_cunru(void) { LCD[9]|=0x01; } void Set_cardwrong(void) { LCD[9]|=0X80; } /* void Set_ganrao(void) { LCD[9]|=0x40; } */ void Set_chaibiao(void) { LCD[9]|=0x20; } /* void Set_xianlu(void) { LCD[9]|=0x10; } */ void Set_fakai(void) { LCD[1]|=0X01; } void Set_faguan(void) { LCD[4]|=0X01; } void Set_reliang(void) { LCD[8]|=0X04; } void Set_battery(void) { LCD[8]|=0x02; } void Set_left(void) { LCD[8]|=0x08; } void Set_temp(void) { LCD[7]|=0X01; } void Set_point(uchar digit) { if(digit!=0) LCD[7-digit]|=0x01; } void Set_MWh(void) { LCD[8]|=0X40; } void Set_KWh(void) { LCD[8]|=0X80; } void Set_MJ(void) { LCD[8]|=0X20; } void Set_GJ(void) { LCD[8]|=0X10; } void Set_leiji(void) { LCD[0]|=0X01; } void Set_input(void) { LCD[0]|=0X20; } void Set_output(void) { LCD[0]|=0X36; } void Set_shunshi(void) { LCD[2]|=0X01; } void Set_liuliang(void) { LCD[3]|=0X01; } void Set_number(ulongint number,int decimal) //decimal小数点 { uint rest; uint i=0; if((number<100)&&(decimal==1)) { while((number!=0)||(i<(decimal+1))) { rest=number%10; number=number/10; i++; Set_digit(i,rest); Set_digit(3,0); } Set_point(decimal); } else if(!((number<1000)&&(decimal==2))) { while((number!=0)||(i<(decimal+1))) { rest=number%10; number=number/10; i++; Set_digit(i,rest); } Set_point(decimal); } if((number<1000)&&(decimal==2)) { while((number!=0)||(i<(decimal+1))) { rest=number%10; number=number/10; i++; Set_digit(i,rest); Set_digit(4,0); } Set_point(decimal); } else if(!((number<100)&&(decimal==1))) { while((number!=0)||(i<(decimal+1))) { rest=number%10; number=number/10; i++; Set_digit(i,rest); } Set_point(decimal); } } #endif