




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子时钟定时算法第1页,课件共40页,创作于2023年2月定时/计数器的基本结构如图所示:
第2页,课件共40页,创作于2023年2月例1、设单片机晶振频率为6MHZ,使用定时器1以方式0产生周期为500us的等宽正方波连续脉冲,并由P1.0输出,以查询方式完成。第3页,课件共40页,创作于2023年2月解:1、计算计数初值要产生500us的等宽正方波脉冲,只需在P1.0端以250us为周期交替输出高低电平即可实现,为此定时时间为250us。使用6MHZ晶振,则一个机器周期为2us,方式0为13位计数结构,设初值为X,则:(213-X)*12*1/6=250得:X=8067,二进制数表示为:1111110000011,十六进制表示为,高8位为:0FCH,低5位为:03H。其中高8位装入TH1,即TH1=0FCH,低5位装入TL1,即TL1=03H。第4页,课件共40页,创作于2023年2月2、TMOD寄存器初始化为把定时器/计数器设定为方式0,则M1M0=00;为实现定时功能,应使C/T=0;为实现定时器/计数器1的运行控制,则GATE=0。定时器/计数器T0不用,有关位设定为0,因此TMOD寄存器初始化为00H。3、由定时器控制器TCON中的TR1位控制定时的启动和停止,TR1=1启动
,TR1=0停止。4、使用查询就禁止中断IE=00H第5页,课件共40页,创作于2023年2月5、程序设计:
MOVTMOD,#00H;设置T1为工作方式0
MOVTH1,#0FCH;设置计数初值
MOVTL1,#03HMOVIE,#00H;禁止中断SETBTR1
;启动定时LOOP:
JBCTF1,LOOP1;查询计数溢出
AJMPLOOPLOOP1:MOVTH1,#0FCH;重新设置计数初值
MOVTL1,#03HCPLP1.0;输出取反
AJMPLOOP;重复循环第6页,课件共40页,创作于2023年2月例3、使用定时器0以工作方式2产生100us定时,在P1.0输出周期为200us的连续方波脉冲,已知晶振频率fosc=6MHZ。第7页,课件共40页,创作于2023年2月解:1、计算计数初值6MHZ晶振下,一个机器周期为2us,以TH0作重装载的预置寄存器,TL0作8位计数器,则:(28-X)*12*1/6=100,得X=206=11001110B=0CEH把0CEH分别装入TH0和TL0中。2、TMOD初始化为把定时器/计数器设定为方式2,则M1M0=10;为实现定时功能,应使C/T=0;为实现定时器/计数器0的运行控制,则GATE=0。定时器/计数器T1不用,有关位设定为0,因此TMOD寄存器初始化为00000010,即:02H第8页,课件共40页,创作于2023年2月3、由定时器控制器TCON中的TR0位控制定时的启动和停止,TR0=1启动
,TR0=0停止。4、使用中断方式,应开中断
EA位和ET0位置“1”第9页,课件共40页,创作于2023年2月5、程序设计(查询方式)
MOVTMOD,#02H;设置T0为工作方式2
MOVTH0,#0CEH;设置计数初值
MOVTL0,#0CEHMOVIE,#00H;禁止中断
SETBTR0;启动定时
LOOP:JBCTF0,LOOP1;查询计数溢出
AJMPLOOPLOOP1:CPLP1.0;输出取反
AJMPLOOP;重复循环第10页,课件共40页,创作于2023年2月5、程序设计(中断方式)
MOVTMOD,#02H;设置T0为工作方式2
MOVTH0,#0CEH;设置计数初值
MOVTL0,#0CEHSETBEA;开中断
SETBET0;定时器1允许中断LOOP:SETBTR0;启动定时HERE:SJMP$;等待中断
AJMPLOOP中断服务程序:
CPLP1.0;输出取反
RETI;中断返回第11页,课件共40页,创作于2023年2月设某用户系统中已使用了两个外部中断源,并置定时器T1工作在模式2,作串行口波特率发生器用。现要求再增加一个外部中断源,并由P1.0输出一个5KHz的方波。Fosc=12MHz。第12页,课件共40页,创作于2023年2月分析:目的:1)增加一个外部中断;2)使P1.0输出一个方波。条件:1)两个外部中断源已被使用2)定时器T1已用于串行口波特率发生器因此:可利用定时/计数器T0,使之工作在模式3,1)利用TL0扩展外部中断源2)利用TH0作定时器使用,输出方波
第13页,课件共40页,创作于2023年2月设置初值:1)TL0=0FFH2)因为输出方波f=5kHz,故方波周期为200us,用TH0产生100us的定时,故TH0的初值X=256–(定时时间/机器周期)=256-(100us*晶振频率/12)=156设定T0工作方式,TMOD,TCON.第14页,课件共40页,创作于2023年2月程序:
MOVTMOD,#27H;T0:模式3,计数方式;T1:模式2,定时方式
MOVTL0,#0FFH;一旦加1,马上溢出,申请中断
MOVTH0,#156;TH0初值
MOVTH1,#data;根据波特率要求而定
MOVTL1,#data
MOVTCON,#55H;01010101MOVIE,#9FH;开放全部中断TL0INT:MOVTL0,#0FFH;TL0重新赋值…..
RETITH0INT:MOVTH0,#156;TH0重新赋值
CPLP1.0RETI
第15页,课件共40页,创作于2023年2月低频信号发生器驱动程序设计一个控制程序,使89c51的P1口输出8路低频方波脉冲,频率分别为100,50,25,20,10,5,2,1Hz。第16页,课件共40页,创作于2023年2月1.计算定时器初值使用T0,产生5ms的定时,若晶振选12MHz,则5ms相当于5000个机器周期,T0应工作在模式1,初值x为:x=65536-5000=60536,用十六进制表示,则x=0EC78H。(注意TH,TL分开赋值---因为T0/T1都是16位)2.设立8个计数器对应于P1.0~P1.7,设立8个计数器,初值分别为1,2,4,5,10,20,50,100,由T0的溢出中断服务程序对它们减“1”计数,当减为0时恢复初值,并使相应的口引脚改变状态,这样就可以使P1口输出所要求的方波。第17页,课件共40页,创作于2023年2月程序:ORG0START:AJMPMAINORG0BHPTP0:MOVTL0,#78H;T0中断服务程序MOVTH0,#0ECHCPLP1.0DJNZ31H,PF01;对各路时间计数器进行减1计数MOV31H,#2;计数器减为1,恢复计数初值CPLP1.1;输出取反PF01:DJNZ32H,PF02MOV32H,#4CPLP1.2PF02:DJNZ33H,PF03MOV33H,#5CPLP1.3第18页,课件共40页,创作于2023年2月PF03:DJNZ34H,PF04MOV34H,#10CPLP1.4PF04:DJNZ35H,PF05MOV35H,#20CPLP1.5PF05:DJNZ36H,PF06MOV36H,#50CPLP1.6PF06:DJNZ37H,PF07MOV37H,#100CPLP1.7PF07:RETI第19页,课件共40页,创作于2023年2月MAIN:MOVSP,#70H;主程序栈指针初始化MOV31H,#2;各路计数器置初值MOV32H,#4MOV33H,#5MOV34H,#10MOV35H,#20MOV36H,#50MOV37H,#100
MOVTMOD,#1;GATE=0,C/T=0,M1M0=01MOVTL0,#78H;初值——〉T0MOVTH0,#0ECHMOVIE,#82H;允许T0中断SETBTR0;允许T0计数HERE:SJMPHERE;以踏步表示CPU可以处理其他工作第20页,课件共40页,创作于2023年2月例利用定时器T1的模式2对外部信号计数,要求每计满100次对P1.0端取反。第21页,课件共40页,创作于2023年2月解:(1)计算计数初值X100=28-XX=256-100=156=9CH
(2)模式字
TMOD=0110****B=60H
(3)程序清单;用中断方式
ORG0000HMAIN:MOVTMOD,#60HMOVTL1,#156MOVTH1,#156MOVIE,#88HSETBTR1SJMP$
ORG001BHCPLP1.0RETI第22页,课件共40页,创作于2023年2月例脉冲参数测量——GATE功能的使用。脉冲高电平(计数)长度值存于21H、20H中,脉冲低电平长度存于23H、22H中。电路连接如下图所示。解:复习GATE的用法:
GATE=0时,TRi=1,即可启动Ti定时/计数
GATE=1时,TRi=1,且=1,才启动定时/计数。89C51P3.2P3.31被测信号21a3T0计数T1计数第23页,课件共40页,创作于2023年2月
ORG0000HLJMPMAINORG2000HMAIN:MOVTMOD,#99H;T0、T1均工作在定时,;模式1,GATE=1MOVA,#00H;T0、T1赋计数初值00H,
;定时最长时间为0000~65536MOVTL0,A
MOVTH0,AMOVTL1,AMOVTH1,A第24页,课件共40页,创作于2023年2月TEST0:JBP3.2,TEST0;检测是否到a点
SETBTR0;到a点,TR0=1,做好取计时值准备。TEST1:JNBP3.2,TEST1;检测是否到1点
SETBTR1;到1点T0计时;TR1=1,做好T1计时准备。TEST2:JBP3.2,TEST2;检测是否到2点
CLRTR0;到2点,停止T0计时,T1开始计时。
MOV20H,TH0;保存T0计时结果
MOV21H,TL0TEST3:JBP3.3,TEST3;检测是否到3点
CLRTR1;到3点,停止T1计数
MOV22H,TH1;保存T1计数结果
MOV23H,TL1LCALLDISPSJMP$第25页,课件共40页,创作于2023年2月运行中读定时器/计数器80C51可以随时读写计数寄存器TLx和THx(x为0或1),用于实时显示计数值等。办法是:先读THx,后读TLx,再重读THx,若两次读得的THx值是一样的,则可以确定读入的数据是正确的;若两次读得的THx值不一致,则必须重读。第26页,课件共40页,创作于2023年2月例.飞读
RDTIME: MOV A,TH0 ;读TH0 MOV R0,TL0 ;读TL0并存入R0 CJNE A,TH0,RDTIME ;再读TH0,与上次 ;读入的TH0比较,若不等,重读
MOV R1,A ;存TH0在R1中
RET第27页,课件共40页,创作于2023年2月实时时钟的设计(1)实时时钟实现的基本思想如何获得1秒的定时,可把定时时间定为100ms,采用中断方式进行溢出次数的累计,计满10次,即得到秒计时。片内RAM中规定3个单元作为秒、分、时单元,具体安排如下:
32H:“秒”单元;31H:“分”单元;30H:“时”单元从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。时钟就是以秒、分、时为单位进行计时。用定时器与中断的联合应用。第28页,课件共40页,创作于2023年2月①假定使用定时器T0,以工作模式1进行100ms的定时。如fosc=6MHz,则计数初值X为:∵(216-X)×12/(6×106)=100×10-3s∴X=15536=3CB0H因此:
(TL0)=0B0H(TH0)=3CH第29页,课件共40页,创作于2023年2月②采用定时方式进行溢出次数的累计,计满10次即得到秒计时。③从秒到分和从分到时的计时是通过累计和数值比较实现的。④时钟显示即及显示缓冲区部分在这里略,可自行设计。第30页,课件共40页,创作于2023年2月
①主程序(MAIN)的主要功能是进行定时器T1的初始化编程并启动T1,然后通过反复调用显示子程序,等待100ms定时中断的到来。其流程如图所示。(2)程序流程及程序清单设T1为模式1设中断次数清计时单元开中断启动T1调用显示子程序等待定时中断第31页,课件共40页,创作于2023年2月②中断服务程序(PITO)的主要功能 进行计时操作。程序开始先判断计数溢出是否满了10次,不满表明还没达到最小计时单位—秒,中断返回;如满10次则表示已达到最小计时单位—秒,,程序继续向下运行,进行计时操作。要求满1秒则“秒位”32H单元内容加1,满60s则“分位”31H单元内容加1,满60min则“时位”30H单元内容加1,满24h则30H,31H,332H单元内容全部清0。中断服务程序流程如下图所示。第32页,课件共40页,创作于2023年2月保护现场赋计数初值到1s?(32H)加1(32H)=60?(32H)清0(31H)加1(31H)=60?(31H)清0(30H)加1(30H)=24?(30H)清0恢复现场返回入口aaNNNNYYYY图
中断服务程序流程图第33页,课件共40页,创作于2023年2月③源程序如下:
ORG0000HAJMPMAIN;上电,转向主程序ORG001BH;T1的中断服务程序入口地址AJMPSERVE;转向中断服务程序
第34页,课件共40页,创作于2023年2月
ORG2000H;主程序MAIN:MOVSP,#60H;设堆栈指针MOVTMOD,#10H;设置T1工作于模式1MOV20H,#0AH;设循环次数CLRAMOV30H,A;时单元清0MOV31H,A;分单元清0MOV32H,A;秒单元清0
第35页,课件共40页,创作于2023年2月
SETBET1;T1开中断SETBEA;CPU开中断
MOVTL1,#0B0H;装计数值低8位MOVTH1,#3CH;装计数值高8位
SETBTR1;启动定时SJMP$;等待中断(可反复调用显示子程序)第36页,课件共40页,创作于2023年2月
SERVE:PUSHPSW;保护现场
PUSHACCMOVTL1,#0B0H;重新赋初值MOVTH1,#3CHDJNZ20H,RETUNT;1s未到,返回
MOV20H,#0AH;重置中断次数
第37页,课件共40页,创作于2023年2月
MOVA,#01HADDA,32H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年软件专业技术资格初级重要试题及答案
- 茶道中的哲学思考考题及答案
- 企业战略与人力资源对接考题试题及答案
- 2025年软件技术专业资格初级试题及答案解读
- 妇幼保健员应急处理试题及答案
- 计算机与软件专业基础知识试题及答案
- 2025年茶艺师行业标准分析试题及答案
- 备受瞩目健康管理师试题及答案
- 二零二五年度儿童托管班教师专业发展协议
- 二零二五年度期权交易风险管理合同字模板
- 第1课 立足时代 志存高远 (课件+视频)- 【中职专用】高一思想政治《心理健康与职业生涯》(高教版2023·基础模块)
- 母乳喂养小讲课
- 19S406建筑排水管道安装-塑料管道
- 幼儿园木工坊安全教育
- 中医培训课件:《放血疗法》
- 《诗经》完整版本
- MOOC 人工智能基础-国防科技大学 中国大学慕课答案
- KA-T 20.1-2024 非煤矿山建设项目安全设施设计编写提纲 第1部分:金属非金属地下矿山建设项目安全设施设计编写提纲
- 装配式建筑预制构件安装-水平构件安装技术
- 功能性胃肠病罗马四
- 城市道路养护体系的构建与应用研究的开题报告
评论
0/150
提交评论