基于单片机STCC控制的智能小车(完整资料)_第1页
基于单片机STCC控制的智能小车(完整资料)_第2页
基于单片机STCC控制的智能小车(完整资料)_第3页
基于单片机STCC控制的智能小车(完整资料)_第4页
基于单片机STCC控制的智能小车(完整资料)_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机STCC控制的智能小车(完整资料)(可以直接使用,可编辑优秀版资料,欢迎下载)

基于单片机STC89C52控制的智能小车基于单片机STCC控制的智能小车(完整资料)(可以直接使用,可编辑优秀版资料,欢迎下载)摘要:该毕业设计是采用无线遥控基于单片机的功能实现的,当无线遥控器的某个按键按下时,无线发射器将按键信号以编码的形式在315MHz的频率上发射出去,无线接收器接收并放大发射信号同时解调出TTL电平信号送至单片机进行处理,单片机通过比较和识别接收来的无线遥控编码便可执行相应的遥控功能,从而实现智能小车的前进、后退、左转和右转的基本功能和伴随音乐演奏而闪烁的LED的开启与关闭的功能。此外,我加入了温度传感器与时钟芯片,让它们在液晶显示器上显示其室温和时间,并用按钮进行时间的调控。由于无线遥控模块是四路单向锁存模块,只能单线实现四个功能,所以发射模块的控制按键不够,根据需要,我仅仅用无线模块控制小车的前进和后退,停止,其它的采用按键调试,用按键来实现小车的前进/后退/左转/右转/音乐/时间调控等功能。关键词:无线模块;液晶显示模块;电机驱动模块;音乐;智能小车目录TOC\o"1—2”\h\z\u引言..。.。.......。..。.....。....。......。。.。....。.。。.。.....。...。。..。。。.31 整体方案设计.....。。..。。......。...。....。....。....。。.。。...。....。..41.1 整体方案设计的思路。..。....。.......。。。。。.......。.............。...41。2ﻩ整体方案的流程图.。...。.。。......。..。..。..。...。...。。.。......。...。.42ﻩ避障遥控小车系统概况.....。。....。。..。...。。。.......。。.............42.1 SC2272无线遥控模块原理。...。。。.。.。..。。。.。。....。.。......。.....。.。.42.2 驱动原理的简介.。.。..。...。..。..。。。。。.。.。。..。..。。。.。.。。....。..。.。.62。3 直流电机简介....。..。。.....。..。.。.。.。..。.....。....。......。。......93 模块方案比较与论证.....。。.。.。...........。..。.....。.。......。。。..123.1 车体设计....。。。....。..................。...。....。.。。..。.........123.2 电机模块的选择..。。。..。.。...。....。..。.......。.。。.........。.。..。.123。3ﻩ电机驱动模块的选择。....。。..。.。...。.。.............。..。...。。....。123。4 控制器模块的选择.。.。..。.。..。.........。.............。...。...。...134 系统硬件电路设计......。......。.。。.....。。。........。...。....。。。..144.1ﻩ无线模块的设计。。。...。.....。.。...........。.。..。......。....。.。...144.2ﻩ直流电机的驱动模块....。.............。。...。。....。..。.。..。。...。..155 软件的简单介绍.........。.。。.。..................。。......。..。..。.165.1ﻩKEIL的简介.。。.....。.。.。。。..。.。......。。........。...。。.。。。......165。2 PROTUES的简介 .......。.。..。。...。。。...。..。..。.....。。....。..。。...165.3ﻩSTC_ISP_V480的简介.....。。。.......。.....。。。。。......。..。.。。.。。...17参考文献..。.。.。...。。.。....。。..。。.。...。....。...。........。.18附录一:实物图。..。.。。。....。...。.。...。...........。.....。。.。..。。。。..19附录三:总程序.。。.....。..。.....。。.。.....。.....。....。......。。。..。...22引言随科学技术的进步,智能化和自动化技术越来越普及,也广泛应用于机器人玩具制造领域,使智能机器人越来越多样化。智能机器人是一个多种高新技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,涉及到当今许多前沿领域的技术.而随着社会的不断发展,智能设备的不断出现,红外传感器、无线遥控的运用也越来越广泛.无线遥控器由于控制距离远,抗干扰性强,已越来越多的出现在生活的各个方面。本文使用了一款通用的无线遥控电路以及四路红外传感器,基于STC89C51作为控制核心,采用专用编码解码电路,由于其体积小、功能强大,因此可非常方便的移植到遥控小车上,实现小车在前行中自动绕开障碍物,并用遥控器实现远距离控制小车的前进、后退、左转、右转等功能。1ﻩ整体方案设计1.1ﻩ整体方案设计的思路利用红外线传感器发射和接收信号模块来控制单片机,让单片机翻译传输指令,从而实现相应的功能.具体的过程如下:四路红外传感器,每一路发射一个信号,检测接收到的信号,若出现高电平,则说明该方向前方有障碍物,则单片机控制电机正转和反转,从而实现绕开障碍物继续前行。同时还增加一个无线发射和无线接收模块控制单片机,让单片机翻译传输指令,从而实现相应的功能。无线发射模块发出指令,无线接收模块接收信号后,传递给单片机,单片机翻译接收到信号后,传输给驱动电路驱动电机旋转,从而实现让小车的前进、后退、左转和右转。1。2ﻩ整体方案的流程图基于单片机STC89C52整体设计的智能小车,根据原来设计的思路上画出了相对应的流程路,由于是整体结构图,就只是画出了大致的结构流程,而细节将在后面做出介绍。图1整体方案的流程图2ﻩ避障遥控小车系统概况2.1ﻩSC2272无线遥控模块原理2.1。1SC2272的简介超再生带解码四路遥控接收模块可以和发射器组成四路无线发射接收电路.该模块广泛适用于广大电子爱好者对家庭、工业遥控类电子产品的设计和开发,可很好的作为单片机的信号输入源,特别适合大中院校学生电子电路设计、毕业设计中的遥控电路部分.接收模块有自锁、非锁、互锁三种型号,说明如下:非锁型输出又称点动输出,数据脚输出的电平是瞬时的而且和发射端是否发射相对应,可以用于类似点动的控制,有遥控信号时数据脚是高电平,遥控信号消失时数据脚立即恢复为低电平,适用于如电动门、电动门锁、与单片机对接等只需要一个高电平的电路等电路等.自锁型输出的数据脚能实现触发翻转工作逻辑,数据只要成功接收就能一直保持对应的电平状态,直到下次遥控数据发生变化时改变。自锁型四路相互独立互不影响,可同时遥控四路,如灯具的控制等.互锁型输出就是任意一路收到信号则该路就能一直保持对应的高电平状态,接收到任意其它路的数据则恢复到原始状态,四路互锁只能有一路接通,实际应用如电风扇档位开关电路等。2。1.2本次设计采用的接收板主要参数工作频率:315M工作电压:DC5V工作电流:≤3mA(5。0VDC)工作原理:超再生调制方式:ASK编码芯片:SC2272(PT2272、PT2294),芯片兼容灵敏度:优于-105dBm(50Ω)输出信号:非锁(M)遥控距离:20~50米以上(开阔地)接收模块的七根引脚分别为D3、D2、D1、D0、GND、VT、VCC,其中VCC为DC5V的供电端,GND为接地端,VT端为解码有效输出端,只要发射器的数据码有输出,VT都能同步输出高电平;D3、D2、D1、D0是2262解码芯片的四位数据输出端,有信号时能输出5V左右的高电平,驱动电流约2mA,与发射器的四位数据码输出一一对应。接收模块不焊天线也能接收信号,为提高接收灵敏度,可以用一根长度约为23厘米的软导线直接焊接到天线孔处,图中RC所指的是振荡电阻,接收模块和发射器的震荡电阻需要匹配才能工作,接收模块用的是270K或者820K电阻,可以分别和1.5M或者4。7M振荡电阻的发射器配套使用.发射器可以用固定码四键遥控器或者带编码四路发射模块。2.1.3原理图图2固定编码接收模块原理图2。2 驱动原理的简介驱动模块的核心实际上是H桥驱动电路组成的L298芯片。2.2.1H桥驱动电路的内部原理解析如下图5中所示为一个典型的直流电机控制电路。电路得名于“H桥驱动电路”是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:图5及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。如图所示,H桥式电机驱动电路包括4个三极管和一个电机.要使电机运转,必须导通对角线上的一对三极管.根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。图3H桥驱动电路要使电机运转,必须使对角线上的一对三极管导通。例如,如图6所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极.按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。图4H桥电路驱动电机顺时针转动图7所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机.当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。图5H桥驱动电机逆时针转动使能控制和方向逻辑驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要.如果三极管Q1和Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极.此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制),甚至烧坏三极管。基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。图8所示就是基于这种考虑的改进电路,它在基本H桥电路的基础上增加了4个与门和2个非门。4个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电路的开关。而2个非门通过提供一种方向输人,可以保证任何时候在H桥的同侧腿上都只有一个三极管能导通。(与本节前面的示意图一样,图8所示也不是一个完整的电路图,特别是图中与门和三极管直接连接是不能正常工作的。)图6具有使能控制和方向逻辑的H桥电路采用以上方法,电机的运转就只需要用三个信号控制:两个方向信号和一个使能信号。如果DIR-L信号为0,DIR—R信号为1,并且使能信号是1,那么三极管Q1和Q4导通,电流从左至右流经电机(如图4.16所示);如果DIR-L信号变为1,而DIR-R信号变为0,那么Q2和Q3将导通,电流则反向流过电机。图7使能信号与方向信号的使用实际使用的时候,用分立元件制作H桥是很麻烦的,好在现在市面上有很多封装好的H桥集成电路,接上电源、电机和控制信号就可以使用了,在额定的电压和电流内使用非常方便可靠。比如常用的L293D、L298N、TA7257P、SN754410等。恒压恒流桥式2A驱动芯片L298NL298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路.可以方便的驱动两个直流电机,或一个两相步进电机。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。4脚VS接电源电压,VS电压范围VIH为+2.5~46V。输出电流可达2。5A,可驱动电感性负载.1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB连接控制使能端,控制电机的停转。表1是L298N功能逻辑图.In3,In4的逻辑图与表1相同。由表1可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。同为低电平电机停止,同为高电平电机刹停。等。图8单片机利用L298控制电机的原理图15脚是输出电流反馈引脚,其它与L298相同。在通常使用中这两个引脚也可以直接接地.上图是其与51单片机连接的电路图2.3 直流电机简介2。3.1直流电机的应用动机简称电机,是使机械能与电能相互转换的机械,直流电机把直流电能变为机械能。作为机电执行元部件,直流电机内部有一个闭合的主磁路。主磁通在主磁路中流动,同时与两个电路交联,其中一个电路是用以产生磁通的,称为激磁电路;另一个电路是用来传递功率的,称为功率回路或电驱回路。现行的直流电机都是旋转电驱式,也就是说,激磁绕组及其所包围的铁芯组成的磁极为定子,带换向单元的电驱绕组和电驱铁芯结合构成直流电机的转子.直流电机有以下4方面的优点:调速范围广,且易于平滑调节。过载、启动、制动转矩大。易于控制,可靠性高。调速时的能量损耗较小。所以,在调速要求高的场所,如轧钢机、轮船推进器、电机、电气铁道牵引、高炉送料、造纸、纺织、拖动、吊车、挖掘机械、卷扬机拖动等方面,直流电机均得到广泛的应用.直流电机的基本工作原理直流电机工作原理:当电刷A,B接在电压为U的直流电源上时,若电刷A是正电位,B是负电位,在N极范围内的导体ab中的电流是从a流向b,在S极范围内的导体cd中的电流是从c流向d。载流导体在磁场中要受到电磁力的作用,因此ab与cd两导体都受到电磁力的作用.根据磁场方向和导体中的电流方向,利用电机左手定则判断,ab边受力的方向是向左的,而cd边则是向右的。由于磁场是均匀的,导体中流过的又是相同的电流,所以ab边和cd边所受电磁力的大小相等。这样,线圈上就受到了电磁力的作用而按逆时针转动。当线圈转到磁极的中性面上时,线圈中的电流等于零,电磁力等于零,但是由于惯性的作用,线圈继续转动.线圈转过半周之后,虽然ab与cd的位置调换了,ab边转到S极范围内,cd边转到N极范围内,但是由于换向片和电刷的作用,转到N极下的cd边中电流方向也变了,是从d流向c,在s极下的ab边中的电流则是从b流向a。因此电磁力的方向仍然不变,线圈仍然受力按逆时针方向转动。可见,分别处在N,S极范围内的导体中电流方向总是不变的,因此线圈两个边的受力方向也不变,这样线圈就可以按照受力方向不停地旋转,通过齿轮或皮带等机构的传动,便可以带动其他机械工作。从以上分析可以看到,要使线圈按照一定的方向旋转,关键问题是当导体从一个磁极范围转到另一个异性磁极范围时(也就是导体经过中性面后),导体中电流的方向也要同时改变,换向器和电刷就是完成这一任务的装置。在直流电机中,换向器和电刷把输入的直流电变为线圈中的交流电。可见,换向器和电刷是直流电机中不可缺少的关键部件。当然,在实际的直流电机中,不只有一个线圈,而是有许多线圈牢固地嵌在转子铁芯槽中,当导体中通过电流在磁场中因受力而转动时,就带动整个转子旋转,这就是直流电机的基本工作原理.直流电机的参数转矩—电机得以旋转的力矩,单位为㎏•m或N•m.转矩系数-电机所产生转矩的比例系数,一般表示每安培电驱电流所产生的转矩大小。摩擦转矩—电刷、轴承、换向单元等因摩擦而引起的转矩损失.启动转矩—电机启动时所产生的旋转力矩。转速—电机旋转的速度,工程单位为r/min,即转每分.在国际单位制中为rad/s,即弧度每秒.电枢电阻-电枢内部的电阻,在有刷电机里一般包括电刷与换向器之间的接触电阻,由于电阻中流过电流时会发热,因此总希望电枢电阻尽量小。电枢电感-因为电枢绕组由金属线圈构成,必然存在电感,从改善电机运行性能的角度来说,电枢电感越小越好。电气时间常数—电枢电流从零开始达到稳定值的63。2%时所经历的时间。测定电气时间常数时,电机应处于堵转的状态并施加阶跃性质的驱动电压.工程上,常常利用电动机转子的转动惯量J、电枢电阻Ra、电机反电动势系数Ke和转矩系数Kt求出机械时间常数:…1-1转动惯量-具有质量的物体维持其固有运动状态的一种性质。反电动势系数—电机旋转时,电枢绕组内部切割磁力线所感应的电动势相对于转速的比例系数,也称发电系数或感应电动势系数。功率密度—电机每单位质量所能获得的输出功率值。功率密度越大,电机的有效材料的利用率就越高。转子-rotor;定子-stator;电枢—armature;励磁-excitation。3模块方案比较与论证车体设计方案1:自己制作电动车。一般的说来,自己制作的车体比较粗糙,平衡感不好,车身重量以及车体比例都要有精确的测量,而且也要控制好小车行驶的轮胎与齿轮的力矩及角度的结合,这些都比较难实现.方案2:购买玩具电动车。购买的玩具电动车具有组装完整的车架车轮。玩具电动车具有如下优点:首先,这种玩具电动车由于装配紧凑,使得各种所需电路的安装十分方便,看起来也比较美观。其次,玩具电动车是依靠电机与相关齿轮一起驱动,能适应题目中小车准确前进、后退、转弯的要求,但是这种电动车一般都价格较贵。基于以上分析,我们综合了方案一和方案二,还是选择了方案一,因为购买现成的小车不但价格较昂贵,而且它的功能固定,于是我们购买了两个轴承和两个直流电机(带减速机构),再自己组装完成了智能小车的车底.电机模块的选择方案1:采用步进电机作为该系统的驱动电机。由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降.经综合比较考虑,我们放弃了此方案。方案2:直流电机:直流电机的控制方法比较简单,只需给电机的两根控制线加上适当的电压即可使电机转动起来,电压越高则电机转速越高。对于直流电机的速度调节,可以采用改变电压的方法,也可采用PWM调速方法。PWM调速就是使加在直流电机两端的电压为方波形式,通过改变方波的占空比实现对电机转速的调节.但是我们在这里设计的小车只要实现避障和无线控制,对小车的速度没有太大的要求,所以我们购买的是带减速装置的直流电机.基于以上分析,我们选择了方案二,使用直流电机作为电动车的驱动电机。电机驱动模块的选择方案1:采用SM6135W电机遥控驱动模块。SM6135W是专为遥控车设计的大规模集成电路。能实现前进、后退、向右、向左、加速五个功能,芯片自建3.6V稳压模块,但是其采用的是编码输入控制,而不是电平控制,这样在程序中实现比较麻烦,而且该电机模块价格比较高。方案2:采用电机驱动芯片L298N。L298N为单块集成电路,高电压,高电流,四通道驱动,可直接的对电机进行控制,无须隔离电路。通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,非常方便,亦能满足直流减速电机的大电流要求。调试时在依照上表,用程序输入对应的码值,能够实现对应的动作.表1是其使能、输入引脚和输出引脚的逻辑关系。表3。1L298N的引脚和输出引脚的逻辑关系ENA(B)IN1(IN3)IN2(IN4)电机运行情况HHL正转HLH反转H同IN2(IN4)同IN2(IN4)快速停止LXX停止基于以上分析,我们选择了方案二,用L298N来作为电机的驱动芯片。控制器模块的选择方案1:采用凌阳的SPCE061A小板作为主控制芯片,而且可以采用凌阳的小车模块,可以很快的完成其基本功能,当是用该小板存在一定的局限性,较难扩展功能,而且各个模块的拼凑,没有比集成在一块板的稳定性高。方案2:采用STC89C52作为主控制芯片,该芯片有足够的存储空间,可以方便的在线ISP下载烧写程序,能够满足该系统软件的需要,该芯片提供了两个计数器中断,对于本作品系统已经足够,采用该芯片可以比较灵活的选择各个模块控制芯片,能够准确的计算出时间,有很好的实时性.基于以上分析,我们选择了方案二,用STC89C52作为电机的主控制芯片。4 系统硬件电路设计 204。1无线模块的设计4。1。1无线模块的仿真图图9无线模块的仿真图4。1.2无线模块的流程图无线模块可以进行远程的控制,但有效距离不能超过十米,不然效果很差。由于买的是锁存的四线路,只能单程的实现四种状态的控制,根据需要已经分为以下的四种模式,如下图所示图10无线模块的流程图直流电机的驱动模块直流电机驱动模块的仿真图图11直流电机驱动模块的仿真图4。2.2直流电机驱动模块的流程图电机驱动模块的核心是电机的驱动芯片及电机,电机选择了直流电机,这样可以方便控制,而电机的驱动芯片L298可以同时控制两个直流电机,其中芯片中连接单片机的5引脚和7引脚用于控制直流电机1,而芯片中的10引脚和12引脚用于控制直流电机2。电机1接的是小车的左轮,电机2接的是小车的右轮,当两个电机一起正向转动时,小车前进;当两个电机一起反向转动时,小车后退;当电机1正转,电机2反转时,小车右转;当电机1反转,电机2正转时,小车左转。图12直流电机驱动模块的流程图5软件的简单介绍在这次的设计中,主要用到了keil,protues和STC_ISP等软件5.1keil的简介KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。5.2Proteus简介Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。5.3STC-ISP-V4.80的简介在运行STC—ISP—V4。80软件之前,应该先给出ISP的C程序源代码ISP。C。要注意的是,此程序是在Keil—C中要建立工程文件,包含IAP.C函数,并且在IAP。C和ISP.C中都要保留STC的定义,传入用户代码时,需要与计算机进行通信,一般采用RS232串行通信,数据协议采用简单协议.具体的使用方法:一、先把学习实验板和计算机连接好(接好串口线和电源)二、打开STC-ISP-V4。80,在MCUType栏目下选中单片机,如STC89C52RC:根据您的9针的数据线连接情况选中COM端口,按图示选中各项:图13STC-ISP-V4。80的界面图三、先确认硬件连接正确,按下图点击“打开文件"并在对话框内找到您要下载的HEX文件:四、选中两个条件项,这样可以使您在每次编译KEIL时HEX代码能自动加载到STC-ISP,点击“Download/下载”:五、手动按下电源开关便即可把可执行文件HEX写入到单片机内,下图是正在写入程序截图:图14单片机程序下载截图参考文献[1]吴锤红,MCS-51微机原理与接口技术,厦门大学出版社[2]邓星钟,机电传动控制(第四版),华中科技大学出版社[3]秦曾煌,电工学电子技术(第七版)(下册),高等教育出版社[4]谭浩强,C程序设计(第三版),清华大学出版社。附录一实物图图15实物图1图16实物图2图17实物图3洛阳理工学院课程设计报告课程名称单片机原理与应用设计题目基于STC89C52单片机的实验平台开发设计专业计算机科学与技术班级学号姓名完成日期2013年6月25日课程设计任务书设计题目:基于STC89C52单片机的实验平台开发设计设计内容与要求:一、设计内容利用STC系列单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,主要包括以下内容:电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;学习集成电路等芯片的焊接方法与技巧,实际元器件的识别、电路板焊接;在KeilC环境下,进行软件设计。主要包括流水灯、计数器、定时器、LCD字符显示、键盘的控制等功能程序设计;针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。二、设计要求完成综合实验平台的电路分析,进行模块分解,掌握各部分电路的工作原理;独立完成电路板的焊接,掌握故障排除方法,完成实验的硬件设计及开发;结合KeilC软件在焊接无误的单片机实验平台上开发出流水灯、LCD显示模块,通信模块等程序设计;按照要求撰写课程设计论文。指导教师:2013年5月30课程设计评语成绩:指导教师:_______________年月日基于STC89C52单片机的实验平台开发设计摘要STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器.STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能.在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双共串口。另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。利用STC89C52单片机作为微控制器开发一套软、硬件相结合的单片机实验平台,在KeilC环境下进行软件设计,主要包括流水灯、数码管显示以及LCD显示模块,在Protues中仿真成功,下载到电路板中验证成功.实现流水灯的跳转显示流动,应用中断实现数码管60之内计数以及LCD显示不同字符的功能。关键词:STC单片机,实验平台,数码管,流水灯,串口通信DESIGNANDDEVELOPMENTPLATFORMBASEDONSTC89C52MICROCONTROLLEREXPERIMENTABSTRACTTheSTC89C52isalowpower,highperformanceCMOS8producedSTC,with8KinsystemprogrammableFlashmemory.STC89C52singclassicMCS—51kernel,butmadealotofimprovementsmakethechipwithraditional51SCMfeaturesnotavailable.Inasinglechip,with8CPUdexterousandin-systemprogrammableFlash,theSTC89C52offerssolutionsforhighflexibility,superefficientformanyembeddedcontrolapplications.Hasthestandardfeatures:8KbytesofFlash,512bytesofRAM,32I/Olines,thewatchdogtimer,built-in4KBEEPROM,MAX810resetcircuit,316timer/counter,4externalinterrupts,a7vectorlevel4interruptstructure,atotalof.InadditionSTC89C52canbereducedto0Hzstaticlogicoperation,support2softwareselectablepowersavingmode.Theidlemode,theCPUstopsworking,RAM,timer/counter,serialportinterrupt,continuetoworkpermit.Theower—downmode,theRAMcontentbeingsaved,hasbeenfrozen,disablingallotherchipfunctions,untilthenextinterruptorhardwarereset。Maximumoperatingrequencyof35MHz,6T/12Toptional。SCMexperimentplatformbasedonSTC89C52MCUdevelopmentofasoft,combinedwithhardware,softwaredesigninKeilCenvironment,includingwaterlights,digitaltubedisplayandLCDdisplaymodule,thesimulationsuccessfullyinProtues,downloadtothecircuitboardtestsuccessful.Toachievewaterlampjumpdisplayflow,usinginterrupt60digitaltubecountingandLCDdisplaydifferentcharacterswithinthefunction.KEYWORDS:STCmicrocontroller,comprehensiveexperimentalboard,softwareandhardwarecombinedwith,andtheprogramdevelopmentdesign目录摘要I目录III前言1第1章系统概述21。1设计题目21。2系统设计目的和内容21。2.1设计目的21。2.2设计内容21.2.3设计要求31。2.4设计步骤3第2章整体设计方案42.1开发板整体外观42。2整板电路PROTUES仿真电路42.3软件功能描述52.4仿真软件PROTUES中的效果图7第3章硬件电路设计93.1两位一体共阴数码管93.1。1数码管概述93。1。2数码管内部结构93.1.3两位一体共阴数码管和74LS374锁存器接口电路113.2LCD1602液晶123.2.1LCD1602液晶简介123.2.2LCD1602液晶引脚介绍123.2.3LCD1602液晶外围接口电路143.3串口通信143.3.1串口通讯概述143。3。2MAX232接口电路15第4章软件设计164.1程序整体流程图164.2程序清单17第5章调试及故障分析215。1焊接准备阶段元器件测试、电路原理图故障分析215.2电路焊接过程中的故障分析215.3程序编写过程中的故障分析215。4实物演示效果22结论24谢辞25参考文献26附录27前言随着电子技术的发展,单片机在电讯技术、工业控制、汽车自动化、家用电器等领域得到了广泛的应用,而单片机由于其实用性好、可靠性高、便于扩展等特点得到了广泛的应用。为了更好的学习和应用单片机,可以将经常应用到的单片机外围电路集成到一个学习/开发板上以供使用者方便使用。同时应提供常用的移植性较好的模块代码(本设计选用C作为源代码的编写工具)。市场上现存的单片机开发板很多,因此,要求设计尽量能够达到资源丰富、易用性好、设计美观等特点.而STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS—51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。本系统是基于STC89C52单片机的学习开发板,集成了单片机应用过程中常用到的硬件资源,数码管、LCD显示器、流水灯。为学习和开发单片机产品提供平台。系统概述设计题目基于STC89C52的实验平台开发设计系统设计目的和内容设计目的利用STC89C52作为微控制器开发一套软、硬件相结合的单片机实验平台。实现对数码管、LCD显示器、流水灯的操作,锻炼学生的设计思维和动手能力,使其具备独立完成设计的能力,也让学生更好的了解课本内容。设计内容电路原理图设计,主要包括集LCD显示模块、串口通信模块、数码管显示模块、LED发光二极管、键盘等接口电路的设计;学习集成电路等芯片的焊接方法与技巧,进行实际元器件的识别,进行电路板焊接;在KeilC环境下,进行软件设计。主要包括流水灯、计数器、定时器、LCD字符显示、键盘的控制等功能程序设计;针对所开发的实验板,结合器件选择、原理图设计、硬件焊接、软件编程调试、软硬件联调等方面写出课程设计报告。设计要求完成综合实验平台的电路结构分析,进行模块分解,掌握各部分电路的工作原理;独立完成电路板的焊接,掌握故障排除方法,完成实验平台的硬件设计及开发;结合KeilC软件在焊接无误的单片机实验平台上开发出流水灯、LCD显示模块,通信模块等程序设计;按照要求撰写课程设计论文。设计步骤先对原理图进行分析根据图示对电路板进行焊接焊接完成后,在protues上连接仿真电路图再根据原理图进行编程序,并在keilC上运行,检查是否有误将程序加载在仿真图上运行,截取需要的电路图最后在焊接好的电路板上实验整体设计方案开发板整体外观图2-1开发板外观图整板电路PROTUES仿真电路图2—2仿真原理图软件功能描述1.KeilC51C51工具包的整体结构,如图(1)所示,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(。ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。使用独立的Keil仿真器时,注意事项*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。*仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用.2.ISISProtuesProtues软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计.迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型.在编译方面,它也支持IAR、Keil和MATLAB等多种编译支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等.提供软件调试功能。提供丰富的外围接口器件及其仿真。RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。这样很接近实际。在训练学生时,可以选择不同的方案,这样更利于培养学生。提供丰富的虚拟仪器,利用虚拟仪器在仿真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。具有强大的原理图绘制功能在PROTUES绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTUES的原理图中看到模拟的实物运行状态和过程.PROTUES是单片机课堂教学的先进助手。PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。它具有设计灵活,结果、过程的统一的特点.可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTUES也能茯得愈来愈广泛的应用。可实现KeilC与Protues连接调试.在已经绘制出了8051驱动原理图的基础上,完整地展示一个Protues与KeilC相结合的仿真过程。硬件设计程序设计仿真实现步骤仿真软件PROTUES中的效果图图2-3仿真效果图1图2—4仿真效果图2图2—5仿真效果图3硬件电路设计3.1两位一体共阴数码管数码管概述LED数码管是由发光二极管构成的,具有显示亮度高、响应速度快的特点.常见的是七段LED显示器为“8”字型,该显示器内部有7个条形发光二级管和一个小圆点发光二级管,共计8段,每段对应一个发光二级管。有共阴极和共阳极两种,共阴极发光二极管的阴极连在一起,通常公共阴极接地。当阳极为高电平时发光二级管发光.共阳极发光二极管的阳极连在一起,通常公共阳极接正电压.当阴极为低电平时发光二级管发光。数码管内部结构led数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图片。

图3-1LED数码管引脚定义图3-210引脚数码管实物图8段LED数码管如图3-3所示:图3—38段LED数码管结构及外形LED数码管通过7个发光二极管亮暗的不同组合可以显示各种数字,另外一个圆的型发光二级管(图3-1(a)中以dp显示)显示小数点。只要为LED数码管提供了段码就可以显示不同的符号和数字.LED数码管共计8段。正好是一个字节。习惯上是以“a"段对应段码字节的最低位。各段与字节中各位对应关系如表3—1所示。表3-1段码与字节中各位对应关系代码位D7D6D5D4D3D2D1D0显示段dpgfedcba按照表3—1中的格式,显示各种字符的8段LED数码管的段码如表3—2所示(以共阴极为例)。表3-28段LED数码管段码显示字符段符号十六进制代码dpgfedcba共阴极共阳极0001111113FHC0H10000011006HF9H2010110115BHA4H3010011114FHB0H40110011066H99H5011011016DH92H6011111017DH82H70000011107HF8H8011111117FH80H9011011116FH90H两位一体共阴数码管和74LS374锁存器接口电路图3—4共阴数码管和74LS374锁存器接口电路图LCD1602液晶LCD1602液晶简介工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字).其特性:3。3V或5V工作电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM内建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器CGRAMLCD1602液晶引脚介绍1602采用标准的16脚接口,如图3—4所示,其中:图3-5LCD1602液晶引脚图第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。如表3—3所示:表3-3读写操作选择RSR\W寄存器及操作00指令寄存器写入01忙信号和地址计数器读出10数据寄存器写入11数据寄存器读出第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第7~14脚:D0~D7为8位双向数据端.第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极.LCD1602液晶外围接口电路图3-6LCD1602液晶外围接口电路3.3串口通信串口通讯概述串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。如图3-5所示:图3—7串口通信串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。串行通信按信息的格式可分为异步通信和同步通信两种方式;根据信息传送的方向,串行通信可以分为单工、半双工和全双工3种,如图3—6所示。图3-8串行通信的3种传输形式同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。异步通信中,在异步通信中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收.发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步.MAX232接口电路图3-9MAX232接口电路软件设计4。1程序整体流程图4.2程序清单#include〈reg52。h>#defineuintunsignedint#defineucharunsignedcharsbitsw2=P3^2;sbitsw3=P3^3;sbitlcdrs=P1^6;sbitlcdrw=P1^7;sbitA0=P2^5;sbitA1=P2^6;sbitA2=P2^7;sbitE1=P1^5;ucharcodetable[]={"welcomtocheck!"};ucharcodetable1[]={"B11050619”};ucharcodetable3[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodetable2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0x00,0x00,0x55,0x55,0xaa,0xaa};unsignedcharcount,num;voiddelay(uintxms){uinti,j; for(i=xms;i>0;i—-)ﻩfor(j=110;j>0;j-—);}voidwrite_com(ucharcom){lcdrs=0;ﻩP0=com; lcdrw=0;//没有这条语句不行ﻩdelay(5); P2=0x40; delay(5); P2=0x00;}voidwrite_data(uchardate){lcdrs=1;ﻩP0=date;ﻩlcdrw=0;//没有这条语句不行ﻩdelay(5); P2=0x40; delay(5);ﻩP2=0xff;}voidlcd_init(){ write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01);}voidliushuideng(){ uchari;ﻩwhile(1)ﻩ{ﻩif(sw2==0) { for(i=0;i<3;i++) { P2=0xaa; delay(500); P2=0x55; delay(500); P2=0x00;ﻩdelay(500);ﻩP2=0xff;ﻩdelay(500); }}ﻩif(sw3==0){ﻩfor(i=0;i<16;i++) {ﻩP2=table2[i]; delay(500);ﻩ} }P2=0xff; }}voidyejing(){lcd_init(); write_com(0x80);ﻩfor(num=0;num〈16;num++)ﻩ{ﻩwrite_data(table[num]);ﻩdelay(5);ﻩ}ﻩwrite_com(0x80+0x40);ﻩfor(num=0;num〈9;num++)ﻩ{ write_data(table1[num]);ﻩdelay(5); }ﻩwhile(1);}voiddisplay(unsignedcharcount){A0=0; A1=0;ﻩA2=0;ﻩE1=1;ﻩP0=table3[count%10];ﻩdelay(100);ﻩA0=1; A1=0;ﻩA2=0; E1=1; P0=table3[count/10];ﻩdelay(100);}voidinit(){TMOD=0x01; TH0=(65536—50000)/256;//赋初值 TL0=(65536—50000)%256; EA=1;//开总中断 ET0=1; TR0=1;}voidT0_time()interrupt1{TH0=(65536-50000)/256;//赋初值 TL0=(65536-50000)%256;}voidshumaguan(){ init();ﻩP0=0xff;ﻩfor(count=0;count<60;count++) { display(count);ﻩdelay(500);}}voidmain(){while(1){ﻩswitch(P3){case0xfb:yejing();break; case0xf7:shumaguan();break;ﻩcase0xef:liushuideng();break; case0xdf:;break;ﻩ}}}调试及故障分析5。1焊接准备阶段元器件测试、电路原理图故障分析检测各器件是否完好,包括二极管、数码管、单片机、LED、电容等将一定值的器件摆放在应在的位置按照所给的电路图正确焊接利用万用表进行测试,找到短路、短路的地方进行修改5.2电路焊接过程中的故障分析焊接过程中焊接不完善,导致断路,不能导通电容、LED正负极接反,导致灯不会亮,也影响整体电路芯片插槽接反,将导致整体电路不能执行功能焊接过程中造成短路,将导致整体电路不能执行功能将电阻排接反,也不能得到预期的效果5.3程序编写过程中的故障分析在编写程序的时候,总会出现一些这样那样的错误,例如:在编写完成后,不能完成预期的功能,那么就需要对其进一步的修改直到可以实现功能为止,完成后,流水灯不会亮,经过检查后,原来是设置值的时候没有设置对。5.4实物演示效果图5-1液晶显示效果图图5—2流水灯效果显示图5—3数码管效果显示1图5—3数码管效果显示2结论这次的课程设计,虽然时间不长,但是却学到了很多东西。首先,我们花费了一天的时间对电路板进行焊接,焊接的过程中也会出现一些不必要的错误,例如:把器件的位置焊接错误,但是经过检测还是可以发现的。并且学到在焊接的时候团队合作是必要的,只有调动几个人的积极性,共同参与,才能更好的完成任务。因此在我们的配合下很快就完成了任务,并且一次性的通过,没有错误,虽然焊接的不是很美观。通过对电路板的焊接,我学到了干什么事都要认真,只要认真做,没有什么事是做不好的,并且不会出现太多的错误,还有就是团队合作的重要性,只有合作,才能双赢,这是自古不变的真理。接下来的工作就是按照原理图进行编程了,刚开始的时候,什么也不会写,感觉无从下手。但是,在经过共同的努力、讨论下终于找到思路,进行编程,可是在编写完成后,不能实现预期的功能,最后在经过不断的修改、实验下,可以运行了.通过编程,对课本的内容更加的了解,尤其对其流水灯的控制,中断、定时的设置。也对单片机更加的了解,对STC系列的单片机的各个端口更加的熟练,清楚的知道每个端口的功能、作用等.在此过程中,也了解到万事开头难,因为在开始的时候总是不知道该怎样做,只要开一个头,其余的就好做了,很快就可以顺利的结束。就像这次的编程,在刚开始的时候无从下手,但是一旦开一个头,以后的就水到渠成了。总之,这次的单片机实习,我学到了许多的东西,有许多是课本上不能学到的。首先,学到了团队合作的重要性,在面对问题时,同时发动几个人的大脑会更快的解决问题,在合作中学会吸取经验,虚心的接受别人的建议,向他人学习自己欠缺的、自己不懂的;其次,在实习中独立思考也是必要的,在过程中,少不了自己的独立思考,也只有自己会独立思考了。才能更好的融会贯通;最后,了解到实践是检验真理的唯一标准,光靠理论是不行的,只有多实践,才能好的理解,练习我们的动手能力,在以后的学习和生活中都是很有帮助的。谢辞本次实习在舒老师和李的悉心指导下完成的。两位老师在炎热的夏天亲临,为我指导、讲解,为我们检测电路等工作,在此对两位老师表示衷心的感谢。在实习过程中,老师也为我们讲解了许多我们不理解的内容,给我深刻的印象,同时在这里也感谢老师给了我们实习的机会,我们能在实习中学到很多有用的东西.我也要感谢同组的同学,在他们的帮助下,才能顺利的完成这次的实习,也了解到团队的重要性.在这里再次对两位老师和同组的同学表示感谢。参考文献树立.张俊亮曹旭东等编单片机原理及应用[M]。北京:电子工业出版社,2012杨居义。单片机课程设计指导.清华大学出版社,2009。9李蒙。毛建东编单片机原理及应用[M]。北京:中国轻工业出版社,2010楼然苗.51系列单片机设计实例.北京航天航空大学出版社,2003.3唐继贤。51单片机工程应用实例。北京航天航空大学出版社,2009。1马忠梅.单片机的C语言应用程序设计.北京航天航空大学出版社,1999李勋。单片机使用教程.北京航天航空大学出版社,2000附录名称数量单片机STC89C5240C—PDIP401MAX202174HC373274HC1381发光二级管9开关1按键5电阻470欧19电阻10K5电阻8。2K1两位一体共阴数码管1晶振1无相电容13有相电容2NPN三极管1排阻100欧1排阻5.1K1二极管1编号单片机课程设计(级)题目:基于单片机智能红外遥控小车的设计学院:物理与机电工程学院专业:电子信息科学与技术作者姓名:指导教师:职称:副教授完成日期:20年1月6日基于单片机智能红外遥控小车的设计摘

要本次设计的简易智能小车,采用STC89C52RC单片机作为小车的检测和控制核心;采用红外线遥控远程人为控制小车行驶状态;采用SM4105W80U3显示小车处于自动行驶还是遥控行驶;可以实现小车的前进、后退、左转、右转、停止运动。

关键词:STC89C52RC;红外遥控1

本设计能实现对小车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求.本设计采用MCS-51系列中的STC89C52RC单片机。以STC89C52RC为控制核心,使用红外遥控对小车的前进、后退、左转、右转、停止运动进行实时的控制。

本次设计主要内容是基于STC89C52RC设计一部智能小车,小车能够实现自动前进,和红外遥控的智能小车控制系统,包括了对驱动电路,红外通讯等的探索和研究。

方案设计与论证

2.1

遥控方案的选择

由于属于小范围内遥控,小车在小范围内行驶,为了减少设计成本,增加便利性,所以采用常用的家用电视红外遥控器作为红外遥控发射部分,只需在小车上加装红外接收装置即可.定义遥控器的上一曲键为左转键,暂停键为右转键,下一曲键为停止键,CH健为前进键,音量增大键为后退键,实现小车行驶的基本控制。

红外遥控系统的组成如图2。1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。图2.1红外流程图

2。2

遥控对小车的控制

切换到红外遥控功能,对小车的前进、后退、左转、右转、停止运动实现实时控制,具体如下所述:(1)前进是左右两个电机同时顺时针旋转,实现小车的前进;(2)后退是左右两个电机同时逆时针旋转,实现小车的后退;(3)停止是左右两个电机同时停止旋转,实现小车的停止;(4)右转是右电机逆时针旋转和左电机顺时针旋转同时工作,实现小车的右转;(5)左转是左电机逆时针旋转和右电机顺时针旋转同时工作,实现小车的左转;

实现不同的运动方式,是通过PWM信号对L293D芯片中的H桥进行控制。电桥一端接电源,另一端接了一个三极管.三极管导通时,电桥通过三极管接地,电机电枢中有电流通过;三极管截止时,电桥浮空,电机电枢中没有电流通过。系统通过电桥的输出端为转向电机供电。通过对继电器开闭的控制即可控制电机的开断和转速方向进而达到控制玩具车前行与倒车的目的。2。3系统原理图系统原理图如图2.2所示:LED显示模块接P1。1—1.7口;红外遥控接P3。2口;看门狗定时器接2.7口:电机控制接P0.0-0.3口;蜂鸣器接P0.7口;功能切换键接P3.4口。起停运动L起停运动L293D驱动STC89C52RCLED显示红外遥控LED显示红外遥控复位电路光电隔离复位电路光电隔离图2.2系统框图3

硬件设计

3.189C52单片机硬件结构

89C52单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。

3.2

最小应用系统设计

3.2。1最小系统用89C52单片机进行构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图3。1所示。由于集成度的限制,最小系统只能用作一些最小的控制单元。但也拥有一些有点:

(1)

有可供用户使用的大量I/O口线。

(2)

内部存储器容量有限。

(3)

应用系统开发具有特殊性。图3.1最小系统电路图3.2。2烧写接口电路

RST置高电平,然后向单片机串行发送编程命令。P1。7(SCK)输入移位脉冲,P1。6(MISO)串行输出,P1.5(MOSI)串行输入。被烧写的单片机一定是最小系统(单片机已经接好电源,晶振,可以运行)。如图3。2烧写接口电路。图3.2烧录程序电路图3.2.3

PWM脉宽调速

本设计调速采用PWM控制,选用了常用的双极式H型变换器,它是由4个三极电力晶体管和四个续流二极管组成的桥式电路.图3.3为双极式H型可逆PWM变换器的电路原理图.

4个电力晶体管的基极驱动电压分为两组。VT1和VT4同时导通和关断,其驱动电路中Ub1=Ub4;VT2和VT3同时动作,其驱动电压Ub2=Ub3=—Ub1。

双极式PWM变换器的优点如下:(1)电流一定连续;

(2)可使电动机在四象限中运行;

(3)电机停止时有微振电流,能消除静摩擦死区;

(4)低速时,每个晶体管的驱动脉冲仍较宽,有利于保证晶体管可靠导通;

(5)低速平稳性好,调速范围可达20000左右。图3.3PWM驱动电路图3.2.4电源的设计

本设计的电源为车载电源.为保证电源工作可靠,单片机系统与动力伺服系统的电源采用了大功率、大容量的蓄电池;而传感器的工作电源则采用了小巧轻便的干电池。3。3

红外线遥控电路

方便起见,本设计直接采用电视遥控器作为红外遥控的发射器,只需在小车上加装红外接收装置即可

红外接收器的电路图如图3.4所示:图3.4红外线遥控电路3.4

显示电路设计本设计中用一片1位七段数码管SM4105W80U3作显示器,显示数字。

七段数码管SM4105W80U3中的a﹑b﹑c﹑d﹑e﹑f﹑g﹑dp分别连接在单片机的P2。1—P2.7,分别控制各段码,与单片机的连接如图3。5所示。图3。5显示电路图4

软件设计

4。1

设计流程

一个智能化的系统,软件设计必不可少,软件设计是更具系统需求,通过编程语言控制单片机的行为,实现智能控制。

模块化的程序设计有以下有点:(1)单个模块比起一个完整的程序易编写及调试;

(2)模块可以共存,一个模块可以被多个任务在不同条件下调用;(3)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。

本系统软件采用模块化结构,由主程序﹑中断子程序显示子程序﹑算法子程序、遥控子程序构成。

本次设计采用的即是模块化的软件编程,各程序功能清晰、明确.软件流程图如图4。1所示:NY结束自动行驶遥控行驶遥控功能选择开始开始NY结束自动行驶遥控行驶遥控功能选择开始开始图4.1流程图4。2

软件抗干扰技术提高小车智能控制的可靠性,仅靠硬件抗干扰是不够的,需要进一步借助于软件抗干扰技术来克服某些干扰。在单片机控制系统中,如能正确的采用软件抗干扰技术,与硬件干扰措施构成双道抗干扰防线,无疑为了将大大提高控制系统的可靠性。经常采用的软件抗干扰技术是数字滤波技术、指令冗余技术、软件陷阱技术等。4。3

程序设计

软件设计采用模块化设计,思路清晰,也便于查找问题。红外遥控键位对应子程序流程图如图4。2所示开始开始开始采集红外遥控数据NY采集红外遥控数据NY延时等待延时等待判地址码判地址码是否相同进行键进行键位对应结束结束图4.2红外遥控流程图5不足与展望本次设计的总体效果不是很好,控制灵敏性较差,寻迹和避障功能没有很好的实现。因此要设计具有优良的调速特性,调速平滑,方便使用,控制精确,转动灵敏,可实现频繁的无极快速起动、制动和转动,需要满足生产过程自动化系统各种不同的特殊要求.为此,设计制造高性能、高可靠性的智能小车控制系统有着十分重要的现实意义。6设计心得经过这次课程设计我感受颇多,在正式进行设计之前,我参考了一些网上的资料,通过对这些设计方案来开拓自己的思路,最后终于有了自己的思路。此次课程设计不仅是对前面所学单片机技术和运动控制理论的一种检验,更是对所学知识大融合,站在新的高度看待新的问题,而且也是对自己运用所学知识的能力的一种提高.通过这次课程设计使我明白了自己原来知识还比较欠缺,自己要学习的东西还太多。以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低.通过这次课程设计,我才明白学习是一个长期积累的过程。参考文献[1]张毅刚,喜元.原理与应用设计[M].北京:北京市海淀区四季青印刷厂,2010。[2]张毅刚.新编MCS-51单片机运用设计[M]。哈尔滨:哈尔滨工业大学出版社,2003.[3]张义和,敏男,宏昌,长春.例说51单片机(c语言版)[M]。北京:人民邮电出版社,2009.[4]马忠梅籍顺心张凯马岩.单片机的C语言应用程序设计[M].北京:北京航空航天大学,2010。[5]SamsungElectronics。S3C44BOXRiscmicrocontrollerARMinstructionsheet.2002.[6]郭天祥.《51单片机C语言教程》[M]。子工业出版社,2005年7月.[7]丁元杰.《单片微机原理及应用》[M],械工业出版社,2005年7月.[8]楼然苗,光。《单片机课程设计指导》[M].京:北京航空航天大学出版社,2007。附录1实物图2源程序清单#include〈REGX52.H〉#include<intrins.h>sbitLeftLed=P2^0;sbitRightLed=P0^7;sbitFontLled=P1^7;sbitLeftIR=P3^5;sbitRightIR=P3^6;sbitFontIR=P3^7;sbitM1A=P0^0;sbitM1B=P0^1;sbitM2A=P0^2;sbitM2B=P0^3;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论