毕业设计论文+智能循迹避障小车设计 下载本文

内容发布更新时间 : 2024/12/24 2:18:53星期一 下面是文章的全部内容请认真阅读。

3.1 AT89S52单片机的简介

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

存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。下图为AT89S52引脚图。

图3-1 AT89S52引脚图

(1)主要特性: ●与MCS-51 兼容

●8K字节可编程闪烁存储器 ●寿命:1000写/擦循环 ●数据保留时间:10年 ●全静态工作:0Hz-24MHz ●三级程序存储器锁定 ●256*8位内部RAM ●32可编程I/O线 ●两个16位定时器/计数器

...

●5个中断源 ●可编程串行通道 ●低功耗的闲置和掉电模式 ●片内振荡器和时钟电路 (2)管脚说明:

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输

入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89S52的一些特殊功能口,如下表3-1所示:

表3-1 特殊功能引脚对照表

引脚号 P3.0 P3.1 ...

特殊功能 RXD 串行通信输入 TXD 串行通信输出 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 INT0 外部中断0 输入,低电平有效 INT1 外部中断1 输入,低电平有效 T0 计数器0 外部事件计数输入端 T1 计数器1 外部事件计数输入端 WR 外部随机存储器的写选通,低电平有效 RD 外部随机存储器的读选通,低电平有效 P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:AT89S52 的复位信号输入引脚,高电位工作,当要对芯片复位时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,AT89S52 便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:该引脚为低电平时,则读取外部的程序代码 (存于外部EPROM 中)来执行程序。因此在8031中,EA引脚必须接低电位,因为其内部无程序存储器空间。如果是使用AT89S52或其它内部有程序空间的单片机时,此引脚接成高电平使程序运行时访问内部程序存储器,当程序指针PC值超过片内程序存储器地址(如8051/8751/89C51的PC超过0FFFH)时,将自动转向外部程序存储器继续运行。此外,在将程序代码烧录至8751内部EPROM、89C51内部FALSH时,可以利用此引脚来输入提供编程电压(8751为2lV、AT89S52为12V、8051是由生产厂方一次性加工好)。

XTAL1:接外部晶振的一个引脚。在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。它采用外部振荡器时,此引脚应接地。

...

XTAL2:接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。

(3)振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 (4)芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89S52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 3.2总体设计

智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,后轮是万象轮,起支撑的作用。将循迹光电对管分别装在车体下的左右。当车身下左边的传感器检测到黑线时,主控芯片控制左轮电机停止,车向左修正,当车身下右边传感器检测到黑线时,主控芯片控制右轮电机停止,车向右修正。

避障的原理和循线一样,在车身右边装一个光电对管,当其检测到障碍物时,主控芯片给出信号报警并控制车子倒退,转向,从而避开障碍物。 3.2主板设计框图如图3.2,所需原件清单如表3.2。

...

循迹红外对管 复位电路 避障红外对管 报警电路 时钟电路 Stc89c52 电机驱动

图3.2 主板设计框图

元件 数量 元件 数量 元件 数量 直流电机 2只 电阻 若干 集成电路芯片 若干 单片机 1 块 二极管 若干 电容 若干 红外对管 2只 蜂鸣器 1只 电位器 若干 12M晶振 1只 杜邦线 若干 玩具小车 1个 排针 若干 液晶屏 1个 一体化红外接收头 1只

表3.2 元件清单

3.3驱动电路

电机驱动一般采用H桥式驱动电路,L9110内部集成了H桥式驱动电路,从而可以采用L9110电路来驱动电机。其引脚图如3.3.1,驱动原理图如图3.3.2。

...