内部大循环只要把扫描程序等需要不停执行的程序写在
while(1)
{
。。。。。。(这里)
}
识别按键只要与按键相连的引脚检测到低电平即可
给你一个按键范例:
假如按键接到单片机P2^0引脚
sbit K = P2^0;
if(K == 0)
{
delay(5); //延时去抖
if(K == 0) //确定键按下
{
while(!K); //判断松手
。。。。。(功能函数)
}
}
1,单片机的指令系统执行以下指令就可识别按键被按下,原理就是判别连接按键的端口是否发生了电平变化.用 JNB P1.0,TO_OFF 就可判定如果P1.0脚为低电平就转去TO_OFF那执行.
2,循环是单片机执行指令系统中的转移指令来达到循环.可以用JMP无条件的跳转来循环,和如上题那样有条件判断后的循环.当然也可以利用定时器产生的定时中断来不断的执行中断程序来达到循环.
对于C语言的,单片机内部使用while(1)这个语句实现不断地循环,如果是用汇编来写的话,我记得有伪指令可以实现跳转功能,这跳转功能就能实现不断地循环,汇编还有什么条件转移啊,无条件转移啊,都可实现循环
识别按键按下,对于C语言,可以使用循环语句加上键盘扫描程序来实现,就是不断地扫描端口当前的状态,一旦扫描端口信号被改变即立刻延时一段时间,然后执行一个指定的语句,这个语句可以实现你想要的放出声音或是其他的功能。
语句执行完后,即再次开始扫描,不断地循环
单片机的I/0口默值是高电平,当按键按下时,会使该引脚为低电平。