英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
8位流水灯编程程序
[打印本页]
作者:
kingman
时间:
2009-4-18 20:02
标题:
8位流水灯编程程序
;本程序的功能是,将RB的8条引脚全部设置为输出模式,依次从RB0;
;到RB7送出高电平,然后再依次从RB7到RB0送出高电平.并且周而复始;
;
从而使接在
RB
口的
LED
循环往返发光;
;*********************************************************
LIST P=16F84A,R=DEC ;告诉使用器件为16F84A,默认为十进制;
;---------------------------------------------------------
__CONFIG B'11111111110001';_CP_OFF&_WDT_OFF&_PWRITE_ON&_XT_OSC
;没有代码保护
;看门狗关闭
;上电廷时器开启
;振荡器模式为XT
;-----------------------
STATUS EQU 03H
;定义各寄存器
PORTA EQU 05H
PORTB EQU 06H
TRISA EQU 5H
TRISB EQU 6H
;---------------------- STATUS
C EQU 0
RP0 EQU 5
;--------------------
FLAG EQU 23H
;定义用户寄存器;
;--------------------------
ORG 00h
CLRF PORTA
CLRF PORTB
;初始IO口;
bsf STATUS,RP0
;设置数据寄存器1;
movlw B'00000000'
movwf TRISA
;定义RA口全部为输出;
movlw B'00000000'
movwf TRISB
;定义RB口全部为输出;
bcf STATUS,RP0
;恢复数据寄存器0
movlw 01H
;先认RB.0为1
movwf PORTB
BCF STATUS,C
;清标志位C
BSF FLAG,0
;置左右移标志位,先左移;
LOOP
BTFSS STATUS,C
;测试C,为1则修改标志位
GOTO LOOP1
COMF FLAG,1
;取反左右移标志位
LOOP1
BTFSS FLAG,0
;FLAG.0为1左移,为0右移
GOTO LOOP2
RLF PORTB,0
MOVWF PORTB
GOTO LOOP3
LOOP2
RRF PORTB,0
MOVWF PORTB
LOOP3
CALL DELAY
CALL DELAY
;调用廷时
GOTO LOOP
;返回
;-----------------------
DELAY
;0.2S廷时子程序
MOVLW 0FFH
MOVWF 20H
LP0
MOVLW 0FFH
MOVWF 21H
LP1
DECFSZ 21H,1
GOTO LP1
DECFSZ 20H,1
GOTO LP0
RETURN
;---------------------
END
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2