设计思路:
①:按下按钮1,左转向灯闪烁。
②:按下按钮2,右转向灯闪烁。
③;按键1,2同时按下,开启双闪(同频率)
仿真元器件清单:
AT89C51
BUTTON
CAP
CRYSTAL
RES
LED-BLUE
LED-YELLOW
SW-SPDT
实现程序:
#include<reg51.h>
#define time 20000
sbit LED_left1=P0^0;
sbit LED_left2=P0^1;
sbit LED_right1=P0^2;
sbit LED_right2=P0^3;
sbit P3_0=P3^0;
sbit P3_1=P3^1;
void delay(unsigned int i)
{ while(i--);}
void main()
{
while(1)
{
P3_0=1;
P3_1=1;
// 定义p3输入口表达式,并置1
switch(P3)
{
case 0xfc:
// 1111 1100
LED_left1=0;LED_left2=0;
LED_right1=0;LED_right2=0;
break;
// 打开双闪
case 0xfd:
// 1111 1101
LED_right1=0;LED_right2=0;
LED_left1=1;LED_left2=1;
break;
// p3,0端口置0时,打开右转向灯,蓝灯
case 0xfe:
// 1111 1110
LED_left1=0;LED_left2=0;
LED_right1=1;LED_right2=1;
break;
// p3,1端口置1时,打开左转向灯,黄灯
case 0xff:
// 1111 1111
LED_left1=1;LED_left2=1;
LED_right1=1;LED_right2=1;
break;
// 关闭转向灯
}
delay(20000);
LED_left1=1;LED_left2=1;
LED_right1=1;LED_right2=1;
delay(20000);
}
}
注:上面代码复制,可能会有额外乱码,需要自行审查
实现仿真图:
实现效果视频:
视频播放器
Media error: Format(s) not supported or source(s) not found
下载文件: http://www.sxlz.club/wp-content/uploads/2022/04/%E6%B1%BD%E8%BD%A6%E8%BD%AC%E5%90%91%E7%81%AF.mp4?_=1
Comments NOTHING