音视频技术
400万+工程师在用
400万+工程师在用

wydzaaaa

12年用户 23经验值
私信 关注

ST套件8位流水灯实例程序

2008-7-26 18:14

ST套件8位流水灯实例程序
;本程序的功能是,将RB的8条引脚全部设置为输出模式,依次从RB0;
;到RB7送出高电平,然后再依次从RB7到RB0送出高电平.并且周而复始;
;从而使接在RB口的LED循环往返发光;
;PIC单片机学习网-----http://www.51dz.com
;烧写时应注意:配置位已经在程序中写明,加载HEX文件时会自动加载,烧写时不用再手动设置配置位。
;实验时请注意套件跳线选择;
;*********************************************************
  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

五一电子是你成就未来,打装饰过去是学习者最好的屏台,有着舒适的学习环境,超强手动操作能力,高强素质教学视频方针。要想创建未来,快到我站来。

[此贴子已经被作者于2008-7-26 18:18:46编辑过]

更多回帖

打开APP