智能寻迹避障小车电机调速控制程序设计分析

上传人:suns****4568 文档编号:94635319 上传时间:2019-08-09 格式:PPT 页数:43 大小:1.80MB
返回 下载 相关 举报
智能寻迹避障小车电机调速控制程序设计分析_第1页
第1页 / 共43页
智能寻迹避障小车电机调速控制程序设计分析_第2页
第2页 / 共43页
智能寻迹避障小车电机调速控制程序设计分析_第3页
第3页 / 共43页
智能寻迹避障小车电机调速控制程序设计分析_第4页
第4页 / 共43页
智能寻迹避障小车电机调速控制程序设计分析_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《智能寻迹避障小车电机调速控制程序设计分析》由会员分享,可在线阅读,更多相关《智能寻迹避障小车电机调速控制程序设计分析(43页珍藏版)》请在金锄头文库上搜索。

1、智能寻迹小车设计与制作 (电机调速控制程序设计),湖南创博龙智信息科技有限公司,主讲:雷道仲,任务一:直流电机减速控制; 要求:学员编写程序,实现如下功能:智能寻迹小车接通电源,电机全速旋转,小车最大速度前进,前进3秒后,小车开始减速,电机转速变慢,时间维持3秒钟,之后回到全速旋转状态,如此周而复始。,湖南创博龙智信息科技有限公司,任务及要求,电机调速控制模块共设置了两个任务,分别如下:,任务二:用两个独立按键控制直流电机调速 学员编写程序代码实现如下功能:当按下S1时,直流电机减速运行,当按下S2时,直流电机全速运行。,湖南创博龙智信息科技有限公司,任务及要求,电机调速控制模块共设置了两个任

2、务,分别如下:,湖南创博龙智信息科技有限公司,1.1 任务一:直流电机减速控制,1.1.1 电机控制电路,图1 电机控制电路,湖南创博龙智信息科技有限公司,图2 直流电机控制示意图电路,1.1.2 直流减速控制原理,湖南创博龙智信息科技有限公司,直流电机调速控制方法有很多,如:PWM脉宽调制、本设计中,根据电机特点采用控制使能端电平达到调速的目的。具体过程如下:如图2所示是本设计中的电机控制示意图,图中,当单片机P0.0、P0.1输出控制电平0和1,且在使能控制端P1.0=1的控制下,电机会全速前进。如果在电机全速旋转的过程中将使能端的电平变为0,即P1.0=0,则电机就会因为失去控制信号,而

3、慢慢逼近停转。电机在失去控制信号时,本应停转,但由于高速旋转的,1.1.2 直流减速控制原理,湖南创博龙智信息科技有限公司,电机由于惯性作用会继续旋转,但转速会变慢,只要在电机没有完全停止下来前,再将使能端控制信号恢复为1,即:P1.0=1,则电机又会启动高速旋转,当高速旋转一段时间后,又重复之前的动作,使使能端电平再变为0,如此反复,则电机的转速便会从最高速慢慢降低,达到减速目的。当然,使能端使出控制信号的时间要设置的适当,否则达不到减速目的,一般这个时间为毫秒级。实现方法可由单片机软件延时和定时器延时两种方法实现。,1.1.3 单片机的定时器原理,在工业检测、控制中,很多场合都要用到计数或

4、者定时功能。例如对外部脉冲进行计数、产生精确的定时时间、作串行口的波特率发声器等,AT8951单片机内部有两个可编程的定时器/计数器,以满足这方面的需要。它们具有两种工作模式(计数器模式、定时器模式)和四种工作方式(方式0、方式1、方式2、方式3),其控制字均在相应的特殊功能寄存器(SFR)中,通过对它的SFR的编程,可以方便的选择工作模数和工作方式。,1.1.3 单片机的定时器原理,定时器/计数器(Timer/Counter)本质上都是加法计数器,当对固定周期的脉冲信号计数时是定时器,对脉冲长度不确定的信号计数时是计数器。每接收到一个计数脉冲,加法计数器的值就加一,当计满时发生溢出,并从0开

5、始继续计数。 当设置为定时工作模式时,定时器对8951片内振荡器输出的经12分频后的脉冲计数,即每个机器周期使定时器(T/C0或T/C1)的数值加1直至计满溢出。当采用12MHz晶振时,一个机器周期为1s。,1.1.3 单片机的定时器原理,当设置为计数工作模式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号产生由1到0的下降沿时,定时器的值加1. 不管时定时还是计数工作模式,定时器T0或T1在对内部时钟或外部事件计数时,都不占用CUP时间,除非定时器/计数器溢出,才可能中断CPU的当前操作,计数器的计满溢出信号就是定时/计数器的输出,该信号使TCON的某位(TF

6、0或TF1位)置1,作为定时器/计数器的溢出中断标志,定时器/计数器的内部结构框图如图3所示。,1.1.3 单片机的定时器原理,图3 定时器/计数器结构框图,1.1.3 单片机的定时器原理,1、定时/计数器有关的特殊功能寄存器 (1)计数寄存器TH和TL 定时器/计数器T/C0和T/C1都是16位寄存器,由TH高8位和TL低8位构成,在特殊功能寄存器(sfr)中,对应T/C0为TH0和TL0,对应T/C1为TH1和TL1,定时器/计数器T/C0和T/C1的初值分别通过TH0/TL0和TH1/TL1来设置,加法计数器是计满溢出时才申请中断,所以在给定时器/计数器赋初值时,不能直接输入所需的计数值

7、, 而应输入的是计数器计数的最大值与这一计数值的差值, 设最大值为 M, 计数值为N, 初值为X, 则X的计算方法如下: ,1.1.3 单片机的定时器原理,计数状态: X=MN 定时状态: X=M定时时间/T(T=12晶振频率) 对定时器的控制其实质就是对内部相关寄存 器的编程控制,下面就介绍与定时器定时有关的两 个寄存器,图4为定时器/计数器控制寄存器TCON, 对该寄存器各位的定义分别如下:,图4 定时器/计数器控制寄存器TCON,TF0、TF1:分别是定时器/计数器T0、 T1 的溢出标志位, 加法计数器计满溢出时置1,申请,1.1.3 单片机的定时器原理,中断, 在中断响应后自动复 0

8、。TF产生的中断申请 是否被接受, 还需要由中断是否开放来决定。 TR1、TR0:分别是定时器 /计数器T1、T0的运行 控制位, 通过软件置1后,定时器/计数器才开始工作, (如本设计案例中用到定时器T0,启动时:TR0=1; 停止时:TR0=0),在系统复位时被清0。 如图5所示为T0、T1工作方式及功能选择控制 寄存器TMOD。该寄存器各位定义如下:,图5 定时器/计数器方式控制寄存器TMOD,1.1.3 单片机的定时器原理,GATE位:门控位,GATE1时,T0、T1是否计数要受到外部引脚输入电平的控制,INT0引脚控制T0,INT1引脚控制T1。可用于测量在INT0和INT1引脚出现

9、的正脉冲的宽度。若GATE0,即不使能门控功能,定时计数器的运行不受外部输入引脚INT0、INT1的控制 C/T位:计数器模式和定时器模式的选择位,C/T0,为定时器模式,内部计数器对晶振脉冲12分频后的脉冲计数,该脉冲周期等于机器周期,所以可以理解为对机器周期进行计数。从计数值可以求得计数的时间,所以称为定时器模式。,1.1.3 单片机的定时器原理,C/T 1,为计数器模式,计数器对外部输入引脚 T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计 数,允许的最高计数频率为晶振频率的1/24。 M1 M0:四种工作方式的选择位,表3-3 定时/计数器工作方式,1.1.3 单片机的定时器原

10、理,2、工作方式 (1)方式0 如图6为定时器/计数器方式0的内部结构图。方式0下,T0和T1工作在13位的定时/计数器方式,由TH的高 8 位和TL的低 5 位组成。当T0的13位计数器加到全部为 1 以后,再加1就产生溢出,这时置TCON的TF0为 1 ,同时把计数器全部变 0 ,然后从 0 开始继续计数。 方式0的计数长度M为2的13次方,初值也是13位二进制数,但要注意是高8位赋值给TH0,低5位前面补足 3 个 0 凑成 8 位赋给TL0。,1.1.3 单片机的定时器原理,例如,如要求计数值为1000,则初值为: 根据:X=MN XM1000 81921000 1C18H 11100

11、000 1 1000B 即赋初值时,TH00xE0,TL00x18。,1.1.3 单片机的定时器原理,图6 方式 0(13位计数器),1.1.3 单片机的定时器原理,(2)方式1 如图7为定时器/计数器方式0的内部结构图。方式1和方式0的工作原理基本相同,唯一不同是T0和T1工作在方式1时是16位的计数/定时器。方式1时的计数长度M是2的16次方。16位的初值直接拆成高低字节,分别送入TH和TL即可。因为计数长度大,初值计算方便,方式1就定时/计数器最常用的方式,(如在本设计案例中,用的就是方式1:TMOD |= 0x01;),1.1.3 单片机的定时器原理,图7 方式1(16位计数器),1.

12、1.3 单片机的定时器原理,(3)方式2 如图8为定时器/计数器方式0的内部结构图方式0和方式1的最大特点就是计数溢出后,计数器为全0,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度。工作方式2就针对这个问题而设置,它具有自动重装载功能,即自动加载计数初值,所以也称为自动重加载工作方式。 在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干预”,由软件重新赋值,而是由预置寄存器TH以硬件方法自动给计数器TL0重新

13、加载。,1.1.3 单片机的定时器原理,图8 方式2(自动重加载初值方式),1.1.3 单片机的定时器原理,(4)方式3 如图9为定时器/计数器方式0的内部结构图。在方式3模式下,定时/计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以作计数器使用,也可以作为定时器使用,定时/计数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同。TH0就没有那么多“资源”可利用了,只能作为简单的定时器使用,而且由于定时/计数器0的控制位已被TL0占用,因此只能借用定时/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。

14、,1.1.3 单片机的定时器原理,由于TL0既能作定时器也能作计数器使用,而TH0只能作定时器使用而不能作计数器使用,因此在方式3模式下,定时/计数器0可以构成二个定时器或者一个定时器和一个计数器。 如果定时/计数器0工作于工作方式3,那么定时/计数器1的工作方式就不可避免受到一定的限制,因为自己的一些控制位已被定时/计数器借用,只能工作在方式0、方式1或方式2下,如果设置T1工作在方式3,则T1停止工作,相当于其他方式时令TR10。,1.1.3 单片机的定时器原理,图9 方式3(两个8位独立计数器),1.1.3 单片机的定时器原理,3、定时/计数器的应用 (1)初始化步骤 在应用定时/计数器

15、之前,要对它计数初始化编程,主要是对寄存器TCON和TMOD的编程以及计算和装载T/C(定时/计数器)的计数初值,一般有一下几个步骤: 确定定时/计数器的工作方式编程TMOD寄存器; 计算定时/计数器的计数初值,并装载到TH和T; 定时/计数器在中断方式工作时,还必须开CPU总中断EA和相应中断源编程IE寄存器; 启动定时/计数器编程TCON中的TR1或TR0;,1.1.3 单片机的定时器原理,(2)应用举例 实例1:已知单片机的晶振频率为fosc=12MHz,应用定时/计数器,在单片机引脚P1_3产生周期为2ms的方波信号。 解 周期为2ms的方波,即高低电平各为1ms,用定时/计数器定时1

16、ms,每次时间一到让P1_3取反一次,就可以在该引脚上获得所要波形。 因为fosc=12MHz,机器周期=12/12MHz=1s,而定时/计数器在定时模式时就是对fosc的12分频即机器周期进行计数,因此要定时1ms需要计数次数为1000次。 所以初值X=MN=65536-1000;,1.1.3 单片机的定时器原理,下面分别采用中断方式和查询两种方式编程: a、用定时/计数器0的方式1编程,采用查询方式。 #include void main(void) TMOD=0x01; /设置定时器0,采用方式1 TR0=1; /启动定时器T/C0 while(1) TH0=(65536-1000)/256; /装载计数初值 TL0=(65536-1000)%256; dowhile(!TF0); /查询等待TF0溢出标志 P1_3=!P1_3; /P1_3取反 TF0=0; /软件清零TF0 ,1.1.3 单片机的定时器原理,下面

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号