精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx

上传人:b****3 文档编号:6816026 上传时间:2023-05-07 格式:DOCX 页数:43 大小:252.31KB
下载 相关 举报
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第1页
第1页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第2页
第2页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第3页
第3页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第4页
第4页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第5页
第5页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第6页
第6页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第7页
第7页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第8页
第8页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第9页
第9页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第10页
第10页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第11页
第11页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第12页
第12页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第13页
第13页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第14页
第14页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第15页
第15页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第16页
第16页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第17页
第17页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第18页
第18页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第19页
第19页 / 共43页
精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx

《精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx》由会员分享,可在线阅读,更多相关《精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx(43页珍藏版)》请在冰点文库上搜索。

精品基于单片机与VB汽车尾灯控制课程设计报告定Word格式.docx

5)汽车夜间行驶时,车前灯全亮,尾灯两边各中间的灯亮;

6)可通过串口连接PC控制车尾灯(自己发挥部分);

二·

设计方案选择及论证

2.1方案一:

采用555定时器等构成的汽车尾灯电路

采用译码器74LS138、计数器74LS161、脉冲产生器555、开光控制电路、显示驱动电路、发光二极管以及各种逻辑元件等构成的汽车尾灯控制电路。

由于汽车左右转弯时,四个指示灯循环点亮,所以用四进制计数器控制译码器电路顺序输出低电平,从而控制尾灯按要求点亮,达到模拟汽车转弯、刹车、正常行驶等状态。

由于行车时都是开关控制,所以每一个开关都应该有一个消除机械振动的装置,可以用基本SR触发器来实现。

2.2方案二:

由STC89C52RC及其外围电路构成的汽车尾灯控制器

STC89C52RC是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

本次单片机的控制系统以STC89C52RC为控制器,键盘为输入信号,由于STC89C52RC本身的功能强大,汽车转弯灯的驱动用单片机的驱动功能来完成。

使得单片机的功能得到了充分的运用;

并且显示电路从并行I/O口输出,由限流电阻和发光二极管组成,低电平使发光二极管导通,显示出相应的信号灯亮灭情况,实现了左转、右转、刹车、应急灯多种状态下的控制效果。

2.3方案比较和选择

方案一中,要使用多种控制电路,实现的方法繁杂且不灵活,成本高,搭建好电路后调试起来不方便,不可以任意定义各种状态,电路的可靠性以及可扩展性不高,且与本次课题所要求运用的知识相悖,因此不宜使用此方案。

方案二中,以单片机为核心,而单片机的编程比较直接,且可重复擦除修改,硬件电路搭建方便简单。

搭建好电路后通过STC89C52RC来编写程序,控制LED的亮灭,大大的简化了系统结构,降低材料的成本,提高系统的先进性和可靠性,能实现控制器的智能化。

由于采用此种方法开发的系统其升级和改进较为方便,因此本次课题选用方案二。

采用串口连接笔记本电脑,通过VB上位机控制LED的亮灭,实现真正意义上的智能化控制。

2.4系统框图

图2.4.1系统结构框图

整个系统包括电源电路、时钟电路、复位电路、按键电路、发光二极管显示电路、液晶屏显示电路、串口电路、单片机、PC上位机等。

其中主要由按键电路和PC上位机发出控制信号,由显示电路显示信号的具体状态。

三·

系统硬件原理介绍

3.1单片机STC89C52RC介绍

图3.1.1STC89C52RC引脚图

(1)STC89C52RC部分引脚功能介绍:

1、VCC:

STC89C52RC电源正端输入,接+5V。

2、VSS:

电源地端。

3、XTAL1:

单芯片系统时钟的反相放大器输入端。

4、XTAL2:

系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。

5、RESET:

STC89C52RC的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。

3.2LCD1602液晶屏介绍

1602LCD主要技术参数:

显示容量:

16×

2个字符

芯片工作电压:

4.5—5.5V

工作电流:

2.0mA(5.0V)

模块最佳工作电压:

5.0V

字符尺寸:

2.95×

4.35(W×

H)mm

引脚功能说明:

1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据

2

VDD

电源正极

10

D3

3

VL

液晶显示偏压

11

D4

4

RS

数据/命令选择

12

D5

5

R/W

读/写选择

13

D6

6

E

使能信号

14

D7

7

D0

15

BLA

背光源正极

8

D1

16

BLK

背光源负极

表10-13:

引脚接口说明表

第1脚:

VSS为地电源。

第2脚:

VDD接5V正电源。

第3脚:

VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15脚:

背光源正极。

第16脚:

背光源负极。

3.3系统结构原理图、器件选择

(1)电源电路

图3.3.1电源电路

电源电路可以给单片机提供工作所需电源,有指示灯提示,灯亮时表示提供正常工作电压。

(2)时钟电路

图3.3.2时钟电路

时钟电路中使用的12M晶振,为单片机提供系统时钟。

(3)复位电路

图3.3.3复位电路

复位电路是单片机能上电复位,当程序混乱跑飞时可以通过按键手动复位。

(4)按键电路

图3.3.4按键电路

按键电路可以通过按键来模拟汽车的转弯、刹车、应急等各种状态,控制LED和液晶屏的显示。

(5)发光二极管显示电路

图3.3.5发光二极管显示电路

发光二极管可以模拟汽车车灯,显示各种控制信号的效果。

(6)液晶屏显示电路

图3.3.6液晶屏显示电路

液晶屏显示电路可以直观的显示出汽车的行进状态,增加尾灯系统的可视性。

(7)串口电路

为了使单片机内的电平与计算机的电平一样需要利用电平转换,MAX232芯片是专为RS232标准串口设计的单电源点平转换芯片。

其特点如下:

1)符合所有的RS232技术标准;

2)只需要单一+5V电源供电;

3)片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压;

4)功耗低,典型供电电流5mA;

5)内部集成2个RS-232C驱动器;

6)高集成度,片外最低只需4个电容即可工作;

7)连接方式如图5所示。

图5串口连接

3.4硬件电路总原理图

图3.4.1总原理图

硬件总原理分解如3.3.1~3.3.6各图所示,完整的实现了汽车尾灯的控制,用按键模拟控制信号,用发光二极管和液晶屏显示状态,达到所有指标。

3.5硬件设计原理及状态图

本次由按键作为控制信号,发光二极管模拟汽车尾灯,状态表如下所示:

驾驶操作

输出信号

LED1

LED2

LED3

LED4

LED5

LED6

LED7

LED8

左转

闪烁

右转

刹车

正常行驶

夜间行驶

倒车行驶

本次课题主要以STC89C52RC为核心展开的汽车尾灯控制器,通过原理仿真以及实物制作,完整的实现了汽车尾灯智能化控制的效果,相比以前用数字逻辑电路原理打成的汽车尾灯更方便、更简单。

制作出的实物板有6个控制状态的按键,可以搭配起来控制6种汽车的行驶状态,完美的模拟了汽车尾灯控制系统,完成本次课题的全部指标。

四.程序流程

4.1下位机软件程序

4.1.1键盘扫程序设计流程图

键扫程序的过程为:

开始时,先判断是否有键闭合,无键闭合时,返回继续判断,有键闭合时,先去抖动,然后确定是否有键按下,若无键按下,则返回继续判断是否有键闭合,若有键按下,则判断键号,然后释放,若释放按键完毕,则返回,若没有释放按键,则返回继续释放。

其流程图如图所示。

软件设计思路,程序开始后进入初始化,然后扫描键盘等待有键按下。

如果没有键按下则一直扫描,如果有键按下,则判断是哪个键,如果为1键,则正常行驶;

为2键,则右转;

为3键,则左车;

为4键,则应急状态;

为5键,则倒车行驶;

为6键,则夜间行驶。

图4.3.1软件流程图

4.2.1显示程序设计流程图

图4.2.1显示程序流程图

显示程序的过程为:

显示开始时,先进行LCD的初始化,判断是否显示汉字或ACSII码或图形,若不显示,则返回,若显示的是汉字或ACSII码,则进行相应功能的设置,然后送地址和数据,再判断是否显示完,显示完则返回,没有显示完则继续送地址,若显示的是图形,则先进行相应功能的设置,再送行地址和列地址,然后送数据,最后判断是否显示完,显示完则返回,没有显示完则继续送行地址和列地址。

其流程图如图7所示。

(1)在编写液晶屏的显示程序时,发现液晶屏只能瞬间的显示状态,而不能保持,因此在液晶显示程序后要加上一个延时,使液晶屏能够保持状态;

(2)要使发光二极管闪烁可以通过指令让其取反,但是在编写程序时,只能取反一次,一次可以使用一个while函数,当没有按键时候发光二极管一直取反,且在程序里加上适当的延时;

(3)在使发光二极管闪烁时,如果前一个状态中正在使用改二极管,则切换状态后,每个灯管的闪烁时间不同步,因此在让其闪烁之前先令所有二极管保持同一个状态;

4.2VB上位机界面设计

4.2.1设计方案原理与设计特点分析

(1)IO控制系统原理框图:

发送数据

将PC机和单片机通过RS232连接,通过上位机软件可以向单片机发送数据来测试两者的通讯状态,同时单片机也可以向上位机软件返回数据,以显示当前通信状态是否正常。

以及用上位机软件控制单片机上的指示灯工作。

从而实现简单的IO控制系统。

(2)上位机软件

(3)通信协议

本通信系统使用了一个简单的通信协议,就是每当向单片机发送一个特定字符串时,单片机在接收到字符串时会向上位机软件反馈一条信息,来表明上位机软件和硬件是否正常通信,制定通信协议时需要指定端口号,关键代码如下:

MSComm1.CommPort=“”

MSComm1.InputMode=“”

MSComm1.RThreshold=“”

MSComm1.SThreshold=“”

MSComm1.Settings="

"

MSComm1.PortOpen=“”

VB上位机界面通过协议控制车灯的智能开关。

五·

仿真图实物调试

5.1仿真图

5.2实物图

6课设总结

本次的课设作品的主要元件为STC89C52RC,在其控制下保证了系统的正常工作,达到模拟汽车尾灯控制的效果,实现汽车尾灯的智能化控制。

两周的课程设计,相较于之前所选修的各种实验课程,此次更增加了自己的动手实践能力。

理论与实践还是有一定的差距的,在理论上不管多精确的数据,一旦用于实际中,就不得不考虑其仪器,器件的误差,以及自己操作上的能力。

而且,在课设过程中添加了自己的思考,该选择怎样的电阻、电容,想要修改最后的输出,应该在什么地方做改变。

虽然是一些很基础的东西,但仅仅是书上的理论学习,会让人对知识遗忘得比较快,相反,通过自己动手实践过的东西,会更加记忆深刻。

看着自己成功制作出来的电路板觉得很有成就感。

通过这次课设教我还学会很多关于电子产品知识。

进一步的认识了我们现实生活电子产品,了解和掌握了一些简单电子元件的运用,大大的扩展了我们的知识面。

提高了自己以后在学习生活中自己动手能力。

给我们很大的启发,很有助于我们将来的学习生活和工作。

在查阅资料中,获得了许多额外的知识,开拓视野。

在原理图的设计、使用proteus仿真、使用Altium绘制、实物的制作、板子调试等整个过程中加强了我们分析问题和解决问题的能力,深刻体味到实践是检验真理的唯一标准这一道理。

总而言之,这次课设,让我们受益匪浅。

参考文献

[1]李广弟,朱月秀,王秀山.单片机基础[M].北京:

航空航天大学出版社,2000.

[2]康华光,陈大钦.电子技术基础模拟部分[M].武汉:

高等教育出版社,1998.

[3]谢自美.电子线路设计·

实验·

测试(第二版).武汉:

华中理工出版社,2000.

[4]戴佳.51单片机C语言应用程序设计实例精讲[M].电子工业出版社,2006.

[5]徐爱钧,彭秀华。

KeilCx51V7.0单片机高级语言编程与μVision2应用实践[M].北京:

电子工业出版社,2006.

附录一

单片机源程序:

#include<

reg52.h>

#include<

intrins.h>

#defineucharunsignedchar

#defineunitunsignedint

sbitKEY1=P1^0;

sbitKEY2=P1^1;

sbitKEY3=P1^2;

sbitKEY4=P1^3;

sbitKEY5=P1^4;

sbitKEY6=P1^5;

sbitLED1=P2^0;

sbitLED2=P2^1;

sbitLED3=P2^2;

sbitLED4=P2^3;

sbitLED5=P2^4;

sbitLED6=P2^5;

sbitLED7=P2^6;

sbitLED8=P2^7;

sbitLCD_RS=P3^4;

sbitLCD_RW=P3^5;

sbitLCD_EN=P3^6;

voiddelay(unitt);

voiddelay1(intms);

#definedelayNOP();

{_nop_();

_nop_();

};

voiddelay(unitt)//延时程序;

{

uniti,j;

for(i=0;

i<

t;

i++)

for(j=0;

j<

120;

j++);

}

/**********************************************************/

voiddelay1(intms)

unsignedchary;

while(ms--)

{

for(y=0;

y<

250;

y++)

_nop_();

}

ucharcodecdis1[]={"

-----Daytime---"

ucharcodecdis2[]={"

------stop------"

ucharcodecdis3[]={"

------left------"

ucharcodecdis4[]={"

------right-----"

ucharcodecdis5[]={"

------Astern----"

ucharcodecdis6[]={"

------night-----"

ucharcodecdis7[]={"

happyeveryday"

//ucharcodecdis11[]={"

//ucharcodecdis21[]={"

//ucharcodecdis31[]={"

//ucharcodecdis41[]={"

//ucharcodecdis51[]={"

//ucharcodecdis61[]={"

ucharcodecdis71[]={"

MyControl"

/*******************************************************************/

/**/

/*检查LCD忙状态*/

/*lcd_busy为1时,忙,等待。

lcd-busy为0时,闲,可写指令与数据。

*/

/*******************************************************************/

bitlcd_busy()

{

bitresult;

LCD_RS=0;

LCD_RW=1;

LCD_EN=1;

delayNOP();

result=(bit)(P0&

0x80);

LCD_EN=0;

return(result);

/*写指令数据到LCD*/

/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。

voidlcd_wcmd(ucharcmd)

{

while(lcd_busy());

LCD_RW=0;

P0=cmd;

/*写显示数据到LCD*/

/*RS=H,RW=L,E=高脉冲,D0-D7=数据。

voidlcd_wdat(uchardat)

LCD_RS=1;

P0=dat;

/*LCD初始化设定*/

voidlcd_init()

delay1(15);

lcd_wcmd(0x38);

//16*2显示,5*7点阵,8位数据

delay1(5);

lcd_wcmd(0x0c);

//显示开,关光标

lcd_wcmd(0x06);

//移动光标

lcd_wcmd(0x01);

//清除LCD的显示内容

/*设定显示位置*/

voidlcd_pos(ucharpos)

lcd_wcmd(pos|0x80);

//数据指针=80+地址变量

voidinitUART(void)//串口必须作以下初始化,才能正常工作。

TMOD=0x20;

//M1=1,M0=0定时器1工作方式2(定时常数重装,8位)

SCON=0x50;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2