;pic10f222-led ;用PIC10F222实现3个LED的流水显示 ;************************************************* list p=10f222 #include __config 0xff8 ;************************************************* Delay1 EQU 0x09 Delay2 EQU 0x10 Delay3 EQU 0x11 Display EQU 0x12 ;************************************************************* ORG 0 NOP MOVLW B'11000111' ;禁止弱上拉,内部指令周期时钟Fosc/4,GP2为数字I/O OPTION LOP CLRF TMR0 LOOP BTFSS TMR0,7 ; GOTO LOOP DECFSZ Delay3,f GOTO LOP CLRF ADCON0 ;关闭ADC,GP0/GP1配置为数字I/O MOVLW 4 ;准备GP2引脚输出高电平 MOVWF Display ; MOVLW 0 ;定义I/O口为输出 TRIS GPIO ; Mainloop MOVF Display,w ;点亮GP2的LED MOVWF GPIO ; Delayloop DECFSZ Delay1,f ;Delay1内容递减,结果存回Delay1,为0间跳 GOTO Delayloop ;延时 DECFSZ Delay2,f ;Delay2内容递减,结果存回Delay2,为0间跳 GOTO Delayloop ;延时 BCF STATUS,C ;确保状态位C为1 RRF Display,f ;Display内容右移 BTFSC STATUS,C ;判断C,为0间跳,为1顺序执行 BSF Display,2 ;C为1,Display第2位置0 GOTO Mainloop ;再来一遍 END