爱问知识人 爱问共享资料 医院库

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

首页

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

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

提交回答

全部答案

    2018-07-25 01:29:46
  • 我觉得这两地方有问题1.void delay(unsigned long int us)形参的类型只要有unsigned long 就成定义变量为长整形,不用加int在就是你的优化级别,级别太高会把像这样while(us--);的语句优化掉。没有延时效果。2.num1=0; 这个应该=1;吧你后面switch里没有0的选项。

    小***

    2018-07-25 01:29:46

类似问题

换一换

相关推荐

正在加载...
最新资料 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 173-192
返回
顶部
帮助 意见
反馈
关注
爱问

关注爱问微信公众号,开启知识之旅,随时随地了解最新资讯。

确定举报此问题

举报原因(必选):