分享

51单片机中按键程序用C怎么写

 lixinhecom 2017-07-27
这个太简单了吧,记住写程序定时器要一直跑,建立一个时基,像个手表的时间一样要一直跑,即有time_125us,time_1ms,time_100ms,time_1s,time_1min,time_1hour等时间变量建立时基一直走。其它程序可以分时扫描也可以轮流扫描,不能停留死等,像电脑里的程序一样表面看起来各个程序是一直运行的,即各个程序中不能有delay_1ms之类的函数,如果要定时应该申请一个变量在时基里处理,如等待2s可以这么写
if(step==0){ time=2,time_100ms=0,step=1;}
if((step==1)&&(time==0)){//2s到
//等待2s后要执行的代码
}
在时基时每1s把time减1,减到0为止即if(time)time--;
对按键的写法一般用采集的方法如按键后IO为低
if(!IO){ //低电平,有按键
key_time++;
if((key_time==100)&&(!key_flag)){ //已经赋值了就不再赋值了
key_flag=1;
key_flag_bak=1;
}
else{ //无按键
key_time=0;
key_flag_bak=0;
}

if(key_flag&&(!key_flag_bak)){ //有按键并松开,即松开响应
time=2; //亮2s
key_flag=0;//把键值清0

if(time){
LED_ON;//灯亮
}
else LED_OFF;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多