单片机C语言编程问题。怎么实现按键切换两个子程序啊。。(时钟和温度)
voidmain(){uinttime;option(6,59,30);TIMECON=0x53;INTVAL=0x01;IEIP2=0xa4;EA=1;initts()...
void main()
{
uint time;
option(6,59,30);
TIMECON = 0x53;
INTVAL = 0x01;
IEIP2 = 0xa4;
EA = 1;
initts(); //初始化18b20
while(1){if(key==1){
time = hour*100 + min;
ShowTest(time);
delay();
}
if(key==0)
//实时的获取温度,并显示
{
gettempts();
display(t);
}
} 展开
{
uint time;
option(6,59,30);
TIMECON = 0x53;
INTVAL = 0x01;
IEIP2 = 0xa4;
EA = 1;
initts(); //初始化18b20
while(1){if(key==1){
time = hour*100 + min;
ShowTest(time);
delay();
}
if(key==0)
//实时的获取温度,并显示
{
gettempts();
display(t);
}
} 展开
3个回答
2012-07-05
展开全部
应该用一个标志位,如果你这种是普通的按键,即按下时是低电平,松开时是高电平的,大概这样写,在main声明一个变量,作为标志位.
char Flag;
然后按键按下时,直到弹起按键才改变Flag的状态。
if(!Key)
{
while(!Key);
Flag=~Flag;
}
if(Flag)
{
time = hour*100 + min;
ShowTest(time);
delay();
}
else
{
gettempts();
display(t);
}
把这个放在while(1)中,就可以了。
希望我的回答对你有帮助,有什么问题欢迎一起探讨。
char Flag;
然后按键按下时,直到弹起按键才改变Flag的状态。
if(!Key)
{
while(!Key);
Flag=~Flag;
}
if(Flag)
{
time = hour*100 + min;
ShowTest(time);
delay();
}
else
{
gettempts();
display(t);
}
把这个放在while(1)中,就可以了。
希望我的回答对你有帮助,有什么问题欢迎一起探讨。
追问
因为程序这里放不下,可不可以给个邮箱。。一块帮我改改这个程序。。。。。谢谢!
追答
1134336556@qq.com
展开全部
时钟和温度 都是在显示子程序中 显示的 显示子程序的 变量 用形参传递
进行切换时,把显示的形参改为 温度和时间 就行了啊
具体变量为温度或时间,就看你的按键判断啊标志决定 不就行了吗
求最佳 。。。
进行切换时,把显示的形参改为 温度和时间 就行了啊
具体变量为温度或时间,就看你的按键判断啊标志决定 不就行了吗
求最佳 。。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
默认情况下,你可以让程序只显示时间,当温度按键按下不松开,此时让程序显示温度,松开按键后,继续显示时间
默认情况下,你可以让程序只显示时间,当温度按键按下松开后,此时让程序延时显示温度5秒,然后自动退出
默认情况下,你可以让程序只显示时间,当温度按键按下松开后,此时让程序延时显示温度5秒,然后自动退出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询