定时单片机汇编精.ppt
《定时单片机汇编精.ppt》由会员分享,可在线阅读,更多相关《定时单片机汇编精.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、定时单片机汇编第1页,本讲稿共20页例例题题 已已知知某某控控制制系系统统时时钟钟频频率率为为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计数器应为:(计数器应为:(TH0)=0FCH,(,(TL0)=03H。如果采
2、用查询方式则程序如下所示(注意。如果采用查询方式则程序如下所示(注意初始化的顺序初始化的顺序)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 A
3、JMP LOOP ;循环执行;循环执行第2页,本讲稿共20页设定时器设定时器T0选择工作模式选择工作模式0,定时时间为,定时时间为1ms,fOSC=6MHz。试确定。试确定T0初值,计算最大定时时间初值,计算最大定时时间T。解解:当:当T0处于工作模式处于工作模式0时,加时,加1计数器为计数器为13位。设位。设T0的初值为的初值为X。则。则X=7692转换为二进制数转换为二进制数X=1111000001100B=1E0CHT0的低的低5位:位:01100B=0CHT0的高的高8位:位:11110000B=F0HT0最大定时时间对应于最大定时时间对应于13位计数器位计数器T0的各位全为的各位全为
4、1,即(,即(TH0)=FFH,(,(TL0)=1FH。则则第3页,本讲稿共20页例:例:利用利用T0的工作模式的工作模式0产生产生1ms的定时,在的定时,在P1.0引脚上输出引脚上输出2ms的的方波。设单片机晶振方波。设单片机晶振=12MHz。解:解:(1 1)选择工作模式)选择工作模式)选择工作模式)选择工作模式要在要在P1.0引脚输出周期为引脚输出周期为2ms方波,只要使方波,只要使P1.0每隔每隔1ms取反一次取反一次即可。即可。T0的模式字节的模式字节TMOD=00H,即,即TMOD.1TMOD.0M1M0=00,T0为模式为模式0;TMOD.2C/T=0,T0为定时状态;为定时状态
5、;TMOD.3GATE=0,表示计数不受表示计数不受INT0控制控制;TMOD.4TMOD.7可为任意值。因可为任意值。因T1不用,这里取不用,这里取0第4页,本讲稿共20页(2 2)计算)计算)计算)计算1ms1ms定时时定时时定时时定时时T0T0的初值的初值的初值的初值机器周期机器周期设设T0的计数初值为的计数初值为X,则,则=8192-1000=7192D=1110000011000BTH0初值为初值为E0H,TL0初值为初值为18H。可查询。可查询TF0的状态来控的状态来控制制P1.0输出。输出。第5页,本讲稿共20页 (3 3)查询方式)查询方式)查询方式)查询方式采用查询方式的程序
6、很简单,但在定时器计数过程中,采用查询方式的程序很简单,但在定时器计数过程中,CPU要不断查询溢出标志位要不断查询溢出标志位TF0的状态。这就占用了很多的状态。这就占用了很多CPU的工作的工作时间,使时间,使CPU的效率下降。的效率下降。程序清单:程序清单:MOVTMOD,#00H;设置设置T0T0为模式为模式0 0MOVTL0,#18H;送初值;送初值MOVTH0,#0E0HSETBTR0;启动;启动T0T0LOOP:JBCTF0,NEXT;查询定时时间到否?;查询定时时间到否?SJMPLOOPNEXT:MOVTL0,#18H;重装计数初值;重装计数初值MOVTH0,#0E0HCPLP1.0
7、;输出取反;输出取反SJMPLOOP;重复循环;重复循环第6页,本讲稿共20页(4 4)定时器溢出中断方式)定时器溢出中断方式)定时器溢出中断方式)定时器溢出中断方式主程序主程序MAIN:MOVTMOD,#00H;设置设置T0T0为模式为模式0 0MOVTL0,#18H;送初值送初值MOVTH0,#0E0HSETBEA;CPUCPU开中断开中断SETBET0;T0T0中断允许中断允许SETBTR0;启动启动T0T0HERE:SJMPHERE;等待中断等待中断中断服务程序中断服务程序ORG000BH;T0T0入口入口AJMPCTC0;转中断服务程序转中断服务程序CTC0:MOVTL0,#18H;
8、重装初值;重装初值MOVTH0,#0E0HCPLP1.0;输出方波;输出方波RETI;中断返回;中断返回第7页,本讲稿共20页模式模式1及应用及应用该模式对应的是该模式对应的是一个一个16位的定时器位的定时器/计数器计数器其结构与操作几乎与模式其结构与操作几乎与模式0完全相同,完全相同,唯一的差别是:在模式唯一的差别是:在模式1中,中,寄存器寄存器TH0和和TL0是以全部是以全部16位参与操作。位参与操作。用于定时工作方式时,定用于定时工作方式时,定时时间为时时间为t=(2t=(21616T0T0初值初值初值初值)振荡周期振荡周期振荡周期振荡周期1212用于用于计数工作方式计数工作方式时,计数
9、长度为时,计数长度为216=65536(个外部脉冲)。(个外部脉冲)。第8页,本讲稿共20页模式模式1结构结构16位计数器位计数器 工工作作方方式式1与与工工作作方方式式0基基本本相相同同,只只是是其其可可以以实实现现16位位定定时时/计计数数,即即在在这这种种方方式式下下使使用用TH0与与TL0的的全全部部16位位。因因此此工工作作方方式式0所所能能完完成成的的功功能能,工工作作方方式式1都都可以实现。可以实现。第9页,本讲稿共20页例例:用定时器:用定时器T1产生一个产生一个50Hz的方波,由的方波,由P1.1输出。仍使用程序输出。仍使用程序查询方式,查询方式,fosc=12MHz。解解:
10、方波周期:方波周期T=1/50Hz=0.02s=20ms,用用T1定时定时10ms,计数初,计数初值值X为为X=216-12101000/12=65536-10000=55536=D8F0H源程序如下:源程序如下:MOVTMOD,#10H;T1;T1模式模式1 1,定时,定时SETBTR1;启动启动T1T1LOOP:MOVTH1,#0D8H;装入装入T1T1计数初值计数初值MOVTL1,#0F0HJNBTF1,$;T1;T1没有溢出等待没有溢出等待CLRTF1;产生溢出,请标志位;产生溢出,请标志位CPLP1.1;P1.1;P1.1取反取反 输出输出SJMPLOOP;循环;循环第10页,本讲稿
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定时 单片机 汇编
限制150内