版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、定时/计数器,2、定时方法概述定时计数器结构和工作原理定时计数器的控制寄存器计时器的四种工作方式计时器的应用,3、1、定时方法概述,软件定时时间准确,不需要硬件电路。但是,软件计时会占用CPU开销,软件计时太长会渡边杏。使用基于时间的电路计时:计时功能全部由硬件电路完成)不占用CPU时间,但需要通过更改电路中的组件参数来调整计时时间,因此使用灵活性较差。使用可编程芯片计时:此计时方法通过计算系统时钟脉冲的数量来实现。计数值可以通过程序设置更改计数值,即计时时间,从而灵活方便地使用。结论:MCS-51单片芯片将时序电路集成到称为计时器/计数器的芯片中。8051英寸单个磁盘有两个计时/计数器:
2、计时器/计数器0和计时器/计数器1。4,2,定时计数器结构和工作原理,计时器方法寄存器主要用于设置计时器的工作方式,计时器控制寄存器主要用于控制计时器的启动和停止,存储T0,T1的溢出和中断标志,计时器0,计时器1,5,定时/计数器框图。计时器是硬件定时和计数的单片机的高效灵活部件。6,计时器/计数器计时功能。计数器的加1信号由振荡器的12分波信号生成。也就是说,每次机器周期经过时,加1直到计数器溢出。计时器的计时时间与系统的时钟频率相关。机器周期等于12时钟周期,因此计数频率必须是系统时钟频率的12分之一。如果晶振频率为12MHz,则机器周期为1s。可以通过更改计时器的计时初始值并选择适当的
3、计时器长度(8位、13位或16位)来调整计时时间。7,计时器/计数器计数功能。通过外部计数输入针T0(P3.4)和T1(P3.5)计算外部信号数时,外部脉冲的下降边缘触发计数。计数器在每个机器周期的S5P2期间对针脚输入水平采样。如果一个机器周期S5P2周期采样值为1,下一个机器周期S5P2周期采样值为0,则计数器加1,然后将新计数值加载到计数器的下一个机器周期S3P1周期中。检测从1到0的跳跃需要两个机器周期,因此外部信号的最大计数频率是时钟频率的24分之一。如果晶振频率为12MHz,则最大计数频率为0.5MHz。对外部输入信号的占空比没有特殊要求,但是为了确保指定的级别在更改前至少采样一次
4、,外部计数脉冲的高平和低平裴珉姬时间必须在机器周期以上。8,1,工作方式寄存器tmod,m0,m1,c/t0,gate0,m0,m1,c/t1,gate1,GATE=0时,无论外部中断如何,都将由TCON寄存器的TRx位控制启动。GATE=1时,仅控制位TRx和针脚协同工作,在没有外部中断请求信号的情况下(例如,外部中断针脚=1),才允许计时器启动。10、2、定时控制寄存器(TCON)、计时器1满后,硬件自动将TF0设置为1并请求中断。此标志位有两种处理方法:一个是通过中断操作。即在响应TF0批1和中断请求、中断后运行中断服务程序,并自动从硬件中清理TF0。以另一种查询方式工作。也就是说,查询
5、位是否为1以确定是否溢出,TF0设置为1后,必须使用软件使TF0干净。,GATE=0时,如果使用软件将TR0设置为1,则启动计时器1;如果使用软件使用TR0,则停止计时器1。如果GATE=1,则必须使用软件将TR1设置为1,外部中断INT0上的端号,才能启动计时器0。11,3,允许中断控制寄存器,ex0,et0,ex1,et1,es,et2,ea,ie,字节地址13位计数器,15,计数操作方法:最大计数值为8192(213)预设初始值:X=213-N,计时操作方法:计时时间计算公式:T=(213计数初始值)修正周期12,如果晶振频率为6MHZ/12MHZ,则使用最小计时时间和最小计时时间,机器
6、周期,预设初始值:16,yes单芯片晶振频率为12MHZ,生成1ms计时时为0,使用计算方法,X=111,解释:预设初始值:17,2、工作方法1(16位计数器)、16位计数器、18、计数工作方法3360最大计数值是6536 (216)预设初始值如果晶振频率为6MHZ/12MHZ,则最小计时时间和最小计时时间;预设初始值:X=216-T/(晶振周期12),19,是如果单芯片晶振频率为12MHZ,则为1MHz,因此(TH),解释:预设初始值:20,yes已知的晶振频率fosc=12MHz,使用计时器0操作方法1,P1.0输出周期2毫秒的连续正向脉冲。试写相关程序。解决方案:计算TH0=FC H,T
7、L0=18 H的初始值。Org 0000h ljmp主要;转至主程序org000bh。T0中断入口地址ljmp DVT 0;中断服务程序org 0100h main: mov sp,# 60h堆栈指针MOV TMOD,# 01hT0在方法1 /TMOD MOV TH0,# 0fch中工作。加载数初始值/加载初始值MOV TL0,# 018h setbet0T0中断/中断设置setbeaCPU中断setb tr0启动T0 /启动计时器sjmp $;中断等待DVT 0:CPL p 1.0;P1.0反向输出MOV TH0,# 0fch计数值MOV TL0,# 018h reti重新加载中断将返回EN
8、D,21,查询方法:org0000h ljmp main。主程序ORG 0100H MAIN:MOV TMOD,# 01h转到T0的工作方式为初始化1/TMOD loop 3360 MOV th 0,# 0fch。加载数初始值/加载初始值MOV TL0,# 018h setbtr0启动T0 /启动计时器JNB TF0,$;查询TF0标志(例如,1,T0溢出说明)。向下运行Clr tf0。清除TF0中断标志位clr tr0。T0溢出,计时器CPL p 1.0关闭;P1.0状态反转SJMP LOOP END、22,3、工作方式2(自动挂载初始值的8位计数器)。注:这适用于需要迭代计时或计数的情况。
9、计时准确度高,但计时时间短。用作、指定(存储初始值)的计时或计数的加1计数器。23,是,已知的晶振频率fosc=6MHz必须使用计时器0以操作方式2生成100s定时,并生成P1.0输出周期为200s的连续正弦脉冲。试写相关程序。解决方案:初始值计算:MOV TMOD,# 02h将计时器0设置为工作方式2 MOV TH0,# 0ceh。计数初始值MOV、TL0、# 0 ceh setbtr0启动计时LOOP:JBC TF0,LOOP 1;查询数溢出ajmp loop loop 1:CPL p 1.0;输出方波,初始值为AJMPLOOOP,24,示例6-3 T0(P3.4)针发生负跳跃时,在P1.
10、0针上输出1毫秒周期的方波(请参见图)。(系统时钟6MHz),(1)选择工作方式T0作为方法1计数,并且在初始值0FFFFH,即外部计数输入部T0(P3.4)中发生负跳跃时,T0 1和溢出,溢出标志TF0设置为“1”,从而发出中断请求。进入T0中断程序后启动T1。T1定义为方法2计时。在T0脚发生负跳跃后,如果开始T1,则每500s发生一次中断,中断服务程序反转P1.0,从而使P1.0产生周期1毫秒的方波。25,(2) T1初始值计算T1的初始值为x:(28-x)210-6=510-4 x=28-250=6=06h(3)编程org00门户迁移主程序允许T1中断setbtr1启动t1 sjmp
11、$,26,pt0m2: mov tmod,# 25h初始化,T1是方法2计时,T0是方法1计数movtl0,# 0ffhT0初始值movth0,# 0f FH setbet0允许T0中断movtl1,# 06hT1初始值MOV TH1,# 06H CLR F0 SETB EA中断setbtr0T0 ret it0p : clr tr0启动:T0中断服务进程,T0计数SETB F0停止;T0生成的中断徽标Reti IT1P : CPL P 1.0T1中断服务,P1.0位反转RETI END,27,4,工作原理3,为什么没有定时/计数器T1工作原理3?两个单独的计数器,注:T1用作串行端口的波特率
12、发生器时,T0在方法3中工作。TH0固定为一个单独的8位计时器(没有外部计数功能),T1的资源(TR1、TF1),TL0为T0的资源(TR0、TF0、INT0、GATE、G/T),2现在添加外部中断源将系统时钟设置为12MHz。29,(1)选择工作方法TL0作为方法3计数,选择T0针(P3.4)作为附加外部中断输入,将TL0的初始值设置为0FFH,检测到T0针扁平负跳跃时,通过TL0溢出请求中断。这相当于沿着触发的外部中断源跳跃。TH0以8位方法3计时控制P1.0输出5kHz的方波信号。30,(2)计算初始值TL0的初始值设置为0FFH。5kHz的方波周期为200s,TH0的定时时间为100s
13、。TH0初始值x的计算方法如下:(28-x)210-6=110-4 x=28-100=156=9ch(3)编程,31,org000h ljmp main on T0中断门户LJMP TL0INT;跳跃T0中断服务程序org 001 BH在T0方法3中,TH0占据T1的中断LJMPTH0int。跳跃TH0中断服务程序org 0100h main: mov tmod,# 27hT0方法3计数,T1方法2计时串行端口波特率生成器MOVTL0,# 0fFH设置TL0秒的值movth0,# 9ch。设置TH0秒的值movtl1,# datal。Data是波特率常数movth1、# datah、32、mo
14、vtcon和# 15h。启动T0或setbtr0movie,# 9fh允许所有中断sjmp $ tl0int: movtl0,# 0ffhTL0中断服务程序,TL0重载初始值SETB TR1开始TH0计时RETI TH0INT: MOV TH0,# 9CHTH0停止服务进程。TH0重新加载初始值CPL P1.0 RETI,33。初始化程序必须为TMOD分配值,以确定T0和T1的工作方式。计算初始值并将其写入TH0、TL0或TH1、TL1。中断模式、IE分配、开放中断。设置TR0或TR1位置、开始计时/计数器计时或计数。摘要:34,5,计时器应用程序,1,门控制位GATE应用程序测量脉宽,GATE=0,无论外部中断如何,都由TCON寄存器的TRx位控制开始。GATE=1时,仅控制位TRx和针脚协同工作,在没有外部中断请求信号的情况下(例如,外部中断针脚=1),才允许计时器启动。,35,org 0000h reset : ajmp main门户重置主程序Org0100h Main : Movsp,# 60
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏苏州科技大学招聘43人(第一批)笔试参考题库及答案详解
- 2026上海松江区车墩镇社区学校招聘兼职教师笔试模拟试题及答案详解
- 2026蒙铁特钢(内蒙古)有限公司招聘人事行政专员1人笔试备考试题及答案详解
- 2026浙江宁波大学非事业编制人员科研肋理招聘1人笔试备考题库及答案详解
- 2026内蒙古通辽科左中旗青年见习人招聘60人笔试模拟试题及答案详解
- 2026上海复旦大学法学院招聘法学院研究平台与英文项目秘书岗位1人笔试参考题库及答案详解
- 招聘1人!上拉秀乡卫生院护士招聘笔试模拟试题及答案详解
- 2026陕西西安雁塔日化医院招聘23人笔试备考试题及答案详解
- 2026年温州市洞头区瓯江口实验学校面向社会公开招聘教师2人笔试备考题库及答案详解
- 2026江苏淮安市清江浦区淮海街道公益性岗位(第二批)招聘1人笔试模拟试题及答案详解
- 培训学校学生成长记录册
- TCCIIA0004-2024精细化工产品分类
- TCAME 66-2024《一次性手术铺单使用》
- 2025深圳行测真题【完整+答案+解析】
- 2025年武汉铁路局集团招聘笔试参考题库
- 浅谈电气工程及其自动化的发展现状与展望 雷宇
- 2025年秋苏科版(新教材)小学信息科技五年级上册(全册)知识点梳理归纳
- 高中英语课程标准(2025年版)
- 具身智能+家居服务智能机器人设计研究报告
- 设计院员工绩效考核方案详解
- 《T-CWEC 34--2022 底轴旋转式钢闸门设计、制造、安装及验收规范》
评论
0/150
提交评论