制信号,P2.1输出声音信号,.P1.0-P1.3输入外部控制信号,整个软件系统也是根据这个关系连接成一个完整的系统。Р 4.2 主函数的设计Р 本LCD电子闹钟的的主程序流程图如图4.1所示:Р 图4.1 Р4.3.1 程序初始化Р 在系统开始上电时,需要.首先初始化液晶:Р void TimeInit()Р {Р (0x01); //初始化1602液晶Р (0x80); //设置现实初始坐标Р for(num=0;num<9;num++) //显示年月日Р {Р write_date(table[num]); Р delay(5);Р }Р (0x80+0x40+6); //写出时间显示部分的两个冒号Р write_date(':');Р delay(5);Р (0x80+0x40+9);Р write_date(':');Р delay(5);Р write_sfm(4,shi); //分别送去液晶显示Р (0x80+0x40+4);Р write_sfm(7,fen);Р (0x80+0x40+7);Р write_sfm(10,miao);Р (0x80+0x40+10)Р 4.3.2 闹钟的实现Р 闹钟功能的实现涉及到两个方面:闹铃时间设定和是否闹铃判别与相应处理。闹铃时间设定模块的设计可参照时间设定模块,这里着重阐述闹铃判别与处理模块的设计问题。闹铃判别与.闹铃处理的关键在于判别何时要进行闹铃。当时十位、时个位、分十位、分个位中任一位发生改变(进位)时,就必须进行闹铃判别。程序设计思想如图4.2。Р 图4.2 Р4.3.3 显示程序Р 显示程序包括时钟显示和定时显示程序。具体程序见附录。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表