您好,欢迎来到吉趣旅游网。
搜索
您的当前位置:首页红外遥控智能小车系统设计

红外遥控智能小车系统设计

来源:吉趣旅游网
安徽建筑工业学院 毕 业 设 计 (论文)

专 业: 机械设计制造及其自动化 班 级: 08机械4班 学生姓名: * * 学 号: *********** 课 题: 红外遥控智能小车系统设计 ****: * * *

2012年 6月 7日

安徽建筑工业学院毕业设计(论文)

摘 要

随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等用途。智能电动小车就是其中的一个体现。设计者可以通过软件编程实现它的行进、循迹、停止的精确控制以及检测数据的存储、显示,无需人工干预。因此,智能电动小车具有再编程的特性,是机器人的一种。

本设计采用ATC51单片机加电机驱动电路和红外遥控及循迹模块还有红外接收一体化传感器设计而成,采用模块化的设计方案,运用红外遥控器控制小车的前进、后退、左转、右转、启动和停止。 关键词:单片机;红外遥控;电机驱动

I

安徽建筑工业学院毕业设计(论文)

Abstract

With the rapid progress of computers, microelectronics, information technology, intelligent technology development speed faster and faster, intelligent increasing range of applications has been greatly expanded. Smart as a modern invention, is the future direction of development, it can be in an environment where automatic operation in accordance with the pre-set pattern, no human management can be applied to scientific exploration and other purposes. Smart electric car is one of expression. Designers can be programmed by software to the road, tracking, stop the precise control and test data storage and display, without human intervention. Therefore, smart electric car has a re-programming features, is a kind of robot. This design uses ATC51 SCM and the motor drive circuit and the infrared remote control and ultrasonic module infrared receiver integrated sensor design made use of modular design, use the infrared remote control car forward, backward, turn left, turn right, start and stop .

Keywords: SCM; infrared remote control; motor drive

II

安徽建筑工业学院毕业设计(论文)

目 录

第一章 绪论 ............................................................................................................... 1

1.1 该设计的背景和意义 ...................................................................................... 1 1.2 智能小车的发展现状 ...................................................................................... 2 1.3 该设计的主要内容和目的 .............................................................................. 3 第二章 系统总体方案设计与论证 ........................................................................... 5

2.1 系统的总体方案设计 .................................................................................... 5 2.2 主控系统 ........................................................................................................ 5 2.3 电机驱动模块 ................................................................................................ 6 2.4 循迹模块 ........................................................................................................ 6 2.6 显示模块 .......................................................................................................... 6 第三章 系统硬件电路设计 ....................................................................................... 7

3.1 主控模块的电路设计 .................................................................................... 7

3.1.1 ATC51单片机的简介 ..................................................................... 7 3.1.2 单片机工作电路 ................................................................................ 10 3.1.3 时钟电路 ............................................................................................ 11 3.1.4 复位电路 ............................................................................................ 12 3.2 红外遥控模块的电路设计 .......................................................................... 13

3.2.1 红外遥控的实现原理 ........................................................................ 13 3.2.2 红外发射器 ........................................................................................ 14 3.2.3 红外接收器 ........................................................................................ 15 3.3 电机驱动模块的电路设计 .......................................................................... 16 3.4 循迹模块的电路设计 .................................................................................. 17 3.5 显示模块的电路设计 .................................................................................. 18 第四章 系统软件设计 ............................................................................................. 20

4.1 主程序 .......................................................................................................... 20 4.2 LCD显示程序 ............................................................................................. 22 第五章 红外遥控智能小车系统的软件仿真 ......................................................... 27

5.1 绘制仿真电路 .............................................................................................. 27 5.2 仿真的介绍 .................................................................................................. 27 第六章 总结与展望 ................................................................................................. 31

III

安徽建筑工业学院毕业设计(论文)

参考文献 ..................................................................................................................... 32 致 谢.......................................................................................................................... 33 附录一 系统硬件电路图 ......................................................................................... 34 附录二 仿真程序 ..................................................................................................... 35 附录三 英文科技文献翻译 ..................................................................................... 41

IV

安徽建筑工业学院毕业设计(论文)

第一章 绪论

1.1 该设计的背景和意义

自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、

交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。

随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,,智能度越来越高,应用范围也得到了极大的扩展。在海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。智能电动小车系统以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科。主要由路径识别、角度控制及车速控制等功能模块组成。同时,当今机器人技术发展的如火如荼,其应用在国防等众多领域得到广泛开展。神五、神六、无人飞船等等无不得益于机器人技术的迅速发展。一些发达国家已把机器人制作比赛作为创新教育的战略性手段。如日本每年都要举行诸如“NHK杯大学生机器赛”、“全日本机器人相扑大会”、“机器人足球赛”等各种类型的机器人制作比赛,参加者多数为学生,目的在于通过大赛全面培养学生的动手能力、创造能力、合作能力和进取精神,同时也普及智能机器人的知识。从某种意义上来说,机器人技术反映了一个国家综合技术实力的高低,而智能电动小车是机器人的雏形,它的控制系统的研制将有助于推动智能机器人控制系统的发展,同时为智能机器人的研制提供更有利的手段。

人类的研究活动已摆脱了地球生物圈的束缚而广泛地进入外层空间和海洋深处。对月球和太阳系其他行星的探测,对太阳系以外的宇宙进行考察,对数千米以下的海底的研究,都是目前单靠人力所不能及的。自动控制系统正在代替人们完成这些任务。在战场上的军事活动中,在恶劣环境条件下的生产劳动中,凡不宜由人直接承担的任务,均可由自动控制系统代替,如智能小车可以适应不同环境,不受温度、湿度等条件的影响,完成危险地段、人类无法介入等特殊情况下的任务。高科技自动控制系统及装置已日益成为现代社会活动中离不开的自动智能设备。

1

安徽建筑工业学院毕业设计(论文)

1.2 智能小车的发展现状

美国物流学会自动引导车系统产品部把自动引导车(Automated Guided Vehicle,以下简称AGV)定义为装有电磁或光学自动引导装置的运输车。该AGV能够沿规定的引导路径行驶,并配备有AGV编程与停车的选择装置,安全保护和其他系统所需要的特殊功能的装置。自动引导车是计算机技术,自动控制技术,管理技术,加工制造技术等多学科技术的综合。

世界上第一台AGV是由美国Barrett电子公司于20世纪50年发成功的,它是一种牵引式小车系统,小车跟随一条钢丝引导的路径行驶,并具有一个以真空管技术为基础的控制器。智能小车项目已经成为一个当今世界热门的研究题目,在国外高中主要的智能小车研究有以下几种最具代表性:

大谷机器人ASURO世界最具影响力的三大教育机器人教材生产厂家之一,ASURO被评为2006年美国中学生暑期电子课作业指定教材。风靡欧洲教育界的ASURO和两足机器人,用的是免费的AVR软件,可以把电脑上的C语言的原程序转换成机器人可以识别的16进制代码,通过与电脑相连接的红外发射板,可以无限的把机器人可以识别的16进制代码发射到产品上面,就会展示新的动作,以实现可重复编程,发射不同的程序,可实现不同的功能,如线性追踪,自动寻迹,追踪光源,设定路线转弯,电脑遥控,唱歌,机器人走迷宫,感应人的身体后可后退等动作对ASURO来说,轻而易举。

韩国的飞思卡尔智能车大赛,早在2000年就由韩国汉阳大学举办,面向韩国各个大学。韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下举办的以HCSI2单片机为核心的大学生课外科技竞赛。组委会提供一个标准的汽车模型、直流电机和可充电式电池,参赛队伍要制作一个能够自主识别路径的智能车,在专门设计的跑到上自动识别道路行驶,谁最快跑完全程而没有冲出跑道并且技术报告评分较高,谁就是获胜者。其设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械、能源等多个学科的知识,对学生的知识融合和实践动手能力的培养,具有良好的推动作用、

IEEE国际标准电脑鼠走迷宫竞赛——所谓“电脑鼠”,英文名叫做MicroMouse,是使用嵌入式微控制器、传感器和几点运动部件构成的一种智能行走装置的俗称。它可以在迷宫中自动搜索迷宫,记忆迷宫地图,智能分析选择路径,最终以最快的时间完成比赛。迷宫的地图是在竞赛开始前几分钟随机设置

2

安徽建筑工业学院毕业设计(论文)

的,所以竞赛难度较大。国际电工和电子工程学会(IEEE)每年都要举办一次国际性的电脑鼠走迷宫竞赛,自举办以来参加踊跃。1972年美机械杂志发起比赛,最初的电脑鼠是机械的,由弹簧驱动。1977年IEEE Spectrum杂志提出电脑鼠的概念:电脑鼠是一个小型的由微处理器控制的机器人车辆,在复杂迷宫中具有译码和导航的功能。真正的到场电脑鼠迷宫竞赛于1979年于纽约举行,1991年以来,每年都有世界级的比赛。

我国AGV发展历史较短。北京起重运输机械研究所、中国邮政科学研究规划院、中国科学院沈阳自动化所、大连组合机床研究所、清华大学、国防科技大学和华东工学院都在进行不同类型的AGV的研制并小批量投入生产。1975年北京起重运输机械研究所完成我国第一台电磁引导定点通信的AGV,19年北京邮政科学研究规划院完成我国第一台双向无线电通信的AGV,该院已能进行AGV的批量生产。沈阳自动化所在AGV技术方面已取得了多项研究开发成果和专利,解决了AGV车体设计、控制、导航和高度管理等一系列关键技术问题,成为国内唯一能够提供自主品牌AGV产品的单位。AGV自动导航车系统是伴随着柔性装配系统、计算机集成制造系统以及自动化立体仓库产业发展起来的,是物流系统中性的换代产品。为一种高效物流输送设备和工厂自动化的理想手段,随着经济的发展,在我国AGV领域必将越来越大。

这几年,智能小车的研究是我国的高校大学生热点研究的项目。2006年,“飞思卡尔”杯智能车大赛登陆中国,经过教育部批准,由飞思卡尔半导体公司赞助,由清华大学协办,在清华大学举办了第一届“飞思卡尔”杯智能车大赛。去年则是第五届“飞思卡尔”杯全国大学生智能车带赛,与往届不同,第五届智能车竞赛新增加了电磁组的竞赛单元,参赛者需要用电磁器件代替传统的光电和CCD,通过电磁感应来警醒赛道信息的获取渠道,以此控制智能车在赛道上行驶。

IEEE国际标准电脑鼠走迷宫竞赛,2007年9月开始在广州周立功单片机发展有限公司的赞助下,中国嵌入式系统学会组织上海市、江苏省、浙江省30多所高校连续举办了两次联赛。2009全国“电脑鼠标走迷宫”总决赛于11月8日在北京航空航天大学举行。

1.3 该设计的主要内容和目的

该红外遥控智能小车可以分为四大组成部分:红外遥控部分、传感器检测部分、执行部分、CPU。智能小车要实现循迹识别路线,选择正确的行进路线。该

3

安徽建筑工业学院毕业设计(论文)

设计主要通过对系统硬件电路的设计,软件设计和程序的编写,然后根据硬件电路图和软件设计,在软件中仿真出系统设计结果。

随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子竞赛和省内电子竞赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究,经常举办这类比赛来培养学生对综合知识的应用能力。

4

安徽建筑工业学院毕业设计(论文)

第二章 系统总体方案设计与论证

2.1 系统的总体方案设计

该系统以ATC51单片机为核心的控制电路,采用模块化的设计方案,利用红外遥控器代替开关按键控制小的启动和停止,能够轻松自如的实现小车的启动停止、左转、右转和前进后退等功能,假如我们希望小车运行到黑线上来检测是否有循迹功能,就可以用遥控器控制小车行驶到有黑线的地方,当小车遇到有黑线时,会自动启动循迹功能模块,让小车沿黑线跑。每个模块都是相互又相互协调配合,实现了小车的智能控制。系统控制框图如图2.1所示:

红外遥控模块 电机驱动模块 红外接收模块 ATC51 循迹模块 显示模块 图2-1 系统控制框图

2.2 主控系统

采用单片机作为整个系统的核心,用其控制行进中的小车,以实现其既定的性能指标。充分分析我们的系统,其关键在于实现小车的自动控制,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。针对本设计特点——多开

5

安徽建筑工业学院毕业设计(论文)

关量输入的复杂程序控制系统,需要擅长处理多开关量的标准单片机,而不能用精简I/O口和程序存储器的小体积单片机,D/A、A/D 功能也不必选用。根据这些分析,我选定了ATC51 单片机作为本设计的主控装置。

2.3 电机驱动模块

采用功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,加速能力强,采用由达林顿管组成的H型桥式电路。用单片机控制达林顿管使之工作在占空比可调的开关状态下,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现转速和方向的控制,电子管的开关速度很快,稳定性也极强,是一种广泛采用的PWM 调速技术。现市面上有很多此种芯片,因此选用L298。

这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。

2.4 循迹模块

采用两只红外对管,分别置于小车车身左右两侧,根据两只光电开关接受到白线与黑线的情况来控制小车转向来调整车向,合理安装好两只光电开关的位置就可以很好的实现循迹的功能。

2.6 显示模块

常用的数码显示器件主要有LED数码显示器和LCD液晶显示器。LCD显示器具有低功耗、散热小、浅薄轻巧、显示锐利、屏幕调节方便等特点,同时又是现在市场的主流产品,价格较以往也有大幅的下降。

6

安徽建筑工业学院毕业设计(论文)

第三章 系统硬件电路设计

3.1 主控模块的电路设计 3.1.1 ATC51单片机的简介

ATC51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM——Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的ATC51是一种高效微控制器,ATC51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

图3.1 ATC51的管脚图

(1)主要特性:

7

安徽建筑工业学院毕业设计(论文)

●与MCS-51 兼容

●4K字节可编程闪烁存储器 ●寿命:1000写/擦循环 ●数据保留时间:10年 ●全静态工作:0Hz-24Hz ●三级程序存储器锁定 ●128*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编程和校验时接收高八位地址信号和控制信号。

8

安徽建筑工业学院毕业设计(论文)

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

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

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

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

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

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

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

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

EA/VPP:该引脚为低电平时,则读取外部的程序代码 (存于外部EPROM 中)来执行程序。因此在8031中,EA引脚必须接低电位,因为其内部无程序存储器

9

安徽建筑工业学院毕业设计(论文)

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

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

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

(3)振荡器特性:

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

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

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

3.1.2 单片机工作电路

ATC51单片机有4KB的Flash ROM(闪存)作为内部程序存储器(ROM),因此.用这种芯片构成的最小应用系统简单、可靠。

用ATC51单片机构成最小应用系统时,只需将单片机接上时钟电路和复位电路即可。

该最小应用系统具有以下特点:

10

安徽建筑工业学院毕业设计(论文)

(1)有可供用户使用的大量I/O线。P0、Pl、P2、P3都可作为用户I/O口用,由于没有外部存储器扩展.EA应接高电平。

(2)内部存储器容量有限.只有4KB的地址空间。

当内部程序存储器不够用时。就需要扩展外部程序存储器。ATC51单片机内部RAM 容量很小,当单片机需要存放大量数据时.就必须扩展外部数据存储器。此外ATC51单片机的I/O口数量和功能很有限。也常常要扩展外部接口芯片。在本电路不需要太多的I/O口。且内部程序存储器也够用,所以不用扩展外部数据存储器和外部接口芯片。其电路图如图3.2所示:

图3.2 单片机最小系统图

3.1.3 时钟电路

时钟电路就是产生像时钟一样准确的振荡电路。ATC51内部有一个用于构成片内振荡器的高增益反相放大器,振荡器产生的信号送到CPU,作为CPU的时钟信号.驱动CPU产生执行指令功能的机器周期。引脚XTAL1和XTAL2是此放大

11

安徽建筑工业学院毕业设计(论文)

器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器。时钟电路的连接如图3.3所示:

图3.3 时钟电路

图中外接石英晶体(或陶瓷谐振器)以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容C1和C2的值虽然没有严格的要求,但电容的大小多,会影响振荡器频率的高低、振荡器的稳定性、起振圈内部振荡器的接法的快速性和温度稳定性。外接石英晶体时,C1和C2一般取(30pF±10pF);外接陶瓷谐振器时。C1和C2一般取(40pF±10pF)。外接的是石英晶体,所以C1、C2选择标称值30pF。

3.1.4 复位电路

单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态。并从这个状态开始工作。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。系列单片机的复位信号是从RST引脚输入到芯片的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后。如果RST引脚有高电平并维持2个机器周期(24个振荡周期).则CPU就可响应并且将系统复位。

复位电路由两部分组成,电容和电阻。当系统通电时VCC 上电压从无到有在RESET处会先处于高电平一段时间,然后由于该点通过电阻接地则RESET该点的电平会逐渐的改变为低电平,从而使得单片机复位口电平从1到0,达到给单片

12

安徽建筑工业学院毕业设计(论文)

机复位的功能。

上电复位:上电瞬间,电容充电电流最大,电容相当于短路,RST端为高电平,自动复位;电容两端的电压达到电源电压时,电容充电电流为零,电容相当于开路,RST端为低电平,程序正常运行。

手动复位:首先经过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被短路放电;按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,正常工作。单片机复位电路图如图3.4所示:

图3.4 复位电路图

3.2 红外遥控模块的电路设计 3.2.1 红外遥控的实现原理

红外遥控的实现主要是如何用程序去分析位0和位1。位0和位1所不同之处就是在高电平脉冲后的低电平脉宽不一样,采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。

解码的关键也是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,

13

安徽建筑工业学院毕业设计(论文)

为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。 根据码的格式,应该等待9ms的起始码和4.5ms的结束码完成后才能读码。

红外遥控系统主要分为调制、发射和接收三部分。红外遥控芯片将红外码调制成合适的脉冲信号经红外发射二极管发射红外编码后由红外接收器把接收到的信号处理后输出给单片机。红外遥控的流程图如图3.5所示。

键盘 编码调制 遥控发射器

LED 光/电放大 解调 解码 遥控接收器

图3.5 红外遥控系统框图

红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。

3.2.2 红外发射器

该电路的主要控制器件为遥控器芯片HT6221。HT6221是Holtek公司生产的多功能编码芯片,采用PPM(Pulse Position Modulation)进行编码,1.12ms为0,2.24ms为1。 HT6221能编码16位地址码和8位数据码,最多能同时支持32个开关键。

HT6221键码的形成:当一个键按下超过36ms,振荡器使芯片激活,如果这个按键按下且延迟大约108ms,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数

14

安徽建筑工业学院毕业设计(论文)

据码(9ms~18ms)和这个8位数据码的反码(9ms~18ms)组成,如果按键按下超过108ms仍未松开,接下来发射的代码将仅由起始码(9ms)和结束码(2.5ms)组成。按照下图的接法,K1~K8的数据码分别为:0x00,0x01,0x02,0x04,0x05,0x06,0x07。

红外遥控发射器电路图如图3.6所示。HT6221将红外码调制成38KHZ的脉冲信号通过红外发射二极管发出红外编码。图3.6中D1是红外发射二极管,D2是按键指示灯,当有按键按下时D2点亮。各个开关的功能分别为:K1停止;K2右转;K3左转;K4启动;K5加速;K6循迹;K7制动;K8后退。

图3.6 遥控发射器电路原理图

3.2.3 红外接收器

红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。内部电路包括红外监测二极管,放大器,限幅器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流 信号进入带通滤波器,带通滤波器可以通过30KHZ到60KHZ的负载波,通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的信号波形。注意

15

安徽建筑工业学院毕业设计(论文)

输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。

该模块使用红外接收头1838,有三个引脚,包括供电脚,接地和信号输出脚。其电路如图3.7所示。瓷片电容104为去耦电容,滤除输出信号的干扰。1端是解调信号的输出端,直接与单片机的P3.2口相连。有红外编码信号发射时,经红外接头处理后,输出为检波整形后的方波信号,并直接提供给单片机,执行相应的操作来达到控制电机的目的。

图3.7红外接收硬件图

3.3 电机驱动模块的电路设计

该模块主要芯片L298,其可以同时控制两个电机的正反转,以及改变电机的转速,足以满足设计要求。

L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。

L298芯片是一种高压、大电流双全桥式的驱动器。其中SENSEA、SENSEB分别为两个H桥的电流反馈脚,不用时可以直接接地。VCC,VS是接电源引脚,电压范围分别是4.5~7V、2.5~46V,设计中VCC端与单片机电源端共用5V工作电源,VS端接12V电源。ENA,ENB为使能端,低电平禁止输出。IN1,IN2,IN3,

16

安徽建筑工业学院毕业设计(论文)

IN4为数据输入引脚,分别于单片机的P1.0、P1.1、P1.2、P1.3连接,从单片机内输入控制信号。OUT1,OUT2、OUT3,OUT4为数据输出引脚,分别接电动机MG1和MG2。通过调节IN1,IN2,IN3,IN4之间输入的高低电平的变化来实现电动机MG1和MG2的正反转动,从而实现小车的前进、后退、左转和右转等功能。当IN1输入低电平时,电机MG1正转;当IN2输入低电平时,电机MG1反转;当IN3输入低电平时,电机MG2正转;当IN4输入低电平时,电机MG2反转。高电平输入时,电机不工作。D1~D8是保护二极管(IN5819),用于释放掉电机紧急制动停车时产生的反向尖峰电势,起到保护L298不被损坏的作用。电机驱动模块的电路图如图3.8所示:

图3.8 电机驱动电路原理图

3.4 循迹模块的电路设计

为了保证小车沿黑线行驶,在前部左右两侧安装两对TCRT5000红外对管。在小车行走过程中,若向左方向偏离黑线,则右侧的探头就会检测到黑线,把信号传送到单片机。进行处理校正。控制其向右转,反之,向左转。

黑线检测原理是利用红外线在黑线和白纸对光的反射系数不同的特点,在小车在行驶过程中不断向地面发射红外光,根据接收到的反射光强弱来判断是否是黑线。利用这个原理,可以控制小车行走的路迹。

当红外发射管发射红外光线到路面,红外光线遇到白色线则反射,接收管收到反射光,光敏三极管导通,经施密特触发器整形后输出低电平,而红外光线遇

17

安徽建筑工业学院毕业设计(论文)

到黑色线时会被吸收,接收管接收不到反射光线。光敏三极管截止,经施密特触发器整形后输出高电平,这就实现了通过红外检测功能的功能。将检测到的信号送到单片机进行分析处理。然后将处理后的结果发送到电机驱动模块,进行校正,从而保证小车能沿着黑线行驶。

循迹模块电路图电路如图3.9所示。图中施密特触发器DM74LS14是一种特殊的门电路。它是一种阈值开关电路,具有突变输入——输出特性的门电路。这种电路被设计成阻止输入电压出现微小变化(低于某一阈值)而引起的输出电压的改变。施密特触发器采用电位触发方式,其状态由输入信号电位维持的特性保证了低高电平输出的稳定性。

图3.9 系统循迹电路原理图

3.5 显示模块的电路设计

本系统采用14脚的1602型号的LCD显示器。其电路原理图如图3.10所示,图中RP1是9个插针作为排阻封装的上拉电阻,主要是对器件1602注入电流,把不确定信号通过电路钳位在高电平,同时也起到限流的作用。1602LCD显示器的D0~D8分别接在单片机的P0口,RS引脚高电平输入时输入数据,低电平输入时输入指令,接在单片机的p2.0口。RW引脚低电平输入时向LCD写入指令或数据,

18

安徽建筑工业学院毕业设计(论文)

高电平输入时从LCD读取信息,接在单片机的P2.1口。E引脚使能信号,高电平输入时读取信息,高电平向低电平转换时执行指令,接在单片机的P2.2口。

图3.10 系统显示电路

19

安徽建筑工业学院毕业设计(论文)

第四章 系统软件设计

4.1 主程序

主程序是个死循环,程序启动后,开始检测黑白线,如果左右两侧都检测到黑线,则控制小车前进;如果左边检测到黑线,右边检测到白线,则控制小车左转;如果右边检测到黑线,左边检测到白线测控制小车右转;如果左右两边都检测到白线则后退。

设小车左右两侧的红外对管分别为1和2,则系统主程序流程图如图4.1所示。

启动 Y 1、2遇黑线 N 1遇黑线2遇白线 N 1遇白线2遇黑线 N 1遇白线2遇白线 Y 后退 驱动模块模循迹模块

N

图4.1 主程序流程图

Y 右转 Y 左转 前进

20

安徽建筑工业学院毕业设计(论文)

主程序的编写步骤:

1. 定义头文件,如#include

2. 对单片机引脚进行定义,定义方式如:sbit rs=P2^0;; 3. 对程序所用变量进行定义,如unsigned int i;可赋值;

4. 当单片机接收到电机驱动信号时,根据所需功能程序设计如下: while(1) {

if(KEY1==0) //左右电机反转函数 {

IN1 = 0; //右电机反转函数 IN2 = 1;

IN3 = 0; //左电机反转函数 IN4 = 1; }

if(KEY2==0) //左右电机正转函数 {

IN1=1; //右电机正转函数 IN2=0;

IN3=1; //左电机正转函数 IN4=0; }

if(KEY3==0) //左转函数 {

IN1=1; // 右电机正转函数 IN2=0;

IN3=1; //左电机停止函数 IN4=1; }

if(KEY4==0) // 右转函数 {

IN1=1; //右电机停止函数

21

安徽建筑工业学院毕业设计(论文)

IN2=1;

IN3=1; //左电机正转函数 IN4=0; }

if(KEY5==0) //停止函数 {

IN1=1; //右电机停止函数 IN2=1;

IN3=1; //左电机停止函数 IN4=1; } }

IN1和IN2分别控制小车右边电机的正反转,IN3和IN4分别控制左边电机的正反转。通过左右电机的正反转配合执行,控制小车的前进、后退、左右转和停止。当IN1=1,IN2=0,IN3=1,IN4=0时,小车前进;当IN1=0,IN2=1,IN3=0,IN4=1时,小车后退;当IN1=1,IN2=0,IN3=1,IN4=1时,小车向左转;当IN1=1,IN2=1,IN3=1,IN4=0时,小车向右转;当IN1=1,IN2=1,IN3=1,IN4=1时,小车停止。

4.2 LCD显示程序

显示程序流程图如图4.2所示: 开始 LCD初始化 清屏 显示内容 图4.2 LCD显示流程图

22

安徽建筑工业学院毕业设计(论文)

LCD显示程序的编写:

1. 对头文件,引脚和所需变量的定义与主程序类似;

2. LCD初始化主程序如下: init_lcd() //LCD的初始化 {

write_com(0x38); write_com(0x08); write_com(0x01); write_com(0x06); write_com(0x0c); }

3. 显示内容程序如下:

void main() { int i;

init_lcd();//初始化液晶屏 P1=0xff;

write_com(0x80); //初始化显示

for(i=0;i<9;i++) {

write_data(tmp0[i]); }

write_com(0x80+0x40); //初始化显示第二行 for(i=0;i<9;i++) {

write_data(tmp[i]); }

while(1)

{

if(KEY1==0)

{

23

安徽建筑工业学院毕业设计(论文)

write_com(0x01); //清屏

write_com(0x80); //在液晶的第一行写入 for(i=0;i<8;i++) {

write_data(tmp2[i]);//写入的内容 }

write_com(0x80+0x40); //在液晶屏的第二行写入 for(i=0;i<9;i++) {

write_data(tmp[i]); //写入的内容 } }

if(KEY2==0)

{

write_com(0x01); //清屏

write_com(0x80); //在液晶屏的第一行写入 for(i=0;i<10;i++) {

write_data(tmp1[i]); //写入的内容 }

write_com(0x80+0x40); //在液晶屏的第二行写入 for(i=0;i<9;i++) {

write_data(tmp[i]); //写入的内容 } }

if(KEY3==0) {

write_com(0x01); //清屏

write_com(0x80); //在液晶屏的第一行写入 for(i=0;i<8;i++)

24

安徽建筑工业学院毕业设计(论文)

{

write_data(tmp3[i]); //写入的内容 }

write_com(0x80+0x40); //在液晶屏的第二行写入 for(i=0;i<9;i++) {

write_data(tmp[i]); //写入的内容 } }

if(KEY4==0) {

write_com(0x01); //清屏

write_com(0x80); //在液晶屏的第一行写入 for(i=0;i<8;i++) {

write_data(tmp4[i]); //写入的内容 }

write_com(0x80+0x40); //在液晶屏的第二行写入 for(i=0;i<9;i++) {

write_data(tmp[i]); //写入的内容 } }

if(KEY5==0) {

write_com(0x01); //清屏

write_com(0x80); //在液晶的第一个位置写入“” for(i=0;i<4;i++) {

write_data(tmp5[i]);//写入的内容 }

25

安徽建筑工业学院毕业设计(论文)

write_com(0x80+0x40); 在液晶屏的第二行写入

for(i=0;i<9;i++) {

write_data(tmp[i]);写入的内容

} }

}

26

安徽建筑工业学院毕业设计(论文)

第五章 红外遥控智能小车系统的软件仿真

5.1 绘制仿真电路

根据系统的硬件电路设计,在仿真软件Proteus7.5中绘制仿真电路,仿真电路图图如图5.1所示:

图5.1 仿真电路

5.2 仿真的介绍

仿真电路图完成后,进行模拟仿真,在仿真过程中红色代表高电平,蓝色代表低电平,灰色代表不确定电平(floating)。由于仿真软件无法模拟红外遥控和光电感应信号,所以在仿真过程中通过按键来提供仿真所需的各种信号。下面介绍一下仿真过程:

1. 创建仿真文件。用keil uv3编写仿真程序,生成仿真所需要的HEX文件。 2. 添加仿真文件。双击ATC51,出现属性对话框,在Program File中单

27

安徽建筑工业学院毕业设计(论文)

击出现文件浏览对话框,找到创建的仿真文件,单击确定完成添加文件。

3. 单击仿真开始按钮,进入仿真状态,如图5.2所示:

图5.2 小车仿真开始状态图

4. 当前进信号输入时,即按下KEY1,两个电机反转,小车后退,同时显示器第一行显示“go back”,第二行显示“zhang jun”。如图5.3所示:

图5.3 小车后退仿真图

28

安徽建筑工业学院毕业设计(论文)

5. 当后退信号输入时,即按下KEY2,两个电机正转,小车前进,同时显示器第一行显示“go along”,第二行显示“zhang jun” 。如图5.4所示:

6. 当左转信号输入时,即按下KEY3,左电机停止,右电机正转,同时显示器第一行显示“go left”,第二行显示“zhang jun”。如图5.5所示:

图5.4 小车前进仿真图

图5.5 小车左转仿真图

29

安徽建筑工业学院毕业设计(论文)

7. 当右转信号输入时,即按下KEY4,左电机正转,右电机停止,同时显示器第一行显示“go right”,第二行显示“zhang jun”。如图5.6所示:

图5.6 小车右转仿真图

8. 当停止信号输入时,即按下KEY5,两个电机停止,小车停止,同时显示器第一行显示“stop”,第二行显示“zhang jun”。如图5.7所示:

图5.7 小车停止仿真图

30

安徽建筑工业学院毕业设计(论文)

第六章 总结与展望

毕业设计是我作为一名学生即将完成学业的最后一次作业,他既是对学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好开端。毕业设计是我对所学知识理论的检验与总结,能够培养和提高设计者分析和解决问题的能力;是我在校期间向学校所交的最后一份综和性作业。

我选的题目是智能小车设计,这个题目对于我而言是一个全新的挑战。在毕业设计时,导师着重强调了对软件的学习和对电路的设计。虽然说机电不分家,但是对一个机械的学生来说,通过设计电路和编写程序来实现小车的仿真,还是困难的。通过大量的查阅资料,对软件的学习,电器元件的了解以及电路设计的认识,终于找到了解决问题的起点,理清了整体的思路。

毕业的时间一天一天的临近,毕业设计也接近了尾声。在不断的努力下我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的大概总结,但是真的面对毕业设计时发现自己的想法基本是错误的。毕业设计不仅是对所学知识的总结和应用,更是在实际应用中培养自身如何做一项完整事情的培训,可以说是学校在毕业前对学生踏入社会的一次做事能力的培训。

通过这次毕业设计使我明白了自己原来知识太理论化了,面对单独的课题时感觉很茫然。不知道从哪里入手,不知道自己为实现什么样的目的要怎么规划达到目的的过程。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。

31

安徽建筑工业学院毕业设计(论文)

参考文献

[1] 杨永辉.《现代电子技术》[J] .智能小车的多传感器数据融合.2005

[2] 何立民.《单片机与嵌入式系统应用》[J].基于HCS12的小车智能控制系统设计.2007

[3] 谭浩强.《C程序设计》.北京:清华大学出版社,2005,7 [4] 张立.《电子世界》[J].电动小车的循迹.2004

[5] 武庆生,仇梅.单片机原理与应用(M).电子科技大学出版,1998,12 [6] 徐科军.传感器与检测技术[M].电子工业出版社,2007 [7] 刘瑞新.单片机原理及应用教程 .机械工业出版社,2003,7 [8] 刘湘涛,江世明.单片机原理与应用[M].电子工业出版社,2006 [9] 何立民.单片机初级教程[M].北京航空航天大学出版社,1999 [10] 熊建云. Protel99 SE.北京:机械工业出版社,2007 [11] 郑郁正.单片机原理及应用.四川大学出版杜,2003

[12] 卢静,陈非凡,张高飞等.基于单片机的无刷直流电动机控制系统设计.北京机械工业学院学报,2002,10

[13] 张燕,曾光宇.光电式传感器的应用与发展[J].科技情报开发与经济,2007 [14] 曹开田.基于单片机的红外遥控密码锁的设计与实现[J].应用研究,2010 [15] 裴彦纯.陈志超.基于单片机系统的红外遥控器应用[J].现代仪器,2004 [16] 赖麒文.8051单片机C语言彻底应用[M].科学出版社,2002 [17] 郭天祥.51单片机C语言教程.北京:电子工业出版社, 2009

32

安徽建筑工业学院毕业设计(论文)

致 谢

本次毕业设计的完成,得益于所有给过我帮助的人,我要感谢他们。 首先我要感谢我的毕业设计辅导老师吴跃波老师,我的毕业设计是在他的亲切关怀和悉心指导下完成的。吴老师在我毕业设计的过程中给了我充分的指导和帮助,并且在确定研究方案和收集有关资料时也给了我很大的帮助。在毕业设计过程中引导我理清了毕业设计思路,扫除了我的毕业设计障碍,修改了我毕业设计中的不足之处,尤其软件学习当中给了我莫大的帮助,吴老师的认真和严谨的科研态度使我受益匪浅,使我在整个毕业设计过程中一直保持着积极认真的态度,相信也将会对我以后的生活和工作产生莫大的影响。通过这次毕业设计,吴老师引导和培育了我应该如何做一件完整的事情,面对问题应该如何下手,对我做事做人都是一种提高。在此谨向吴老师崇高的敬意和衷心的感谢。

其次,我要感谢我的同学,他们在我毕业设计过程中给了提供过许多有意义的资料,他们教会了我许多解决问题的方法,大家有问题共同商讨、交流,使我能够从容的面对困难,克服困难。

再次,我要感谢大学里所有教过我的老师,感谢他们在这四年当中对我殷切教导和做事做人方面的潜移默化的影响。我要感谢大学期间所有结识的朋友,就是你们使我拥有了美好的大学时光。

33

安徽建筑工业学院毕业设计(论文)

附录一 系统硬件电路图

34

安徽建筑工业学院毕业设计(论文)

附录二 仿真程序

#include #include #define uint unsigned int #define uchar unsigned char #define LCD P0

sbit rs=P2^0; sbit rw=P2^1; sbit E=P2^2; sbit IN1 = P1^0; sbit IN2 = P1^1; sbit IN3 = P1^2; sbit IN4 = P1^3;

sbit KEY1 = P2^3; sbit KEY2 = P2^4; sbit KEY3 = P2^5; sbit KEY4 = P2^6; sbit KEY5 = P2^7;

uchar tmp[9]=\"Zhang Jun\";//正转 uchar tmp0[9]=\"Smart Car\";//正转 uchar tmp1[10]=\"go along\";//正转 uchar tmp2[8]=\"go back\"; //反转 uchar tmp3[8]=\"go left\"; uchar tmp4[8]=\"go right\"; uchar tmp5[4]=\"stop\"; void Delay(uint t) { int i,j;

35

安徽建筑工业学院毕业设计(论文)

for(i=110;i>0;i--) for(j=t;j>0;j--); }

write_com(uchar com)//写指令 { rs=0; rw=0; E=1; LCD=com; Delay(5); E=0; }

write_data(uchar dat)//写数据 { rs=1; rw=0; E=1; LCD=dat; Delay(5); E=0; } init_lcd() {

write_com(0x38); write_com(0x08); write_com(0x01); write_com(0x06); write_com(0x0c); }

void main() {

36

安徽建筑工业学院毕业设计(论文)

int i;

init_lcd();//初始化液晶 P1=0xff;

write_com(0x80); //初始化显示

for(i=0;i<9;i++) {

write_data(tmp0[i]); }

write_com(0x80+0x40); //初始化显示 for(i=0;i<9;i++) {

write_data(tmp[i]); }

while(1) {

//步进电机正传

if(KEY1==0)//反转函数 {

write_com(0x01);

write_com(0x80); //在液晶的第一个位置写入“” for(i=0;i<8;i++) {

write_data(tmp2[i]);//写入的内容 }

write_com(0x80+0x40); for(i=0;i<9;i++) {

write_data(tmp[i]); }

IN1 = 0; //电机转动函数

IN2 = 1;

37

安徽建筑工业学院毕业设计(论文)

IN3 = 0; IN4 = 1; }

if(KEY2==0) //正转函数 {

write_com(0x01); write_com(0x80); for(i=0;i<10;i++) {

write_data(tmp1[i]); }

write_com(0x80+0x40); for(i=0;i<9;i++) {

write_data(tmp[i]); } IN1 = 1; IN2 = 0; IN3 = 1; IN4 = 0; }

if(KEY3==0)//左转函数 {

write_com(0x01);

write_com(0x80);

for(i=0;i<8;i++) {

write_data(tmp3[i]); }

write_com(0x80+0x40); for(i=0;i<9;i++)

38

安徽建筑工业学院毕业设计(论文)

{

write_data(tmp[i]); }

IN1 = 1; IN2 = 0; IN3 = 1; IN4 = 1; }

if(KEY4==0) //右转函数 {

write_com(0x01); write_com(0x80); for(i=0;i<8;i++) {

write_data(tmp4[i]); }

write_com(0x80+0x40); for(i=0;i<9;i++) {

write_data(tmp[i]); } IN1 = 1; IN2 = 1; IN3 = 1; IN4 = 0; }

if(KEY5==0)//停止函数 {

write_com(0x01);

39

安徽建筑工业学院毕业设计(论文)

write_com(0x80); //在液晶的第一个位置写入“” for(i=0;i<4;i++) {

write_data(tmp5[i]);//写入的内容 }

write_com(0x80+0x40); for(i=0;i<9;i++) {

write_data(tmp[i]); } IN1 = 1; IN2 = 1; IN3 = 1; IN4 = 1;

}

} }

40

安徽建筑工业学院毕业设计(论文)

附录三 英文科技文献翻译

英文原文:

1 MCS

1.1 Description

The ATC51 is a low-power, high-performance CMOS 8-bit microcomputer. The device is manufactured using Atmel’s high density nonvolatile memory technology and is compatible with the industry standard 80C51 and 80C52 instruction set and pinout. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel ATC51 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications. The ATC51 provides the following standard features:4 Kbytes of Flash, 128 bytes of RAM, 32 I/O lines, two 16-bit timer/counters, a five-vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the ATC51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power Down Mode saves the RAM contents but freezes the oscillator, disabling all other chip functions until the next hardware reset. 1.2 Pin Description

VCC: Supply voltage. GND: Ground.

Port 0:Port 0 is an 8-bit open drain bidirectional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedance inputs. Port 0 can also be configured to be the multiplexed low-order address/data bus during accesses to external program and data memory. In this mode, P0 has internal pullups. Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification. External pullups are required during program verification.

41

安徽建筑工业学院毕业设计(论文)

Port 1:Port 1 is an 8-bit bidirectional I/O port with internal pullups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pullups. Port 1 also receives the low-order address bytes during Flash programming and program verification.

Port 2:Port 2 is an 8-bit bidirectional I/O port with internal pullups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (IIL) because of the internal pullups. Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @ DPTR). In this application, Port 2 uses strong internal pullups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register. Port 2 also receives the high-order address bits and some control signals during Flash programming and verification.

Port 3:Port 3 is an 8-bit bidirectional I/O port with internal pullups. The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (IIL) because of the pullups. Port 3 also serves the functions of various special features of the ATC51. Port Pin Alternate Functions: P3.0 RXD (serial input port) P3.1 TXD (serial output port) P3.2 INT0 (external interrupt 0) P3.3 INT1 (external interrupt 1) P3.4 T0 (timer 0 external input) P3.5 T1 (timer 1 external input)

P3.6 WR (external data memory write strobe) P3.7 RD (external data memory read strobe)

42

安徽建筑工业学院毕业设计(论文)

Port 3 also receives some control signals for Flash programming and programming verification.

RST: Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device.

ALE/PROG: Address Latch Enable is an output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming. In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data memory. If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode.

PSEN: Program Store Enable is the read strobe to external program memory. When the ATC51 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory.

EA/VPP: External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH。 EA should be strapped to VCC for internal program executions. This pin also receives the 12-volt programming enable voltage (VPP) during Flash programming when 12-volt programming is selected.

XTAL1: Input to the inverting oscillator amplifier and input to the internal clock operating circuit.

XTAL2: Output from the inverting oscillator amplifier. 1.3 Special Function Registers

Note that not all of the addresses are occupied, and unoccupied addresses may not be implemented on the chip. Read accesses to these addresses will in general return random data, and write accesses will have an indeterminate effect. User software should not write 1s to these unlisted locations, since they may be used in future products to invoke new features.

43

安徽建筑工业学院毕业设计(论文)

Timer Registers: Control and status bits are contained in registers TCON and TMOD for Timer. The register pair (RCAPH, RCAPL) are the capture/reload registers for Timer in 16-bit capture mode or 16-bit auto-reload mode.

Data Memory: The ATC52 implements 256 bytes of on-chip RAM. The upper 128 bytes occupy a parallel address space to the Special Function Registers. That means the upper 128 bytes have the same addresses as the SFR space but are physically separate from SFR space. When an instruction accesses an internal location above address 7FH, the address mode used in the instruction specifies whether the CPU accesses the upper 128 bytes of RAM or the SFR space. Instructions that use direct addressing access SFR space. For example, the following direct addressing instruction accesses the SFR at location 0A0H (which is P2).MOV 0A0H, #data Instructions that use indirect addressing access the upper 128 bytes of RAM. For example, the following indirect addressing instruction, where R0 contains 0A0H, accesses the data byte at address 0A0H, rather than P2 (whose address is 0A0H).MOV @R0, #data Note that stack operations are examples of indirect addressing, so the upper 128 bytes of data RAM are available as stack space.

Interrupt Registers: The individual interrupt enable bits are in the IE register. Two priorities can be set for each of the five interrupt sources in the IP register.

Interrupts: The ATC51 has a total of five interrupt vectors: two external interrupts (INT0 and INT1),two timer interrupts (Timers 0, 1), and the serial port interrupt. Each of these interrupt sources can be individually enabled or disabled by setting or clearing a bit in Special Function Register IE. IE also contains a global disable bit EA, which disables all interrupts at once. In the ATC51, bit position IE.5 is unimplemented. User software should not write 1s to these bit positions, since they may be used in future AT products. 1.4 OSCILLATOR CHARACTERISTICS

XTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier. The pins can be configured for use as an on-chip oscillator. To drive the device from an external clock source, XTAL1 should be driven while XTAL2 is left unconnected. There are no requirements on the duty cycle of the external clock signal, because the input to the internal clock circuitry is through a divide-by-two flip-flop.

44

安徽建筑工业学院毕业设计(论文)

However, minimum and maximum high and low times specified in the data sheet must be observed. 1.5 RESET

A reset is accomplished by holding the RST pin high for at least two machine cycles (24 oscillator periods), while the oscillator is running. To insure a good power-on reset, the RST pin must be high long enough to allow the oscillator time to start up (normally a few milliseconds) plus two machine cycles. At power-on, the voltage on VCC and RST must come up at the same time for a proper start-up. Ports 1, 2, and 3 will asynchronously be driven to their reset condition when a voltage above VIH1 (min.) is applied to RESET. 1.6 LOW POWER MODES

Idle Mode: In the idle mode, the CPU puts itself to sleep while all of the on-chip peripherals stay active. The instruction to invoke the idle mode is the last instruction executed in the normal operating mode before the idle mode is activated. The CPU contents, the on-chip RAM, and all of the special function registers remain intact during this mode. The idle mode can be terminated either by any enabled interrupt (at which time the process is picked up at the interrupt service routine and continued), or by a hardware reset which starts the processor in the same manner as a power-on reset.

Power-Down Mode: To save even more power, a Power Down mode can be invoked by software. In this mode, the oscillator is stopped and the instruction that invoked Power Down is the last instruction executed. The on-chip RAM and Special Function Registers retain their values down to 2.0V and care must be taken to return VCC to the minimum specified operating voltages before the Power Down Mode is terminated. Either a hardware reset or external interrupt can be used to exit from Power Down. Reset redefines all the SFRs but does not change the on-chip RAM. An external interrupt allows both the SFRs and the on-chip RAM to retain their values. To properly terminate Power Down the reset or external interrupt should not be executed before VCC is restored to its normal operating level and must be held active long enough for the oscillator to restart and stabilize (normally less than 10ms). With an external interrupt, INT0 and INT1 must be enabled and configured as

45

安徽建筑工业学院毕业设计(论文)

level-sensitive. Holding the pin low restarts the oscillator but bringing the pin back high completes the exit. Once the interrupt is serviced, the next instruction to be executed after RETI will be the one following the instruction that put the device into Power Down.

ATC51 is mainly used for controlling and is the heart of remote-control car.

英文翻译:

1 单片机

1.1 说明

ATC51是一个低功耗,高性能CMOS8位单片机。该设备是采用Atmel的高密度非易失性内存技术和行业标准80C51和80C52指令集和引脚兼容。通过一个单一的芯片上的Flash相结合的多功能的8位的CPU,Atmel的ATC51是一个功能强大的微机,它提供了一个高度灵活和成本效益的解决方案,许多嵌入式控制应用。单片机ATC51提供以下标准功能:4字节的Flash, 128字节RAM,32 I / O线,两个16位定时器/计数器,一个五向量两级中断结构,一个全双工串行口,片上振荡器和时钟电路。此外,ATC51的设计与操作的静态逻辑下降到零频率,并支持两种软件可选的节电模式。空闲模式时CPU停止工作,同时允许的RAM,定时器/计数器,串口和中断系统继续运作。掉电模式保存RAM的内容,但冻结振荡器,禁用所有其他芯片功能,直到下一次硬件复位。

1.2引脚说明

电源电压:电源电压。 接地:接地。

端口0:端口0是一个8位漏极开路双向I / O端口。作为一个输出端口,每个引脚可以驱动8个TTL输入。当1写入端口0引脚,引脚可用于高阻抗输入。端口0也可以被配置为复用低地址/数据总线在访问外部程序和数据存储器。在这种模式下,端口0具有内部上拉。端口0也将在Flash编程接收代码字节和输出代码字节,在程序验证。外部上拉的过程中需要核查程序。

端口1:端口1是一个8位双向I / O的端口内部上拉。端口1输出缓冲器可以吸收/源四个TTL输入。当1写入端口1引脚,他们拉高的内部上拉,并且可以用作输入。作为输入,端口1被外部被拉低将源电流(IIL)由于内部上拉。

46

安徽建筑工业学院毕业设计(论文)

端口1还收到在Flash编程和程序验证的低位地址字节。

端口2:端口2是一个内部上拉的8位双向I / O端口。端口2输出缓冲器可以吸收/源四个TTL输入。当1写入端口2引脚,它们拉高的内部上拉,并且可以用作输入。作为输入,端口2引脚在外部被拉低将源电流(IIL)由于内部上拉。在从外部程序存储器获取和访问外部数据存储器时,端口2排放高阶地址字节,使用16位地址(MOVX @ DPTR)。在此应用中,端口2使用强大的内部上拉发送1时。在访问外部数据存储器,使用8位地址(MOVX@ RI),端口2发出的P2特殊功能寄存器的内容。 端口2也接收高地址位在flash编程和校验和一些控制信号。

端口3:端口3是一个8位双向I / O的端口内部上拉。端口3输出缓冲器可以吸收/源四个TTL输入。当1写入端口3针,他们拉高的内部上拉,并且可以用作输入。低将作为输入,3口被外部拉低的引脚源电流(IIL)的上拉。端口3还提供各种特殊功能的ATC51的功能。 端口引脚的备用功能:

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(外部数据存储器读选通)

端口3也接收一些控制信号,闪存编程和编程验证。

RST:复位输入。该引脚上高一两个机器周期,而振荡器运行的设备复位。 ALE / PROG:地址锁存使输出脉冲锁存地址的低字节在访问外部存储器。该引脚也是方案在Flash编程脉冲输入(PROG键)。在正常运行时,ALE发出恒定速率的1/6振荡器频率,可用于外部时钟或定时的目的。但是请注意,这一个ALE脉冲被跳过在每次访问外部数据存储器。如果需要,可以禁止ALE操作设置位0 SFR的位置8EH。位设置,ALE仅在执行MOVX或MOVC指令。否则,脚弱拉高。设置的ALE禁止位有没有效果,如果微处理器在外部执行模式。 PSEN:程序存储使能是外部程序存储器的读选通。 ATC51是当从外部

47

安徽建筑工业学院毕业设计(论文)

程序存储器执行代码时,PSEN是激活每个机器周期的两倍,除了两个PSEN的激活在每次访问外部数据存储器跳过。

EA / VPP:外部访问启用。 EA必须绑到GND为了使设备开始在0000H到FFFFH的外部程序存储器位置获取代码,EA应绑到VCC的内部程序执行。此引脚也接收12伏的编程过程中启用Flash编程电压(VPP)12伏编程时被选中。

XTAL1:输入到振荡器反相放大器的输入到内部时钟操作电路。 XTAL2:振荡器反相放大器的输出。

1.3特殊功能寄存器

请注意,并非所有的地址都被占用,空置地址,不得在芯片上实施。读访问这些地址,一般会返回随机数据,写访问将有一个不确定的影响。用户软件不应写1到这些非上市的地点,因为它们可能会在未来的产品用于调用新的功能。

定时器寄存器:控制和状态位都包含在寄存器TCON和TMOD的定时器。寄存器对(RCAPH,RCAPL)的是在16位捕获模式或16位自动重载模式,定时器捕捉/重载寄存器。

数据存储器:ATC52单片机实现256字节片上RAM。高128字节占据一个平行的特殊功能寄存器地址空间。这意味着高128字节的SFR空间的地址相同,但物理上的SFR空间。当一条指令访问上述地址7FH的内部位置,在指令中使用的地址模式指定是否在CPU访问高128字节的RAM或SFR空间。说明,使用直接寻址访问SFR空间。例如,下面的直接寻址指令访问SFR的位置0A0H(P2)的MOV 0A0H,#数据说明,使用间接寻址方式访问高128字节RAM。例如,下面的间接寻址指令,R0的0A0H,访问地址0A0H数据字节,而不是P2(其地址是0A0H)。MOV @ R0,#注意堆栈操作是间接寻址的例子,所以高128字节的数据RAM作为堆栈空间。

中断寄存器:个别中断允许位在IE寄存器。可以设置每个IP寄存器中的五个中断源的两个优先事项。

中断:ATC51的一共有5个中断向量:两个外部中断(INT0和INT1),两个定时器中断(定时器0,1),和串口中断。这些中断源都可以单独启用或禁用通过设置或清除IE浏览器在特殊功能寄存器的位。 IE浏览器还包含了一个全局禁止位EA,它可禁止所有中断一次。在ATC51的,位的位置IE.5未实现。用户软件不应写1这些位的位置,因为他们可能会在未来AT产品使用。

1.4振荡器的特性

48

安徽建筑工业学院毕业设计(论文)

分别为一个反相放大器。引脚可以配置为XTAL1和XTAL2是输入和输出,

使用一个片上振荡器。为了从外部时钟源驱动装置,而XTAL2XTAL1必须推动,是悬空。有对外部时钟信号的占空比没有要求,因为内部时钟电路的输入是通过一个两分触发器。然而,最大和最小的高与低数据表中指定的时间,必须遵守。

1.5复位

复位RST引脚高至少两个机器周期(24个振荡周期),振荡器运行时完成。为了保证良好的上电复位,RST引脚必须是高长,足以使振荡器时启动(通常是几毫秒),加上两个机器周期。上电时,VCC和RST上的电压必须在同一时间来,一个正确的启动。异步端口,1,将被驱赶到其复位条件时,高于VIH12,3,(最小)的电压复位。

1.6低功率模式

空闲模式:在空闲模式下,CPU提出自己睡,而所有片上外设保持活跃。调用空闲模式的指令是最后一条指令的执行,在正常操作模式,空闲模式被激活之前。在这种模式下CPU内容,片上RAM和所有特殊功能寄存器保持完整。空闲模式下,可以终止任何启用的中断(此时拿起过程,在中断服务程序,并继续),或由一个硬件复位启动一个上电复位处理器以相同的方式。

掉电模式:为了节省更多的功率,掉电模式可以通过软件调用。在这种模式下,振荡器停止并调用关机是最后一条指令执行的指令。 ,片上RAM和特殊功能寄存器保留其值下降至2.0V,并必须小心返回到指定的最低工作电压VCC的掉电模式之前被终止。无论是硬件复位或外部中断可以用来结束掉电。复位重新定义所有的SFR,但不改变片上RAM。外部中断允许SFR和片上RAM,以保留其值。要正确终止向下复位或外部中断的电力,不应该被执行之前,VCC恢复到其正常经营水平,必须持有积极振荡器重新启动并稳定(通常小于10ms),足够长的时间。

与外部中断INT0和INT1必须使能且配置为电平敏感。控股脚低重新启动振荡器,但带来的脚,背高,完成出口。一旦中断服务,未来要执行的指令后,指令将以下的指令下把电源设备。

ATC51单片机主要用于控制和遥控车的心脏。

49

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务