



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验名称:定时器实验实验目的:1、 熟悉 MCS-51 的定时器原理2、掌握 MCS-51 定时器使用方法3、掌握 MCS-51 的定时中断实验原理:MCS-51 系列单片机中,有两个内置 16 位可编程的定时器/计数器 T0、T1,共 4 种工作方式。一、定时器/计数器的结构1、 方式 0(13 位定时/计数器)2、 方式 1(16 位定时/计数器)3、 方式 2(8 位重复定时/计数器)4、 方式 3(8 位定时/计数器,仅 T0)二、 定时器/计数器的编程寄存器:1、TMOD:选择定时器/计数器 T0、T1 的工作模式和工作方式。1) GATE门控位0:以TRX(X=0,1)来启动定时器
2、/计数器运行。1:用外中断引脚(INT0*或 INT1*)上的高电平和 TRX 来启动定时器/计数器运行。2) M1、M0工作方式选择位M1M0工 作方 式00110101方式 0,13 位定时器/计数器。方式 1,16 位定时器/计数器。方式 2,8 位常数自动重新装载方式 3,仅适用于 T03) C/-T计数器模式和定时器模式选择位0:定时器模式。1:计数器模式。2、TCON:T0、T1 的启动和停止计数,同时包含了 T0、T1 的状态。1) TF1、TF0计数溢出标志位2) TR1、TR0计数运行位1:启动定时器/计数器工作0:停止定时器/计数器工作实验内容:1、通过定时器状态,在 P1
3、.0 产生近似 10kHz 的方波2、利用定时中断,在中断处理每秒通过 P1.0 切换一次逻辑笔的电平3、利用计数器测量信号发生器产生的不同频率的方波周期,并在寄存器中显示结果。实验设计:1、要求在 P1.0 处产生 10khz 的方波,即周期为 100us,则 P1.0 的逻辑电平每 50us 需跳变一次。我们所使用的 MCU 晶振为 11.0592MHz ,所以定时器的定时初值为,采用,n=8,可N 约为 210,转换成十六进制数即为 0D2H,故初始化时定时器的初值为 0D2H。然后启动定时器,不断定时器的溢出标志 TF0,一旦定时时间到即 TF0=1,则将 P1.0 逻辑电平取反,并将
4、溢出标志清零,重新开始定时,如此反复循环。流程图:开始否电路图:溢出中断标志TF0=1?是输出电平取反中断标志清零启动定时器工作初始化定时器和输出口P1.0代码及注释:;硬件程序ORGLJMPORG MAIN:8000HMAIN8100H;硬件程序;给 P1.0 一个初值;T0 工作于定时方式 2;设置定时初值 50usSETBMOV MOV MOVSETBP1.0TMOD,#02H TH0,#0D2H TL0,#0D2HTR0;启动定时器 T0 工作BACK:;定时时间 50us 到即 TF0=1 转 BACK1,并使 TF0=0;定时时间未到继续JBCSJMP BACK1:CPL NOP
5、SJMPENDTF0,BACK1BACK;对电平状态取反;加入一条指令的P1.0,防抖动BACK2 、实验要求逻辑笔的状态每秒改变一次, 但是我们一个定时器最大定时时间为,其最大定时时间远远小于 1s,所以仅用一个定时器是不够的,故采用一个定时器和一个计数器配合使用。一个定时器产生一个周期为 100ms 的方波信号,即每50ms 进入定时器中断对计数信号 P1.3 取反,计数器对该信号计数,器中断,改变逻辑笔电平。10 次则进入计数定时器的初值,采用方式 1,n=16,N=19456,转换为十六进制数为 4C00H;计数器的初值,采用方式 2,n=8,N=246,转换为十六进制数为 0F6H。
6、主程序流程图:开始等待中断中断程序流程图:(T0 定时中断)中断返回P1.3计数信号取反计数器计数加1重装T0计数初值启动T0、T1工作开中断初始化中断设置初始化状态及T0、T1的初始值中断程序流程图:(T1 计数中断)中断返回电路图(修改后加上了逻辑笔的电路):代码及注释:;硬件程序ORGLJMP ORG LJMP ORG LJMP ORGMAIN:8000HMAIN 800BH INTT0 801BH INTT18100H;定时器 T0 中断地址;定时器 T1 中断地址;硬件程序逻辑笔电平取反;给 P1.0 一个初态;P1.3 作为 T1 的外部计数脉冲信号CLRSETB MOV MOV
7、MOV MOV MOV SETB SETB SETB CLR SETB SETB SETBSJMPP1.0P1.3TMOD,#61H;T0、T1 方式初始化,T0 工作于定时方式 1,T1 工作于计数方式 2 TH1,#0F6H;设置 T1 计数初值TL1,#0F6H;方式 2 会重装计数初值,初始只需将 TH1、TL1 装入相同的初值TH0,#4CH;设置 T0 计数初值TL0,#00H;启动 T0 工作;启动 T1 工作;设置 T0 为高优先级中断;设置 T1 为低优先级中断;开放 T0 中断;开放 T1 中断;开放 CPU 的中断;等待中断TR0TR1 PT0 PT1 ET0 ET1 E
8、A$;定时器 T0 中断服务程序ORG8400HINTT0:MOVTH0,#4CH;重装 T0 计数初值,为下一次定时做准备MOVTL0,#00H;T0 中断,50ms 到对 P1.3 求反一次得到周期为 100ms 的脉冲串;中断返回;定时器 T1 中断服务程序CPLP1.3RETI ORG8500H INTT1:CPLP1.0 RETIEND;T1 中断,1s 时间到,改变逻辑笔的电平;中断返回3、频率即为时间内脉冲的个数。故要测试 T0 引脚上脉冲的频率,可利用 T1 定时1 个时间(1s),T0 对外部脉冲计数,在此期间所计的脉冲数即为待测频率值。由于晶振频率为 11.0592MHz,
9、周期为 12/11.0592us,若选 T1 工作在方式 1 下,其最大定时时间为 71ms,远远小于 1s。因此利用 T1 完成 1s 的定时任务还必须配合相应软件来实现。可设计一个 T1 定时次数计数器,若设 T1 定时 50ms,当该计数器值为 20 时,定时 1s 到。则当 T1 开始定时时,T0 立即对外部脉冲进行计数,定时时间 1s 到,T0 停止计数,此时 T0 的计数值即为信号的频率。由上个实验计算值可知 T1 的初值为 4C00H。流程图:开始否50ms时间到?是否CONT计数值为0?是结束电路图:关闭T0计数器结果CONT计数值减1T1溢出中断标志清零启动定时器启动计数器初
10、始化定时器为50ms 初始化计数器为0代码及注释:CONTEQU;CONT 为定时器 T1 的定时次数72H;硬件程序ORGLJMPORG8000HMAIN8100H;硬件程序MAIN:TMOD,#15H;T0 工作于计数方式 1,T1 工作于定时方式 1MOVMOV MOV MOV MOV MOV SETBSETB;T0 计数初值置 0TH0,#00HTL0,#00H TH1,#4CH TL1,#00H CONT,#20 TR1TR0;T1 定时 50ms;计数器初始化,20;启动 T1 定时;启动 T0 计数BACK:;等待定时 50ms 到;定时器 T1 溢出中断标志清零JNBTF1,B
11、ACKCLRTF1MOVMOVDEC MOVTH1,#4CHTL1,#00HCONT A,CONT;T1 重装定时初值,为下次定时做准备;循环次数减 1;计数次数不到 20 次,继续等待;1s 时间到,T0 停止计数JNZ BACKCLR TR0MOV 71H,TH0 MOV 70H,TL0 SJMP $END;存结果实验结果及分析:1、用示波器在 P1.0 处观察到稳定的周期方波,其频率为 10.00khz。但是一开始实验时在 P1.0 处观测到的方波非常不稳定,方波波形像是由两个频率相近的方波叠加而成的,频率范围在 9.810.2KHz 之间。这是因为在实验设置 T0 工作于定时方式 2。
12、工作中,当 TL0 的内容被溢出时,除同步方式 0、1 置位 TF0,产生溢出中断请求外,还自动将 TH0 中不变的初值重新装入 TL0。这一过程中系统会对中断溢出标志进行自动清零,由于计算出的定时初值 N 为近似值 210,且自动清零时会产生很小的,这些的累积会产生一定的误差,故输出波形的频率会有细微的差别,从而产生抖动。因此,在实验中我对程序进行了一些修改,即在转入程序的电平取反 CPLP1.0 后加入了一条 NOP 指令,以加入一条指令的方波。修改后再观察 P1.0 口的波形即可得到稳定的 10KHz实验时,发现有些同学将 T0 设置于工作在定时方式 1,所测波形的频率也会有些偏差,这是
13、因为方式 1 在情况下,定时器溢出时系统对中断溢出标志进行自动清零,需在周期,增加加入一条 CLRTF0 指令,对其进行手动清零。而这条指令的加入会改变循环,从而产生输出频率与预期频率的偏差。为得到所需频率的方波,T0 的定时初值应重新设定,公式计算出的初值稍小一些。2、实验中可观察到逻辑笔的红灯和绿灯每 1s 切换一次。用示波器观察 P1.0 口的输出波形,可看到稳定的方波波形,周期为 1.02s。这个实验中通过两个中断完成产生周期为 1s 的方波的功能。如实验设计中所说明的这是因为要产生 1s 的定时,一个定时器不够用,需要两个定时器的配合才能完成。所以我在设置中断时,将定时器设定为高优先
14、级,计数器设定为低优先级,先进行 50ms 的定时,每次定时时间到,计数器则进行加 1 计数,由此完成 1s 的定时。在实验 1 中有讨论到在情况 T0 工作于定时方式 1 时,由于系统对中断溢出标志进行自动清零,需在转入加一条 CLRTF0 指令进行转入清零。但是在中断则不用考虑这个问题,在 TF0 为 1 的情况下系统会自动对 TF0 清零并转向中断服务程序。不过在中断时对 TF0 清零的操作也会占用极少的时间,故每次的定时会产生很微小的延时,在 10 次计数中会进行一定的累积,所以最后测得的周期为 1.02s,有很小的误差。3、通过信号源产生不同频率的方波的信号,在 1s 中对信号的脉冲进行计数,得到信号的频率,在示结果。单元 70H 和 71H 中可看到计数结果,将类型改为 float,可以十进制显选取十个不同频率的方波信号,测得的数据结果如下所示:3025201510500由待测频率与实测频率的关系表及关系图中,可看出实测频率与待测频率几乎一致,只有非常小的误差。而随着频率的升高,相对误差也有细微的变化,但都在同一个数量级上。由于频率变,信号源的输出频率不稳定,所测频率与待测频率的相对误差变化较大。不过从理论上来说,频率越高相对误差应该越小,因为在定时中产生的细小误差在越大的频率中体现得越不明显。实测频率
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能硬件研发合作合同(2篇)
- 《餐饮服务与管理》课件-教学课件:中餐宴会服务
- 2025届高三押题信息卷(一)地理及答案
- 蝶骨嵴脑膜瘤的临床护理
- 团建新质生产力活动
- 2025年人教版小学数学一年级上册期中考试卷(带答案)
- 新质生产力新愿望
- 2025年监理工程师之水利工程目标控制自我检测试卷B卷附答案
- 2025年执业药师之西药学专业二全真模拟考试试卷B卷含答案
- 2020-2024年上海市秋考语文试题汇编含答案
- 产后保健知识课件
- 氧化反应工艺安全操作规程
- 子宫肌瘤病例讨论
- 门窗安装施工方案07785
- 土壤氡检测方案
- 2025年宽带网络拓展合作协议书
- 氧化镓雪崩光电探测器的研究进展
- 2024年重庆高考物理卷试题真题解读及答案详解(精校打印)
- 居间合同协议书范本标准版
- 2024年孝感市(中心)人民医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- VL3000系列高性能矢量型变频器用户手册上海沃陆电气有限公司
评论
0/150
提交评论