📄 ex3_5.c
字号:
//程序:ex3_5.c
//功能:采用switch语句实现的模拟汽车转向灯控制程序
#include <reg51.h> //包含头文件REG51.H
sbit P1_0=P1^0;
sbit P1_1=P1^1;
void delay(unsigned char i); //延时函数声明
void main() //主函数
{
unsigned char ledctr; //定义转向灯控制变量ledctr
P3=0xff; //P3口作为输入口,必须先置全1
while(1) {
ledctr=P3; //读P3口的状态送到ledctr
ledctr=ledctr&0x03; //与操作,屏蔽掉高6位无关位,取出P3.0和P3.1引脚的状态(0x03即二进制数00000011B)
switch (ledctr)
{
case 0:P1_0=1;P1_1=0;break; //如P3.0、P3.1都为0则点亮左、右灯
case 1:P1_1=0; break; //如果P3.1(右转向灯)为0则点亮右灯
case 2:P1_0=0; break; //如果P3.0(左转向灯)为0则点亮左灯
default: ; //空语句,什么都不做
}
delay(200); //延时
P1_0=1; //左转灯回到熄灭状态
P1_1=1; //右转灯回到熄灭状态
delay(200); //延时
}
}
//函数名:delay
//函数功能:实现软件延时
//形式参数:unsigned char i;
// i控制空循环的外循环次数,共循环i*255次
//返回值:无
void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数
{
unsigned char j,k; //定义无符号字符型变量j和k
for(k=0;k<i;k++) //双重for循环语句实现软件延时
for(j=0;j<255;j++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -