📄 1_3.asm
字号:
; **********************************************
;文件名"1_3.ASM"
;作者:求是科技
;功能:在程序中调用软件延时程序的点灯程序
; **********************************************
STATUS EQU 03H ;定义状态寄存器地址
PORTD EQU 08H ;定义端口D的数据寄存器地址
TRISD EQU 88H ;定义端口D的方向寄存器
RP1 EQU 06H ;定义状态寄存器中的页选位RP1
RP0 EQU 05H ;定义状态寄存器中的页选位RP0
DATA1 EQU 20H ;定义外循环变量
DATA2 EQU 21H ;定义内循环变量
TEMP EQU 22H ;定义临时变量存储端口D的输入
COUNT1 EQU 0DH ;定义存储外循环次数的变量
COUNT2 EQU 0FFH ;定义存储内循环次数的变量
; ***********************主程序开始***********************
ORG 00H ;
GOTO MAIN ;
; ***********************主程序开始***********************
MAIN
BSF STATUS,RP0 ;
BCF STATUS,RP1 ;选择BANK1
MOVLW 00H ;将00H送到W
MOVWF TRISD ;设置PORTD为输出
BCF STATUS,RP0 ;
BCF STATUS,RP1 ;转到体BANK0
START
MOVLW 0FFH ;将FFH送到W
MOVWF PORTD ;点亮PORTD上所有的灯
CALL DELAY ;延时1s
MOVLW 0FH ;将0FH送到W
MOVWF PORTD ;只点亮PORTD低四位上所有的灯
CALL DELAY ;延时1s
MOVLW 0F0H ;将0F0H送到W
MOVWF PORTD ;只点亮PORTD高四位上所有的灯
CALL DELAY ;延时1s
MOVLW 00H ;将00H送到W
MOVW F PORTD ;灭PORTD上所有的灯
CALL DELAY ;延时1s
GOTO START ;循环
; ***********************延时程序开始***********************
DELAY
MOVLW COUNT1 ;设置外部循环的次数
MOVWF DATA1 ;
LOOP1
MOVLW COUNT2 ;设置内部循环的次数
MOVWF DATA2 ;
LOOP2
DECFSZ DATA2,1 ;内部循环变量自减1,为0则跳转
GOTO LOOP2 ;
DECFSZ DATA1,1 ;外部循环变量自减1,为0则跳转
GOTO LOOP1 ;
RETURN ;返回主程序
; **********************************************
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -