定时器计数器的应用_第1页
定时器计数器的应用_第2页
定时器计数器的应用_第3页
定时器计数器的应用_第4页
定时器计数器的应用_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

本章内容,硬件部分:认识8051定时器/计数器的架构,以及其四种工作方式。指令部分:详细说明布尔运算指令。程序与实例部分:定时器的应用程序、码表程序、频率产生器程序、测频计应用程序等。,一、定时器/计数器,定时器/计数器T0方式控制逻辑,方式寄存器TMOD,工作方式,TCON寄存器,定时器/计数器的初始化,初始化步骤1.设置TMODMOVTMOD,#XX2.给计数初值MOVTH0,#XXMOVTL0,#XX3.设置IE和IPMOVIE,#XXMOVIP,#XX4.启动定时器/计数器SETBTR0计数器初值的计算TC=M-C定时器初值的计算TC=M-T定时/T计数,例若单片机时钟频率为12MHZ,请计算定时2ms所需的定时器初值,采用方式0TC=213-2ms/1us=6192=1830HTH0=C1H,TL0=10H采用方式1TC=216-2ms/1us=63536=F830HTH0=F8H,TL0=30H,二、布尔运算指令,1.位传送指令MOVC,bit;bitCyMOVbit,C;Cybit2.位置位和位清零指令CLRC;0CyCLRbit;0bitSETBC;1CySETBbit;1bit,3.位运算指令ANLC,bit;CY(bit)CyANLC,/bit;CY(/bit)CyORLC,bit;CY(bit)CyORLC,/bit;CY(/bit)CyCPLC;(/C)CYCPLbit;(/bit)bit,4位控制转移指令,(1)以Cy中内容为条件的转移指令JCrel;Cy=1转移,PC+2+relPCJNCrel;Cy=0转移,PC+2+relPC(1)以位地址中内容为条件的转移指令JBbit,relJNBbit,relJBCbit,rel,三、实例演练1:60s定时器(查询方式),连接电路,60s定时器,每隔1s增加1,每60sD1切换一次,流程图,查询方式,MODEEQU00H;定时器/计数器方式(Mode0)COUNTEQU5000;计数值(5ms)TIMESEQU200;重复次数DISPREGP1;七段显示器LEDREGP0.7;LED;=使用查询方式=ORG0;程序从0地址开始START:MOVDISP,#0FFH;关闭七段显示器CLRLED;设置LED初始状态MOVTMOD,#MODE;设置定时器/计数器方式LOOP:MOVR1,#0;设置七段显示器初始数字MOVR3,#60;设置定时60秒NEXT:MOVR0,#TIMES;设置重复次数(200次),MOVA,R1;取回显示数字DAA;BCD调整MOVR1,A;存回数字MOVDISP,A;显示数字AGAIN:MOVTH0,#(8192-COUNT)/32;设置计数值MOVTL0,#(8192-COUNT).MOD.32;设置计数值SETBTR0;启动Timer0;=WAIT:JBCTF0,TIMEOUT;查询是否中断JMPWAITTIMEOUT:CLRTR0;关闭定时器;-DJNZR0,AGAIN;重复200次,;-1秒钟-INCR1;数字加1DJNZR3,NEXT;进行下一秒CPLLED;改变LED状态JMPLOOP;跳至LOOP形成一个循环END,三、实例演练2:60s定时器(中断方式),连接电路,中断程序执行60s定时,主程序执行单灯左移,流程图,中断方式,MODEEQU10H;定时器/计数器方式(Mode1)COUNTEQU-50000;计数值TIMESEQU20;重复次数DISPREGP1;七段显示器LEDREGP0;LED;=使用中断方式=ORG0;程序从0地址开始JMPSTART;跳至STARTORG1BH;设置中断向量JMPTIMER1;执行中断子程序START:MOVDISP,#0FFH;关闭七段显示器SETBEA;打开中断总开关SETBET1;打开Timer1中断开关,MOVTMOD,#MODE;设置定时器/计数器方式MOVSP,#70H;移开堆栈位置SETBRS0;切换到RB1寄存器组MOVR1,#0;设置七段显示器初始数字MOVR0,#0;设置已重复次数为0MOVR3,#60;设置定时60秒MOVTH1,#COUNT;设置计数值MOVTL1,#COUNT;设置计数值MOVTL1,#COUNT;设置计数值MOVTL0,#COUNT;设置计数值(1ms)MOVTL0,#COUNT;设置计数值(1ms)SETBTR0;启动Timer0定时器MOVTH1,#0;归零计数值MOVTL1,#0;归零计数值SETBTR1;启动Timer1计数器,JNBF1,$;等待1msCLRTR1;停止计数器CLRTR0;停止计数器MOVDATA,TL1;取出计数值JBP3.3,LOOP;停止测试吗?

温馨提示

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

评论

0/150

提交评论