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