孟祥枫0905140116红外遥控智能小车的设计 - 图文

更新时间:2024-04-21 20:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业论文(设计)

红外遥控智能小车的设计

学 生 姓 名: 孟祥枫 指

师: 葛振 讲师

合作指导教师:

专 所

业名称: 通信工程

在学

院: 信息工程学院

2013年 6月

目 录

摘要???????????????????????? Ⅰ

摘 要 ........................................................................................................... 错误!未定义书签。 Abstract ...................................................................................................... 错误!未定义书签。

第一章 引言 ........................................................................................ 错误!未定义书签。

1.1 该设计的背景和意义 .......................................... 1 1.2 智能小车的发展现状 .......................................... 1 1.3 该设计的主要内容和目的 ...................................... 2

第二章 智能小车的系统结构 ................................................... 错误!未定义书签。

2.1 结构组成 .................................................. 4 2.2 主控系统 ................................................... 5 2.3 电机驱动模块 ............................................... 7 2.4 红外循迹模块 ............................................... 8 2.5 通信模块 .................................................... 9

第三章 系统硬件电路与软件设计 ......................................... 错误!未定义书签。

3.1 主控模块的电路设计 ........................................ 11 3.2 红外遥控模块的电路设计 .................................... 15 3.3 电机驱动模块的电路设计 .................................... 18 3.4 循迹模块的电路设计 ........................................ 19 3.5 显示模块的电路设计 ........................................ 20 3.6 系统软件设计 .............................................. 21

第四章 结论与建议 ...................... 错误!未定义书签。 致 谢 .................................. 错误!未定义书签。 参考文献 ................................ 错误!未定义书签。 附录一 系统硬件电路图 .................. 错误!未定义书签。 附录二 源程序 .......................... 错误!未定义书签。

I

大连海洋大学本科毕业论文(设计) 中文摘要 摘要

随着计算机微电子技术的飞速发展,信息技术,智能技术的发展越来越快,越来越智能化程度高,应用范围已经大大扩展。智能作为现代的新发明,是今后的发展方向,它可以按照环境中自动运行预先设定的模式,不需要人为的管理,可应用于科学探索和其他用途。智能电动汽车的一个实施例中的一个。设计者可以通过软件编程控制精确,跟踪,停止运动,测试 数据存储,显示,无需人工干预。因此,智能电动汽 车已编程的特点,是一种机器人。

本设计采用STC12C5A60S2单片机、电机驱动电路、红外遥控和跟踪模块和红外接收集成传 感器的设计,模块化设计,利用红外遥控小车的前进,后退,左转,右转,启动和停止。

关键词:单片机;红外遥控;电机驱动

II

大连海洋大学本科毕业论文(设计) Abstrat Abstract

With the rapid progress of the microelectronics, computer technology, information technology, intelligent technology development more and more quickly, more and more application range has been greatly expanded intelligence. Smart as a modern invention, is the future direction of development, it can automatically operate in an environment where, according to the preset mode, without human management, can be applied to scientific exploration and other uses. Smart electric car is a kind of expression. The designer can trace stop through software programming, road, accurate control and detection of the data storage and display, without the need for human intervention. Therefore, intelligent electric vehicle has the characteristics of a new programming, is a kind of robot.

Infrared receiver integrated sensor design, this design uses STC12C5A60S2 microcontroller, motor drive circuit, infrared remote control and ultrasonic module uses the modular design, the use of infrared remote control car forward, backward, turn left, turn right, start and stop

Key words: SCM; infrared remote control; motor drive

III

大连海洋大学本科毕业论文(设计) 第一章 前言 第一章 前言

1.1 设计的背景和意义

自从世界上第一台机器人诞生以来,机器人已经遍及机械、电子、冶金、交通、宇航、国防等领域。近几年随着机器人的智能化水平的不断提升,而且快速地改变了人们的生活方式。人们在不断探索、改进、认知大自然的进程中,创造能代替人们劳作的机器一直都是人类的梦想。

随着计算机、电子、信息技术的快速发展,智能化技术的开发速度越来越快,智能程度越来越高,应用范围也得到了极大的扩展。在海洋开发、宇宙探索、工农业生产、军事、社会服务、娱乐等各个领域。智能电动小车系统以迅猛发展的汽车工业为背景,涵盖了制动、model识别、传感技术、电子、电气、计算机、机械等多个科目。关键核心由路径识别、角度控制及车速控制等功能模块构成。同时,当今机器人技术发展的红红火火,广泛开展在国防等众多领域。得益于机器人技术的迅速发展,神五、神六升天、无人飞船等等得以实现。一些发达国家已把每年举办机器人竞赛作为创新教育的一种手段。参加者多数为学生,目的在于由参加大赛而全方位培养学生的实践能力、创新能力、团队协作和开拓精神,也推广智能化控制的知识。从某种意义上来说,机器人技术影响了一个国家综合技术实力的高低,智能电动小车是机器人的雏形,它的控制系统的研制将有助于推动智能机器人控制系统的发展,同时为智能机器人的研制提供更有利的方式。 人类的研究活动已摆脱了地球生物圈的约束而广泛地进入外太空和地球各大洋深处。对月球和太阳系其他行星的探测,对太阳系以外的宇宙进行考究,对数千米以下的大海深处的探索,目前都是不能单单依靠人力去安全完成的。智能控制技术正在替代人们做这些研究。在恶劣环境下的劳动生产中,在各种军事活动中,但凡不适合由人直接执行的任务,都可用智能智能系统来代替,如智能机器人可以适应各种环境,各种温度、湿度等条件的影响,完成危险地段、人类无法进入等艰险情况下的任务。高科技自动控制技术及装置已日益成为现代社会活动中离不开的自动智能产品。

1.2 智能小车的发展现状

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

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

一个人形机器人教育,世界上三个最有影响力的教育机器人材料制造商,教育被评为2006名美国学生作业的夏季电子课程指定教材。在教育教育 和双足机器人领域在欧洲流行,使用免费

1

大连海洋大学本科毕业论文(设计) 第一章 前言 的 AVR软件,你可以将电脑上的C语言源程序转换成16进制代码机器人能识别,通过红外发射板与计算机连接,可以无限的16进制代码,机器人可以识别发射的产品上面,将显示一个新的行动,以实现可重复编程,开发不同的程序,可以实现不同的功能,如线性跟踪,自动跟踪,追踪溯源,设置路径 曲折,计算机控制,唱歌,机器人走迷宫,人体感应可以为教育落后的行动,是一个容易的工作。

IEEE国际标准电脑 鼠走迷宫竞赛——所谓“电脑鼠”,英文名叫做MicroMouse,是使用嵌入式微控制器、传感器和几点运动部件构成的一种智能行走装置的俗称。它可以在迷宫中自动搜索迷宫,记忆迷宫地图,智能分析选择路径,最终以最快的时间完成比赛。迷宫的地图是在竞赛开始前几分钟随机设置的,所以竞赛难度较大。国际电工和电子工程学会(IEEE)每年都要举办一次国际性的电脑鼠走迷宫竞赛,自举办以来参加踊跃。1972年美机械杂志发起比赛,最初的电脑鼠是机械的,由弹簧驱动。1977年IEEE Spectrum杂志提出电脑鼠的概念:电脑鼠是一个小型的由微处理器控制的机器人车辆,在复杂迷宫中具有译码和导航的功能。真正的到场电脑鼠迷宫竞赛于1979年于纽约举行,1991年以来,每年都有世界级的比赛。

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

近年来,智能车辆的研究是中国工程学院学生的研究热点。2006年,“飞思卡尔在中国杯”全国智能车竞赛,教育部批准后,由飞思卡尔半导体公司赞助,由清华大学,清华大学举行的首届“飞思卡尔杯”智能车大赛。去年是“飞思卡尔”杯全国大学生智能车比赛的第五届会议,与以往不同,第五代智能车比赛增加了竞赛单元电磁组,参与者需要使用电磁装置代替传统的光电和CCD,访问表跟踪信息,通过电磁感应,为了控制智能小车的轨道上运行。

IEE E国际标准电脑鼠走迷宫比赛,在2007九月开始发展有限公司在广州的M CU的主持下,中国的上海市,江苏省,浙江省协会嵌入式系统组织,30多所高校举办了两次联赛。2009届“电脑鼠走迷宫”总决赛十一月八日在北京航空航天大学举行。

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

智能车辆的红外遥控器可以分为四个部分:红外遥控装置,传感器检测,执行部分,CPU。实现跟踪识别路线的智能车,选择正确的路线。本设计主要是通过系统的硬件电路设计,软件设计和程序,然后根据硬件电路图和软件设计,在软件系统设计的仿真结果。

随着汽车工业的快速发展,对汽车的研究越来越受到人们的关注。全国电子设计竞赛、电子竞赛几乎总是有一个智能汽车这一主题,全国各高校都非常重视的课题研究,经常举办这种竞赛

2

大连海洋大学本科毕业论文(设计) 第一章 前言 是培养学生综合运用知识的能力。

3

大连海洋大学本科毕业论文(设计) 第二章 智能小车系统结构 第二章 智能小车系统结构

2.1 结构组成

2.1.1 底座

小车的底板,小车的底板如图2-1 所示:

图2-1 小车底板

2.1.2主动轮及其驱动机构

智能小车的主动轮有两只,分别由两个直流电机控制,这两个直流电机通过支架分别固定在

底板后侧的两边,通过控制这两个直流电机的正反转,在配合前面的万向轮,能够完成向前直走、向后直走、并且左右转弯、原地打转这些平地似的技术动作。

2.1.3万向轮

智能小车有一只万向轮,通过安置在智能小车前面底座上的万向轮,可以让智能小车实现左右转向和保持车身平衡。万向轮如图2-2 所示:

4

大连海洋大学本科毕业论文(设计) 第二章 智能小车系统结构

图2-2 万向轮

2.2 主控系统

2.2.1主控板模块

智能车控制系统主控电路图如图2-3 所示:

图2-3 主控板模块原理图

智能车系统以STC12C5A60S2单片机为控制核心,周围加了一些外围控制电路。包括:复位

5

大连海洋大学本科毕业论文(设计) 第二章 智能小车系统结构 电路、晶振电路、红外收发电路、4路方向指示灯电路、单片机IO口外接电路。 STC12C5A60S2 单片机的管脚分配如下:

表2-1 STC12C5A60S2 单片机管脚分配表

P1.0-P1.7 P2.0 P2.1-P2.4 P3.2

红外传感器接口 语音播放控制 4 路小车方向灯控制 红外遥控接收控制

P3.4-P3.7 RXD TXD

4 路电机正反驱动及4 路电机正反指示灯控制

串口接收 串口发送

2.2.2电源模块

电源模块对于一个控制系统来说极其重要,关系到整个系统是否能够正常工作,因此在设计

控制系统时应选好合适的电源。

78×××系列集成稳压器集成稳压器使用固定正输出电压,输出电压为5V,6V,12V的,15V,9V,18V,24V等规格,最大输出电流为1.5A的。它包含了内部电流限制保护,过热保护,过压保护电路,低噪声,温度参考电压源漂移小,工作稳定可靠。78×××系列集成稳压器三终端设备:1脚输入,2脚的地面3脚,作为输出,使用非常方便。

7805是我们最常用到的稳压芯片了,他的使用方便,用很简单的电路即可以输入一个直流稳压电源,他的输出电压恰好为5V,刚好是51系列单片机运行所需的电压,5V电源模块用于为单片机系统、传感器模块等供电。

在智能小车的电源模块中,加入了78M05稳压芯片,同时保留了5V的电源接口。所以既能以5V直流电源直接给小车供电,又能给小车7-12V的直流电源,同时7-12V的直流电源既可以通过插孔插入,也可以插在J12的插针座上。在78M05的输出端我们还加人了一个二极管,它可以防止电源接反烧毁主板。电源模块原理图如图2-4所示:

6

大连海洋大学本科毕业论文(设计) 第二章 智能小车系统结构

图2-4 电源模块原理图

2.3 电机驱动模块

动力驱动由后轮驱动实现,后轮驱动电路是一个全桥驱动电路。如图2-5 所示:

图2-5 全桥驱动电路

图中是控制其中一个后轮电机M1(左边电机)的电路,Q2、Q3、Q5、Q6四个三极管组成四个桥臂,Q2和Q6一组,Q5和Q3一组,Q1控制Q2和Q6的导通与关闭,Q4控制Q5和Q3的导通与关闭。而Q1和Q4又由单片机的P3.4口和P3.5口控制,这样通过控制单片机的P3.4口和P3.5口就可以控制四个桥臂的导通情况继而控制电机的正向反向运转。同理,通过控制单片机的P3.6口和P3.7口控制另一个后轮电机M2(右边电机)的正向反向运转。这样,通过单片机程序中对

7

大连海洋大学本科毕业论文(设计) 第二章 智能小车系统结构 P3.4—P3.7信号的控制就能实现对后轮两个电机的正向反向运转进而控制小车的前进、后退及左右转向。在电机驱动电路中,P3.4—P3.7的信号线上分别引出了一个LED指示灯,通过这4路电机正反驱动指示灯可以观察到P3.4—P3.7的4路信号线上是否有信号通过,同样可以判断电机的正反转。

后轮电机驱动电路原理图如图2-6 所示:

图2-6 电机驱动电路原理图

P3.4—P3.7信号控制与小车运行状态对应关于如下表:

表2-2 信号输入与小车运行状态对照表

P3.4 0 1 0 1 0

P3.5 0 0 1 0 1

P3.6 0 1 0 0 1

P3.7 0 0 1 1 0

左电机 停转 正转 反转 正转 反转

右电机 停转 正转 反转 反转 反转

小车状态 停止 前进 后退 右拐 左拐

LED亮 无 D10、D12 D11、D13 D10、D13 D11、D12

2.4 红外循迹模块

在智能车系统中,红外寻迹传感器就是整个系统的“眼睛”,其对于路径的识别在控制系统

中尤为重要。

红外传感器是靠发射并接收由障碍物反射回来的红外光来判断是否有障碍。其原理是红外发射管向外发射波长的红外线,由地面反射到接收管。如图2-7所示,黑色和白色的反射系数是不同的,大部分被吸收的光的黑色和白色,可以反射回来,大部分的光,所以接收的反射光的强度

8

大连海洋大学本科毕业论文(设计) 第二章 智能小车系统结构 是不一样的,这导致的接收管不同变化的特性曲线,并可以从外部观测考虑接收管端输出电阻是不同的,和分压是不一样的,我们可以区分黑色路面。

图2-7 光电传感器原理

小车使用TCRT5000 红外收发寻迹模块,它具有结构紧凑体积小、重量轻、安装方便、感应灵敏的优点。

图2-8 TCRT5000 模块

2.5 通信模块

智能小车单片机有一个全双工串行通信口,因此单片机与计算机之间可以方便地进行串行

通讯。串行通信在满足一定的条件,如计算机串行端口RS232电平,而单片机的串口是TT L电平,两者之间必须有一个电平转换电路,我们采用专用芯片MAX 232转换。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:分别对应GND、RXD和TXD。这是最简单的连接方法,但是对我们来说已经足够使用了。RS232通信模块电路 原理图如图2-7所示:

9

大连海洋大学本科毕业论文(设计) 第二章 智能小车系统结构

图2-9 RS232 通信模块原理图

10

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 第三章 系统硬件电路与软件设计

3.1 主控模块的电路设计

3.1.1 STC12C5A60S2单片机的简介

STC12C5A60S2是STC生产的单时钟/机器周期(1T)的单片机,是强大的805 1单片机控制的新一代抗干扰,指令代码完全兼容传统8051,但8-12倍的速度。内部整合MAX810专用复位电路,PWM 2路,8的高速10位A/D转换器路,电机控制,强干扰。 1、增强型8051CPU,1T(1024G),单时钟/机器周期 2、工作电压 5.5-3.5V 3、1280字节RAM

4、通用I/O口,复位后为:准双向口/弱上拉可设置成四种模式:准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA 5、有EEPROM功能 6、看门狗

7、内部集成MAX810专用复位电路 8、外部掉电检测电路

9、时钟源:外部高精度晶体/时钟,内部R/C振荡器常温下内部R/C振荡器频为5.0V单片机为:11~17MHz 3.3V 单片机为:8~12MHz

10,4,16定 时器的两个是与传 统的8051定 时器/计 数器兼容,16 位定时器t0t1 11,3个时钟输出,可以通过在p3.4/t0输出一个时钟T0溢出,这可以通过在p3.5/t1 T1溢出输出时钟,独立波特率发生器可以在P1.0端口输出时钟

12,外部中断的I/O 7路,传统的下降沿中断或电平触发中断,并添加PCA模块支持中断,断电模式的外部中断I NT0,/p3.2int1/p3.3t0/P3.4,T1/P3.5,接收/P3.0,ccp0/P1.3,ccp0/根据

13、PWM2路

14,A / D转换,10位ADC精度,共8路,转换速率/ s up to 250 15、通用全 双工异 步串口(UART 16、双串口,RxD2/P1.2,TxD2/P1.3 17、工作范围:-40~85

18、封装:LQFP-48,LQFP-44,PDIP-40,PLCC

11

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 3.1.2 单片机工作电路结构分析

图3-1

(1)预留VCC GND端口。

(2)三组排针方式预留端口,从上到下,从左到右依次为VCC(8个)、GND(8个)、P1(P1.0-P1.7)。P1口具有10位AD转换功能,此部分作为功能拓展接口,方便做传感器、舵机控制等实验。

(3)4个红色LED灯管,分别与P2.1 P2.2 P2.3 P2.4连接,可实现流水灯实验,和小车方向指示灯。

Led1 P2.1

Led2 Led3 P2.2 P2.3 Led4 P2.4

(4)16P的排座,主要是与语音模块进行连接,设置了防反差,避免学生误操作到时模块损坏。

(5)红外接收模块,此部分采用VS1838B红外接收头,可以实现红外遥控,通过编程可完成小车的控制等功能。

(6)电机驱动模块,此部分采用了三极管驱动,运用了H桥原理,通过8550和8050组成的电机驱动模块来控制智能小车的双后轮。在软件控制过程中,请注意三极管驱动时,4组信号控制线不能同时置高,左边和右边的两个信号也不能同时为高,否则会将三级管烧毁;在左右三极管分布的中心部分,有一个3组插针和2组插针,此部分是电机驱动电路的外接电源入口,一般我们采用外部电源供电,使电机达到最大功率。具体分布为:

12

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计

VCC(主板电源) 一般不采用 VCC(驱动电源 用跳冒跳连接 VCC1(端口1) 用跳冒跳连接

VCC(外接电源) 接外部电源 GND(外接电源) 接外部电源

(7)电机控制接口,此部分与驱动模块组合后,就可以驱动轮子转动。具体方式如下所示:

左电机接口 右电机接口 1 2 1 2 P3.4 P3.5 P3.6 P3.7

通过对单片机编程即可驱动电机转动,其中每组不能同时置高电平。

( 8)电机前后转动指示灯。 (9)主板总开关。

(10)78M05稳压芯片,对7-12V电源输入进行降压处理。 (11)7-12V外接电源入口。

(12)外接电源插针入口,从上到下依次为7-12V GND 5V的排列。 (13)复位电路。

(14)串口通信接口,从上到下依次为- TXD RXD +,如果下载程序,请用杜邦线将此部分与通信模块上的四个插针引脚链接。

(15)主芯片(STC12C5A60S2)的四个功能I/O口,为方便做扩展实验,将P0 P1 P2 P3四个I/O口全部引出。

P0.0-P0.7

P1.0-P1.7 P2.0-P2.7

P3.0-P3.7

(16)模块组合介绍

主板是小车的主控制模块,通过其自身的功能拓展接口,可实现循迹、避障、红外遥控、语音录放和串口通信。

13

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 4个光电传感模块 P1口 4脚 串插 口针 通 信 主控制模块 语音播放模块16 块 脚排座 模 电源及红外遥控 三极管驱动 外 接 电 源 及 电 机 模 块

图3-2

3.1.3 复位电路

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

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

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

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

14

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 图3-3 复位电路图

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.56m s低层次的,与不同宽度的不同,“0”“1”0.56ms,1.68ms,它必须是基于高水平宽度不“0”和“1”。如果0.56ms低水平后,启动延迟,0.56ms,如果阅读水平低,表明点是“0”,“1”是相反的,为可靠起见,延迟时间必须比0.56ms更长的时间,但不超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。根据码的格式,应该等待9ms的起始码和4.5ms的结束码完成后才能读码。

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

15

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 键盘 编码调制 LED 遥控发射器

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

图3-4 红外遥控系统框图

VS1838是一个塑料集成通用红外接收器,它是集成电路的一组红外接收,放大,整形,不需要任何外部元件,可以完成从红外接收输出与TTL电平信号兼容所有的工作,在电路中,我们只需要的vs1838输出连接对外部中断0端口(P3.2口)。的vs1838和普通塑料晶体管大小的体积,对各种红外遥控器和红外数据传输是合适的。VS1838如图3-5:

图3-5 VS1838 实物图

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

16

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 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 红外接收器

红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。内部内部电路包括红

外监测二极管,放大器,限幅滤波器,带通滤波器,积分器,比较器。红外监测二极管监控的红外信号,然后对放大器的信号和一个限制器,脉冲幅度限制器控制在一定的水平,无论是红外线发射器和接收器的距离。输入交流信号的带通滤波器,带通滤波器在30k Hz负载波60kHz,通过解调电路和集成电路输入比较器,比较器的输出电平,信号波形发射端的减少。注意高水平和发射机输出是相反的,目的是为了提高接收灵敏度。

该模块对红外接收头1838的使用,有三个引脚,其中包括电源引脚,接地和信号输出引脚。电路如图3.7所示。陶瓷电容器104去耦电容,滤波器的输出信号的干扰。输出信号的解调1端,直接与单片机P 3.2口连接。红外编码信号的传输,红外连接处理,成型后的方波信号检测输出,并直接向单片机,执行相应的操作来达到控制电机的目的。

17

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 图3-7红外接收硬件图

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

该模块主要芯片L298,扭转其可以控制两个电机,和变速电机,足以满足设计要求。 L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。

L298芯片是一种高电压,高电流驱动后桥。在sensea,senseb目前是两个H桥反馈脚,可以直接接地,在不使用时。VCC,与连接到电源引脚,电压范围为4.5~7V,2.5~46V,共享的5V电源供电的终端设计的VCC和单片机,VS端接12V电源。ENA,ENB为使能端,低电平禁止输出。IN1,IN2,IN3,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所示:

18

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 图3-8 电机驱动电路原理图

3.4 循迹模块的电路设计

为了保证汽车在运行前左、右沿黑线,对TCRT5000两个红外管的两侧安装。在运输过程中,如果左偏离黑线方向,探测器将测试就在黑色的线,将信号传给单片机。处理的校正。控制其右转,另一方面,向左转。

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

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

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

19

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 图3-9 系统循迹电路原理图

3.5 显示模块的电路设计

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

20

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 图3-10 系统显示电路

3.6系统软件设计

3.6.1 主程序

主程序是个死循环,程序启动后,开始检测黑白线,如果左右两侧都检测到黑线,则控制小

车前进;如果左边检测到黑线,右边检测到白线,则控制小车左转;如果右边检测到黑线,左边检测到白线测控制小车右转;如果左右两边都检测到白线则后退。

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

21

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 启动 Y 1、2遇黑线 前进 N 1遇黑线 2遇白线 Y 左转 N 1遇白线 2遇黑线 Y 右转 N 1遇白线 2遇白线 Y 后退 驱动模块循迹模块

N

图3-11 主程序流程图

LCD显示程序的编写:

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

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

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

22

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 3. 显示内容程序如下:

void main() {

int i;

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

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(0x80); //初始化显示

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

{

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++) {

23

{

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计

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++) {

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) {

24

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计

write_com(0x01); //清屏

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

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

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

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

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

}

3.6.2 C程序的编译

在这里我们以一个控制小车4路方向灯中前进方向灯闪烁的C程序,如何对这个程序进行编译。 1.首先编写一个C程序,下面是控制小车D1指示灯(前进方向指示灯)闪烁的一个小程序:

#include

#define uint unsigned int

sbit D1=P2^1; //定义P2.1 口为D1 void delay(uint); void main() {

while(1) {

D1=1; //D1 灯亮 delay(600); //延时 D1=0; //D1 灯灭 delay(600); //延时 } }

void delay(uint z) {

uint x,y;

for(x=100;x>0;x--) for(y=z;y>0;y--); }

2.编写好程序后,需要对程序进行编译,如图3-12:

25

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计

图3-12 编译程序

图中1、2、3都是编译按钮,不同是1是用于编译单个文件。2是编译当前项目,如果先前编译过一次之后文件没有编辑改动,然后再次单击,编写不。3重新编译,每点击一次又一次将编译和链接的时间,不管程序的变化,123中的任何一个可以编译,我们通常按3编译。在3右边的是停止按钮,按钮是灰不能用,只有点击任何三个,停止按钮才会生效。在4中可以看到编译的错误信息和使用的系统资源。6是一个小的放大镜按钮,即打开和关闭调试模式的按钮,它也是在调试会话菜单debugsta rt\\停止,因为按Ctrl+F5快捷键。点击按钮3编译,4可以在编译信息,如图3-13所示:

图3-13 编译信息

在图中最后一行中,有整个程序的错误提示,如过出现的是“0 Error(s),0Warning(s)”

的提示,说明编译成功。若是有错误,则编译不能通过(警告可以)。例如我们将上述程序中while 下面的D1 改为D11,再编译一次,就会出现错误提示,双击错误提示行,软件会自动在程序中寻

26

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 找到错误的地方,如图3-14,3-15 所示:

图3-14 错误提示

图3-15 自动寻找错误

3.6.3生成HEX 文件

将程序编译好后,只能说明改程序的语法是正确的,还不能下载到单片机中,我们要讲编好的程序生成一个HEX 文件,然后才能将该HEX 文件烧写到单片机中使之运行。根据英特尔公司提出的数据地址设置HEX文件格式,字节的数据宽度,所有的数据都用16进制数表示,通常用于保存微处理器或其他处理程序。它认为物理程序存储区中的目标代码的图像。程序员都支持这种格式。

1.右击图3-16 中的项 目文件夹“Target”,弹出项 目功能菜单,选“Options for Target'Target1'”,或者点击图3-13 中编译按钮右侧的“Options for Target”按钮,弹出“项目选项窗口”:

27

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计

图3-16-1 项目功能菜单

图3-16-2 “Options for Target”按钮

2.将项目选项窗口转到“Target”选项页,如图3-17

图3-17 “Target”选项页

28

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 在“Xtal (MHz)”后面的对话框中输入要下载的单片机板子的晶振值,单位为MHz,由于我们小车使用的是12MHz 的晶振,所以这里我们输入12。

3.将项目选项窗口转到“Output”选项页,如图3-18:

图3-18 “Output”选项页

在“Create HEX Fi”前的选取框中打钩,选择我们编译后要生成一个HEX的文件,点击确定,将原来的程序再重新编译一次,这样就能生成一个HEX 文件了,在编译信息窗口中我们可以看到HEX 文件创建成功,如图3-19:

图3-19 HEX 文件已生成

29

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 3.6.4 程序下载

HEX 文件生成后,我们就要将这个文件烧写进小车的单片机中,使小车能够运行这个程序。

1.首先打开程序,出现下载程序的界面。如图3-20

图3-20 下载程序界面

2.在芯片选择下拉框,选择好芯片类型。智能小车使用的是STC 12C5A60S2单片机,所以我们在这里同样选择此款芯片。

3.正确选择好COM 口。在“COM:”后的下拉框中选好COM 口号,如果不知道电脑的COM 口号是多少,可以用鼠标右键单击“我的电脑”,选择“管理”,弹出“计算机管理”窗口,如图3-21 所示:

30

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计

图3-21 计算机管理窗口

点击左边的“设备管理器”,在右面的界面中点击“端口(COM 和LPT)”,可以在弹出的下拉

菜单中看到“通信端口”,后面显示了是几号COM 口,如图3-22所示:

图3-22 COM 口的查看

31

大连海洋大学本科毕业论文(设计) 第三章 系统硬件电路与软件设计 将“串口设置”中的串口号设为与上图中的号数一致,设置好COM口后回到“串口设置”区,串口下面的波特率要设置的和机器人背后设置的波特率一致;其他的四个设置和图中一致即可。设置好后单击“确定”。在以后点击下载按钮时,我们可以观察到COM口下拉框后的指示灯会变为绿色,说明COM口选择正确,否则指示灯为灰色。COM口选框的右侧有一个波特率的范围设置,这里只要让它是默认的范围(115200-1200)即可,一般不需要更改。

4.回到下载软件,点击“Open File”,选择要烧录的文件,能够烧录的文件为HEX文件及BIN文件,这里我们选择刚生成的“test.hex”文件。在右侧的“数据窗口”中我们可以看到其中显示了一些数据信息。

5.点击“Download/下载”按钮下载程序。打开智能小车电源开关。在信息提示框中可以看到下载提示,下载成功后,烧写记数器会记数一次。这时,我们就能够看到小车的D1 指示灯开始闪烁了!

3.6.5 功能测试

熟悉上述程序下载软件后,分别将例程中的流水灯、红外遥控、电机驱动、语音播放控制、红外循迹文件夹中的.HEX 文件下载到主板中,一一测试,同时按图将串口通信模块与主板进行连接,完成各部分的功能测试。

流水灯:当程序下载到主芯片中后,会看到右上角的4 个LED灯会顺时针间隔显示,速度会逐渐加快,最后全部点亮,然后再逆时针间隔点亮,最后全部点亮。循环执行。

红外遥控:程序下载完成后,用遥控器对准主板上的接收管,按1,点亮右上角4 个中的一个;按2,点亮2 个;按3,点亮3 个;按4 点亮4 个;按5,出现动态变化;按6,四个等全部熄灭。

电机驱动:程序下载完成后,给电机驱动部分上电,具体接法参看前页所述连接。上电以后,过10S 中以后电机将转动,转动时间为10S;停止3S 后,电机将反方向转动10S,然后停止; 语音播放控制:首先将语音模块插入主板的右侧插槽上,将主板上电,然后将语音模块上的拨码开关的4 脚打到ON 状态,此时模块上的LED 灯点亮。再将2 号开关拨至ON 状态,此时您就可以对准麦克风进行说话,20S 的录音时间,完成后,将2 号开关拨至OFF状态。现在可通过两种方式进行声音的播放,一将拨码开关的1 脚拨至ON 状态,或者下载程序(.HEX)都可以听到您自己刚录制的声音。

红外循迹:将程序下载后,将1 个光电传感器的信号线插入P1.0,并制作一个简单黑白线条,在黑白之间来回移动,将会发现主板上右上角的灯在不停的闪烁,遇到黑线时灯就会点亮,在白色区域灯是不亮的。此现象表示能测试出黑线。

以上几个功能测试部分都是一一测试,如果想进行功能组合,还可以另外编写相关C 语言代码。

32

大连海洋大学本科毕业论文(设计) 第四章 结论与建议 第四章 结论与建议

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

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

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

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

33

大连海洋大学本科毕业论文(设计) 致谢 致谢

本次毕业设计的完成,得益于所有给过我帮助的人,我要感谢他们。

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

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

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

34

大连海洋大学本科毕业论文(设计) 参考文献 参考文献

[1] 杨永辉.《单片机与嵌入式系统应用》[J]..北京:清华大学出版社,2005,7

[2] 武庆生,仇梅.单片机原理与应用(M).传感器与检测技术[M].电子工业出版社,2007 [3 裴彦纯.刘瑞新.单片机原理及应用教程 .机械工业出版社,2003,7 [4] 刘湘涛,江世明.单片机原理与应用[M].电子工业出版社,2006 [5] 何立民.单片机初级教程[M].北京航空航天大学出版社,1999 [6] 熊建云.光电式传感器的应用与发展[J]. 北京:机械工业出版社,2007 [7] 郑郁正.单片机原理及应用.四川大学出版杜,2003

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

[9 张燕,51单片机C语言教程科技情报开发与经济,2007

[10] 曾光宇,基于单片机的红外遥控密码锁的设计与实现[J].应用研究,2010 [11] 张立.基于单片机系统的红外遥控器应用[J].现代仪器,2004 [12] 赖麒文.Protel99 SE.科学出版社,2002

[13] Special Issue on Adaptive Arrays.IEEE Trans.Antennas and propagation,1976,34(3)

[14] DuHamel R H.Optimum Patterns for Endfire Array.1953,Proc.IRE ,41(5):652-659

[15] Godara L C. Handbook of Antenna in wireless Communication. NEW YORK:CRC Press,2002

35

大连海洋大学本科毕业论文(设计) 附录1 附录一 系统硬件电路图

图1 主控制板核心电路图

图2 小车主控制板PCB 图

36

大连海洋大学本科毕业论文(设计) 附录2 附录二 源程序

#include #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; Delay(5); sbit KEY5 = P2^7;

uchar tmp[9]=\正转 uchar tmp0[9]=\正转 for(i=110;i>0;i--)

uchar tmp1[10]=\正转 uchar tmp2[8]=\ //反转 uchar tmp3[8]=\ uchar tmp4[8]=\ uchar tmp5[4]=\

37

大连海洋大学本科毕业论文(设计) 附录2 void Delay(uint t) { int i,j;

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(0x80); //初始化显示 {

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

38

大连海洋大学本科毕业论文(设计) 附录2 write_com(0x0c); }

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) init_lcd() {

//步进电机正传

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

write_com(0x01); write_com(0x80);

write_com(0x80);

//在液晶的第一个位置写入“”

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

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

39

大连海洋大学本科毕业论文(设计) 附录2 write_com(0x80+0x40); for(i=0;i<9;i++) {

write_data(tmp[i]);

}

IN1 = 0; //电机转动函数 IN2 = 1; 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);

40

大连海洋大学本科毕业论文(设计) 附录2 write_com(0x80);

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

for(i=0;i<10;i++)

write_data(tmp3[i]); }

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

write_data(tmp[i]); }

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

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

write_com(0x01); IN4 = 1; 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]);

41

大连海洋大学本科毕业论文(设计) 附录2

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

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

IN4 = 1;

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

write_data(tmp4[i]); write_com(0x01);

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

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

write_data(tmp[i]);

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

} }

42

大连海洋大学本科毕业论文(设计) 附录2

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

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

IN4 = 1;

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

write_data(tmp4[i]); write_com(0x01);

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

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

write_data(tmp[i]);

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

} }

42

本文来源:https://www.bwwdw.com/article/vlop.html

Top