PIC单片机实现x ms/1s钟精确延时 -
[导读]
1、编写子程序DelayMS,实现延时x毫秒的功能,x由w寄存器中的值设定。;**************DelayMS**************DelayMS ; 延时x毫秒,x由变量w寄存器设定 movwf L1 ;Loop1
1、编写子程序DelayMS,实现延时x毫秒的功能,x由w寄存器中的值设定。
本文引用地址: http://www.21ic.com/app/mcu/201806/764525.htm
;**************DelayMS**************
DelayMS ; 延时x毫秒,x由变量w寄存器设定
movwf L1 ;
Loop1
movlw .39 ;
movwf L2 ;
Loop2
movlw .31 ;
movwf L3 ;
Loop3
nop ;
decfsz L3, f ;
goto Loop3 ;
decfsz L2, f ;
goto Loop2 ;
decfsz L1, f ;
goto Loop1 ;
return ;
;------------------------------------------------------------------------------
2、编写子程序Delay1S,实现1秒钟的精确延时。
list p=16f877A ; 标明所用的处理器类型
#include
;***** 变量声明*******************************************************
L1 EQU 0x70 ;延时函数循环变量
L2 EQU 0x71
L3 EQU 0x72
;**********************************************************************
org 0x0000 ; 复位入口地址
;--------------------------------Main的代码-------------------------------------
main
banksel TRISB;
bcf TRISB, RB0;
banksel PORTB;
Loop
bsf PORTB, RB0;
movlw .100;
call Delay1S;
bcf PORTB, RB0;
movlw .100;
call Delay1S;
goto Loop ;
;-----------------------------子函数-------------------------
;**************Delay1S**************
Delay1S ; 延时x毫秒,x由变量w寄存器设定
movwf L1 ;
Loop1
movlw .200 ;
movwf L2 ;
Loop2
movlw .62 ;
movwf L3 ;
Loop3
nop ;
decfsz L3, f ;
goto Loop3 ;
decfsz L2, f ;
goto Loop2 ;
decfsz L1, f ;
goto Loop1 ;
return ;
;----------------------------------------------------------------------
END ; 程序结束
查看评论 回复
"PIC单片机实现x ms/1s钟精确延时 -"的相关文章
- 上一篇:IAR FOR AVR中精确软件延时方法 -
- 下一篇:单片机精确延时几种方式 -