1、定义一个全局变量用于延时,者信在多选框中的延时时间均使用该定义的变量。
2、当勾选多选框时,先获取输野渣入框中的内容赋值给定义的变量,然后执行首脊轮脚本即可。
如果对时间要求不精确,用软延时即可。#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit s=P1^0
sbit led=P1^1
void delayms(uint i) //1ms延时程序
{
uchar j
for(i>0i--)
{
for(j=0j<125j++)//如果延时时间误差较大,可按比例改变125这个数
//取值范围0-255,数值越大早首局,延时陆让越长
{}
}
}
void delay1s(uint i) //1s延时程序芹野
{
for(i>0i--){delay1ms(1000)}
}
void main()
{
led=0
while(1)
{
if (s==0)
{
delayms(20)
if (s==0){delay1s(60)led=1 }
}
if(led==1){delay1s(1800)led=0}
}
}
如果对时间要求精确,则要用到定时器,还要确保电路外接有晶振,并已知晶振频率
嘿嘿旅迹 俺来帮你解答1 按键处理的 *** 作流程:
当发现有键按下时, 为了消除按键的抖动需要软件延时5~10ms
经过延时后再读入按键的状态 如果按键有效 则进入相应的按键处理程序
否则(按键无效)可以视逗镇陵为干扰。
2 一般都是采用山戚软件延时(即调用一个延时子程序 延时5ms )
不要使用定时计数器来延时 会浪费单片机的硬件资源。
呵呵 满意 就选满意回答
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)