版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、( 此文档为 word 格式,下载后您可任意编辑修改!)摘 要STC89C51单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。这里介绍的是如何用STC89C51单片机来实现简易智能电动车设计,该设计是结合科研项目而确定的设计类课题。本系统以设计题目的要求为目的,采用STC89C51单片机为控制核心,利用避障传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。整个系统的电路结构简单,可靠性能高。实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。采用的技术主要有:(1) 通过编程来
2、控制小车的速度;(2) 传感器的有效应用;(3) 新型显示芯片的采用 .关键词 STC89C51单片机、光电检测器、 PWM调速、电动小车Design and createan intelligenceelectricitymotivesmall carAbstract89C51 is a 8 bit single chip computer. Its easily using and multi-functionsuffer large users. This article introduces the CCUT graduation design withthe 89C51 single
3、chipcomputer.This design combines withscientificresearchobject. This system regards the request of the topic, adopting 89C51 forcontrollingcore, super sonicsensor fortesttherun ina recordthe time,distanceand thespeed or searching lightand mark automatically the electriccircuit construction ofwholesy
4、stem is simple, the function is dependable.Experiment testresultsatisfythe request,thistext emphasizesintroducedthe of technique as:(1)Reduce the speed by program the engine;(2) Efficient application of the sensor;(3) The adoption of the new display chip.Keywords 89C51 singlechip computer,lightelect
5、ricitydetector,PWMspeedadjusting, Electricity motive small car目录第一章前 言3第二章系统功能描述及设计思路4一 系统功能描述4二 设计思路5第三章硬件电路设计7一 STC89C51单片机硬件结构7二 最小应用系统设计8六 避障传感器电路12第四章软件设计17第五章小结33致谢33参 考 文 献34附录 A 程序清单34附录 B 硬件原理图47第一章前言随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。本设计就是
6、在这样的背景下提出的,指导教师已经有充分的准备。本题目是结合科研项目而确定的设计类课题。设计的智能电动小车应该能够实时显示时间,具有自动寻迹、寻光、避障功能,可程控行驶速度、准确定位停车。根据题目的要求,确定如下方案:在现有玩具电动车的基础上,加装光电、红外线、避障传感器等电路,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。本设计 采用 MCS-51 系列中的 STC89C51单片机。以STC89C51为控制核心
7、,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间,自动寻迹和寻光功能。STC89C51是一款八位单片机,它的易用性和多功能性受到了广大使用者的好评。它是第四代单片机的代表。第四代单片机包括了Intel公司发展 MCS-51系列的新一代产品。新一代的单片机的最主要的技术特点是向外部接口电路扩展,以实现Microcomputer完善的控制功能为己任,将一些外部接口功能单元如 AD PWM PCA(可编程计数器阵列 ) WDT(监视定时器 ) 高速 IO 口计数器的捕获比较逻辑等。这一代单片机中,在总线方面最重要的进展是为单片机配置了芯片间的
8、串行总线,为单片机应用系统设计提供了更加灵活的方式。 Philips 公司还为这一代单片机 STC89C51系列 8C592单片机引入了具有较强功能的设备间网络系统总线 -CAN(Controller Area NetworkBUS).新一代单片机为外部提供了相当完善的总线结构,为系统的扩展与配置打下了良好的基础。本设计就采用了比较先进的80C51为控制核心, 80C51采用 CHOMS工艺,功耗很低。该设计具有实际意义,可以应用于考古、机器人、医疗器械等许多方面。尤其是在足球机器人研究方面具有很好的发展前景;在考古方面也应用到了超声波传感器进行检测。所以本设计与实际相结合,现实意义很强。第二
9、章系统功能描述及设计思路由于机械结构的不同,智能车有两种控制转向的方式,一种是采用四轮双电机结构,前面两个轮子用于控制转向,后面两个控制速度;另一种是采用三轮双电机结构,前面采用一个万向轮,后面采用两台电动机分别控制两个轮子,利用两个轮子速度不同来实现转向。这里设计的简单智能小车采用的是第二种机械结构。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。一 系统功能描述如图 1-1 所示,设计制作一个智能小车,该小车能按照要求自行运动,按照虚线路径通过一个建筑物中曲折的道路,并完成规划的动作。设矩形建筑物有两个门A,B, 门宽 24cm,建筑物的墙壁是
10、10cm高, 2cm厚的矮墙,建筑物内无引导轨迹。具体功能 如下:. 要求智能小车从 A 门进入并开始自动计时,从 B 门出来,在行进过程中,能自动选择适当的路径,避开墙壁,找到通路,三分钟之内到达B 门;. 到达 B 门,停 5s,小车自动计时并数字显示 AB 段所用的时间,并声光报警;. 自 B 门外,循环形引导轨迹 BC前进(引导轨迹为 2cm宽);. 到达 C点后,小车停止前进并停止计时,显示 BC段所用的时间;BC图 1-1A二 设计思路在本次设计中,小车底盘选取的是三轮双电机结构,通过后轮电动机转速和转向的不同实现对小车方向的控制。左右两侧电动机控制采用电动机驱动芯片L298 实现
11、驱动,转速调节是通过单片机输出的PWM脉冲宽度方式进行调节。为了保证小车在建筑物内行进过程中不碰壁,因此选用一组光电开关实现障碍物的检测,当传感器检测到障碍物时进行及时避让和调整。另外,在小车离开建筑物时,可以通过安装在小车底部的光电开关检测黑色循迹线,使得小车沿线运行。第三章硬件电路设计一个单片机应用系统的硬件电路设计包含有两部分内容:一是系统扩展, 即单片机内部的功能单元,如ROMRAM IO 口定时记数器中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统配置,既按照系统功能要求配置外围设备,如键盘显示器打印机AD DA 转换器等,要设计合
12、适的接口电路。一 STC89C51单片机硬件结构STC89C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上 2 。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行IO 口、串行口、定时器计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。1 微处理器该单片机中有一个8 位的微处理器,与通用的微处理器基本相同,同样包括了运算器和控制器两大部分,只是增加了面向控制的处理功能,不仅可处理数据,还可以进行位变量的处
13、理。2 数据存储器片内为 128 个字节,片外最多可外扩至64k 字节,用来存储程序在运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。3 程序存储器由于受集成度限制,片内只读存储器一般容量较小,如果片内的只读存储器的容量不够,则需用扩展片外的只读存储器,片外最多可外扩至64k 字节。4 中断系统具有 5 个中断源, 2 级中断优先权。5 定时器计数器片内有 2 个 16 位的定时器计数器,具有四种工作方式。6 串行口1 个全双工的串行口,具有四种工作方式。可用来进行串行通讯,扩展并行IO口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。7
14、 P1 口、P2口、 P3口、 P4 口为4个并行 8位IO口。8 特殊功能寄存器共有 21 个,用于对片内的个功能的部件进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。由上可见, 80C51 单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1 位微计算机,这个一位微计算机有自己的CPU、位寄存器、 IO 口和指令集。 1 位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8 位机在数据采集,运算处理方面有明显的长处。 MCS-51单片机中 8 位机和 1 位机的硬件资源复合在一起,二
15、者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机在设计的精美之处。二 最小应用系统设计STC89C51是片内有 ROMEPROM的单片机,因此,这种芯片构成的最小系统简单可靠。用 80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图 3.1STC89C51 单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:(1) 有可供用户使用的大量 IO 口线。(2) 内部存储器容量有限。(3) 应用系统开发具有特殊性。图 1-2 STC89C51 单片机最小系统1、时钟电路STC89C51虽然有内部振荡电路,但要形成时钟,
16、必须外部附加电路。STC89C51单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部时钟方NPO电式,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ到 12MHZ之间选择。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响, CX1、CX2可在 20pF 到 100pF 之间取值,但在 60pF 到 70pF 时振荡器有较高的频率稳定性。所以本设计中,振荡晶体选择 6MHZ,电容选择 65pF。在
17、设计印刷电路板时,晶体和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。为了提高温度稳定性,应采用容。2、复位电路STC89C51的复位是由外部的复位电路来实现的。复位引脚 RST通过一个斯密特触发器用来抑制噪声, 在每个机器周期的 S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要 Vcc 的上升时间不超过1ms,就可以实现自动上电复位。 时钟频率用 6MHZ时 C取 22uF,R 取 1K
18、。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过 RST 端经电阻与电源 Vcc接通而实现的。按键手动复位电路见图 3.2 。时钟频率选用 6MHZ时,C取 22uF,Rs取 200,RK取 1K。图 1-3 STC89C51 复位电路如图 1-4 所示,智能电动车的系统原理框图主要包括主控器,电动机驱动控制电路,避障红外传感器电路,寻线红外传感器电路,显示电路,时钟电路,报警电路和电源电路等部分构成。图 1-4 智能电动车的系统原理框图三 主控器本系统中主控器需要对双电机进行控制,因此需要使用PWM脉冲信号输出。A
19、T89S51是一种低功耗,高性能CMOS 8位微控制器,三个定时器计数器,具有 8KB在系统可编程 Flash 存储器。主控器外围电路如图1-5 所示。图 1-5 主控器外围电路图四 电动机驱动控制L298 是 SGS公司(意法半导体公司)的一款H 桥电动机驱动芯片。该芯片内部有 4 通道逻辑驱动电路,具有两套 H 桥电路,可以方便地驱动两个直流电动机。电动机驱动控制电路如图 1-6 所示。图 1-6 电动机驱动控制电路图五 寻迹传感器电路寻迹传感器电路采用TCRC5000L型红外对管进行设计。该型号的传感器内部由一个高发射功率红外光电二极管和高灵敏度光电晶体管组成,具有体积小,结构紧猝,灵敏
20、度高,工作性能稳定等特点,能够满足本次设计的要求。传感器的工作原理如下:红外发射管发出红外线,若红外光照射到白色的平面将存在反射光线,传感器会输出一个低电平信号:反之,若红外光照射到黑色的平面将无反射光线,传感器侧输出一个高电平信号。寻迹传感器电路如图1-7 所示,通过一个电压比较器可以获取每个传感器的检测状态。如果传感器末检测到黑线,比较器LM324会输出一个低电平 ; 如果检测到黑线, LM324则输出一个高电平。为了节省单片机的IO 接口,这里通过74LS165 将 8个传感器输出信号转为串行信号送入单片机中。图 1-7寻迹传感器电路六 避障传感器电路避障传感器电路采用红外光电开关E3F
21、-DS10C4进行避障。该型号的传感器具有操作简单 , 使用方便等特点。传感器内部将集发射器和接收器于一体,当有被检测物体经过时,物体将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。当有光线反射回来时,传感器输出低电平信号;当没有光线反射回来时,输出高电平信号。避障传感器电路如图1-8 所以,同样为了节省单片机的IO 接口,这里也通过74LS165将 6 个传感器输出信号转为串行信号送入单片机中。图 1-8 寻迹传感器电路七 显示电路本系统需要显示的内容较少,主要是计时时间的显示,因此选用一个LCD1602即可实现该项功能。 LCD1602液晶也称 1602 字符
22、型液晶, 是一种专门用来显示字母,数字,符号等的点阵型液晶模块,可以显示两行,每行16 个字符液晶模块(显示字符和数字)。该显示模块具有微功耗,体积小,显示内容丰富,超薄轻巧等特点,常用在袖珍式仪表和低功耗应用系统中。本系统显示电路如图1-9 所示。图 1-9 显示电路八 PWM输出控制电路PWM信号的产生电路如图1-10所示。 8254所需的基准频率是由有源晶振Y2 产生的。晶振Y2 的震荡频率为1MHz,因此产生周期为1us的时钟信号。图 1-10 PWM输出控制电路九 声光提示电路声光提示电路如图1-11 所示,发光二极管的驱动采用灌电流的方式,当单片机驱动引脚 LED为低电平时,发光二
23、极管点亮。蜂鸣器使用一个PNP三极管进行驱动,当单片机 BEEP引脚输出低电平时,蜂鸣器发出声音进行提示。图 1-11 声光提示电路十 电源电路智能小车的驱动电机需要9V 直流电,采用充电电池供电。因此,需要通过一个电源变换电源实现DC9V到 DC5V的转换。这里选用一个开关电源芯片LM2576进行设计,该芯片是美国国家半导体公司生产的3A集成稳压电路,它内部集成了一个固定的振荡器,只需极少外围器件便可构成一种高效的稳压电路,可大大减小散热片的体积,而在大多数情况下不需散热片,内部有完整的保护电路,包括电流限制及热关断电路等。电源电路如图1-12 所示。图 1-12电源电路第四章软件设计一 软
24、件流程简易智能电动车的主程序流程如图 1-13 所以。系统上电后,首先完成对定时器T0, T1 和液晶的初始化,然后启动智能车前进,进入避障和循迹程序的检测。图 1-13主程序流程图避障程序流程如图 1-14 所示,在该程序中,系统实时读取避障传感器的状态,更加各传感器的输入信号来判断智能车的行进位置及状态,并根据位置和状态信息及时调整车的走向。图 1-14 避障程序流程图在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。为了完成上述任务,在进行软件设计时,通
25、常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块” ,实质上就是所完成一定功能,相对独立的程序段,。二代码分析智能车控制软件分为主程序,避障传感器检测程序,循迹传感器检测程序,电动机控制程序,显示程序,定时器T0,T1 有关子程序,延时程序等,各部分程序功能如下:主程序通过调用各个子程序,实现系统功能。避障传感器检测程序用于检测智能车在迷宫中的行进状态,并及时调整小车的位置避免与迷宫内的墙壁发生碰撞。循迹传感器检测程序用于检测智能车在迷宫外的进行状态, 通过这些传感器可以实现车沿着黑线进行,防止跑偏。电动机控制子程序是实现对智能车实现前进,制动,左转,右转等控制。显示程序主要是显示
26、智能车的行进状态,并对行进过程进行计时。定时器 T0 有关子程序包括完成对 T0 的初始化设置,以及在 T0 的中断服务程序中对定时器 T0 和 8254 的初值设置等功能。定时器 T1 有关子程序包括完成对 T1 的初始化设置,以及在 T1 的中断服务程序中对定时器实现计时时间的计算。延时函数用于在智能车行进过程中行走状态的保持。系统具体的程序代码如下。1. 函数声明及变量定义为方便程序的编写,这里把部分常用的变量进行定义。由于本实列中显示器件选用的是 LCD1602,该器件在前面的章节中已经进行了详细的介绍, 这里就不在重述了。修改 LCD1602.C文件中引脚定义,然后直接引用该头文件。
27、#include <reg52._word XBYTE0x7fff8254 控制字*引脚声明 *避障传感器输出sbit sen1dat = P31;74165 数据引脚sbit sen1clk = P30;74165 时钟引脚sbit sen1ld = P34;74165 锁存引脚循迹传感器输出sbit sen2dat = P32;74165 数据引脚sbit sen2clk = P33;74165 时钟引脚sbit sen2ld = P35;74165 锁存引脚左侧电机sbit IN1 = P12;sbit IN2 = P13;sbit PWM0 = P16;右侧电机sbit IN3
28、= P14;sbit IN4 = P15;sbit PWM1 = P17;声光提示sbit beep = P17;声音提示sbit led = P16;发光提示*变量定义 *bitOutFlag=0;bit:"uchar code Tab2 = "Time:"uchar code Tab3 = "A->B"uchar code Tab4 = "B->C"*函数声明 *ucharSen1In(void);避障传感器信号ucharSen2In(void);循迹传感器信号voidinitPWM(void);初始化 PW
29、M占空比void Delay1ms(uint i);void Leftself(void);void Rightself(void);void Left(void);void Right(void);void Forward(void);void Brake(void);void Track(void);void Avoidance(void);void init_T0(void);void init_T1(void);延时程序原地左转原地右转左转右转前进停车循迹程序避障程序初始化 T0初始化 T1void initdisp(void);2. 主程序进入系统主程序后,首先对定时器 T0,T1进
30、行初始化设置,然后初始化 LCD1602并显示初始信息,启动智能车前进,在循环程序中将调用传感器检测程序调整小车运行状态。void main(void)init_T0();init_T1();Inlt_LCD1602();initdisp();Forward();Delay1ms(5000);while (1)Avoidance();Delay1ms(200);3. 智能车运动控制智能车运动控制程序主要实现控制小车原地右转,左转,右转,前进,停止等动作。该部分程序由以下程序构成,如表 1-15 所示。表 1-15 智能车运动控制程序及功能表序号函数名功能序号函数名功能1Leftself()原地
31、左转程序4Right ()右转程序2Rightself()原地右转程序5Forward ()前进程序3Left ()左转程序6Brake()停止程序下面对这几个程序加以详细介绍。( 1) Leftself():原地左转程序通过调用Leftself()程序控制智能车实现原地左转,该过程中智能车的左右两侧电动机会实现同转速反向运动。void Leftself(void)IN1 = 1;IN2 = 0;IN3 = 0;IN4 = 1;( 2) Rightself ():原地右转程序通过调用 Rightself()程序控制智能车实现原地右转,本过程中智能车的左右两侧电动机也会实现同转速反向运动。voi
32、d Rightself(void)IN1 = 0;IN2 = 1;IN3 = 1;IN4 = 0;( 3) Left ():左转程序通过调用 Left ()程序控制智能车实现左转,本过程中智能车的右侧电动机转动,而左侧电动机停转。void Left(void)IN1 = 0;IN2 = 0;IN3 = 1;IN4 = 0;( 4) Right ():右转程序通过调用 Right ()程序控制智能车实现右转, 本过程中智能车的左侧电动机转动,而右侧电动机停转。void Left(void)IN1 = 0;IN2 = 0;IN3 = 1;IN4 = 0;( 5) Forward ():前进程序通过
33、调用 Forward ()程序控制智能车前进,两侧电动机以同速度运行。void Forward(void)IN1 = 1;IN2 = 0;IN3 = 1;IN4 = 0;( 5) Brake ():停止程序通过调用 Brake()程序控制智能车停止,两侧电动机停止运行。void Brake(void)IN1 = 1;IN2 = 1;IN3 = 1;IN4 = 1;4. 传感器检测子程序智能车传感器检测程序主要实现避障传感器的检测,循迹传感器的检测,避障调整程序,循迹调整程序等动作。该部分程序由以下程序构成,如表1-16 所示表 1-16 传感器检测子程序及功能序号函数名功能序号函数名功能1Se
34、n1In(): 避障传感器检测程序3Track ():循迹调整程序2Sen2In(): 循迹传感器检测程序4Avoidance():避障调整程序下面对这几个程序加以详细介绍。( 1) Sen1In():避障传感器检测程序通过 74LS165将 6 个避障传感器的状态转为串行输出信号送入51 单片机,再由单片机程序屏蔽没用到的前两位,返回检测状态值。uchar Sen1In(void)uchar i,temp;载入数据sen1ld=0;_nop_();_nop_();sen1ld=1;移出数据for(i=0;i<8;i+)temp<<=1;sen1clk=0;if(sen1da
35、t)temp=temp|0x01;sen1clk=1;sen2clk=0;temp=temp&0x3f;return(temp);( 2) Sen2In():循迹传感器检测程序通过 74LS165将 8 个避障传感器的状态转为串行输出信号送入51 单片机,该函数返回检测状态值。uchar Sen2In(void)uchar i,temp;载入数据sen2ld=0;_nop_();_nop_();sen2ld=1;移出数据for(i=0;i<8;i+)temp<<=1;sen2clk=0;if(sen2dat)temp=temp|0x01;sen2clk=1;sen2c
36、lk=0;return(temp);( 3) Track ():循迹调整程序读取循迹传感器状态,然后根据该状态判断车体相对于黑线循迹线的位置,判断并调整智能车,使得车体中线沿着轨迹线前进。void Track(void)xped=Sen2In();switch (xped)case 0x80:Leftself();for(;0x18!=Sen2In(););Forward();break;case 0xc0:Right();for(;xped=Sen2In(););Forward();break;case 0x60:Right();for(;xped=Sen2In(););Forward();
37、break;case 0x40:Right();for(;xped=Sen2In(););Forward();break;case 0x30:Right();for(;xped=Sen2In(););Forward();break;case 0x20:Right();for(;xped=Sen2In(););Forward();break;case 0x18:Forward();break;case 0x0c:Left();for(;xped=Sen2In(););Forward();break;case 0x08:Left();for(;xped=Sen2In(););Forward();b
38、reak;case 0x06:Left();for(;xped=Sen2In(););Forward();break;case 0x04:Left();for(;xped=Sen2In(););Forward();break;case 0x02:Left();for(;xped=Sen2In(););Forward();break;case 0x03:Left();for(;xped=Sen2In(););Forward();break;case 0x01:Rightself();for(;0x18!=Sen2In(););Forward();break;case 0x00:Delay1ms(
39、100);if(Sen2In()=0xff)Brake();break;( 3) Avoidance ():循迹调整程序读取避障传感器状态,然后根据该状态判断车体在迷宫内的位置,判断并调整智能车,使得车体在迷宫内前进。void Avoidance(void)();();Forward(); 左侧有障碍else if();Forward();右边有障碍else if();();Forward();如果右侧无障碍if();();Forward();如果左右都无障碍if();()!=0xff)OutFlag=1;MeaTime=0;LcdStartPos(0x40);Print(Tab4);if(O
40、utFlag)Brake();beep=0;led=0;Delay1ms(2000);beep=1;led=1;Forward();Left();while (1)Track();Delay1ms(2000);Forward();4. 定时器有关子程序本系统用到了定时器T0 和 T1, 其中定时器T0 用于产生 PWM脉冲调制函数,定时器T1 用于定时基准信号的产生,这部分是由以下几个程序构成,如表1-17 所示。表 1-17定时器相关子程序及功能序号函数名功能序号函数名功能1init_T0 ():定时器 T0 初始化程序3timer0 ()定时器 TO中断服务程序2init_T1 ():定时
41、器 T1 初始化程序4Timer1 ()定时器 T1 中断服务程序下面对这几个程序进行详细介绍。(1)init_T0():定时器 T0 初始化程序init_T0()用于实现对定时器T0 初始化设置,其中定时器工作为方式1,定时时间为 50ms。void init_T0(void)TMOD=0x01;工作方式 1TH0=0x3c;定时 50msTL0=0xb0;ET0=1;允许定时器 T0 中断EA=1;开总中断TR0=1;启动定时器 T0(2)init_T1():定时器 T1 初始化程序init_T1()用于实现对定时器T1 初始化设置,其中定时器工作为方式1,定时时间为 50ms。void
42、init_T1(void)TMOD = TMOD|0x10;TH1 = 0x3C;TL1 = 0x0B0;ET1 = 1;TR1 = 1;(3) timer0 ():定时器 T0 中断服务程序timer0()用于定时向8254 芯片写入计数初值,以实现8254 芯片能够输出PWM控制信号对电动机速度进行控制。void timer0(void) interrupt 1TR0=0;TH0=0x3c;重载定时器 T0 初值TL0=0xb0;TR0=1;Con_word=0x30;写 8254计数器 0 初值Count0=(uchar)(time1%256);Count0=(uchar)(time12
43、56);Con_word=0x70;写 8254计数器 1 初值Count0=(uchar)(time2%256);Count0=(uchar)(time2256);( 4) timer1 ():定时器 T1 中断服务程序timer1()用于 50ms基准时钟信号的产生,每1s 更新一次计时数值并显示。void timer1(void) interrupt 3TH1 = 0x3C;TL1 = 0x0B0;if(+MeaMs=20)MeaTime+;disbuffer0=DispTABMeaTime10;disbuffer1=DispTABMeaTime%10;LcdStartPos(0x49);Print(disbuffer);5. 其他有关子程序除了以上几个子程序块以外,本系统还包括显示内容初始化和延时函数等,这部分是由以下几个程序构成。. initdisp ():显示初始化函数;. Delay1ms():延时程序。下面就对这两个程序进行详细介绍。(1)initdisp():显示初始化函数Delay1ms ()用于显示上电时显示内容的初始化。void initdisp(void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于多源时序SAR数据的涿州洪涝淹没动态监测
- 二零二四年餐厅承包经营协议书
- 软件许可与技术支持合同(2024版)
- 起重机销售合同范本
- 2024年度二手船舶购买合同2篇
- 研究生考试考研法律硕士综合(非法学498)试卷及解答参考
- 铝合金门窗承包合同协议书范本
- 个人租车合同范本
- 学校实习毕业合同(2篇)
- 药品购销合同模板
- GB/T 718-2005铸造用生铁
- 全国高中化学优质课一等奖《甲烷》精品课件
- 医疗器械生产质量管理规范-课件
- 德意志第一帝国课件
- 手部先天性疾患多指畸形课件
- 如何面对挫折-心理健康教育课件
- 常见临床研究分级
- (通用版)水利安全员考试试题(含答案)
- 最新电大市场调查与商情预测作业1-4参考答案小抄汇总
- CJJ-T 34-2022 城镇供热管网设计标准
- 府谷县东鑫莱煤化工有限责任公司煤泥烘干项目报告书
评论
0/150
提交评论