**/
void delay(unsigned char ms); //延时函数 void cbusy(); //测试lcd忙碌状态函数 void wrcom(unsigned char cmd); //写指令函数 void wrdat(unsigned char dat); //写数据函数 void lcdinit(); //lcd初始化函数 void protime(); //时间处理函数 void display(); //时间显示函数 unsigned char scankey(); //按键扫描 void keywork(); // 按键功能处理函数 void naoling1(); void naoling2(); void naoling3();
/*********************************************************************
延时函数
**********************************************************************/
void delay(unsigned char ms) {
unsigned char i; unsigned char m=4;
while(ms--) {
for(i=0;i<20;i++) { do
{}while(m--); } } }
/*********************************************************************
测试lcd忙碌状态函数
**********************************************************************/
void cbusy() { do
{ P0=0xff; RS=0; RW=1; E=0;
E=0;
busy=P0&0x80; E=1;
}while(busy!=0); }
/*********************************************************************
写指令函数
**********************************************************************/
void wrcom(unsigned char cmd) {
P0=cmd; RS=0; RW=0; E=0; cbusy(); E=1; }
/*********************************************************************
写数据函数
**********************************************************************/
void wrdat(unsigned char dat) {
P0=dat; RS=1; RW=0; E=0; cbusy(); E=1; }
/*********************************************************************
lcd初始化函数
**********************************************************************/
void lcdinit() {
wrcom(0x01); //清屏
wrcom(0x38); //8位总线,5*7点阵 wrcom(0x14); //文字不动光标自动右移 wrcom(0x0c); //开显示光标不显不闪