本帖最后由 kknd1573 于 2013-6-2 23:15 编辑
各位大侠,小弟初学PIC16的汇编遇到一个问题,有一段PIC16F506单片机的汇编程序,可是小弟怎么也不理解:
………………变量定义
#DEFINE IN_SINGLE PORTB,2
DELAY_H EQU 11H
DELAY_L EQU 12H
TIME_H EQU 16H
TIME_L EQU 17H
………………开始
LOOP_RESET:
MOVLW 00H
MOVWF STATUS
MOVLW B'11000000'
TRIS PORTC
MOVLW B'11111111'
TRIS PORTB
LOOP_1
MOVLW LOW(D'2200')
MOVWF DELAY_ L
MOVLW HIGH(D'2200')
MOVWF DELAY_ H
INCF TIME_ L
BTFSC STATUS,Z
INCF TIME_ H
MOVF TIME_ L,W
IORWF TIME_ H,W
BTFSC STATUS,Z
GOTO LOOP_RESET
BTFSS IN_SINGLE
GOTO LOOP_1
CLRF TIME_ H
CLRF TIME_ L
NOP
NOP
……………………
这一段无非是初始化加一个系统的初始延时,延时是利用TIME_H和TIME_L做的16位加法延时,而我的问题是:
延时开始为啥需要对DELAY进行赋值?
DELAY的赋值在这段程序中其的什么作用?
整个这段程序要怎么理解?
如果用C语言来写,这一段又要如何表达呢?
|