延时程序设计.ppt

上传人:夺命阿水 文档编号:248478 上传时间:2023-03-24 格式:PPT 页数:19 大小:259KB
返回 下载 相关 举报
延时程序设计.ppt_第1页
第1页 / 共19页
延时程序设计.ppt_第2页
第2页 / 共19页
延时程序设计.ppt_第3页
第3页 / 共19页
延时程序设计.ppt_第4页
第4页 / 共19页
延时程序设计.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《延时程序设计.ppt》由会员分享,可在线阅读,更多相关《延时程序设计.ppt(19页珍藏版)》请在课桌文档上搜索。

1、实验四软件延时程序设计,延时设计方法1、软件延时-采用程序实现特点:灵活性,消耗CPU资源2、硬件延时采用电路实现特点:时间比较准备,不占用CPU资源,一、实验目的 1、掌握循环程序(多重循环程序)的设计方法。2、掌握软件延时程序的时间计算方法和设计方法;3、学会如何利用KEIL来调试和观察时间。二、实验原理 软件延时利用了指令的时间属性编制的一段循环子程序来空耗CPU的时间以达到延时的目的。,三、相关知识 1、时钟周期(振荡周期)、状态周期、机器周期和指令周期的关系 1TM=12TOSC、1TS=2TOSC、1TI=(1、2、4)TOSC 2、指令的执行时间(查询指令表)3、时间和频率单位换

2、算 1s=103ms=106us=109ns=1012ps 1ms=10-3s,1us=10-6s 1MHz=103 KHz=106Hz 4、循环程序结构,三、实验内容(任选一)1、利用汇编指令编程实现5ms的延时子程序;2、利用汇编指令编程实现10ms的延时子程序;3、利用汇编指令编程实现15ms的延时子程序;4、利用汇编指令编程实现20ms的延时子程序;5、利用汇编指令编程实现1s的延时子程序。好参数,请记下来,以后享用!,软件延时子程序(循环结构),单重循环延时子程序双重循环延时子程序三重循环延时子程序,1、单重循环延时子程序,void Delay(void)unsigned char

3、i;for(i=10;i0;i-);,DELAY:MOV R5,#10;1TMDL1:DJNZ R5,DL3;2TM RET;2TM,晶振为12MHz,500uS以内延时采用!,t=(1+2*R5+2)*TM,2、双重循环延时子程序,void Delay(void)unsigned char i,j;for(i=10;i0;i-)for(j=100;j0;j-);,DELAY:MOV R5,#10;1TMDL2:MOV R6,#100;1TMDL1:DJNZ R6,DL1;2TM DJNZ R5,DL2;2TM RET;2TM,晶振为12MHz,130mS以内延时采用!,t=1+(1+2*R6

4、+2)*R5+2*TM,3、三重循环延时子程序,void Delay(void)unsigned char i,j,k;for(i=100;i0;i-)for(j=200;j0;j-)for(k=248;k0;k-);,DELAY:MOV R5,#100;1TMDL3:MOV R6,#200;1TMDL2:MOV R7,#248;1TMDL1:DJNZ R7,DL1;2TM DJNZ R6,DL2;2TM DJNZ R5,DL3;2TM RET;2TM,晶振为12MHz,33S以内延时采用!,t=1+1+(1+2*R7+2)*R6+2*R5+2*TM,已知STC89C51单片机使用的晶振频率为

5、6MHz,请阅读下面这段程序,分别计算如下程序段总机器周期 和总执行时间t。ORG 0000H DELAY:MOV R5,#100;1TMDL3:MOV R6,#200;1TMDL2:MOV R7,#248;1TMDL1:DJNZ R7,DL1;2TM DJNZ R6,DL2;2TM DJNZ R5,DL3;2TM RET;2TMSJMP$END,fOSC=6MHz 1TM=12TOSC,又 TOSC=1/fOSC TM=12/fOSC=12/6MHz=2s总TM=1+1+(1+2248+2)200+2100+2=9980303t=99803032s=19.960606S,1、准备 注意:建立

6、工程文件夹。2、打开Keil新建工程(1)为工程指定路径(2)为工程命名(3)为工程指定CPU3、新建源代码文件并保存,添加到工程。注意:C语言文件(*.c)、汇编语言(*.asm)4、配置工程属性 设定将默认的晶振33.0改为11.0592,将Creat hex file选项打勾。5、编译,改错(Build/Rebuild All)生成目标代码(*.Hex、*.Bin)6、调试(软件Debug、硬件Debug、Proteus 仿真)Over!,Keil软件操作步骤,如果只是看代码,不实践操练的话,看过东西一下就忘了。一步一步走过的“脚印”将牢记于心。那么赶紧动手实践吧!,void Delay

7、(void)unsigned char i,j,k;for(i=20;i0;i-)for(j=20;j0;j-)for(k=200;k0;k-);,分析以下C语言实现的延时程序,Delay:C:0 x0003 7F14 MOV R7,#0 x14C:0 x0005 7E14 MOV R6,#0 x14C:0 x0007 7DE6 MOV R5,#0 xC8C:0 x0009 DDFE DJNZ R5,C:0009C:0 x000B DEFA DJNZ R6,C:0007C:0 x000D DFF6 DJNZ R7,C:0005C:0 x000F 22 RET 总TM=1+1+(1+2200+2

8、)20+220+2=161263t=1612632s,通过反汇编转换为了汇编语言,void Delay(void)unsigned char i,j,k;for(i=0;i20;i+)for(j=0;j20;j+)for(k=0;k200;k+);,分析以下C语言实现的延时程序,Delay:C:0 x0003 E4 CLR AC:0 x0004 FF MOV R7,AC:0 x0005 E4 CLR AC:0 x0006 FE MOV R6,AC:0 x0007 E4 CLR AC:0 x0008 FD MOV R5,AC:0 x0009 0D INC R5C:0 x000A BDC8FCCJNE R5,#0 xC8,C:0009C:0 x000D 0E INC R6C:0 x000E BE14F6 CJNE R6,#0 x14,C:0007C:0 x0011 0F INC R7C:0 x0012 BF14F0 CJNE R7,#0 x14,C:0005C:0 x0015 22 RET,通过反汇编转换为了汇编语言,如果只是看代码,不实践操练的话,看过东西一下就忘了。一步一步走过的“脚印”将牢记于心。那么赶紧动手实践吧!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号