问题在红 {MOD}部分:
while(1)
{
if(B1==0&BEEP==1) //手动喂食
{
BEEP=0;
delay1(3000);// 当这里暂停10秒时 1602显示的时间会静止,当暂停结束后时间直接增加10秒显示 ,怎么解决呢?
BEEP=1;
}
if(B2==0&DENG==1) //手动开灯
{DENG=0;delay1(200);}
if(B2==0&DENG==0) //手动关灯
{DENG=1; write_posi
tion(2,16); lcd_wdat(0x20); delay1(200);}
kll:
if(B3==0&BEIDENG==1) //手动开背灯
{BEIDENG=0;delay1(200);}
if(B3==0&BEIDENG==0) //手动关背灯
{BEIDENG=1;write_position(2,16); lcd_wdat(0x20); delay1(200);}
Play_nowtime();读取
芯片时间并显示到1602
}
void Play_nowtime()
{
read_nowtime(0x81,init,7); //读出当前时间,读出7个字节
write_position(2,1);
lcd_wdat(((init[2]&0xf0)>>4)+0x30);
write_position(2,2);
lcd_wdat('0'+(init[2]&0x0f)); //读小时
// write_position(2,3);
// lcd_wdat(':');
write_position(2,4);
lcd_wdat('0'+((init[1]&0xf0)>>4));
write_position(2,5);
lcd_wdat('0'+(init[1]&0x0f)); //读分钟
// write_position(2,6);
// lcd_wdat(':');
write_position(2,7);
lcd_wdat('0'+((init[0]&0xf0)>>4));
write_position(2,8);
lcd_wdat('0'+(init[0]&0x0f)); //读秒
write_position(1,1);
lcd_wdat('0'+((init[6]&0xf0)>>4));
write_position(1,2);
lcd_wdat('0'+(init[6]&0x0f)); //读年
// write_position(1,3);
// lcd_wdat('/');
write_position(1,4);
lcd_wdat('0'+((init[4]&0xf0)>>4));
write_position(1,5);
lcd_wdat('0'+(init[4]&0x0f)); //读月
// write_position(1,6);
// lcd_wdat('/');
write_position(1,7);
lcd_wdat('0'+((init[3]&0xf0)>>4));
write_position(1,8);
lcd_wdat('0'+(init[3]&0x0f)); //读日
write_position(1,15);
lcd_wdat('0'+(init[5]&0x0f)); //读周
flash();
}
2.在main
函数中 怎么实现无按键10秒后 BEIDENG=1(就是无操作10秒后 1602背景灯关闭(1602背景接地端接P2.2口)
我这个是 定时喂鱼食的装置 是自己用的。刚学单片机所以很多都是现抄现卖!
一周热门 更多>