1.时钟周期即晶振的单位时间发出的脉冲数.doc_第1页
1.时钟周期即晶振的单位时间发出的脉冲数.doc_第2页
全文预览已结束

下载本文档

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

文档简介

1.时钟周期即晶振的单位时间发出的脉冲数,12MHZ=1210的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,即1/12微秒。2.一个机器周期等于12个时钟周期,所以是1微秒。1.时钟周期为晶振频率的倒数:1/12微秒;2.机器周期为12个时钟周期:1微秒;时钟周期也叫震荡周期,就是晶振震荡的周期。 时钟周期=(1/12)uS,机器周期=12*(时钟周期)=1uS (1微秒) 时钟周期1/12uS,约0.083微秒机器周期1uS (1微秒) 设MCS-51单片机的晶振频率为12MHZ,试编写10ms的延时程序(要求误差不超过0.003ms)。 2011-6-29 13:27 提问者:qiicanqiong | 悬赏分:5 | 浏览次数:726次2011-6-29 13:53 最佳答案 我们用汇编语言写单片机延时10ms的程序(用的是12MHz晶振的 MCS-51),可以编写下面的程序来实现:MOV R5,#5 D1: MOV R6,#4 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET 这个延时程序共有七条指令,现在就每一条指令执行的次数和所耗时间进行分析:第一条, MOV R5,#5 在整个程序中只执行一次,且为单周期指令,所以耗时1s,第二条, MOV R6,#4 看的指令可知,只要R5-1不为0,就会返回执行这条指令,共执行了R5次,共耗时5s,第三条, MOV R7,#248 同第二条类似,只要R6-1不为0,就会返回执行这条指令,同时受到外部循环R5的控制,共耗时R5*R6*1=20s,第四条, DJNZ R7,$ 只要R7-1不为0,就执行这条指令,同时受到外部循环的控制,由于该指令是双周期指令,共耗时为R7*R6*R5*2=9920s,第五条, DJNZ R6,D2 只要R6-1不为0,就反复执行此条指令(内循环R6次),又受外循环R7的控制,共耗时R6*R5*2=40s,第六条, DJNZ R5,D1 只要R5-1不为0,就反复执行此条指令,耗时为R5*2=10s,第七条, RET 此指令为双周期指令,耗时为2s,我们也要考虑在调用子程序时用到LCALL指令,耗时2s,最后可以得到总的延时为:1+5+20+9920+40+10+2=9998s=10ms我们可以总结延时总时间的公式:延时总时间=(2*一层循环次数+3)*二层循环次数+3*三层循环次数+3注意此公式只适用于三层以内的循环DELY :MOV R7,#10DELY1:MOV R6,#199DELY2:NOP NOP NOP DJNZ R6,DELY2 NOP DJNZ R7,DELY1 NOP NOP NOP NO

温馨提示

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

评论

0/150

提交评论