各位师傅,您们好
我有P1口做按钮,用到P1.0,P1.1,P1.2,P1.3,P1.4 做按钮,支持复合按钮,就是多个按钮可以同时按下。对应数组
uint data yanshi[32]={0,3,5,10,20,30,60,120,180,240,300,360,480,600,900,1200,1500,1800,2700,3600,4200,
4800,5400,6000,6600,7200,7800,8400,9000,9600,10200,10800}; //延时秒数
按钮和数组对应程序如下:
uchar temp;
temp=P1;
temp=~temp;
temp=temp&0x1F;
YS=yanshi[temp];
现在的问题,如果YS指定的某个,对应参数正确,例如YS=yanshi[5];延时就是20秒,但是用按钮的程序YS=yanshi[temp]不稳定,有时候20秒,有时候40秒才停,就是多跑了几次,检测问题应该出现在上面的读键盘程序。希望师傅们帮我看看怎样编写,我学单片机时间比较短,水平有限,非常感谢。
|