write_com 0x06 ; write_com 0x80 ;
write_com 0x01 ; //液晶初始化,光标,显示开关等的初始值
P1_4 0; P0_0 1; P1_3 1; //红色LED灭,蜂鸣器不叫,继电器
DS1302_write 0x8e,0x00 ; //写使能 DS1302_write 0x8e,0x80 ; //写保护
/****************设置开启时间**************/ void open
write_com 0x01 ; //清屏 write_com 0x80 ; for i 0;i 13;i++
write_data table14[i] ; //显示 set open time delay 1000 ; write_com 0x01 ;
write_com 0x80 ; //第一行 for i 0;i 9;i++
write_data table16[i] ; //显示 h m s +e: write_com 0xc0 ; //第二行
while opennum 7 //继续输入的条件
keyscan ;
if key! 20 //有键按下
opentime[opennum] key; //键值赋给数组 write_data mo[key] ; //显示键值 opennum++; //输入的数目加1
if opennum 7&&key! 15 || opennum 7&&key 15 //如果第7位输入不是Enter键或者输入的数小于7个时就按下了Enter键
write_com 0x01 ; //清屏 write_com 0x80 ; for i 0;i 10;i++
write_data table11[i] ; //显示 Set again:
delay 1000 ; write_com 0x01 ; for i 0;i 8;i++
write_data table16[i] ; //显示 h m s +e:
opennum 0; //输入的数目清零
write_com 0xc0 ;
if opennum 7&&key 14 //如果输入的数目小于7个并且按下key14即删除键
write_com 0x01 ; write_com 0x80 ; for i 0;i 9;i++
write_data table16[i] ; //显示 h m s +e:
write_com 0xc0 ;
for i 0;i opennum-2 ;i++
write_data mo[opentime[i]] ; //把删除的数之前的数重新显示在LCD上,看上去的效果就是把最后输入的数删除了
opennum opennum-2; //输入的数目减去2,因为自加了1次,删除了1个,所以是减2
write_data ' ' ; //删除的那个位置显示空格,其实就是什么都不显示
write_com 0xc0+i ; //设置
下次写输入的数时的位置
if opennum 0 //没有输入的时候按下删除键,赋值,不然会乱码
opennum 1;
key 20; //初始键值
/****************设置关断时间**************/ void down
write_com 0x01 ; //与开启时间函数open 类似 write_com 0x80 ;
for i 0;i 13;i++
write_data table15[i] ; delay 1000 ; write_com 0x01 ; write_com 0x80 ; for i 0;i 9;i++
write_data table16[i] ; write_com 0xc0 ;
相关推荐: