车速控制系统程序及仿真课程设计说明书要点.docx
- 文档编号:28293881
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:33
- 大小:694.84KB
车速控制系统程序及仿真课程设计说明书要点.docx
《车速控制系统程序及仿真课程设计说明书要点.docx》由会员分享,可在线阅读,更多相关《车速控制系统程序及仿真课程设计说明书要点.docx(33页珍藏版)》请在冰豆网上搜索。
车速控制系统程序及仿真课程设计说明书要点
交通与汽车工程学院
课程设计说明书
课程名称:
汽车电控系统实习及课程设计
课程代码:
8234590
题目:
车速电控系统设计及其仿真
年级/专业/班:
09级/车辆工程/汽电3班
学生姓名:
胡维波
学生学号:
312009080306517
开始时间:
2012年12月31日
完成时间:
2013年01月18日
课程设计成绩:
学习态度及平时成绩(30)
技术水平与实际能力(20)
创新(5)
说明书(计算书、图纸、分析报告)撰写质量(45)
总分(100)
指导教师签名:
年月日
摘要…………………………………………………………………………………………1
1引言
1.1问题的提出…………………………………………………………………………………2
1.2单片机的国内外发展情况………………………………………………………………3
1.3任务分析……………………………………………………………………………………5
2方案分析及方案设计
2.1车速控制方案的选择……………………………………………………………………6
2.2总体方案的确定…………………………………………………………………………7
3系统硬件设计
3.1主控芯片的选择…………………………………………………………………………8
3.2显示电路设计……………………………………………………………………………11
3.3控制机构电路设计………………………………………………………………………12
4系统软件设计与仿真
4.1Proteus软件环境介绍…………………………………………………………………13
4.2Protel软件环境介绍…………………………………………………………………14
4.3系统软件分析…………………………………………………………………………15
4.4程序流程图……………………………………………………………………………16
4.5原理图检查与元器件清单………………………………………………………………14
4.6程序调试………………………………………………………………………………14
4.7Proteus仿真…………………………………………………………………………15
结论…………………………………………………………………………………………24
致谢…………………………………………………………………………………………25
参考文献……………………………………………………………………………………26
附录A系统原理图………………………………………………………………………27
附录B程序编译图………………………………………………………………………28
附录CPCB图………………………………………………………………………………29
附录D程序代码……………………………………………………………………………30
摘要
本设计介绍一种基于AT89C51单片机为控制核心的车速检测及控制。
为了保证汽车行驶的安全性,提高汽车运输生产率,充分发挥汽车的动力性,正确掌握行车速度是非常重要的。
在本次设计中采用一个指示灯来进行车速状况的报警,同时,运用一个自动控制的电动机来控制供油电磁阀的关闭。
车速控制在一定的范围内,保证了汽车行驶的安全。
本设计说明书对该系统的硬件电路,工作原理进行了详细的介绍。
同时给出了软件设计的流程图和主要源代码及利用MATLAB进行结果仿真与分析。
关键词:
AT89C51单片机车速控制供油电磁阀报警仿真
1引言
1.1问题的提出
在现代社会,汽车作为一种大众的交通工具在人们的生活中扮演越来越重要的角色。
在汽车的使用过程中,车速这一参数对汽车多的性能及行车的安全的影响是非常大的。
车速较高的时候,车辆的更难控制,操纵稳定性要变差,使得汽车行驶的危险性增加,危害人类安全。
据报道,交通事故中有很大的一部分是由于超速行驶而引起的。
因此实时的显示车速,在车速过高时指示灯提示,并自动切断燃油供给系统可以有效地减少此类事故的发生,使人们能够更加安全的出行。
1.2单片机的国内外发展情况
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
早期的单片机都是8位或4位的。
其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。
此后在8031上发展出了MCS51系列单片机系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
1.SCM即单片微型计算机(SingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。
在开创嵌入式系统独立发展道路上,Intel公司功不可没。
2.MCU即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:
不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。
从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。
在发展MCU方面,最著名的厂家当数Philips公司。
3.单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。
随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
1.3任务与分析
本设计的主要任务是基于AT89C51单片机实现车速的测量,并对车速进行一定的控制,介绍一种基于89C51单片机系统的转速测试仪的测量原理、硬件组成和软件设计。
在设计过程中,将应用Protel软件及、Keil软件及Proteus软件等软件来完成设计要求。
2方案分析及方案设计
2.1总体方案的选择
通过查阅相关资料,设计初期有两种方案可供选择,分别如下:
(1)利用单片机的定时功能定时一段时间,并在这段时间内对外部信号进行计数,最后显示在LCD1602液晶屏上。
(2)此方案为通过检测外部输入信号,当第一次检测到后即开始计时,在第二次信号到来时停止计时,将计时值保存。
如此循环五次,通过进行加权滤波和相应的转换处理送显示器显示,如果车速大于设定的最高车速值,系统的指示灯点亮提醒驾驶员,电机自动运作来切断燃油供给,强迫汽车减速。
2.2总体方案的确定
通过对两种方案的对比,系统最终选择第二方案。
图2.1系统框图
3系统硬件电路设计
此系统设计主要涉及以下3个部分:
(1)主控芯片介绍
(2)显示器的设计(3)控制机构设计
3.1主控芯片的选择
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,其引脚排列如图3.1所示
图3.189C51单片机引脚图
51单片机的复位需要给第九引脚持续两个周期的高电平。
系统的复位电路由一个10u电解电容和一个按压开关并联再串联一个10K的电阻。
如图3.2所示:
图3.2时钟复位电路
电阻在上接地,电容在中间接高电平,下面为RST。
这种复位电路的工作原理是:
通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程序,即为低电平,单片机开始正常工作。
在引脚XTAL1和XTAL2外接晶体振荡器,就构成了内部振荡电路,C1、C2起稳定振荡频率、快速起振的作用,电容值一般为5~30PF。
晶振常选用频率为6MHz、12MHz、或24MHz的,采用串口时常用频率为11.0592MHz的晶振。
内部振荡方式所得到的时钟信号比较稳定,应用较多。
此设计选用的晶振频率为12MHz,电容值为30PF。
具体电路设计电路如图3.3所示:
图3.3晶体振荡电路
图3.4最小系统
3.2显示电路设计
本设计采用的计数显示电路由单片机89C51,液晶显示器LCD1602及上拉排阻组成。
字符型LCD简介:
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD。
目前常用16*1,16*2,20*2和40*2行等的模块。
本设计采用的是16*2行的LCD1602。
1602液晶显示模块可以和单片机AT89C51直接接口,电路原理图如图3.4所示:
图3.5显示电路原理图
系统还设计了一个LED指示灯用以在车速过高时提醒驾驶员。
其原理图如下:
图3.6LED指示灯电路原理图
3.3控制机构电路设计
由于在车速过高时需要控制机构控制燃油的供给,以限制其车速。
在此,系统选用直流电动机作为控制供油电磁阀的执行机构。
其原理图如图3.6所示。
图3.7系统执行机构
4系统软件设计与仿真
4.1Proteus软件环境介绍
本系统的硬件设计首先是在Proteus软件环境中仿真实现的。
Proteus是目前最好的模拟单片机外围器件的工具。
可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件...)。
在没有硬件的情况下,Proteus能像pspice仿真模拟/数字电路那样仿真MCU及外围电路。
另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。
Proteus软件主要具有以下几个方面的特点:
1、设计和仿真软件Proteus是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。
2、它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。
3、它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。
4、它可以仿真目前流行的单片机,如PICS,ATMEL-AVR,MOTOROLA,8051等。
5、在设计综合性方案中,还可以利用ARES开发印制电路板。
4.2Protel软件环境介绍
Protel印制板设计软件包是澳大利亚proteltechnology公司与1990年推出的电子CAD产品,具有方便、易学、实用、快速以及高速度、高步通率的特点。
它采用了分层次下拉窗口菜单结构形式,用户基本上不需要记背太多的键盘命令,用鼠标点击菜单命令就能操作,protel有着很高的自动布线布通率。
布通率是电子产CAD产品的一项重要指标,它反映电子元件在电路图中连接关系有多少能在印刷版图中实现。
在设计常用的单、双面印制板时只要选择适当的元件布局和布线策略方法,protel就可以轻易的达到98%-100%的布通率。
对于极少数不能布通的定方,protel可以用飞线指示出来,引导用户用手工方法连通。
另外,protel有强大的宏命令设置功能,利用宏命令功能多定义的热键可以大大提高操作速度
Protel对微机的软硬件配置要求很低:
cpu在8088以上,dos2.0以上版本,内存640kb以上,双软件(或一个软件一个硬盘),单色显示器(多层板设计时最好用彩色),各种兼容打印机。
也能在Windows9X平台的模拟DOS下运行。
Protel已成为印制板设计加工方面的工业标准。
据初步统计Protel在CAD的市场占有率达95%,成为电子产品制造业界的首选CAD软件。
Keil软件环境介绍
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍
4.3系统软件分析
任何一个应用系统,它们都有着自己的硬件系统和软件系统,少了任何一个部分都不可能称之为一个完整的应用系统,它们之间是相互依存的一个整体,硬件系统是软件系统的一个基础和前提,为软件系统提供了一个操作平台;而软件系统是硬件系统的灵魂,它对硬件系统起到扩充和完善的作用。
可知软件系统与硬件系统同等重要。
51单片机通常有两种编程语言,即汇编语言和C语言。
汇编语言是低级语言,能够直接操作硬件,并且生成机器码的效率高。
但汇编对平台的依赖性强,可移植性差,开发效率低。
而C语言则处于二者之间,移植性比较好,代码效率也比较高,可以对部分硬件直接访问。
开发效率较高。
写得好的C代码,可移植性是很好的,很多时候都不用修改或者只做少量修改。
在目前的嵌入式系统中,C语言是使用最广泛的语言。
4.4程序流程图
(1)主程序流程图如图4.1所示。
图4.1主程序流程图
主程序中判断Flag_s是否为1,如果为1则表示已经保存五次车速值则开始进行滤波处理,同时置零Flag_s再调用显示函数。
如果为0则直接调用显示函数显示上次滤波后的车速值。
(2)定时器中断流程图如4.2所示。
图4.2定时器中断流程图
(3)外部中断流程图如图4.3所示。
图4.3外部中断流程图
第一次中断打开定时器计时,第二次中断时读取TH0和TL0的值将其保存在数组中,五次读取后将置位Flag_s,退出中断函数。
数组的首地址通过编译软件汇编后为0x800。
4.5原理图检查与元器件清单
在Protel99SE中,对硬件电路图进行ERC电气规则检查及罗列元器件的清单。
如图4.4和图4.5所示:
图4.4ERC电气规则检查结果
图4.5元器件清单图
4.6程序调试
程序经过调试显示“0错误,0警告”。
表示程序调试通过。
如图4.6所示:
图4.6程序调试通过示意图
4.7Proteus调试
系统采用Proteus进行仿真,按原理图的设置建好仿真图。
如图4.7所示的仿真图。
图4.7未运行的仿真图
调节外部中断的输入频率以代表不同的车速情况,当输入频率为10Hz时,根据计算公式
其中半径r=0.35m,
=3.14,得到转速为55km/h。
车速值小于设定值100km/h,此时控制的执行机构电动机不会运作,供油不受影响。
超速指示灯熄灭。
图4.8仿真图(低于限定值)
再次调节信号发生器使其单片机输入频率增大,当为10Hz时根据公式,此时输出的车速应该为79km/h。
此车速仍小于设定的车速100km/h,电动机将不会转动,指示灯熄灭,供油电磁阀正常工作。
图4.9仿真图(低于限定值)
调节单片机输入频率,直至车速超过100km/h。
此时系统将控制电动机运作,来使供油电磁阀逐渐闭合,供油减小。
如果车速还未降下,电动机运作直至供油电磁阀完全切断燃油的供给,强制汽车减速。
同时,仪表盘的超速指示灯将点亮,以提醒驾驶员。
(图上电动机的运转可以通过其三极管基极为高电平判断出)
图4.10仿真图(超速)
结论
通过本次有关车速控制系统程序及仿真的课程设计,我掌握了很多知识。
尤其是仿真编程中电动机的使用,让我学会了,如何控制电动机的动作。
在本次的设计过程中,遇到了很多的困难与问题,需要我们课外查询多方面的知识。
由这次课程设计,我深深地懂得了一件事情,理论一定要结合实践,不能只空留在纸面上。
理论只有转化成了实际东西才具有价值。
致谢
在彭忆强老师的悉心指导下,我顺利地完成了此次的课程设计。
他专业的知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。
不仅使我树立了远大的学术目标、掌握了基本的研究方法,还端正了我的学习和人生态度,使我受益匪浅。
最后,感谢所有给予我帮助和支持的老师和同学!
参考文献
[1]张毅刚:
新编MCS-51单片机应用设计.哈尔滨工业大学出版社.2004.
[2]彭忆强、吴琼、葛晓成:
电子线路辅助分析软件在汽车电子方向相关课程中的应用,高等教育研究,2008,No.2
[3]孙仁云:
汽车电器及电子技术,机械工业出版社,2007.1
[4]唐岚:
汽车测试技术,机械工业出版社,2006.7
附录A
系统原理图
附录B
程序编译图
附录C
PCB图
图C-1PCB图
附录D
程序代码
#include
#definePI3.14//圆周率
#defineR0.35//车轮半径
sbitLED=P1^1;
sbitMO=P1^0;
bitFlag;//第一次中断标志
bitFlag_s;//转换标志
unsignedcharCOUNT;//溢出次数
unsignedlongT[5];
unsignedcharW[5]={1,2,3,4,5};//权值
unsignedchartable[]="TheSpeedis";
unsignedchartable1[]="km/h";
sbitE=P2^5;
sbitRW=P2^6;
sbitRS=P2^7;
voidInit(void);
unsignedintSmooth(void);
voidDelay_ms(unsignedcharms);
voidWrite_data(unsignedchardate);
voidWrite_cmd(unsignedcharcmd);
voidLCD_init();
voidDisplay(unsignedintd);
//-------------------------------
//主函数
//-------------------------------
voidmain(void)
{
unsignedintdis_dat;
Flag=0;
Flag_s=0;
COUNT=0;
dis_dat=0;
Init();
LCD_init();
Delay_ms(20);
EA=1;
while
(1)
{
if(Flag_s)
{
dis_dat=Smooth();
Flag_s=0;
}
if(dis_dat>100)//车速大于100KM/h时,报警
{
LED=1;
MO=1;
}else
{
LED=0;
MO=0;
}
Display(dis_dat);//显示函数
}
}
//-----------------------------
//名称:
延时函数
//功能:
约为(ms*1)ms时间
//-----------------------------
voidDelay_ms(unsignedcharms)
{
unsignedchara,b;
for(a=ms;a>0;a--)
for(b=120;b>0;b--);
}
//-----------------------------
//名称:
定时器,中断初始化
//功能:
定时器0采用16位,中断下降沿触发
//-----------------------------
voidInit(void)
{
TMOD=0x01;
EX0=1;
ET0=1;
IT0=1;
}
//-----------------------------
//名称:
滤波函数
//功能:
加权滤波,权值1,2,3,4,5
//-----------------------------
unsignedintSmooth(void)
{
unsignedchari;
unsignedintdat;
floatdat_temp;
floatsum;
floatavg;
sum=0;
for(i=0;i<5;i++)
{
sum+=T[i]*W[i];
}
sum=sum/15;
avg=1000000/sum;//每秒转几转
dat_temp=avg*2*PI*R*3.6;//每秒的转数乘以周长再乘以3.6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车速 控制系统 程序 仿真 课程设计 说明书 要点