C51单片机应用与C语言程序设计第六章ppt课件.ppt





《C51单片机应用与C语言程序设计第六章ppt课件.ppt》由会员分享,可在线阅读,更多相关《C51单片机应用与C语言程序设计第六章ppt课件.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章 机器人的距离检测 深圳市鸥鹏科技有限公司深圳市鸥鹏科技有限公司黄曦黄曦2009.3.21 2008 Open-Tech. All rights reserved. http:/摘要用同样的IR LED/探测电路检测距离任务一 定时/计数器的运用任务二 测试扫描频率任务三 尾随小车任务四 跟踪条纹带工程素质和技能归纳科学精神的培养 2008 Open-Tech. All rights reserved. http:/用同样的IR LED探测电路检测距离元件搭建: 参考第五章任务一新增工具和原料: (1)尺子 (2)一张纸 2008 Open-Tech. All rights reserv
2、ed. http:/任务一 定时/计数器的运用 本任务主要介绍51单片机定时/计数器的使用方法,单片机STC89C52的定时/计数器可以分为定时器模式和计数器模式。其实这两种模式没有本质上的区别,均使用二进制的加一计数:当计数器的值计满回零时能自动产生中断的请求,以此来实现定时或者计数功能。它们的不同之处在于定时器使用单片机的时钟来计数,而计数器使用的是外部信号。 2008 Open-Tech. All rights reserved. http:/任务一 定时/计数器的运用 定时/计数器的控制 51系列单片机有两个定时/计数器,通过TCON和TMOD这两个特殊功能寄存器控制。TCON和TMO
3、D你都可以在头文件uart.h中看到其应用 TCON为定时器控制寄存器,有8位,每个位的含义为如下表所示。TCON的低4位与定时器无关,它们用于检测和触发外部中断。 2008 Open-Tech. All rights reserved. http:/任务一 定时/计数器的运用定时/计数器的控制TMOD为定时器模式寄存器,它也有8位,但不能像TCON一样可以一位一位的设置,只能通过字节传送指令来设定TMOD的各个状态。TMOD的各位定义如下表所示: 2008 Open-Tech. All rights reserved. http:/任务一 定时/计数器的运用 工作模式 每个定时/计数器都有一
4、个16位的寄存器Tn(n=0或1)来控制计数长度,由高8位THn和低8位TLn置初值。定时/计数器有四种工作模式。模式0:定时/计数器按13位自加1计数器工作。这13位由TH的全部8位和 TL中的低5位组成,TL中的高3位没有用到。模式1:定时/计数器按16位自加1计数器工作。模式2:定时/计数器被拆成一个8位寄存器TH和一个8位计数器TL,以便 实现自动重载。这种模式使用起来非常方便,一旦设置好TMOD和THn,定时器就可以按设定好的周期溢出。模式3:TH0和TL0均作为两个独立的8位计数器工作。定时器1在模式3下不工作。 2008 Open-Tech. All rights reserve
5、d. http:/任务一 定时/计数器的运用 定时/计数器初值的计算 定时/计数器是在计数初值的基础上加法记数的,假设Tn(TLn和THn)中写入的值为TC,在该模式下最大计数值为2n,程序运行的计数值为CC TC=2n-CC 通过定时/计数器来实现LED测试电路 源程序:参考教材P105例程TimeApplication.c 2008 Open-Tech. All rights reserved. http:/任务一 定时/计数器的运用 例程TimeApplication.c是如何工作的在程序中,一个函数的定义可以放在任意位置,既可放在主函数main之前,也可放在main之后,但如果放在ma
6、in之后的话,那么应该在main函数的前面加上这个函数的声明: void initial(void); / 子函数声明 主函数main(): 首先对中断进行初始化设置,然后等待中断。 IE=0 x82; EA=1且ET0=1, 打开了全局和定时器0的中断 TCON=0 x00; 停止定时器,并清除了中断标志。 TMOD=0 x02; M1=0且M0=0, 定时器0选择模式2 TH0=0 x38; TL0=0 x38; 设置计数初值和重载值。 TR0=1; 启动定时器0 2008 Open-Tech. All rights reserved. http:/任务一 定时/计数器的运用 中断中断即发
7、生了某种情况(事件),使得CPU暂时中止当前程序的执行,转去执行相应的处理程序。中断在单片机应用的设计与实现中起着非常重要的作用。使用中断允许系统响应事件并在执行其他程序的过程中处理该事件。中断驱使系统能够在同一时间处理许多任务。在某种程度上,中断与子程序有些相似:CPU执行另一个程序子程序然后返回主程序。 2008 Open-Tech. All rights reserved. http:/任务一 定时/计数器的运用中断:单片机AT89S52有5个中断源:2个外部中断源;2个定时器中断;1个串口中断。每个中断源可以单独允许或禁止,通过修改可位寻址的专用寄存器IE(允许中断寄存器)实现,如下表
8、所示 2008 Open-Tech. All rights reserved. http:/任务一 定时/计数器的运用 中断优先级AT89S52的中断分为2级,高和低。利用“优先级”的概念,允许拥有高优先级的中断源中断系统正在处理的低优先级的中断源。中断的优先级由高到低依次为:外部中断0,定时器0,外部中断1,定时器1,串口中断,定时器2中断。 编译器Keil uVision2支持在C源程序中直接开发中断程序,提高了工作效率。中断服务程序是通过按规定语法格式定义的一个函数,语法格式如下: 返回值 函数名(参数)interrupt musing n 其中,m(031)表示中断号,C51编译器允许
9、32个中断,定时器0的中断号为1;n(03)表示第n组寄存器,例程没有使用该参数,默认为寄存器组0。 2008 Open-Tech. All rights reserved. http:/任务一 定时/计数器的运用 该你了调整定时器时间为了可以看见LED灯闪烁,你可以使用定时器模式0,由于在此方式下最大延时时间为8ms(213=8192)。对比第二章的LED程序,分析它们有何不同之处,使用示波器观察,你会发现使用定时器方式可以产生更精确的时间。若效果还不明显,你可设计一个循环,如当检测到2500次中断后更改一次IO口的电平,即将闪烁时间改为2500*0.4ms=1s,有利于肉眼观察。 2008
10、 Open-Tech. All rights reserved. http:/任务二 测试扫描频率 对频率扫描进行编程做距离探测 下图举例说明机器人如何用红外发射频率做距离测试。在这个例子中,目标物体在区域3。也就是说,发送35700Hz和38460Hz频率能发现物体,发送29370Hz、31230Hz以及33050Hz频率就不能发现物体。如果你移动物体到区域2,那么发送33050Hz、35700Hz以及38460Hz可以发现物体,发送29370Hz和31230Hz频率不能发现物体。 2008 Open-Tech. All rights reserved. http:/任务二 测试扫描频率 源
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C51 单片机 应用 语言程序设计 第六 ppt 课件

限制150内