单片机零基础入门(5):实现独立按键控制Led灯

单片机零基础入门(5):实现独立按键控制Led灯

2023年7月14日发(作者:)

单⽚机零基础⼊门(5):实现独⽴按键控制Led灯单⽚机零基础⼊门(5):实现独⽴按键控制Led灯⼀、需求如下:独⽴按键的进阶:------需求:1、上电后,所有LED灯闪烁2、按键1–点亮LED1指⽰灯3、按键2–控制奇数灯点亮4、按键3–控制偶数灯点亮5、按键4–实现跑马灯6、当松开⼿时,返回上电状态(所有灯闪烁)。⼆、需求分析:1、上电后,所有LED灯闪烁;2、当按下独⽴按键1时,LED1点亮;当松开时,所有指⽰灯闪烁;3、当按下独⽴按键2时,奇数LED灯(LED1、LED3、LED5、LED7)亮,其他(偶数)灭;4、当按下独⽴按键3时,偶数LED灯(LED2、LED4、LED6、LED8)亮,其他(奇数)灭;5、当按下独⽴按键4时,LED指⽰灯实现跑马灯,松开时,继续所有指⽰灯闪烁;三、源代码:#include #include /*独⽴按键的进阶版:------需求:1、上电后,所有LED灯闪烁2、按键1--控制LED1的亮灭3、按键2--控制奇数灯点亮4、按键3--控制偶数灯点亮5、按键4--实现跑马灯*/void Delay1ms(unsigned int xms) //@12.000MHz{ unsigned char i, j; while(xms) { i = 2; j = 239; do { while (--j); } while (--i); xms--; }

}void twinkle() //所有LED灯闪烁{ P2 = 0;

Delay1ms(500); P2 = 0XFF; P2 = 0XFF; Delay1ms(500);}void light() //跑马灯 1111 1110{ P2 = 0XFE;

Delay1ms(500); P2 = 0XFD; Delay1ms(500); P2 = 0XFB; Delay1ms(500); P2 = 0XF7; Delay1ms(500); P2 = 0XEF; //1110 1111 Delay1ms(500);

P2 = 0XDF; //1101 1111 Delay1ms(500); P2 = 0XBF; //1011 1111 Delay1ms(500); P2 = 0X7F; //0111 1111 Delay1ms(500);}int main(){

twinkle(); //上电后,所有LED指⽰灯闪烁 while(1) { /*

通过P2来控制,是操作单⽚机寄存器(8位);

通过P2_0来控制,是控制单个LED灯; */ if(P3_1 == 0) //控制LED1的亮灭 { P2_0 = 0; Delay1ms(500); } /*控制奇数灯点亮 1010 1010 */ else if(P3_0 == 0) { P2 = 0XAA; Delay1ms(500); }

/*控制偶数灯点亮*/ else if(P3_2 == 0) { P2 = 0X55; Delay1ms(500); }

//第四个按键按下闪现跑马灯 else if(P3_3 == 0)

{ light(); }

else //所有灯闪烁 { twinkle(); }

} //return 0;

}四、解释:1、void Delay1ms(unsigned int xms)—>延时函数2、void twinkle() —>所有LED灯闪烁3、void light() —>跑马灯4、P3_1 == 0 —>第⼀个按键按下,按下0,松开为1。具体的P3_1对应哪个按键,需要看对应的原理图。由原理图可得出:K1—>P3_1,K2—>P3_0,K3 —>P3_2,K4 —>P3_3。5、跑马灯:跑马灯上节有说到,实际就是8个⼆进制表⽰。0为点亮,1为灭。所以:跑马灯为:1111 1110,1111 1101,11111011,1111 0111,1110 1111,1101 1111,1011 1111,0111 1111.然后转为⼗六进制,为:0xFE–>0xFD–>0xFB–>0XF7–>0xEF–>0xDF–>0xBF–>0xDF–>0xFE。原理图如下:-----------------⼈⽣在勤,不索何获!-------------

发布者:admin,转转请注明出处:http://www.yc00.com/web/1689330743a230975.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信