原创 单片机程序延时时间的设计

2007-5-21 20:00 2539 4 4 分类: MCU/ 嵌入式

石英晶体为12MHz,1个机器周期为1μs
                                             机器周期
          MOV      R4,#20        2个         2
D1:     MOV      R5,#248      2个         2
          DJNZ      R5,$            2个         2X248
          DJNZ      R4,D1         2个         2X20=40


20X(2X248+2)+2=1002机器周期
1个机器周期为1μs,10002X1μs=10.002ms
由以上可知,当R4=10、R5=248时,延时5ms,R4=20为10ms,以此类推。







延时1s子程序
             MOV     R2,#18H
             LCALL  7FEBH
             RET


             ORG      7FEBH           ;通用延时子程序(07EBH&0FEBH&...)
L7FEB: PUSH    02H                ;R2(复位后R2即为02H)存放时间常数,进栈保护
L7FED: PUSH    02H                ;R2进栈保护
L7FEF: PUSH    02H                 ;进栈
L7FF1: DJNZ     R2,$                ;R2不为0等待
             POP      02H                 ;出栈
             DJNZ    R2,L7FEF       ;R2不为0转
             POP      02H                 ;出栈
             DJNZ    R2,L7FED       ;R2不为0转
             POP      02H                 ;出栈
             DJNZ    R2,L7FEB       ;R2不为0转
             RET                              ;子程序返回
             END






文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条