LED 跑马灯程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档