版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
定时单片机_汇编第一页,共二十九页,编辑于2023年,星期日模式2及应用模式2结构——8位计数器第二页,共二十九页,编辑于2023年,星期日
TL0计数溢出时,不仅使溢出中断标志位TF0置1,而且还自动把TH0中的内容重新装载到TL0中。这里,16位计数器被拆成二个,TL0用作8位计数器,TH0用以保护初值。
在程序初始化时,TL0和TH0由软件赋予相同的初值。一旦TL0计数溢出,便置位TF0,并将TH0中的初值再自动装入TL0,继续计数,循环重复。用于定时工作模式时,其定时时间(TF0溢出周期)为
t=(28-TH0初值)×振荡周期×12
用于计数工作方式时,最大计数长度(TH0初值=0)为28=256(个外部脉冲)。
这种工作模式可省去用户软件中重装常数的语句,并可产生相当精确的定时时间,特别适于串行口波特率发生器。第三页,共二十九页,编辑于2023年,星期日在某啤酒自动生产线上,需要每生产10瓶执行装箱操作,将生产出的啤酒自动装箱。试用MCS-51单片机的计数器实现该控制要求。解:如果在啤酒生产线上装有传感装置,每检测到一瓶啤酒经过就向单片机发送一个脉冲信号,这样使用计数功能就可实现。设用T0的工作方式2来完成该题目。
MOVTMOD,#06H;00000110B,T0采用方式2计数
MOVTL0,#0F6H;装入初值
MOVTH0,#0F6HMOVIE,#00H;禁止中断
SETBTR0;启动定时T0,开始计数
LOOP:JBCTF0,LOOP1 AJMPLOOPLOOP1:(驱动电机转动)
AJMPLOOP
第四页,共二十九页,编辑于2023年,星期日
例:当P3.4引脚上的电平发生负跳变时,从P1.0输出一个500μs的同步脉冲。请编程实现该功能。
解:⑴模式选择
首先选T0为模式2,外部事件计数方式。当P3.4引脚上的电平发生负跳变时,T0计数器加1,溢出标志TF0置1;然后改变T0为500μs定时工作方式,并使P1.0输出由1变为0。T0定时到产生溢出,使P1.0引脚恢复输出高电平,T0又恢复外部事件方式。
第五页,共二十九页,编辑于2023年,星期日
⑵计数初值
T0工作在外部事件计数方式,当计数到28时,再加1计数器就会溢出。设计数初值为X,当再出现一次外部事件时,计数器溢出。则X+1=28
X=28-1=11111111B=0FFHT0工作在定时方式时,设晶振频率为6MHz,500s相当于250个机器周期。因此,初值X为(28-X)×2μs=500μsX=28-250=6=06H第六页,共二十九页,编辑于2023年,星期日⑶程序清单
START:MOVTMOD,#06H;设置T0为模式2。外部计数方式
MOVTH0,#0FFH;T0计数器初值
MOVTL0,#0FFHSETBTR0;启动T0计数
LOOP1:JBCTF0,PTFO1;查询T0溢出标志,TF0=1时转移
TF0=0(即查P3.4负跳变)
SJMPLOOP1PTFO1:CLRTR0;停止计数
MOVTMOD,#02H;设置T0为模式2,定时方式
MOVTH0,#06H;T0定时500us初值
MOVTL0,#06H
CLRP1.0;P1.0清0
SETBTR0;启动定时500us第七页,共二十九页,编辑于2023年,星期日
LOOP2:JBCTF0,PTFO2;查询溢出标志,定时到TF0=1转移,且TF0=0(第一个500us到否?)SJMPLOOP2PTFO2:SETBP1.0;P1.0置1(到了第一个500us)
CLRTR0;停止计数
SJMPSTART第八页,共二十九页,编辑于2023年,星期日
例:利用定时器T1的模式2对外部信号计数。要求每计满100次,将P1.0端取反。解:(1)选择模式
(2)计算T1的计数初值
X=28-100=156D=9CH
因此,TL1的初值为9CH,重装初值寄存器TH1=9CH外部信号由T1(P3.5)引脚输入,每发生一次负跳变计数器加1,每输入100个脉冲,计数器发生溢出中断,中断服务器将P1.0取反一次。
T1计数工作方式模式2的模式字为TMOD=60H。T0不用时,TMOD的低4位可任取,但不能使T0进入模式3,一般取0。第九页,共二十九页,编辑于2023年,星期日
(3)程序清单
MAIN:MOVTMOD,#60H;置T1为模式2计数工作方式
MOVTL1,#9CH;赋初值
MOVTH1,#9CHMOVIE,#88H;定时器T1开中断
SETBTR1;启动计数器
HERE:SJMPHERE;等待中断
ORG001BH;中断服务程序入口
CPLP1.0RETI第十页,共二十九页,编辑于2023年,星期日模式3及应用
工作模式3对T0和T1大不相同。若将T0设置为模式3,TL0和TH0被分成为两个相互独立的8位计数器,如图所示。图T0模式3结构:分成二个8位计数器第十一页,共二十九页,编辑于2023年,星期日
TL0使用T0的各控制位、引脚和中断源,其操作模式和模式0、1相同。
TH0用于简单的内部定时,它占用定时器T1的控制位TR1和TF1,其启动和关闭仅受TR1的控制。
注意问题:
TH0仅占用T1的与中断有关的IE中的位,但并未占用TMOD中的位,TMOD中的T1的控制位仍然由T1使用。
定时器T1无工作模式3,若T1设置为模式3,就会使T1立即停止计数。第十二页,共二十九页,编辑于2023年,星期日
在定时器T0用作模式3时,T1仍可设置为模式0~2,见图(a)和(b)。由于TR1和TF1被定时器T0占用,计数器开关K已被接通,此时,仅用T1控制位C/T切换其定时器或计数器工作方式就可使T1运行。寄存器(8位、13位或16位)溢出时,只能将输出送入串行口或用于不需要中断的场合。一般情况下,当定时器T1用作串行口波特率发生器时,定时器T0才设置为工作模式3。此时,常把定时器T1设置为模式2,用作波特率发生器,见图(b)。第十三页,共二十九页,编辑于2023年,星期日定时器控制位(TMOD)启动方式计数脉冲引脚定时/计数中断源TL0模式3GATEC/TM1M0TF0(TCON)TR0=1P3.4定时/计数T0000BHET0(IE)TH0模式3TF1(TCON)TR1=1定时T1001BHET1(IE)T1模式0-2GATEC/TM1M0C/T切换P3.5定时/计数无第十四页,共二十九页,编辑于2023年,星期日
例:设某用户系统中已使用了两个外部中断源,并置定时器T1工作模式2,做串行口波特率发生器用。现要求再增加一个外部中断源,并由P1.0引脚输出一个5KHz的方波。fosc=12MHz。
解:为了不增加其它硬件开销,可设置T0工作模式3计数方式,把T0的引脚作附加的外部中断输入端,TL0的计数初值为FFH,当检测到T0引脚电平出现由1至0的负跳变时,TL0产生溢出,申请中断。这相当于边沿触发的外部中断源。
T0模式3下,TL0作计数用,而TH0可用作8位的定时器,定时控制P1.0引脚输出5KHz的方波信号。
TL0的计数初值为FFH,TH0的计数初值X计算如下:∵P1.0的方波频率为5KHz,故周期
T=1/(5KHz)=0.2ms=200us∴用TH0定时100us时,X=256-100×12/12=156第十五页,共二十九页,编辑于2023年,星期日定时器定时/计数功能TL0模式3计数检测T0引脚负跳变TH0模式3定时8位产生5KHz的方波信号T1模式2定时8位串行口波特率发生器第十六页,共二十九页,编辑于2023年,星期日程序如下:
MOVTMOD,#27H
;T0为模式3,计数方式;T1为模式2,定时方式
00100111BMOVTL0,#0FFH
;置TL0计数初值
MOVTH0,#156;置TH0计数初值
MOVTH1,#data;data是根据波特率要求
设置的常数(即初值)
MOVTL1,#dataMOVTCON,#55H;外中断0,外中断1边沿触发,
启动T0,T101010101BMOVIE,#9FH;开放全部中断
┇
第十七页,共二十九页,编辑于2023年,星期日
TL0溢出中断服务程序(由000BH转来)TL0INT:MOVTL0,#0FFH;TL0重赋初值(中断处理)
RETITH0溢出中断服务程序(由001BH转来)TH0INT:MOVTH0,#156;TH0重赋初值
CPLP1.0;P1.0取反输出
RETI
串行口及外部中断0,外中断1的服务程序在此不再一一列出。第十八页,共二十九页,编辑于2023年,星期日
综合应用举例
例:设时钟频率为6MHz。试编写利用T0产生1s定时的程序。
解:⑴定时器T0工作模式的确定
因定时时间较长,采用哪一种工作模式合适呢?可以算出:模式0最长可定时16.384ms;模式1最长可定时131.072ms;模式2最长可定时512μs。题中要求定时1s,可选模式1,每隔100ms中断一次,中断10次为1s。
⑵求计数值X
∴X=15536=3CB0H因此,(TL0)=0B0H,(TH0)=3CH。第十九页,共二十九页,编辑于2023年,星期日⑶实现方法
对于中断10次计数,可使T0工作在计数方式,也可用循环程序的方法实现。⑷源程序清单
ORG0000HLJMPMAIN;上电,转向主程序
ORG000BH;T0的中断入口地址
AJMPSERVE;转向中断服务程序
ORG2000H;主程序
MAIN:MOVSP,#60H;设堆栈指针
MOVB,#0AH;设循环次数
MOVTMOD,#01H;设置T0工作模式1
MOVTL0,#0B0H;装入计数值低8位
MOVTH0,#3CH;装入计数值高8位
第二十页,共二十九页,编辑于2023年,星期日
SETBTR0
;启动定时器T0
SETBET0
;允许T0中断
SETBEA
;允许CPU中断
SJMP$
;等待中断
SERVE:MOVTL0,#0B0H
MOVTH0,#3CH
;重新赋计数值
DJNZB,LOOP
CLRTR0
;1s定时到,停止T0工作
LOOP:RETI
;中断返回
END
第二十一页,共二十九页,编辑于2023年,星期日
例:设计定时时钟程序。解:本例涉及到了定时器与中断的联合应用。时钟就是以秒、分、时为单位进行计时。
(1)实现时钟计时的基本方法①计算计数初值。时钟计时的最小单位是秒,但使用单片机定时器/计数器进行定时,即使按方式1工作,其最大定时时间也只能达131ms.
鉴于此,可把定时器的定时时间定为100ms,这样,计数溢出10次即得到时钟计时的最小单位-----秒;而10次计数可用软件方法实现。假定使用定时器T1,以工作模式1进行100ms的定时。如单片机晶振频率为6MHZ,为得到100ms定时,设计数初值为X,则第二十二页,共二十九页,编辑于2023年,星期日②采用中断方式进行溢出次数的累计,记满10次即得到秒计时。③从秒到分和从分到时的计时是通过累加和数值比较实现的。④时钟显示及显示缓存区部分留给读者自己设计。第二十三页,共二十九页,编辑于2023年,星期日
(2)程序流程及程序清单①主程序(MAIN)的主要功能是进行定时器T1的初始化编程并启动T1,然后通过反复调用显示子程序,等待100ms定时中断的到来。其流程图如图6-13所示。②中断服务程序(PITO)的主要功能是进行计时操作。程序开始先判断计数溢出是否满了10次,不满10次表明还没达到最小计时单位-----秒,中断返回;满10次表示已达到最小计时单位----秒,程序继续往下运行,进行计时操作。要求满1秒则“秒位”32H单元内容加1,满60s则“分位”31H单元内容加1,满60min则“时位”30H单元内容加1,满24h则将30H,31H,32H的内容全部清0。第二十四页,共二十九页,编辑于2023年,星期日
设T1为模式1设中断次数为10清计时单元
调用显示子程序启动T1开中断图6-13时钟主程序流程第二十五页,共二十九页,编辑于2023年,星期日源程序如下:
ORG0000HAJMPMAIN;上电,转向主程序
ORG001BH;T1的中断入口地址
AJMPSERVE;转向中段服务程序MAIN:MOVTMOD,#10H;设T1工作于模式1MOV20H,#0AH;装入中断次数
CLRAMOV30H,A;时单元清0MOV31H,A;分单元清0MOV32H,A;秒单元清0SETBET1;允许T1中断
SETBEA;允许CPU中断
MOVTH1,#3CHMOVTL1,#0B0H;赋计数初值
SETBTR1;启动定时器T1第二十六页,共二十九页,编辑于2023年,星期日
SJMP$;等待中断(可反复调用显示子程序)SERVE:PUSHPSWPUSHACC;保护现场
MOVTH1,#3CHMOVTL1,#0B0H;重新赋计数初值
DJNZ20H,RETUNT;1s未到,返回
MOV20H,#0AH;重置中断次数
MOVA,#01HADDA,32H;“秒位”加1DAAMOV32H,A;转换为BCD码
CJNEA,#60,RETUNT;未记满60s,返回
MOV32H,#00H;记满60s,“秒位”清0MOVA,#01HADDA,31H;“分位”加1第二十七页,共二十九页,编辑于2023年,星期日
DAAMOV31H,A;转换为BCD码
CJNEA,#60H,RETUNT;未记满60min,返回
MOV31H,#00H;记满60min,“分位”清0MOVA,#01HADDA,30H;“时位”加1DAAMOV30H,A;转换为BCD码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 感染科个案护理
- 慢性胆囊炎胆石症的护理
- 腹泻护理措施包括课件
- 2024至2030年中国木制宠物房行业投资前景及策略咨询研究报告
- 2024至2030年中国塑料水分测定仪行业投资前景及策略咨询研究报告
- (八年级《语文》上册课件)在长江源头各拉丹冬
- 2024至2030年枪式冲击扳手项目投资价值分析报告
- 2024年ABS/PS管材项目可行性研究报告
- 2024人教版初中地理七年级上册第四章第二节《气温的变化与分布》素养分层评价(含答案)
- 先心病小儿介入手术术前准备
- 电力设备预防性试验规程
- 能源数字化转型典型实践案例集(2024年)
- DB3502∕T 139-2024“无陪护”医院服务规范通 用要求
- 山东师范大学成人教育《文献学》期末考试题库
- 2023年中老年市场白皮书
- GB/T 44312-2024巡检机器人集中监控系统技术要求
- 辽宁省名校联盟2024-2025学年高二上学期9月联合考试模拟练习数学试题
- 敦煌莫高窟完整版本
- 2024年饲料合同范本
- 农村民兵连指导员述职报告范本
- 中国体育奥林匹克运动会发展历史讲解课件模板
评论
0/150
提交评论