基于单片机控制的红外遥控小车最终修订版3.docx
《基于单片机控制的红外遥控小车最终修订版3.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的红外遥控小车最终修订版3.docx(35页珍藏版)》请在冰豆网上搜索。
基于单片机控制的红外遥控小车最终修订版3
ANYANGINSTITUTEOFTECHNOLOGY
专科毕业论文
基于AT89C52的红外遥控小车设计
AnInfraredTelecontrolCarBasedonTheAT89C52Chip
系(院)名称:
电子信息与电气工程系
专业班级:
学生姓名:
指导教师姓名:
指导教师职称:
讲师
2009年5月
目录
摘要I
AbstractII
第一章绪论1
1.1课题背景1
1.2设计要求1
1.3设计方案1
第二章硬件设计2
2.1AT89C52单片机2
2.1.1单片机选型2
2.1.2AT89C52单片机的硬件结构简介2
2.1.3单片机的中断7
2.1.4单片机输出控制隔离电路7
2.2电源电路8
2.2.1集成稳压块选型8
2.2.2集成稳压块7805介绍8
2.2.3单片机5V电源的获得9
2.3红外遥控与接收9
2.3.1PWM(PulseWidthModulation)脉宽调制技术9
2.3.2红外接收电路11
2.3.3用单片机解码红外信号13
2.4直流电机14
2.4.1直流电机工作原理14
2.4.2电机驱动芯片L29815
2.4.3电机驱动电路和保护电路18
2.5硬件原理总图19
第三章软件设计20
3.1产品主程序的设计20
3.2程序流程图24
第四章安装与调试25
4.1安装制作25
4.2调试25
结论27
致谢28
参考文献29
基于AT89C52的红外遥控小车设计
专业班级:
06通信技术学生姓名:
王利强
指导教师:
杨丽飞职称:
讲师
摘要:
本设计是以单片机(AT89C52)为核心,利用小功率芯片L298驱动直流电机,通过脉宽调制技术控制电机的正反转和转速;利用单片机提供的中断功能和指令系统接收由红外传感器发出的中断信号,并查找相应的中断服务子程序,执行相应的指令,控制并改变直流电机的运行状态,从而实现小车的前进、后退、左转、右转及慢速前进、慢速后退等。
关键词:
AT89C52;单片机;中断;集成稳压块7805;红外;直流电机;L298驱动芯片;遥控小车
AnInfraredTelecontrolCarBasedonTheAT89C52Chip
Abstract:
Asthedesign,Single-chipmicroprocessorAT89C51isacore.usinglow-powerchipL298todriveDCmotor,accordingtoPWMtechnologytocontrolthemotor’srotationandspeed,makinguseofSingle-chipmicroprocessorwhichprovidestheinterruptfunctionandtherepertoireofsingle-chipmicroprocessorforreceivingtheinterruptsignalfrominfraredsensors,thenfindingthecorrespondinginterruptservicesubroutineandexecutingthecorrespondingcommand.ControllingandchangingtheoperationalstatusoftheDCmotorsoastoachievethecar'sforwardandbackwardandturnleft,turnrightandsoslowmoving.etc.
Keywords:
AT89C52;single-chipprocessor;interrupt;Integratedvoltageregulatorblock7805;infrared;DCmotor;L298driverchip;thetelecontrolcar
第一章绪论
1.1课题背景
近年来随着单片机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入。
由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,也越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域。
在这些领域中,单片机往往是作为一个核心部件来使用。
1.2设计要求
以AT89C52为控制核心,通过对红外接收模块数据的采集处理,使小车具有前进,后退,左转,右转,慢速前进,慢速后退等功能。
1.3设计方案
1、功能模块划分
本设计电路从功能模块可划分为:
主机电路,红外遥控电路,执行控制电路,音效电路。
其硬件功能结构框图如图1-1所示:
图1-1硬件功能结构框图
2、模块功能简介
主机电路:
对红外中断信号解码,并查找中断服务子程序,执行不同的指令;
遥控电路:
通过红外传感器接收来自红外遥控的信号,并将其输出到单片机的P32口;
执行电路:
光耦隔离及电机驱动和保护电路;
音效电路:
当电源接通时,发出蜂鸣。
第二章硬件设计
本设计硬件部分包括核心器件AT89C52的最小系统电路,单片机输出控制隔离电路,稳压电路,红外接收电路,电机驱动及保护电路等,以下将对各部分电路及主要元器件作详细介绍。
2.1AT89C52单片机
2.1.1单片机选型
51单片机型号很多,常用的有STC系统的89C51、89C52,要用STCISP串口下载,还有AT系列的89C51、89C52、89S51、89S52等是用并口下载的。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,可以反复擦除100次。
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4K的可反复擦写1000次的Flash只读程序存储器。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
AT89C52采用工业标准的C51内核,在内部功能及管脚排布上与通用的8XC52相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等,而本设计中采用的就是AT89C52的红外遥控信号IR的接收解码功能。
几种芯片相比之下,AT89C52开发的系统性能可靠、成本较低、软件设计灵活简单、硬件接口功能丰富,具有扩展性好、通用性强等优点。
数据存储器ROM还是兼容AT89x51系列的,由原来的4KB增加到了8KB,还有增加了3个中断源,程序存储空间大,防止由于字模过多而造成存储空间不够。
另外由于前期开发需要多次的写入、擦除,而AT89C52可以完成1000次写/擦,故在本设计中采用AT89C52,接下来将对该芯片作详细介绍。
2.1.2AT89C52单片机的硬件结构简介
1、AT89C52概述
兼容标准MCS-51指令系统的AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚(如图2-1所示),32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
本设计采用PDIP封装形式。
图2-1AT89C52双列直插封装方式的引脚
2、AT89C52功能特性及引脚介绍
(1)主要功能特性:
兼容MCS51指令系统;
8k可反复擦写(>1000次)FlashROM;
32个双向I/O口;
256x8bit内部RAM;
3个16位可编程定时/计数器中断;
时钟频率0-24MHz;
2个串行中断;
可编程UART串行通道;
2个外部中断源;
共6个中断源;
2个读写中断口线;
3级加密位;
低功耗空闲和掉电模式;
软件设置睡眠和唤醒功能。
(2)管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能以吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)(见表2-1)。
Flash编程和程序校验期间,P1接收低8位地址。
表2-1P1.0和P1.1的第二功能
引脚号
功能特性
P1.0
T2(定时/计数器2外部计数脉冲输入),时钟输出
P1.1
T2EX(定时/计数2捕获/重装载触发和方向控制)
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。
Flash编程或校验时,P2亦接收高位地址和一些控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能(见表2-2)。
表2-2P3口的第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外中断0)
P3.3
INT1(外中断1)
P3.4
T0(定时/计数器0)
P3.5
T1(定时/计数器1)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
此外,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN:
程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
(3)振荡器特性
AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图2-2左图。
外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10F。
用户也可以采用外部时钟。
采用外部时钟的电路(如图2-2右图所示)。
这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小的高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
图2-2时钟振荡电路
(4)芯片擦除:
利用控制信号的正确组合并保持ALE/PROG引脚10mS的低电平脉冲宽度即可将PEROM阵列(4k字节)和三个加密位整片擦除,代阵列在片擦除操作中将任何非空单元写入“1”,这个步骤需在编程之前进行。
2.1.3单片机的中断
本设计以红外信号为中断源,输入到单片机的INT0脚,所以在这里要重点介绍一下单片机的中断功能。
AT89C52共有6个中断向量:
两个外中断(INT0和INT1),3个定时器中断(定时器0、1、2)和串行口中断。
所有这些中断源如图2-3所示。
这些中断源可通过分别设置专用寄存器IE的置位或清0来控制每一个中断的允许或禁止。
IE也有一个总禁止位EA,它能控制所有中断的允许或禁止。
注意中断允许寄存器(图2-4)中的IE.6为保留位,在AT89C51中的IE.5也是保留位。
程序员不应将“1”写入这些位,它们是将来AT89系列产品作为扩展用的。
定时器2的中断是由T2CON中的TF2和EXF2逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是TF2或EXF2产生中断,而由软件清除中断标志位。
定时器0和定时器1的标志位TF0和TF1在定时器溢出那个机器周期的S5P2状态置位,而会在下一个机器周期才查询该中断标志。
然而,定时器2的标志位TF2在定时器溢出的那个机器周期S2P2状态置位,并在同一个机器周期内查询到该标志。
图2-3AT89C52中断源图2-4中断允许寄存器(IE)
2.1.4单片机输出控制隔离电路
本设计输出控制隔离采用光耦隔离控制。
光耦隔离就是采用光耦合器进行隔离,光耦合器的结构相当于把发光二极管和光敏(三极)管封装在一起。
发光二极管把输入的电信号转换为光信号传给光敏管转换为电信号输出,由于没有直接的电气连接,这样既耦合传输了信号,又有隔离作用。
只要光耦合器质量好,电路参数设计合理,一般故障少见。
如果系统中出现异常,使输入、输出两侧的电位差超过光耦合器所能承受的电压,就会使之被击穿损坏。
本设计中的光耦隔离控制电路如图2-5所示:
图2-5光耦隔离控制电路
2.2电源电路
2.2.1集成稳压块选型
集成稳压块按固定输出电压的正负分可分为两类:
输出正电压的78系列和输出负电压的79系列,本设计中需要将干电池组的+6V电压降到+5V,作为单片机的正常工作电压,所以在电源设计中就采用了W78M00系列集成稳压块7805(图2-6),最高输入电压为40V,稳定输出5V电压,在本设计中7805的1脚输入+6V直流电压,2脚接地,3脚输出+5V电压,为单片机供电。
图2-6集成稳压块7805
2.2.2集成稳压块7805介绍
稳压块的作用是将电压进行降压处理并稳定为某一固定的值后输出,如三端稳压块7805可将小于35V的电压降成稳定的5V输出电压,它比只使用一只稳压二极管进行稳压的电路要好得多,成本也不是很高,所以应用还是很广泛的。
一般78系列稳压块极限输入电压为30-40V(注意,是极限)。
常见78系列的输入输出压差为7V,所以正常范围内12V是7805的输入电压上限。
当电压再高时,虽然也可以继续稳压,但输出电流能力将受到很大影响,78系列本身内部带有过流过压保护,当7805的输入超过12V后,就工作在过压保护状态了,此时虽能稳压,但稳压值、稳定度都有变化。
三端稳压块7805常用的外围电路如图2-7所示,图中电容C可去除高频干扰。
图2-77805常用外围电路
2.2.3单片机5V电源的获得
由7805稳压块将6V电源电压降为5V,给单片机供电。
设计电路如图2-8所示。
图2-8稳压电路
2.3红外遥控与接收
2.3.1PWM(PulseWidthModulation)脉宽调制技术
红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射红外信号。
常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。
本设计采用的是脉宽调制方法,以下将重点介绍一下PWM调制技术及其工作原理。
PWM简介:
PWM是一种对模拟信号电平进行数字编码的方法。
通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。
电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。
通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。
只要带宽足够,任何模拟值都可以使用PWM进行编码。
多数负载(无论是电感性负载还是电容性负载)需要的调制频率高于10Hz,通常调制频率为1kHz到200kHz之间。
许多微控制器内部都包含有PWM控制器。
例如,Microchip公司的PIC16C67内含两个PWM控制器,每一个都可以选择接通时间和周期。
占空比是接通时间与周期之比;调制频率为周期的倒数。
执行PWM操作之前,这种微处理器要求在软件中完成以下工作:
〈1〉设置提供调制方波的片上定时器/计数器的周期;
〈2〉在PWM控制寄存器中设置接通时间;
〈3〉设置PWM输出的方向,这个输出是一个通用I/O管脚;
〈4〉启动定时器;
〈5〉使能PWM控制器。
PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。
让信号保持为数字形式可将噪声影响降到最小。
噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。
对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。
从模拟信号转向PWM可以极大地延长通信距离。
在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。
总之,PWM既经济、节约空间、抗噪性能强,是一种值得在许多设计应用中使用的有效技术。
PWM工作原理:
脉冲宽度调制波通常由一列占空比不同的矩形脉冲构成,其占空比与信号的瞬时采样值成比例。
图2-9所示为脉冲宽度调制系统的原理框图和波形图。
该系统有一个比较器和一个周期为Ts的锯齿波发生器组成。
语音信号如果大于锯齿波信号,比较器输出正常数A,否则输出0。
因此,从图2-9中可以看出,比较器输出一列下降沿调制的脉冲宽度调制波。
图2-9脉冲宽度调制过程
通过图2-9(b)的分析可以看出,生成的矩形脉冲的宽度取决于脉冲下降沿时刻
时的语音信号幅度值。
因而,采样值之间的时间间隔是非均匀的。
在系统的输入端插入一个采样保持电路可以得到均匀的采样信号,但是对于实际中
的情况,均匀采样和非均匀采样差异非常小。
如果假定采样为均匀采样,第k个矩形脉冲可表示为:
(2-1)
其中,x{t}是离散化的语音信号;Ts是采样周期;
是未调制宽度;m是调制指数。
然而,如果对矩形脉冲作如下近似:
脉冲幅度为A,中心在t=
处,
在相邻脉冲间变化缓慢,则脉冲宽度调制波
可以表示为:
(2-2)
其中,
。
无需作频谱分析,由式(2-2)可以看出脉冲宽度信号由语音信号x(t)加上一个直流成分以及相位调制波构成。
当
时,相位调制部分引起的信号交迭可以忽略,因此,脉冲宽度调制波可以直接通过低通滤波器进行解调。
2.3.2红外接收电路
红外遥控接收可采用较早的红外接收二极管加专用的红外处理电路的方法。
如CXA20106,此种方法电路复杂,现在一般不采用。
较好的接收方法是用一体化红外接收头,它将红外接收二极管、放大、解调、整形等电路做在一起,,放大电路通常又由一个集成块及若干电阻电容等元件组成,并且需要封装在一个金属屏蔽盒里,因而电路比较复杂,体积却很小(大小与一只中功率三极管相当),密封性好,灵敏度高,并且价格低廉,市场售价只有几元钱。
它只有三个引脚.分别是+5V电源、地、信号输出,主要功能包括放大,选频,解调几大部分,要求输入信号需是已经被调制的信号。
经过它的接收放大和解调会在输出端直接输出原始的信号,从而使电路达到最简化。
灵敏度和抗干扰性都非常好,可以说是一个接收红外信号的理想装置。
常用的一体化接收头的外形及引脚见图2-10。
红外接收头的信号输出接单片机的INTO或INTl脚.典型电路如图2-11所示,图中增加了一只PNP型三极管对输出信号进行放大。
图2-10常用红外一体化接收头
图2-11红外接收头典型电路
本设计中的红外接收电路中即采用了图2-10中的①作为红外传感器,1脚信号输出,2脚接地,3脚接+5V电源。
红外接收电路如图2-12所示。
图2-12红外接收电路
2.3.3用单片机解码红外信号
本设计使用的是常用万能