您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页PIC计数程序

PIC计数程序

来源:华佗小知识


TMR0定时中断扫描 中断服务

BCF INTCON,T0IF ;清TRM0溢出标志位 … … RETFIE

定时器16ms中断定时

MOVLW 0A0H ;打开TMR0中断申请 MOVWF INTCON

BSF STATUS,RP0 ;选体1

MOVLW 05H ;设置TMR0分频比1:

MOVWF OPTION_REG

BCF STATUS,RP0 ;选体0

MOVLW 05H ;送初值常数入TMR0,时间为16mS MOVWF TMR0

GOTO $-1 ;等待TMR0中断发生

减1计数程序 GWJY

DECF LED0 ;个位减1

MOVLW 00H ;将W寄存器设数值为0 SUBWF LED0 ;将LED0减0

BTFSS STATUS,Z ;检测LED0是否到0

GOTO GWJY ;个位不到0,返回继续减1 DECF LED1 ;个位到0,十位减1 MOVLW 09H ;个为设数值为9 MOVWF LED0 SWJY

MOVLW 00H ;将W寄存器设数值为0 SUBWF LED1 ;将LED1减0

BTFSS STATUS,Z ;检测LED1是否到0 GOTO GWJY ;十位不到0,返回继续减1 DECF LED2 ;十位到0,百位减1 MOVLW 09H ;十位设数值为9 MOVWF LED1 BWJY

MOVLW 00H ;将W寄存器设数值为0 SUBWF LED2 ;将LED2减0

BTFSS STATUS,Z ;检测LED2是否到0 GOTO GWJY ;百位不到0,返回继续减1 DECF LED3 ;百位到0,千位减1 MOVLW 09H ;百位设数值为9

PDF created with FinePrint pdfFactory trial version http://www.fineprint.comMOVWF LED2 QWJY

MOVLW 00H ;将W寄存器设数值为0 SUBWF LED3 ;将LED3减0

BTFSS STATUS,Z ;检测LED3是否到0 GOTO GWJY ;千位不到0,返回继续减1 MOVLW 09H ;千位到0重设数值为9999 MOVWF LDE3 MOVWF LDE2 MOVWF LDE1 MOVWF LDE0 RETURN

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;计数程序

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; GWX INCF LED0,F ;个位加1

MOVF LED0,W ;将个位当前值送W XORLW 0AH ;检测个位是否满10 BTFSS STATUS,Z

GOTO GWX ;不满10返回GWX继续 INCF LED1 ;满10,十位加1 CLRF LED0 ;满10,个位清0

BCF STATUS,Z ;满10,STATUS寄存器Z位清0 SWX MOVF LED1,W ;将十位当前值送W XORLW 0AH ;检测十位是否满10 BTFSS STATUS,Z

GOTO GWX ;不满10返回GWX继续 INCF LED2 ;满10,百位加1 CLRF LED1 ;满10,十位清0

BCF STATUS,Z ;满10,STATUS寄存器Z位清0 BWX MOVF LED2,W ;将百位当前值送W XORLW 0AH ;检测百位是否满10 BTFSS STATUS,Z

GOTO GWX ;不满10返回GWX继续 INCF LED3 ;满10,千位加1 CLRF LED2 ;满10,百位清0

BCF STATUS,Z ;满10,STATUS寄存器Z位清0 QWX MOVF LED3,W ;将千位当前值送W XORLW 0AH ;检测千位是否满10 BTFSS STATUS,Z

GOTO GWX ;不满10返回GWX继续 CLRF LED0 ;千位满10,个位清0 CLRF LED1 ;千位满10,十位清0 CLRF LED2 ;千位满10,百位清0

PDF created with FinePrint pdfFactory trial version http://www.fineprint.com CLRF LED3 ;千位满10,千位清0

BCF STATUS,Z ;千位满10,STATUS寄存器Z位清0 RETURN

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;计数程序

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; GWX INCF LED0,F ;个位加1

MOVF LED0,W ;将个位当前值送W XORLW 0AH ;检测个位是否满10 BTFSS STATUS,Z

GOTO GWX ;不满10返回GWX继续 INCF LED1 ;满10,十位加1 CLRF LED0 ;满10,个位清0

BCF STATUS,Z ;满10,STATUS寄存器Z位清0 SWX MOVF LED1,W ;将十位当前值送W XORLW 0AH ;检测十位是否满10 BTFSS STATUS,Z

GOTO GWX ;不满10返回GWX继续 INCF LED2 ;满10,百位加1 CLRF LED1 ;满10,十位清0

BCF STATUS,Z ;满10,STATUS寄存器Z位清0 BWX MOVF LED2,W ;将百位当前值送W XORLW 0AH ;检测百位是否满10 BTFSS STATUS,Z

GOTO GWX ;不满10返回GWX继续 INCF LED3 ;满10,千位加1 CLRF LED2 ;满10,百位清0

BCF STATUS,Z ;满10,STATUS寄存器Z位清0 QWX MOVF LED3,W ;将千位当前值送W XORLW 0AH ;检测千位是否满10 BTFSS STATUS,Z

GOTO GWX ;不满10返回GWX继续 CLRF LED0 ;千位满10,个位清0 CLRF LED1 ;千位满10,十位清0 CLRF LED2 ;千位满10,百位清0 CLRF LED3 ;千位满10,千位清0

BCF STATUS,Z ;千位满10,STATUS寄存器Z位清0 RETURN

PDF created with FinePrint pdfFactory trial version http://www.fineprint.com

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务