英锐恩单片机论坛,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 05HPORTB EQU 06H TRISA EQU 5HTRISB EQU 6H;---------------------- STATUSC EQU 0RP0 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