英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3530|回复: 0
打印 上一主题 下一主题

8位流水灯编程程序

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-18 20:02:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
;本程序的功能是,将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
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-12-25 21:55 , Processed in 0.055326 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表