C语言单片机

来源:百度知道 编辑:UC知道 时间:2024/07/01 04:42:42
题目是按一下控制p3^3的按纽,按一下使二极管的偶数的那几个二极管亮,再按一下使奇数的亮,再按一下偶数的量,在按奇数,依此下去,下面是这个程序,请问下有时会出现不行,老师说是按建的问题,叫我再里面加个延时,可是我不知道加在哪里,还有加那里起什么作用,请大家帮我看看加在哪里,说明起什么作用#include <reg52.h>
#define dis P0
sbit k=p3^3;
void main()
{int t,i;
while(1)
{if((k==0)&&(t==0))
t=1;
if((k==1)&&(t==1))
{dis=0xaa;i=1;}
if((k==0)&&(i==1))
i=0;
if((k==1)&&(i==0))
{dis=0w55;t=0;} }}

按键防抖
void delay (unsigned int cnt){
for(;cnt>0;cnt--);

}
void main()
{int t,i;
while(1)
{if((k==0)&&(t==0))
t=1;
if(k==1){
delay(100);//加在这里
if((k==1)&&(t==1))
{dis=0xaa;i=1;}
if((k==0)&&(i==1))
i=0;
if((k==1)&&(i==0))
{dis=0w55;t=0;} }
}}