ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:984.83KB ,
资源ID:9007823      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9007823.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(光电智能小车设计说明书.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

光电智能小车设计说明书.docx

1、光电智能小车设计说明书光电智能小车设计说明书设计题目:光电智能小车参赛组员: 2013年5月2日目录第一章 绪论1.1 摘要3第二章 硬件设计2.1光电传感器模块 2.1.1设计思路.5 2.1.2原理及设计62.2电机驱动模块.8.2.3电机测速模块112.4液晶显示模块12.2.5电源稳压模块.13第三章 软件设计3.1 程序流程图14第四章 个人总结.15参考文献15附录一16附录二17第一章 绪论1.1摘要 近年来,随着我国经济建设的高速发展,机动车辆拥有量也在急剧增长,交通事故也日益增多,车辆超速成为了越来越严重的问题。而我国生产的汽车、摩托车电机转速测量系用动圈式模拟测试。这种测量

2、系统存在精度差、过载能力弱等缺点。 本次题目的主要任务是设计一个智能小车,要求实现小车能够沿着跑道走、通过光电传感器进行测速、通过PWM电路模块进行调速以及通过LCD1602液晶模块进行速度、时间参数的显示。控制板的设计以8位的STC89C52单片机为控制核心,驱动办则以L298N驱动芯片位核心,应用光电传感器和LCD液晶模块,成功的实现了小车的沿跑道行驶、测速、调速和显示等功能。课题完成了光电传感器、单片机、主板整个硬件的安装,除此之外,还对整个控制软件进行设计的程序的编写及调试,并最终完成了软件和硬件的融合,实现了智能小车的要求。关键词:智能小车 光电传感器 驱动芯片 LCD液晶显示 单片

3、机AbstractIn recent years,with the rapid development of Chinas economic construc tion,with the amount of motor vehicles is increasing sharply,traffic accident are also increasing,the overspeed vehicle become more and more serious problem. Automobile ,motorcycle motor speed measurement system of our c

4、ountry produced by the moving coil simulation test .This measurement system has poor accuracy ,overload capability is weak.The main task of this topic is to design a smart car,display requirements to achieve the car can go down the runway,the photoelectric sensor speed,speed through the PWM circuit

5、module and speed,through the LCD 1602 module time parameter.Design of control board with 8 bit microcontroller STC89C52 as the control core,the drive to do the driving chip L298N core,application of photoelectric sensor and LCD module LCD,the successful realization of the driving speed,along the tra

6、ck,control and display functions.The photoelectric sensor,microcontroller,board the hardware installation,in addition ,compiling ang finally completed the intergration of software and hardware ,realizes the intelligent car requirements.Key words:driver LCD LCD microcontroller smart car photoelectric

7、 sensor第二章 系统硬件设计【2.1光电传感器模块】 2.1.1设计思路 光电传感器是通过把光强度的变化转化成电信号的变化来实现控制的。光电传感器在在一般情况下,有三部分构成,他们分为:发射器、接收器和检测器。用一个红外发光二极管和一个接受红外光的二极管组成一套光电管。当检测到物体表面为黑色时,反射光很弱,接受端检测到的光可以忽略,使接收端呈现一种状态,例如开关管截止;当被检测表面为白色时,反射光强烈,发射端发射的红外线被接收端全部接收,使接收端呈现一种状态,例如开关管开通。这两种相反的状态表现在电路中,就是高低电平组成的脉冲信号。由此,我们想到用到一个比较器来比较两种接收的信号,从而输

8、出“0”和“1”两种高低电平,并把两种信号传给单片机进行统计,然后利用设定算法进行计算输出。2.1.2 原理及设计 本光电模块共有两个部分组成,一个为光电传感器,一个为运放比较器LM324。 LM324比较器有两个输入端和一个输出端,两个输入端一个为同相输入端,用“+”表示,另一个为反相输入端,用“”表示,当用作比较两个电压时,任意一个输入端加一个固定电压做参考电压,另一个为待比较的信号电压,当“+”端电压高于“”端时,输出端接高电位,当“”端电压高于“+”端时,输出端接低电位。两个输入端电压差大于10mv 就能确保输出能从一种状态可靠地转换到另一种状态,因此,把LM324用在弱信号检测等场合

9、是比较理想的。 LM324的输出端相当于一只不接集电极电阻的晶体三极管,在使用时输出端到正电源一般需接一只电阻,称为上拉电阻,不同的阻止会影响输出端电位的值,本次设计中用5.1k的上拉电阻。 在本次小车循迹时,若检测到白色区域,发射管发射的红外有反射到接收管;若检测到黑色区域,管接收到发射管发射的红外线,电阻发生变化,所得的分压也就随之发生变化。 判断有无黑线我们用比较器LM324,比较基准由电位器调节,各个接收管的参数都不一致,每个传感器的比较基准也尽不相同,我们为每个传感器配备了一个10k的变阻器。传感器原理图管脚图整体电路图光电传感器输出的电压接运放的3引脚正向输入端,电位器的中间引脚接

10、运放的反相输入端,当检测到黑线时输出为高电平,检测到白线时为低电平。I=U/R=5V/220=22mA。【2.2 电机驱动模块】 本次实验我们有如下几个方案来实现驱动电机。 方案一:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路比较简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短可靠性不高。 方案二:采用功率管组成桥型电机驱动电路,并利用PWM波来实现对输出电压的有效值大小和极性进行控制。这种调速方式具有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,能耗小等优点,还可以实现频繁的无级快速启动和反转等优点。 方案三:采

11、用L298专用芯片进行驱动。L298芯片的工作原理和方案二一致,但是其工作时较方案二稳定,且编程较为简单,便于调试。另外L298内部集成了两个H桥,能同时驱动两个电机,硬件实现较方案二简单。 基于上述理论分析,拟定方案三,采用芯片L298N来驱动直流电机。L298N是SGS公司的产品,内部包含4 道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含两个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46v、2 A以下的电机。 管脚图L298芯片 管脚说明: (1) SENSA:电流监测端,H桥的电流反馈脚,不用时可直接接地。 (2) OUT1:输出端,与M1对应。 (3

12、) OUT2:输出端,与M2对应。 (4) VS:电源,用来给电动机供电。 (5) IN1:输入端。 (6) ENA:使能端,和M1、M2配合使用。 (7) IN2:输入端。 (8) GND:接地。 (9) VCC:电源,用来给芯片供电。 (10) IN3:输入端 (11) ENB:使能端,和M3、M4配合使用。 (12) IN2:输入端。 (13) OUT3:输出端,与M3对应。 (14) OUT4:输出端,与M4对应。(15) SENSB:电流监测端,H桥的电流反馈脚,不用时可直接接地。 原理图主要采用L298N通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转。OUT1、

13、OUT2和OUT3、OUT4之间分别接两个电机,ENA、ENB接控制使能端,控制电机的停转。逻辑功能如下:左电机右电机左电机右电机电机运转状态IN1IN2IN3IN41010正转正转前进1001正转反转左转1011正转停以左电机为中心原地左转0110反转正转右转1110停正转以右电机为中心原地左转0101反转反转后退 对于电机的调速,我们采用PWM调速的方法。其原理就是开关管在一个周期内的导通时间为t,周期为T,则电机两端的平均电压U=VCC*(t/T)=a VCC。其中,a=t/T(占空比),VCC是电压源。电机的转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此电机

14、的速度与占空比成正比,占空比越大,电机转速越快。在硬件电路的连接上,我们将单片机P2.7P2.4口分别接到L298的IN1IN4上,通过改变P2.7P2.4口的高低电平来控制小车的前进方向,通过改变P2.7P2.4口上的高低电平的占空比来控制电机的速度。 其中八个二极管是当电机反转时用来起泄流的作用。【2.3电机测速模块】 采用槽型光电传感器测量电机的转速,在电机轴承上分别安装两个码盘,电机转轴每转一圈,发射二极管发出的光便通过码盘上的孔隙到达接受管上,就可在接收管上产生相应的脉冲信号。计算下1s内输出的脉冲信号的个数,把计数的结果进行运算,就可得到电机的转动速度。为提高精度,将输出的信号经L

15、M324整流后再输入单片机INT0、INT1口。测速原理如图所示【2.4液晶显示模块】 将所测速度及时间显示在1602液晶屏上,1602液晶简介及电路图引脚符号引脚说明引脚符号引脚说明1VSS电源地9D2数据口2VDD电源正极10D3数据口3VO对比度调节11D4数据口4RS数据/命令选择端12D5数据口5R/W读写选择端13D6数据口6E使能信号14D7数据口7D0数据口15BLA背光电源正极8D1数据口16BLK背光电源负极【2.5稳压模块】所加电压为78.5v,所以需稳压到5v给单片机等其他模块供电。电路图如下第三章 软件设计3.1程序流程图如下 第四章 个人总结学习本专业已有两年,但学

16、习了好久理论也没有实践做过什么,借这次校内比赛的机会,我想检验下自己的实践操作能力。通过这次比赛,使我们受益匪浅。通过本次比赛设计,不仅是对我们课程所学知识的考查,更是对我们的自学能力和收集资料能力及动手能力的考验。根据本次设计,我们系统的阅读了大量的资料,并认真分析了光电循迹小车的原理,最终采用了这个设计方案。在设计与焊接的过程中,认识和掌握了红外传感器、驱动等许多元器件及芯片,并熟练运用了AD软件,了解了7805稳压芯片、LM324比较器的工作原理,本次设计使我们意识到了实验的重要性,在小车调试的过程中出现了许多问题,都是通过实验测试解决的。再者,让我们深切体会到团队的合作是非常重要的,总

17、之,在制作的过程中,无论是对于学习方法还是理论基础知识,我们都有了新的认识,受益匪浅,这将激励我们在今后再接再厉,不断完善自己的理论知识,提高实践运作能力。参考文献【1】51单片机C语言教程入门、提高、开发、拓展全攻略 郭天祥【2】单片微机原理及 应用 上海 丁元杰 【3】谭浩强.C程序设计 北京:清华大学出版社【4】求是科技.8051系列单片机C语言程序设计 北京:人民邮电出版社附录二程序#include#define uchar unsigned char#define uint unsigned intuchar code table=speed: mm/s;uchar code tab

18、le1=run_time: s;sbit lcden=P34;sbit lcdrs=P35;sbit IN1=P27;sbit IN2=P26;sbit IN3=P25;sbit IN4=P24;sbit ENA=P23;sbit ENB=P22;sbit L1=P10;sbit L2=P11;sbit L3=P12;sbit R1=P13;sbit R2=P14;sbit R3=P15;sbit zhong=P16;long int M1=0,M2=0,s1=0,s2=0,s=0,run_time=0;uchar aa,n,bai,shi,ge,bai1,shi1,ge1;unsigned

19、int num1=10,num2=10; /赋值确定周期void delay(uint x) uint i,j; for(i=x;i0;i-) for(j=5;j0;j-);void write_com(uchar com) /LCD写命令子函数 lcdrs=0; P0=com; delay(1); lcden=1; delay(1); lcden=0;void write_data(uchar date) /LCD写数据子函数 lcdrs=1; P0=date; delay(1); lcden=1; delay(1); lcden=0;/*LCD初始化函数*/void lcd_init()

20、lcden=0; write_com(0x38); /设置162显示,57点阵,8位数据接口 write_com(0x06); /写一个字符后地址指针加一 write_com(0x0c); /设置开显示,不显示光标 write_com(0x01); /显示清零,数据指针清零/*外部中断初始化*/void INT_init() IT0=1; IT1=1; EX0=1; EX1=1; EA=1;/*外部中断函数*/void my_INT0(void) interrupt 0 M1+;void my_INT1(void) interrupt 2 M2+;/*定时器1初始化、*/ void T1_in

21、it() TMOD=0x11; /设定时器1工作方式1 TH1=(65536-50000)/256;/装初值 TL1=(65536-50000)%256; EA=1; /开总中断 ET1=1; /开定时器1中断 /*定时器1中断函数*/ void time_1() interrupt 3 TR1=0; TH1=(65536-50000)/256; TL1=(65536-50000)%256; n+; if(n=20) s1=M1/20*3.14*65; s2=M2/20*3.14*65; s=(s1+s2)/2; bai=(s/100)+48; shi=(s%100/10)+48; ge=(s

22、%100%10)+48; n=0; s1=0; s2=0; M1=0; M2=0; TR1=1;/*定时器0初始化函数*/void T0_init() TMOD=0x01; /设定时器0工作方式1 TH0=(65536-1000)/256;/装初值定时1ms TL0=(65536-1000)%256; EA=1; /开总中断 ET0=1; /开定时器0中断 TR0=1; /启动定时器0/*定时器0中断函数*/void t0_time() interrupt 1 TH0=(65536-1000)/256; TL0=(65536-1000)%256; aa+; run_time+; if(aa=1

23、1) aa=0; if(aanum1) IN1=1; IN2=0; else IN1=0;IN2=0; if(aanum2) IN3=1; IN4=0; else IN3=0;IN4=0;/*主函数*/void main(void) uchar num; T0_init(); INT_init(); T1_init(); lcd_init(); TR1=1; ENA=1; ENB=1; IN1=1; IN2=1; IN3=1; IN4=1; while(1) if(L1=0&L2=0&L3=0&R1=0&R2=0&R3=0) num2=10; num1=10; else if(L1=1&L2=

24、0&L3=0&R1=0&R2=0&R3=0) num1=7; num2=5; else if(L1=1&L2=1&L3=0&R1=0&R2=0&R3=0) num1=6; num2=2; else if (L1=1&L2=1&L3=1&R1=0&R2=0&R3=0) num1=8; num2=1; else if(R1=1&R2=0&R3=0&L1=0&L2=0&L3=0) num2=7; num1=5; else if(R1=1&R2=1&R3=0&L1=0&L2=0&L3=0) num2=6; num1=2; else if (R1=1&R2=1&R3=1&L1=0&L2=0&L3=0)

25、num2=8; num1=1; else if (L1=1&L2=1&L3=1&R1=1&R2=1&R3=1) ENA=0; ENB=0; write_com(0x80); for(num=0;num13;num+) write_data(tablenum); delay(1); write_com(0x80+0x40); for(num=0;num13;num+) write_data(table1num); delay(1); write_com(0x86); write_data(bai); delay(1); write_com(0x87); write_data(shi); delay(1); write_com(0x88); write_data(ge); delay(1); bai1=run_time/1000/100+48; shi1=run_time/1000%100/10+48; ge1=run_time/1000%100%10+48; write_com(0x80+0x49); write_data(bai1); delay(1); write_com(0x80+0x4a); write_data(shi1); delay(1); write_com(0x80+0x4b); write_data(ge1); delay(1);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1