永发信息网

C语言关于单片机单键控制灯三种状态问题

答案:1  悬赏:60  手机版
解决时间 2021-05-24 11:53

我写了个单键控制单灯三种状态的程序,就是不知道为什么按键效果不行,我的程序也没有错,就是运行后按第一次是快闪,按第二次是慢闪,按第三次是长亮,按第四次是关闭,然后再循环,可是我按键却不是这效果,请高手指点一下!

#include<reg52.h>

sbit light5=P1^4;

sbit key1=P3^4;

void scankey1(void);

void delay(unsigned long int us)
{
while(us--);
}
void main()
{
while(1)
{
scankey1();
}
}
void scankey1()
{
unsigned char num1;
if(key1==0)
{
delay(50);
if(key1==0)
{
num1++;
if(num1==5)
num1=0;
}
}
switch(num1)
{
case 1: light5=0;delay(20000);light5=1;delay(20000);break;
case 2: light5=0;delay(80000);light5=1;delay(80000);break;
case 3: light5=0;break;
case 4: light5=1;break;
}
}

最佳答案

我觉得这两地方有问题


1.void delay(unsigned long int us)


形参的类型只要有unsigned long 就成定义变量为长整形,不用加int


在就是你的优化级别,级别太高会把像这样while(us--);的语句优化掉。没有延时效果。


2.num1=0;


这个应该=1;吧


你后面switch里没有0的选项。



我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
交个女朋友才两天。就惹她生气了?该咋办呢?
带牙套用什么牙膏好,带牙套用什么牌子牙膏好
青山区武汉七彩空间立体仿生壁纸漆湖北总代理
魔兽世界萨满篇
大冶市黄石燎原中学地址是什么,有没有知道的
我的好作文在哪啊?
东金马庄站自行车租赁点地址在哪,我要去那里
淮阳县周口小公牛(淮阳总部)地址是什么,有没
魔法卡片的QQ秀是永久的吗?
喜欢一个人的心但不喜欢他的长相和家庭,能和
DNF我为什么升级不了图标啊?听说要重新绑定
江华瑶族自治县永州新概念网咖地址在哪里啊
为什么我的狼不回家?
为什么审核总是未通过2
隆回县邵阳隆回农村商业银行(滩头支行)怎么去
推荐资讯
大同区大庆凯达物流有限公司在哪里啊,我有事
衡南县衡阳长城国标不锈钢(衡南县鸡笼镇中心
源汇区漯河中原药店(湘江西路店)地址在哪,我
求购视频中的这双靴子!
郑州大学专科和河大专科有计算机应用专业吗
岳塘区湘潭蒙帝卡罗茶酒楼在哪里啊,我有事要
励志努力挣钱的句子,激励自己挣钱不花父母钱
我哥哥喜欢上了我的干妹妹,我该怎么办?
从东莞总站到东城职中要坐几号车
QQ黄金卡在哪有的买?
求N70智能影院4.01注册码- - !
购买吉他时能自己设计喷漆么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?