电子时钟定时算法

电子时钟定时算法

ID:37604520

大小:224.00 KB

页数:40页

时间:2019-05-13

电子时钟定时算法_第1页
电子时钟定时算法_第2页
电子时钟定时算法_第3页
电子时钟定时算法_第4页
电子时钟定时算法_第5页
资源描述:

《电子时钟定时算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、定时器及应用定时/计数器的基本结构如图所示:例1、设单片机晶振频率为6MHZ,使用定时器1以方式0产生周期为500us的等宽正方波连续脉冲,并由P1.0输出,以查询方式完成。解:1、计算计数初值要产生500us的等宽正方波脉冲,只需在P1.0端以250us为周期交替输出高低电平即可实现,为此定时时间为250us。使用6MHZ晶振,则一个机器周期为2us,方式0为13位计数结构,设初值为X,则:(213-X)*12*1/6=250得:X=8067,二进制数表示为:1111110000011,十六进制表示为,高

2、8位为:0FCH,低5位为:03H。其中高8位装入TH1,即TH1=0FCH,低5位装入TL1,即TL1=03H。2、TMOD寄存器初始化为把定时器/计数器设定为方式0,则M1M0=00;为实现定时功能,应使C/T=0;为实现定时器/计数器1的运行控制,则GATE=0。定时器/计数器T0不用,有关位设定为0,因此TMOD寄存器初始化为00H。3、由定时器控制器TCON中的TR1位控制定时的启动和停止,TR1=1启动,TR1=0停止。4、使用查询就禁止中断IE=00H5、程序设计:MOVTMOD,#00H;设

3、置T1为工作方式0MOVTH1,#0FCH;设置计数初值MOVTL1,#03HMOVIE,#00H;禁止中断SETBTR1;启动定时LOOP:JBCTF1,LOOP1;查询计数溢出AJMPLOOPLOOP1:MOVTH1,#0FCH;重新设置计数初值MOVTL1,#03HCPLP1.0;输出取反AJMPLOOP;重复循环例3、使用定时器0以工作方式2产生100us定时,在P1.0输出周期为200us的连续方波脉冲,已知晶振频率fosc=6MHZ。解:1、计算计数初值6MHZ晶振下,一个机器周期为2us,以T

4、H0作重装载的预置寄存器,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,即:02H3、由定时器控制器TCON中的TR0位控制定时的启动和停止,TR0=1启动,TR0=0停止。4、使用中断

5、方式,应开中断EA位和ET0位置“1”5、程序设计(查询方式)MOVTMOD,#02H;设置T0为工作方式2MOVTH0,#0CEH;设置计数初值MOVTL0,#0CEHMOVIE,#00H;禁止中断SETBTR0;启动定时LOOP:JBCTF0,LOOP1;查询计数溢出AJMPLOOPLOOP1:CPLP1.0;输出取反AJMPLOOP;重复循环5、程序设计(中断方式)MOVTMOD,#02H;设置T0为工作方式2MOVTH0,#0CEH;设置计数初值MOVTL0,#0CEHSETBEA;开中断SETBE

6、T0;定时器1允许中断LOOP:SETBTR0;启动定时HERE:SJMP$;等待中断AJMPLOOP中断服务程序:CPLP1.0;输出取反RETI;中断返回设某用户系统中已使用了两个外部中断源,并置定时器T1工作在模式2,作串行口波特率发生器用。现要求再增加一个外部中断源,并由P1.0输出一个5KHz的方波。Fosc=12MHz。分析:目的:1)增加一个外部中断;2)使P1.0输出一个方波。条件:1)两个外部中断源已被使用2)定时器T1已用于串行口波特率发生器因此:可利用定时/计数器T0,使之工作在模式3

7、,1)利用TL0扩展外部中断源2)利用TH0作定时器使用,输出方波设置初值:1)TL0=0FFH2)因为输出方波f=5kHz,故方波周期为200us,用TH0产生100us的定时,故TH0的初值X=256–(定时时间/机器周期)=256-(100us*晶振频率/12)=156设定T0工作方式,TMOD,TCON.程序:MOVTMOD,#27H;T0:模式3,计数方式;T1:模式2,定时方式MOVTL0,#0FFH;一旦加1,马上溢出,申请中断MOVTH0,#156;TH0初值MOVTH1,#data;根据波

8、特率要求而定MOVTL1,#dataMOVTCON,#55H;01010101MOVIE,#9FH;开放全部中断TL0INT:MOVTL0,#0FFH;TL0重新赋值…..RETITH0INT:MOVTH0,#156;TH0重新赋值CPLP1.0RETI低频信号发生器驱动程序设计一个控制程序,使89c51的P1口输出8路低频方波脉冲,频率分别为100,50,25,20,10,5,2,1Hz。1.计算定时器初值使用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。