问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

51单片机 不同按键不同功能 按键延迟

发布网友 发布时间:2022-04-24 16:33

我来回答

2个回答

热心网友 时间:2023-04-28 14:26

/*... 你的泵2在等待延时函数里,自然按键没用啦,你要用定时器中断.. ...*/
void time_Init0()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
unsigned char gettime = 0;
unsigned char state = 0;
void time_Init0() Interrupt 0
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
state = key_scan();
if(state >1) gettime++;
if( gettime >4 && state == 2 ) {state = 0; sb2 = 0; gettime = 0;}
if(gettime >15) {state = 0; jr = 0; gettime = 0;}
}
void key_scan(void)
{
unsigned char i;
if( sw == 0 )
{
delay(1000);
if( sw == 0) state = 1 ;
}
if( aj1 == 0 )
{
i++; //按键延迟
delay(500);
delay_sign = 1;
if(i >0) state = 2 ; //我这里选择不等待
}
if( aj2 == 0 )
{
i++; //按键延迟
delay(500);
if(i >0) state= 3 ; //我这里选择不等待
}
}
void main()
{
time_Init0() ;
while(1)
{
switch(state)
{
case 1:
sb1 = ~sw ;
break;
case 2:
sb2 = 1;
break;
case 3:
jr = 1;
break;
}
}
}
/*if( gettime >4 && state == 2 ) {state = 0; sb2 = 0; gettime = 0;}
if(gettime >15) {state = 0; jr = 0; gettime = 0;}*/
上面的函数你也可以放主函数里,主函数里就是时间控制不会太精准,在中断里则会干扰按键效率,你自己斟酌吧。追问谢谢,我是初学,有些东西还不懂,不过还是谢谢你。我再继续学习。

热心网友 时间:2023-04-28 14:26

你这时间有点长了,这样不要放在main里面,做定时器的吧,判断变量可以在里面切换
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
word文档怎么设置页码word怎么从中间开始设置页码 《祖宗模拟器》如何长寿长寿技巧分享 祖宗模拟器答案大全,你知道吗。 祖宗模拟器答案大全,哪位有? 宝石种类分为哪几类? 表格怎么自动排序号excel表格中自动生成序号技巧 表格如何自动排序仅需4步让Excel表格自动排序的方法 1.5匹富士空调电脑板开机就烧保险丝 为什么 修空调只是把拆了个压敏电阻,虽然可以运行,但这样没问题吗? 1.5富士空调电脑板一通电就烧保险丝为什么 请问如何用单片机 获取矩阵键盘各按键的按下与松开的状态 51单片机在键盘检测中,比如我要让按下按键且等我释放按键后才算按下一次按键,请问怎么编程为好?比如 有关于单片机按键控制的问题 我在看51单片机代码的时候有一个while(!K1),后面写的作用是是“按键释放”。K1是按键, 关于单片机语句While(!key1)的疑问 单片机键释放求详解 单片机51,出现按一次按键,得到多次按键的情况,怎么解决 C51单片机按键保持问题 单片机怎么让程序等待按键输入 at89c51单片机等待键释放的程序怎么写 51单片机按键释放卡死问题 丰田油耗怎么算 卡罗拉1.2t实际油耗是多少? 1.5丰田卡罗拉油耗多少 普拉多2700的实际油耗是多少? 丰田新卡罗拉油耗百公里多少? 丰田普拉多3.4油耗多少? 丰田卡罗拉自动挡的油耗是多少 牛肉午餐肉怎么开启? 丰田卡罗拉百公里油耗多少 帮我写一个单片机c程序,等待按键,按键后程序才能往下进行 单片机中按键怎么消抖 如何用按键调整单片机的延时时间 单片机中怎么样实现按键按下计数 单片机按钮弹起时有效的程序 怎么对pdf文件进行编辑? 和word、wps还是有着很大差异,如何在pdf文件上编辑文字? 小米摄像头只有储存卡可以储存吗?是不是一定要小米路由器才能储存? 米家职能摄像机在没网络的情况下还能备份录像到小米路由器吗? 小米路由器第一代R1D怎么着才可以通过普通摄像头记录,保存到路由器? 摄像机可以将视频储存在小米路由器里吗 小米摄像头可以通过无线连接的方式存储在路由器上吗 小米路由器能做米家智能摄像头的储存吗 小蚁智能摄像机网络储存只能在小米路由器吗 请问大家小米摄像头怎么链接路由器和手机啊? 小米摄像头怎么录像到储存 可以把小米路由器的硬盘作为监控录像的存储设备吧?? 求助小蚁摄像机设置里没有小米路由器存储录像的选项 小米摄像机连接小米路由器3外接硬盘的问题 网络信息编辑