首页 理论教育单片机C语言应用:模拟汽车转向灯控制

单片机C语言应用:模拟汽车转向灯控制

【摘要】:表4-4 汽车转向灯状态表在本任务中,采用两位LED灯模拟汽车左右转向灯,利用单片机的P1.0、P1.1引脚分别控制两灯的亮、灭状态;用两个连接到单片机P2.0、P2.1引脚的拨动开关S1、S2,模拟驾驶员发出的左转、右转命令。图4-45 模拟汽车转向灯Proteus仿真图

1.任务要求

采用单片机完成模拟汽车转向灯的控制系统。

2.任务目的

(1)熟悉C语言的基本语句的使用方法。

(2)了解顺序结构及模块化程序的设计方法。

3.任务分析

汽车转向灯的控制是驾驶员驾驶汽车时,向他人传递汽车行驶状况的基本操作。汽车转向灯的状态见表4-4。

表4-4 汽车转向灯状态表

在本任务中,采用两位LED灯模拟汽车左右转向灯,利用单片机的P1.0、P1.1引脚分别控制两灯的亮、灭状态;用两个连接到单片机P2.0、P2.1引脚的拨动开关S1、S2,模拟驾驶员发出的左转、右转命令。模拟汽车转向灯的控制原理图如图4-42所示。

图4-42 模拟汽车转向灯的控制原理图

P1.0和P1.1控制两位LED灯,但引脚输出为0时,相应的LED灯被点亮;P2.0和P2.1分别连接一个拨动开关,拨动开关的一端通过一个4.7 kΩ电阻连接到电源,另一端接地。

但拨动开关S1拨动至接地端时,P2.0引脚为低电平,即P2.0=0;当S1断开时,P2.0引脚为高电平,P2.0=1。拨动开关S2亦然。

根据模拟汽车转向灯的控制原理图和表4-4,驾驶员操作与两个控制开关(即P2.0、P2.1引脚)电平状态、模拟汽车转向灯(即P1.0、P1.1引脚)状态对应关系见表4-5。

表4-5 驾驶员操作与P1、P2端口状态关系表

P2.0引脚的电平状态与P1.0控制的左转向灯的亮灭状态相对应。P2.0=1时,P1.0=1(转向灯熄灭);当P2.0=0时,P1.0=0(左转向灯闪烁)。同样,P2.1引脚的状态与右转向灯的亮灭状态相对应。

4.流程图

模拟汽车转向灯控制系统的流程图如图4-43所示。(www.chuimin.cn)

图4-43 模拟汽车转向灯控制系统的流程图

5.源程序设计

模拟汽车转向灯控制系统的源程序:

6.Keil uVison仿真实现

在Keil uVision环境下完成源程序的编辑和设置,然后进行如下操作:

(1)打开菜单“Peripherals”,在下拉菜单中选择“I/O-prots”,并在其子菜单中选择“prots1”,重复前面的操作,选择“prots2”。

(2)在Keil uVision中按下F5键或单击工具栏图标运行程序,观察弹出的“Paralle Port1”“Paralle Port2”窗口中端口的状态变化情况,如图4-44所示。

图4-44 模拟汽车转向灯Keil uVison仿真图

单击“Paralle Port2”窗口中的P2.0(左转向控制开关),使P2.0=0,则相应的P1.0=0,表示左转向控制开关接通,P1.0连接的LED灯闪烁。P2.1控制P1.1的状态也是如此。

当P2.0=0,P2.1=0时,P1.0=0,P1.1=0,表示左、右转向灯均闪烁。

7.Proteus设计与仿真

模拟汽车转向灯Proteus仿真图如图4-45所示。

图4-45 模拟汽车转向灯Proteus仿真图