微机课设——汽车信号灯控制系统(PCB、Proteus仿真、上位机、实物制作等)

疫情期间在家完成的微机课程设计,虽然功能比较简单,但作为初学者来说还是花费了我不少精力,好在最终完成的效果不错。

1.设计概述

1.1  设计任务

在本课程设计中,其设计任务为设计并制作出汽车信号灯微机控制系统,控制的信号灯有仪表板左/右转弯灯、左/右头灯和左/右尾灯共六类灯,在不同的驾驶操作控制下可驱动相对应的汽车信号灯闪烁或长亮。

1.2  设计要求

(1)使用汇编语言或C语言;

(2)通过小键盘和开关给定,实现系统启动/停止,数码管(或液晶屏)显示当前系统状态及参数信息,简单故障诊断与报警。

(3)程序功能要求:汽车信号灯控制系统,所需执行的操作由相应的开关状态反映,所需控制的信号灯有仪表板左/右转弯灯、左右头灯和左右尾灯共六类灯,其驾驶操作与灯光信号对应关系如下:

a).左/右转弯(合上左/右开关):仪表板左/右转弯灯、左/右尾灯闪烁、左/右头灯闪烁。

b).紧急开关合上:所有灯闪烁。

c).刹车(合上刹车开关):左右尾灯亮。

d).左/右转弯刹车:仪表板左/右转弯灯、左/右头灯闪烁,右/左尾灯亮。

e).刹车、合上紧急开关:尾灯亮,左右转弯灯同时闪烁、头灯闪烁。

f).左/右转弯刹车并合上紧急开关:右/左转弯、左/右头灯闪烁,尾灯亮。

g).停靠(合上停靠开关):头灯、尾灯以30Hz的频率闪烁。

(4)上位机监控功能要求:通过串口或USB口实现上/下位机通信,能够显示汽车信号灯当前状态,能够从上位机控制下位机之信号灯的工作。

1.3  实验设备

在本设计中,所用到的设备器材如下所示:

 (1)PC机,Keil、Proteus、Altium Designer、Visual Basic等软件;

 (2)AT89C51单片机开发板,1602液晶显示屏;

 (3)杜邦线若干。

2.项目内容

2.1硬件电路设计    

在设计时,我选择了五个开关、AT89C51 单片机以及6只LED发光二极管。其中AT89C51单片机作为控制核心,当5个开关的状态发生改变后,单片机检测到开关信号后就通过软件输出相关信号,从而达到驱动6个汽车信号灯根据开关的相应状态闪烁或长亮的效果。

总体设计电路图如下图所示(用AD软件画的):

2.2电路印制板图绘制(PCB板图)  

 

PCB版图2D效果

PCB版图3D效果 

2.3控制程序编写    

程序控制流程图

 其中图上的K1-K5 五个开关依次分别是:左开关、右开关、紧急开关、刹车开关、停靠开关

2.4上位机制作    

在仿真时是利用Proteus里的COMPIM模块和虚拟串口工具VSDP实现Proteus仿真和上位机通信的,而在实物中是直接用串口线将单片机与PC机连接起来即可实现串口通信,单片机将数据发送给上位机,上位机在接收区显示汽车信号灯当前状态,同时上位机界面上的7个指示灯也会跟单片机上的LED灯同步闪烁或长亮(这一监视功能和1602显示功能是类似的),而上位机也能通过最下面一排的五个按键控制单片机之信号灯的工作(这一控制功能和单片机上的按键控制功能是类似的),也就是说通过串口通信实现了上位机对单片机比较好的监控功能。

用VB编写的上位机

2.5 控制系统仿真实验  

proteus仿真图

 调试结果图

2.6实物制作

在仿真实验完全成功了之后,我开始了实物的制作,由于实物和仿真在开关控制和串口通信方面的不同,我需要对仿真程序进行一些修改。首先是控制方面,因为在Proteus仿真中我用的是开关控制,而在实物中只有按键控制,所以我将程序改为检测一次按键,改变一次P2.0- P2.4的输入状态,然后对输入状态进行判断进入相应程序分支;其次在串口通信方面,我直接用串口线通过USB接口将单片机电脑连接起来从而实现串口通信。

程序调试好之后,我用杜邦线将学习板上的LED模块和独立按键模块分别与AT89C51芯片的P1.0- P1.7管脚、P3.2- P3.7管脚相连,然后将1602液晶屏模块也接入电路中,具体实物连接图如图3-8所示。最后烧入程序,运行结果,经过一次次的修改调试,最终在学习板上成功地得到了理想的结果,完成了汽车信号灯控制系统的实物制作。

实物图

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值