延时程序设计.ppt_第1页
延时程序设计.ppt_第2页
延时程序设计.ppt_第3页
延时程序设计.ppt_第4页
延时程序设计.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验四软件延时程序设计 延时设计方法1 软件延时 采用程序实现特点 灵活性 消耗CPU资源2 硬件延时 采用电路实现特点 时间比较准备 不占用CPU资源 一 实验目的1 掌握循环程序 多重循环程序 的设计方法 2 掌握软件延时程序的时间计算方法和设计方法 3 学会如何利用KEIL来调试和观察时间 二 实验原理软件延时利用了指令的时间属性编制的一段循环子程序来空耗CPU的时间以达到延时的目的 三 相关知识1 时钟周期 振荡周期 状态周期 机器周期和指令周期的关系1TM 12TOSC 1TS 2TOSC 1TI 1 2 4 TOSC2 指令的执行时间 查询指令表 3 时间和频率单位换算1s 103ms 106us 109ns 1012ps1ms 10 3s 1us 10 6s1MHz 103KHz 106Hz4 循环程序结构 三 实验内容 任选一 1 利用汇编指令编程实现5ms的延时子程序 2 利用汇编指令编程实现10ms的延时子程序 3 利用汇编指令编程实现15ms的延时子程序 4 利用汇编指令编程实现20ms的延时子程序 5 利用汇编指令编程实现1s的延时子程序 好参数 请记下来 以后享用 软件延时子程序 循环结构 单重循环延时子程序双重循环延时子程序三重循环延时子程序 1 单重循环延时子程序 voidDelay void unsignedchari for i 10 i 0 i DELAY MOVR5 10 1TMDL1 DJNZR5 DL3 2TMRET 2TM 晶振为12MHz 500uS以内延时采用 t 1 2 R5 2 TM 2 双重循环延时子程序 voidDelay void unsignedchari j for i 10 i 0 i for j 100 j 0 j DELAY MOVR5 10 1TMDL2 MOVR6 100 1TMDL1 DJNZR6 DL1 2TMDJNZR5 DL2 2TMRET 2TM 晶振为12MHz 130mS以内延时采用 t 1 1 2 R6 2 R5 2 TM 3 三重循环延时子程序 voidDelay void unsignedchari j k for i 100 i 0 i for j 200 j 0 j for k 248 k 0 k DELAY MOVR5 100 1TMDL3 MOVR6 200 1TMDL2 MOVR7 248 1TMDL1 DJNZR7 DL1 2TMDJNZR6 DL2 2TMDJNZR5 DL3 2TMRET 2TM 晶振为12MHz 33S以内延时采用 t 1 1 1 2 R7 2 R6 2 R5 2 TM 已知STC89C51单片机使用的晶振频率为6MHz 请阅读下面这段程序 分别计算如下程序段总机器周期和总执行时间t ORG0000HDELAY MOVR5 100 1TMDL3 MOVR6 200 1TMDL2 MOVR7 248 1TMDL1 DJNZR7 DL1 2TMDJNZR6 DL2 2TMDJNZR5 DL3 2TMRET 2TMSJMP END fOSC 6MHz 1TM 12TOSC 又 TOSC 1 fOSC TM 12 fOSC 12 6MHz 2 s总TM 1 1 1 2 248 2 200 2 100 2 9980303 t 9980303 2 s 19 960606S 1 准备注意 建立工程文件夹 2 打开Keil新建工程 1 为工程指定路径 2 为工程命名 3 为工程指定CPU3 新建源代码文件并保存 添加到工程 注意 C语言文件 c 汇编语言 asm 4 配置工程属性设定将默认的晶振33 0改为11 0592 将Creathexfile选项打勾 5 编译 改错 Build RebuildAll 生成目标代码 Hex Bin 6 调试 软件Debug 硬件Debug Proteus仿真 Over Keil软件操作步骤 如果只是看代码 不实践操练的话 看过东西一下就忘了 一步一步走过的 脚印 将牢记于心 那么赶紧动手实践吧 voidDelay void unsignedchari j k for i 20 i 0 i for j 20 j 0 j for k 200 k 0 k 分析以下C语言实现的延时程序 Delay C 0 x00037F14MOVR7 0 x14C 0 x00057E14MOVR6 0 x14C 0 x00077DE6MOVR5 0 xC8C 0 x0009DDFEDJNZR5 C 0009C 0 x000BDEFADJNZR6 C 0007C 0 x000DDFF6DJNZR7 C 0005C 0 x000F22RET总TM 1 1 1 2 200 2 20 2 20 2 161263 t 161263 2 s 通过反汇编 转换为了汇编语言 voidDelay void unsignedchari j k for i 0 i 20 i for j 0 j 20 j for k 0 k 200 k 分析以下C语言实现的延时程序 Delay C 0 x0003E4CLRAC 0 x0004FFMOVR7 AC 0 x0005E4CLRAC 0 x0006FEMOVR6 AC 0 x0007E4CLRAC 0 x0008FDMOVR5 AC 0 x00090DINCR5C 0 x000ABDC8FCCJNER5 0 xC8 C 0009C 0 x000D0EINCR6C 0 x000EBE14F6CJNER6 0 x14 C 0007C 0 x00110

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论