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; } }
我觉得这两地方有问题1.void delay(unsigned long int us)形参的类型只要有unsigned long 就成定义变量为长整形,不用加int在就是你的优化级别,级别太高会把像这样while(us--);的语句优化掉。没有延时效果。2.num1=0; 这个应该=1;吧你后面switch里没有0的选项。
答:单片机语言是一种 低级的计算机语言 用这种低级语言来编写程序就叫单片机编程,这种语言能直接被计算机识别,而高级语言如 C ,C++, JAVA等等语言是不...详情>>
答:清华大学出版的c语言教程详情>>
答:c++ 是程序语言 不是系统 谢谢详情>>