版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、定时器工作方式寄存器TMOD,门控位,计数/定时选择位 “1”-计数 “0”-定时,M1M0:工作方式选择位 00:方式0-13位计数器 01:方式1-16位计数器 10:方式2-两个8位计数器 自动重装初值 11:方式3-仅T0可用,复习,TMOD不可位寻址!,例题 已知某控制系统时钟频率为6MHz,请用MCS-51单片机T0的工作方式0在P1.0脚输出周期为500S的方波。,解:题目要求采用T0的工作方式0进行定时,故(TMOD)=0000B。 设初始值为x,则:x+125=213x=8192-125x=8067;t=(213-x)*T机器 将其转换为十六进制数1F83H,正确填入T0计数
2、器应为:(TH0)=0FCH,(TL0)=03H。如果采用查询方式则程序如下所示(注意初始化的顺序),MOV TMOD,#00H MOV TH0,#0FCH; 00011111 10000011:11111100 00000011 MOV TL0,#03H MOV IE,#00H ;屏蔽中断 SETB TR0 ;启动定时 LOOP:JBC TF0,LOOP1 ;查询TF0=1,转到LOOP1,否则顺序执行 AJMP LOOP LOOP1:CPL P1.0 MOV TH0,#0FCH ;重新装入初值 MOV TL0,#03H AJMP LOOP ;循环执行,设定时器T0选择工作模式0,定时时间为
3、1ms,fOSC=6MHz。试确定T0初值,计算最大定时时间T。,解:当T0处于工作模式0时,加1计数器为13位。设T0的初值为X。则,X=7692 转换为二进制数X=1111000001100B=1E0CH T0的低5位:01100B=0CH T0的高8位:11110000B=F0H T0最大定时时间对应于13位计数器T0的各位全为1,即( TH0)=FFH,(TL0)=1FH。 则,例:利用T0的工作模式0产生1ms的定时,在P1.0引脚上输出2ms的方波。设单片机晶振 =12MHz。 解: (1)选择工作模式 要在P1.0引脚输出周期为2ms方波,只要使P1.0每隔1ms取反一次即可。T
4、0 的模式字节TMOD=00H,即 TMOD.1TMOD.0 M1M0=00,T0为模式0; TMOD.2 C/T=0,T0为定时状态; TMOD.3 GATE=0,表示计数不受INT0控制; TMOD.4TMOD.7 可为任意值。因T1不用,这里取0,(2)计算1ms定时时T0的初值 机器周期 设T0 的计数初值为X,则 =8192-1000 =7192D =11100000 11000B TH0初值为E0H,TL0初值为18H。可查询TF0的状态来控制P1.0输出。,(3)查询方式 采用查询方式的程序很简单,但在定时器计数过程中,CPU要不断查询溢出标志位TF0的状态。这就占用了很多CPU
5、的工作时间,使CPU的效率下降。 程序清单: MOV TMOD,#00H ;设置T0为模式0 MOV TL0,#18H ;送初值 MOV TH0,#0E0H SETB TR0 ;启动T0 LOOP:JBC TF0,NEXT ;查询定时时间到否? SJMP LOOP NEXT:MOV TL0,#18H ;重装计数初值 MOV TH0,#0E0H CPL P1.0 ;输出取反 SJMP LOOP ;重复循环,(4)定时器溢出中断方式 主程序 MAIN:MOV TMOD,#00H ;设置T0为模式0 MOV TL0,#18H ;送初值 MOV TH0,#0E0H SETB EA ;CPU开中断 SE
6、TB ET0 ;T0中断允许 SETB TR0 ;启动T0 HERE:SJMP HERE ;等待中断 中断服务程序 ORG 000BH ;T0入口 AJMP CTC0 ;转中断服务程序 CTC0:MOV TL0,#18H ;重装初值 MOV TH0, #0E0H CPL P1.0 ;输出方波 RETI ;中断返回,模式1及应用,该模式对应的是一个16位的定时器/计数器,其结构与操作几乎与模式0完全相同,唯一的差别是:在模式1中,寄存器TH0和TL0是以全部16位参与操作。用于定时工作方式时,定时时间为 t=(216 T0初值)振荡周期12 用于计数工作方式时,计数长度为216 =65536(个
7、外部脉冲)。,模式1结构16位计数器,工作方式1与工作方式0基本相同,只是其可以实现16位定时/计数,即在这种方式下使用TH0与TL0的全部16位。因此工作方式0所能完成的功能,工作方式1都可以实现。,例:用定时器T1产生一个50Hz的方波,由P1.1输出。仍使用程序查询方式,fosc=12MHz。 解:方波周期 T=1/50Hz=0.02s=20ms ,用T1定时10ms,计数初值X为 X=216 -12101000/12=65536-10000=55536=D8F0H 源程序如下: MOV TMOD,#10H ;T1模式1,定时 SETB TR1 ;启动T1 LOOP:MOV TH1,#0
8、D8H ;装入T1计数初值 MOV TL1,#0F0H JNB TF1,$ ;T1没有溢出等待 CLR TF1 ;产生溢出,请标志位 CPL P1.1 ;P1.1取反 输出 SJMP LOOP ;循环,用查询方式与中断方式分别完成: 已知某控制系统时钟频率为6MHz,请用MCS-51单片机T0的工作方式1在P1.0脚输出周期为500S的方波。 MCS-51单片机的工作方式1与方式0基本相同,如果使用T1的方式1则寄存器(TMOD)=10H。 计算初始值可得,(TH1)=0FFH,(TL1)=83H。 查询方式: ORG 0000H AJMP Main ORG 0030H Main: MOV T
9、MOD,#10H ;00010000B MOV TH1,#0FFH MOV TL1,#83H MOV IE,#00H;屏蔽所有中断 SETB TR1 ;启动定时器T1 LOOP: JBC TF1,LOOP1 SJMP LOOP LOOP1: CPL P1.0 MOV TH1,#0FFH;重新装入初值 MOV TL1,#83H AJMP LOOP END,中断方式: 主程序: ORG 0000H SJMP Main ORG 001BH SJMP INTT1 ORG 0030H Main: MOV TMOD,#10H MOV TH1,#0FFH MOV TL1,#83H SETB TR1 SETB
10、 ET1 SETB EA SJMP $,中断服务程序: INTT1: CPL P1.0 MOV TH1,#0FFH MOV TL1,#83H RETI END,模式2及应用,模式2结构8位计数器,TL0计数溢出时,不仅使溢出中断标志位TF0置1,而且还自动把TH0中的内容重新装载到TL0中。这里,16位计数器被拆成二个,TL0用作8位计数器,TH0用以保护初值。,在程序初始化时,TL0和TH0由软件赋予相同的初值。一旦TL0计数溢出,便置位TF0,并将TH0中的初值再自动装入TL0,继续计数,循环重复。用于定时工作模式时,其定时时间(TF0溢出周期)为 t=(28TH0初值)振荡周期12,用于
11、计数工作方式时,最大计数长度(TH0初值=0)为28=256(个外部脉冲)。 这种工作模式可省去用户软件中重装常数的语句,并可产生相当精确的定时时间,特别适于串行口波特率发生器。,在某啤酒自动生产线上,需要每生产10瓶执行装箱操作,将生产出的啤酒自动装箱。试用MCS-51单片机的计数器实现该控制要求。 解:如果在啤酒生产线上装有传感装置,每检测到一瓶啤酒经过就向单片机发送一个脉冲信号,这样使用计数功能就可实现。设用T0的工作方式2来完成该题目。 MOV TMOD,#06H;00000110B,T0采用方式2计数 MOV TL0,#0F6H ;装入初值 MOV TH0,#0F6H MOV IE,
12、#00H ;禁止中断 SETB TR0 ;启动定时T0,开始计数 LOOP:JBC TF0,LOOP1 AJMP LOOP LOOP1:(驱动电机转动) AJMP LOOP,例:当P3.4引脚上的电平发生负跳变时,从P1.0输出一个500s的同步脉冲。请编程实现该功能。 解:模式选择 首先选T0为模式2,外部事件计数方式。当P3.4引脚上的电平发生负跳变时,T0计数器加1,溢出标志TF0置1;然后改变T0为500s定时工作方式,并使P1.0输出由1变为0。T0定时到产生溢出,使P1.0引脚恢复输出高电平,T0又恢复外部事件方式。,计数初值 T0工作在外部事件计数方式,当计数到28 时,再加1计
13、数器就会溢出。设计数初值为X,当再出现一次外部事件时,计数器溢出。则 X+1=28 X=281=11111111B=0FFH T0工作在定时方式时,设晶振频率为6MHz,500s相当于250个机器周期。因此,初值X为 (28X) 2s=500s X=28250=6=06H,程序清单 START: MOV TMOD,#06H ;设置T0为模式2。外部计数方式 MOV TH0,#0FFH ;T0计数器初值 MOV TL0,#0FFH SETB TR0 ;启动T0计数 LOOP1: JBC TF0,PTFO1 ;查询T0溢出标志,TF0=1时转移 TF0=0(即查P3.4负跳变) SJMP LOOP1 PTFO1: CLR TR0 ;停止计数 MOV TMOD,#02H ;设置T0为模式2,定时方式 MO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国草鸡蛋市场数据研究及竞争策略分析报告
- 四川省达州铁中重点达标名校2026年初三下学期中考模拟(一模)考试语文试题含解析
- 山东省青岛市胶州实验2025-2026学年初三二模语文试题试卷与答案含解析
- 重庆十一中市级名校2025-2026学年初三英语试题5月月考试题含解析
- 浙江省台州市三门县2026年中考模拟试卷(语文试题文)试卷含解析
- 山西省洪洞县重点名校2026届初三下-第三次统考(期中)英语试题试卷含解析
- 四川省宜宾市第八中学2026届初三模拟测试卷(二)英语试题含解析
- 2026年机器学习优化生产线的案例研究
- 2026年城市供水系统的管理与优化
- 2025 高中文学类阅读理解之爱情故事课件
- 2026安徽辉隆集团农资连锁有限责任公司招聘1人笔试备考试题及答案解析
- 2026广东惠州市自然资源局招聘编外人员4人笔试参考题库及答案解析
- 中小学教师绩效工资分配激励研究-基于 2024 年中小学教师绩效工资实施办法
- 推拿店岗位责任制度模板
- 2026年汕头市普通高考第一次模拟考试 英语+答案
- 2026年宝山区国有(集体)企业招聘笔试参考题库附带答案详解
- 成都合资公司管理手册模板
- 二类医疗器械零售经营备案质量管理制度
- 投资最重要的事
- 初中英语一般过去时专项练习
- 面瘫诊疗方案优化方案
评论
0/150
提交评论