要求:

1、汽车车尾左右两侧各有四盏灯:黄灯、红灯、雾灯、倒车照明灯,前面有照明灯(远光、近光)、黄灯、雾灯

2、白天正常行驶时照明灯都不亮,夜间行驶时两个前照明灯都亮。

3、左转弯时左侧黄灯闪亮(2Hz),右转弯时右侧黄灯闪亮。

4、汽车刹车时,两个红灯都亮。

5、能见度低或者夜间行驶时雾灯点亮。

6、倒车时红灯、倒车照明灯亮。

获取该 程序+protues 的方式:

2、关注微信公众号下载:

     ① 关注微信公众号:Tech云  

     ②

课程设计题五:汽车尾灯控制器设计_全解析代码

3、可以关注点赞并在下方评论,我给你邮箱发过去。

一、Protues仿真图:

课程设计题五:汽车尾灯控制器设计_赋值_02

课程设计题五:汽车尾灯控制器设计_条件语句使用_03

课程设计题五:汽车尾灯控制器设计_条件语句使用_04

课程设计题五:汽车尾灯控制器设计_全解析代码_05

二、程序源码:

因为注释非常的全,这里就不再进行讲解了。

/*******************************************************************************
================================================================================
【平 台】STC89C51平台
【编 写】Sumjess
【软件版本】V2.0
【最后更新】2018年09月06日
【相关信息参考下列地址】
【网 站】
电子发烧友 http://bbs.elecfans.com/zhuti_mcu_1.html
中国电子网 http://bbs.21ic.com/icfilter-typeid-11-214.html
---------------------------------------------------------------------------------
【dev.env.】MDK4.14及以上版本
【Target 】STC89C51
第一次修订:2019/05/23
第二次修订:2018/05/24
第三次修订:2018/05/26
================================================================================
********************************************************************************/
#include <reg52.h> //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535

sbit led0 = P0^0; //led定义 前照明灯1
sbit led1 = P0^1; //led定义 前照明灯2
sbit led2 = P0^2; //led定义 左转弯灯
sbit led3 = P0^3; //led定义 右转弯灯
sbit led4 = P0^4; //led定义 红灯1
sbit led5 = P0^5; //led定义 红灯2
sbit led6 = P0^6; //led定义 雾灯1
sbit led7 = P0^7; //led定义 雾灯2
sbit led8 = P2^0; //led定义 倒车照明1
sbit led9 = P2^1; //led定义 倒车照明2

sbit key0 = P3^0; //定义夜间行驶按键
sbit key1 = P3^1; //定义左转弯按键
sbit key2 = P3^2; //定义右转弯按键
sbit key3 = P3^3; //定义刹车按键
sbit key4 = P3^4; //定义夜间活能见度低按键
sbit key5 = P3^5; //定义倒车按键



void delayms(uint z) //毫秒
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void guan_all(); //关闭所有灯

void main()
{
while(1)
{
if(key0==0) //夜间行驶
{
guan_all(); //关闭所有灯
led0 = 0; //led赋值
led1 = 0; //led赋值
}
if(key1==0) //左转弯
{
guan_all(); //关闭所有灯
led2 = 0; //led赋值
delayms(300);
led2 = 1; //led赋值
delayms(300);
led2 = 0; //led赋值
delayms(300);
led2 = 1; //led赋值
delayms(300);
led2 = 0; //led赋值
delayms(300);
led2 = 1; //led赋值
}
if(key2==0) //右转弯
{
guan_all(); //关闭所有灯
led3 = 0; //led赋值
delayms(300);
led3 = 1; //led赋值
delayms(300);
led3 = 0; //led赋值
delayms(300);
led3 = 1; //led赋值
delayms(300);
led3 = 0; //led赋值
delayms(300);
led3 = 1; //led赋值
}
if(key3==0) //刹车
{
guan_all(); //关闭所有灯
led4 = 0; //led赋值
led5 = 0; //led赋值
}
if(key4==0) //夜间活能见度低
{
guan_all(); //关闭所有灯
led6 = 0; //led赋值
led7 = 0; //led赋值
}
if(key5==0) //倒车
{
guan_all(); //关闭所有灯
led8 = 0; //led赋值
led9 = 0; //led赋值
led6 = 0; //led赋值
led7 = 0; //led赋值
}
}
}
void guan_all()
{
led0 = 1; //led赋值
led1 = 1; //led赋值
led2 = 1; //led赋值
led3 = 1; //led赋值
led4 = 1; //led赋值
led5 = 1; //led赋值
led6 = 1; //led赋值
led8 = 1; //led赋值
led9 = 1; //led赋值
}