p; ;将端口C的方向控制码00H先送W
movwf trisa ;再转到方向寄存器,将其设置为输出
movwf trisc ;设置C口为输出
movlw 0ffh ;同理,将端口B设置为输入
movwf trisb
clrf option_reg ;开起内部弱上拉
movlw 06h
movwf adcon1 ;设置A口为普通的数字口
bcf status,rp0 ;恢复到文件寄存器体0
clrf porta ;使PORTA输出为低电平,让所有数码管共阳极都为高电平
loop1 movlw .10
movwf yan ;设置循环值10
movlw 00h
movwf wang ;送初值00H到wang显示寄存器
loop2
movf wang,0
subwf yan,0 ;判断是否到了显示数值“9”
btfsc status,z ;全亮则返回loop1重新给yan,wang赋值为0
goto loop1
movf wang,0 ;否则继续调用显示
程序
call CHABIAO ;调用数码段显示
程序
movwf portc
;-----------------------------------------------------------------------------
;测试按键与否,以及如按下键则寄存器wang的数据加1
;-----------------------------------------------------------------------------
check btfsc portb,0 ;测试S3按下否?是!跳过下条指令
goto check ;否!则循环检测
call delay ;调用廷时子
程序,消除按钮抖动的影响
btfsc portb,0 ;再次测试S3按下否?是!跳过下条指令
goto check ;否!则循不检测
incf wang,1 ;寄存器wang的数据寄存器加1
check1 btfss portb,0 ;测试S3断开否?是!跳过下条指令
goto check1 ;否!则循不检测
call delay ;调用廷时子程序,消除按钮抖动的影响
btfss portb,0 ;再次测试S3断开否?是!跳过下条指令