#INCLUDE "P16F877.inc" ; org 00h ; goto a1; org 0ch; ;****************************************** ; 主程序段 ;****************************************** a1 movlw 8;循环次数 movwf 40h; movlw B'01111111';初显示值 movwf 41h; a2 bsf STATUS,RP0;选择体1 bcf STATUS,RP1; movlw 00h; movwf TRISD;设置RD口为输出口 bcf STATUS,RP0;选择体0 bcf STATUS,RP1; movfw 41h; movwf PORTD;输出显示数据 RRF 41H,0;处理C rrf 41h,1;循环右移 call m001;延时 decfsz 40h,1;判断是否完成8次 goto a2;否继续 goto a1;是返回重新设置 ;************************************************ ; 延时子程序 ;************************************************ m001 movlw 4 movwf 30h m002 movlw 248 movwf 31h m003 movlw 250 movwf 32h decfsz 32h,1 goto $-1 decfsz 31h,1 goto m003 decfsz 30h,1 goto m002 return end