LED 跑马灯程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LED 跑马灯程序
list p=16f877A
#include
__CONFIG_WDT_OFF&_RC_OSC&_LVP_ON ;ICD2的配置字定义
;变量定义
w_temp EQU 0x7D ;中断现场保护用变量status_temp EQU 0x7E ;中断现场保护用变量
pclath_temp EQU 0x7F ;中断现场保护用变量cblock 0x20
DLY_CNT1 ;延时1S用的计数器
DLY_CNT2 ;延时1S用的计数器
DLY_CNT3 ;延时1S用的计数器
endc
org 0x000 ;单片机复位向量入口
nop ;ICD2调试用
goto main ;跳转到主程序入口
org 0x004 ;中断复位向量入口
;中断代码区
retfie ;中断返回,总中断打开
main
;主程序区
BANKSEL TRISD ;选择TRISD寄存器的BANK
CLRF TRISD ;TRISD清0,即D口全为输出BANKSEL PORTD ; 选择PORTD寄存器的BANK MOVLW .1 ;常数1,b’00000001’送到W
MOVWF PORTD ;W送到PORTD,D口最低位为1 LOOP:
CALL DELAY1S ;调用延时函数
RLF PORTD,W ;先正确设置进位标志位C
RLF PORTD,F ;PORTD内容左移一位,最高位移到C中GOTO LOOP ;跳转到标号LOOP,循环执行
7
DELAY1S MOVLW 06H ;外循环常数
MOVWF DLY_CNT1 ; 外循环寄存器
LOOP1 MOVLW 0EBH ; 中环常数
MOVWF DLY_CNT2 ; 中环寄存器
LOOP2 MOVLW 0ECH ;
MOVWF DLY_CNT3 ;
LOOP3 DECFSZ DLY_CNT3,F ;
GOTO LOOP3 ;
DECFSZ DLY_CNT2,F ;
GOTO LOOP2 ;
DECFSZ DLY_CNT1,F ; GOTO LOOP1 ;继续外循环RETURN
END