单片机应用技术项目教程项目9 测速表精选.ppt

单片机应用技术项目教程项目9 测速表精选.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机应用技术项目教程项目9 测速表精选

13位初值的设置 图9- 6方式0的初值设定 * 2.工作方式1-----16位定时/计数方式 图9- 7 工作方式1逻辑电路结构 * 16位初值的设置 例如:需要定时50ms,则计数次数为1ms/1us=50000次。那么T0的初值应设为 X=M-计数值=65536-50000=15536=3CB0H=0011 1100 1011 0000B。 由于采用16定时器,直接设置X=3CB0H。用语句表达,分配到高8位的TH0和低8位的TL0,写为: TH0=0x3c; TL0=0xB0; * 3.工作方式2-----8位自动重载初值方式 图9- 8工作方式2逻辑电路结构 * 4.工作方式3 图9- 9工作方式3逻辑电路结构 * 三. 定时/计数器的使用 1、单片机的定时/计数可以采用查询方式或者中断方式来实现。 2、初始化程序: 由于定时/计数器的功能是由软件编程确定的,所以,在使用定时器/计数前必须对其进行初始化。初始化骤如下: (1) 确定工作方式——对TMOD赋值。 如赋值语句为: TMOD=0x10;表明定时器1工作在方式1,且工作在定时器方式。 (2) 预置定时或计数的初值——直接将初值写入TH0、TL0或TH1、TL1。 定时/计数器的初值因工作方式的不同而不同。假设最大计数值为M,则各种工作方式下的M值如下 方式0:213=8192 方式1:216=65536 * 方式2:28=256 方式3:定时器0分成两个8位计数器,所以两个定时器的M值均为256。 由于定时器/计数器工作的实质是做“加1”计数,所以,当最大计数值M值已知时,初值X可计算如下: X = M —计数值 (3) 根据需要开启定时器/计数器中断——可以直接对IE寄存器赋值。 (4) 启动定时器/计数器工作——将TR0或TR1置“1”。 GATE = 0时,直接由软件置位启动;GATE = 1时,除软件置位外,还必须在外中断引脚处加上相应的电平值才能启动。操作为: TR1=1。 * 练习1:分别采用查询法和中断法,利用定时器T0,写出10ms延时的子程序 * void delay() { /*******一:工作模式设置 TMOD=0x01; //对T0而言,纯软件启动、定时模式,工作方式1 /********二、赋予初值*********/ TH0=0x3c; TL0=0xbo; /********三、开始定时*********** TR0=1;//启动计数器 /*******四、用查询法查看定时器溢出否***/ while(TF0==0); //查询TF0=0? } /********查询法实现50ms延时*********/ * 中断法 初始化程序段: { … /*******一:工作模式设置/*******/ TMOD=0x01; //对T0而言,纯软件启动、定时模式,工作方式1 /********二、赋予初值*********/ TH0=0x3c; TL0=0xb0; /*******三、开启总中断及定时中断***/ EA=1; ET0=1; /********三、开始定时*********** TR0=1; //启动计数器 while(1); //实际应用中,执行其他处理任务 } * /******中断处理函数*******/ void int0 () interrupt 1 { //加入定时时间到后的处理内容,或者是改写标志变量 TH0=0x3c; //方式1重赋初值 TL0=0xb0; ……; } 思考:“查询法”、“中断法”各有什么优劣? * 练习2:对计数模式的理解 用按键模拟外部脉冲,实现单片机对外部脉冲计数,即按键按下一次,数码管上计数值加一。 见仿真演示: * 【活动一】硬件电路设计 * 【活动二】软件设计 算法分析 采用定时计数的方法,用T0定时100ms,将外部脉冲接入T1(P3.5),在固定的100ms时间内,T1计外部脉冲的数量X,即可算得该脉冲的频率 。 * 。 2 程序设计 * 1.启动Keil uVision4软件,创建新工程:CH9.UVPROJ,CPU选择Atmel 89C52。 2.对工程的属性进行设置:目标属性中选择“生成HEX文件”。 3.编写参考源程序ch9.c,以C为扩展名保存在工程文件夹中。 4.将参考源程序加入程序组:鼠标右键单击程序组图标,加入文件组。 5.调试:进入

文档评论(0)

beoes + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档