例说8051 第6章 定时器计数器的应用_第1页
例说8051 第6章 定时器计数器的应用_第2页
例说8051 第6章 定时器计数器的应用_第3页
例说8051 第6章 定时器计数器的应用_第4页
例说8051 第6章 定时器计数器的应用_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021/12/19例说80516-1定时器定时器/ /计数器及其应用计数器及其应用第六章第六章2021/12/19例说80516-2本章内容 硬件部分:认识8051定时器/计数器的架构,以及其四种工作方式 。 指令部分:详细说明布尔运算指令 。 程序与实做部分:定时器的应用程序、码表程序、频率产生器程序、测频计应用程序等 。2021/12/19例说80516-3定时器/计数器方式寄存器TMOD2021/12/19例说80516-4定时器/计数器方式02021/12/19例说80516-5定时器/计数器方式02021/12/19例说80516-6定时器/计数器方式12021/12/19例说80

2、516-7定时器/计数器方式12021/12/19例说80516-8定时器/计数器方式22021/12/19例说80516-9定时器/计数器方式32021/12/19例说80516-10TCON寄存器2021/12/19例说80516-11计数器寄存器 MODE 0 MOVTL0, #(8192-计数值).MOD.32;取5位的余数 MOVTH0, #(8192-计数值)/32;取5位的商数 MODE 1MOVTL0, #(65536-计数值).MOD.256 ;取8位的余数 MOVTH0, #(65536-计数值)/256;取8位的商数 或MOVTL0, #(65536-计数值);取用高8位

3、 或MOVTL0, #-计数值;取用高8位 2021/12/19例说80516-12计数器寄存器 MODE 2 MOVTL0, #(256-计数值) ;填入计数量 MOVTH0, #(256-计数值);填入自动加载值 或MOVTL0, # -计数值;填入计数量 MOVTH0, # -计数值;填入自动加载值 MODE 3与Mode 2一样 2021/12/19例说80516-13定时器/计数器的应用 设置中断向量 中断设置 计数值设置 启动定时器/计数器 中断子程序 2021/12/19例说80516-14T2CON寄存器 (8052)2021/12/19例说80516-15T2CON寄存器 (

4、8052)RCLK+TCLKCP/RL2TR2Mode00116位自动载入方式01116位捕捉方式1X1波特率发生器方式XX0不使用2021/12/19例说80516-168052捕捉方式2021/12/19例说80516-178052的自动加载方式2021/12/19例说80516-188052波特率发生器方式2021/12/19例说80516-19布尔运算指令 清除指令 设置指令 取反指令 AND指令 OR指令 位传送指令2021/12/19例说80516-20实例演练(6-4-1) 连接电路连接电路2021/12/19例说80516-21实例演练(6-4-1) 流程图2021/12/19

5、例说80516-22Ch6-1.asm-1MODEEQU00H;定时器/计数器方式(Mode 0) COUNTEQU5000;计数值(5ms) TIMESEQU200;重复次数 DISPREGP1 ;七段显示器 LEDREGP0.7;LED;=使用查询方式= ORG0;程序从0地址开始 START:MOVDISP, #FFH;关闭七段显示器 CLRLED;设置LED初始状态 MOVTMOD, #MODE;设置定时器/计数器方式 LOOP:MOVR1, #0;设置七段显示器初始数字 MOVR3, #60;设置定时60秒 NEXT:MOVR0, #TIMES;设置重复次数(200次) 2021/1

6、2/19例说80516-23Ch6-1.asm-2MOVA, R1;取回显示数字 DAA; BCD调整 MOVR1, A;存回数字 MOVDISP, A;显示数字 AGAIN:MOVTH0, #(8192-COUNT)/32;设置计数值 MOVTL0, #(8192-COUNT).MOD.32 ;设置计数值SETBTR0;启动Timer 0 ;=WAIT:JBCTF0, TIMEOUT ;查询是否中断 JMPWAITTIMEOUT:CLRTR0;关闭定时器 ;-中断 -DJNZR0, AGAIN;重复200次 2021/12/19例说80516-24Ch6-1.asm-3;-1秒钟 -INCR

7、1;数字加1 DJNZR3, NEXT;进行下一秒 CPLLED;改变LED状态 JMPLOOP;跳至LOOP形成一个循环 END2021/12/19例说80516-25实例演练(6-4-2) 连接电路连接电路2021/12/19例说80516-26实例演练(6-4-2) 流程图2021/12/19例说80516-27Ch6-2.asm-1MODEEQU10H;定时器/计数器方式(Mode 1) COUNTEQU-50000;计数值 TIMESEQU20;重复次数 DISPREGP1;七段显示器 LED REGP0;LED;=使用中断方式 =ORG0;程序从0地址开始 JMPSTART;跳至S

8、TART ORG1BH;设置中断向量 JMPTIMER1;执行中断子程序 START:MOVDISP, #FFH;关闭七段显示器 SETBEA;打开中断总开关 SETBET1;打开Timer 1中断开关 2021/12/19例说80516-28Ch6-2.asm-2MOVTMOD, #MODE;设置定时器/计数器方式 MOVSP, #70H;移开堆栈位置 SETBRS0;切换到RB1寄存器组 MOVR1, #0;设置七段显示器初始数字 MOVR0, #0;设置已重复次数为0 MOVR3, #60;设置定时60秒 MOVTH1, #COUNT;设置计数值 MOVTL1, #COUNT;设置计数值 MOVTL1, #COUNT;设置计数值 MOVTL0, #COUNT;设置计数值(1ms) MOVTL0, #COUNT ;设置计数值(1ms) SETBTR0;启动Timer 0定时器 MOVTH1, #0;归零计数值MOVTL1, #0;归零计数值SETBTR1;启动Timer 1计数器 2021/12/19例说80516-50Ch6-5.asm-3JNBF1, $;等待1ms

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论