;-----------------------------------------------------------------------; ; BINCNT.ASM 键控流水灯——HAMPIC项目之一,供套件测试用。 ; ; 下载: http://www.qsl.net/bd6cr/hampic/soft/bincnt.hex ; ;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------; ; 作者:荣新华 BD6CR 2001年12月9日 ; ;-----------------------------------------------------------------------; LIST P=16F84 ; 告诉编译程序使用何种PIC单片机 INCLUDE "p16f84.inc" ; 定义了特殊寄存器等内容的头文件 ERRORLEVEL -224 __CONFIG _PWRTE_ON & _XT_OSC & _WDT_OFF ; 配置字 ;变量定义 L1 EQU 0x20 L2 EQU 0x21 L3 EQU 0x22 ORG 0 ; 程序从零地址开始 ;-----------------------------------------------------------------------; ; 我们设置了PORTA4为输入,PORTA0-3为输出,PORTB0-7均为输出 ; ;-----------------------------------------------------------------------; movlw B'00010000' ; 1代表输入,0代表输出 tris PORTA ; 设置PORTA movlw B'00000000' tris PORTB ; 设置PORTB ;-----------------------------------------------------------------------; ; 这里是主程序 ; ;-----------------------------------------------------------------------; movlw B'00000001' movwf PORTB ; 初始为00000001 bcf STATUS,C ; 清空状态位C,以免出现不确定状态 loop: btfss PORTA,4 ; 只有PORTA4是高电平方可流水显示 goto loop ; 否则再检查PORTA4的电平 rrf PORTB, f ; 循环右移位 movlw .1 ; 延时程序,用循环的方式 movwf L1 loop1 movlw .255 movwf L2 loop2 movlw .255 movwf L3 loop3 decfsz L3, f goto loop3 decfsz L2, f goto loop2 decfsz L1, f goto loop1 goto loop ; 单片机程序没有结束退出的概念 end ; 形式上的程序结束