⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpu427.asm

📁 质量越高得到的CPU卡的汇编程序,对于初学者是个很好的资料
💻 ASM
📖 第 1 页 / 共 5 页
字号:


	
        INCLUDE         "C:\MPASM\BJCPU.INC"
         INCLUDE         "C:\MPASM\P16C5X.INC"
	 ORG        0

;**************************************
;BEI JIA SHOU FANG R2, R3, R4  (GAO ZI JIE ZAI QIAN)
;JIA SHOU FANG R5, R6, 
;HE FANG ZI R2, R3, R4
;3 BYTE + 2 BYTE
;**********************************
;JIAFA:
;           MOVF       R4, W
;           MOVWF      R0
;           MOVF       R7, W
;           MOVWF      R1
;           CALL       UBCDAD
;           MOVF       R0, W
;           MOVWF      R4
;           BTFSS      R1, 0
;           GOTO       JIAFA1
;           MOVF       R3, W
;           MOVWF      R0
;           CALL       UBCDAD
;           MOVF       R0, W
;           MOVWF      R3
;           BTFSS      R1, 0
;           GOTO       JIAFA1
;           MOVF       R2, W
;           MOVWF      R0
;           CALL       UBCDAD
;           MOVF       R0, W
;           MOVWF      R2
;JIAFA1:    MOVF       R3, W
;           MOVWF      R0
;           MOVF       R6, W
;           MOVWF      R1
;           CALL       UBCDAD
;           MOVF       R0, W
;           MOVWF      R3
;           BTFSS      R1, 0
;           GOTO       JIAFA2
;           MOVF       R2, W
;           MOVWF      R0
;           CALL       UBCDAD
;           MOVF       R0, W
;           MOVWF      R2
;JIAFA2:     MOVF      R2, W
;            MOVWF     R0
;            MOVF      R5, W
;            MOVWF     R1
;            CALL      UBCDAD
;            MOVF       R0, W
;            MOVWF      R2
;            RETLW       0
JIAFA:
	   MOVF       R4, W
	   MOVWF      R0
	   MOVF       R6, W
	   MOVWF      R1
	   CALL       UBCDAD
	   MOVF       R0, W
	   MOVWF      R4
	   MOVF       R1, W
	   ADDWF      R3, W
	   MOVWF      R0
	   MOVF       R5, W
	   MOVWF      R1
	   CALL       UBCDAD
	   MOVF       R0, W
	   MOVWF      R3
	   MOVF       R1, W
	   ADDWF      R2, W
	   MOVWF      R0
      ;     MOVF       R5, W
      ;     MOVWF      R1
	   CLRF       R1
	   CALL       UBCDAD
	   MOVF       R0, W
	   MOVWF      R2
      ;     MOVF       1FH, W
      ;     MOVWF      R7
	   RETLW       0


;********************************
;DAN ZI BCD JIA FA ZI CHENG XU
;R0 FANG BEI JIA SHOU 
;R1 FANG JIA SHOU
;JIN WEI FANG R1
;*******************************

;UBCDAD:                      
;              MOVF       R1, W  
;              ADDWF      R0, 1
;              CLRF       R1
;              RLF        R1, 1
;              SKPNDC 
;              GOTO       ADJST
;              MOVLW       6
;              ADDWF       R0, 1
;              SKPNDC
;              GOTO        OVR1
;              SUBWF       R0, 1
;              CLRC
;              GOTO        OVR1
;ADJST:        MOVLW       6
;              ADDWF       R0, 1
;OVR1:         RLF         R1, 1
;              MOVLW       60h
;              ADDWF       R0, 1
;              SKPNC
;              GOTO        OVR2
;              BTFSS       R1, 0
;              BTFSC       R1, 1 
;              GOTO         OVR3
;              SUBWF        R0, 1
;              GOTO         OVR
;OVR3:         MOVLW        1
;              MOVWF         R1
;              GOTO         OVR
;OVR2:         CLRF         R1
;              RLF          R1, 1
;OVR           RETLW         0

;R1
Num_1   equ     9;8       ; Overflow flow carry overwrites Num_1
;result  equ     8
;
;R0      
Num_2   equ     8;9       ; Num_2 + Num_1 overwrites Num_2
;O_flow  equ     9
;
;
;	include         "C:\PICMATE\PICMATE\LIU\p16c5x.inc"
;
UBCDAD:
;BCDAdd  
	 movf   Num_1,W
	addwf   Num_2, 1      ;F       ; do binary addition
	clrf    Num_1
	rlf     Num_1, 1      ;F
	btfsc   STATUS,DC       ; Is DC = 0 ?
	goto    adjust          ; adjust LSD
	movlw   6
	addwf   Num_2, 1      ;F        ; Test for LSD > 9 ( by adding 6
	btfsc   STATUS,C
	incf    Num_1, 1      ;F
	btfss   STATUS,DC       ; & checking Digit Carry
	subwf   Num_2, 1      ;F        ; LSD < 9 , so get back original value.
	goto    over1
adjust  movlw   6
	addwf   Num_2, 1      ;F
over1   movlw   60              ; add 6 to MSD
	addwf   Num_2, 1      ;F
	btfsc   STATUS,C
	goto    over3
	btfss   Num_1,0
	subwf   Num_2, 1       ;F
	RETLW   0
over3   movlw   1
	movwf   Num_1
	RETLW   0




;***************************************
;YAN SHI YI GE SHI JIAN DAN YUAN
;****************************************
DELAYETU MACRO       T                  ;324 CLOCK
	 LOCAL       DELAYETU1
	 MOVLW      T                   ;4 CLOCK
	 MOVWF      R0                  ;4 CLOCK
	 NOP
;         NOP         ;
DELAYETU1         
	 DECFSZ     R0, 1                ;4/8 CLOCK
	 GOTO       DELAYETU1            ;8 CLOCK
	 ENDM
	; RETLW      0             




;******************************
;RTCC YI CHU ZI CHENG XU
;***************************
;TRTCC:
;            MOVLW     30H
;            MOVWF     FSR
;            BTFSS    RTCC, 7
;;            GOTO     TRTCC_END
;
;            CLRF      RTCC
;            MOVLW     1
;            ADDWF      RTCCTIMESL, 1
;            SKPC
;            GOTO     TRTCC_END
;            MOVLW     1
;            ADDWF     RTCCTIMESH, 1
;TRTCC_END:  
;            RETLW    0

;*****************************************

;********************************************

START:
MAIN:
            BSF      STATUS, 6
            GOTO     WAIT_ZHUAN     ;7.20
START1:
	   MOVLW    B'01110000'
        ;   MOVWF    PORTC
           TRIS     PORTC
         ;  MOVLW    B'11111111'       ;7.9
         ;  MOVWF    PORTC          ;7.18
         ;  MOVLW    B'00000000'
         ;  TRIS     PORTB
         ;  MOVWF    PORTB        ;7.18
	   MOVLW    B'00000101'
	   TRIS     PORTA
           MOVWF    PORTA         ;7.18
         ;  BCF      PORTA, RSTUSER    ;7.9
         ;  BCF      PORTA, RSTSAM      ;7.9

	   MOVLW    B'00000111'       ;RTCC FEN PIN 1:256 CLK=65.536MS
	   OPTION
				     ;CU SHI HUA RAM
           MOVLW    70H
           MOVWF    FSR
           MOVLW    B'11110111'
           MOVWF    PX
           MOVLW    DISBUFFER1
           MOVWF    DISTP
	   CLRF     REN_FLAG
        ;   CLRF     FLAG
            MOVLW    08H
            ANDWF    FLAG, 1

MAIN2:                                     
	   
      ;   MOVLW      B'00000101'
      ;   TRIS       PORTA
	 BSF        PORTA, RSTSAM               
	 BSF        REN_FLAG, USER0SAM1
	 BSF        STATUS, 5
       ;  MOVLW      13H
       ;  MOVWF      FSR
	 CALL       SAMPOWERON_ZHUAN
           BCF      STATUS, 5
;           SKPC
      ;     BSF        FSR, 5         ;7.18
      ;     BCF        ZHUANGTAI, 1   ;7.18

           GOTO      MAIN2_1

;           BSF       FSR, 5
;           MOVLW     02
;           MOVWF     ZHUANGTAI

FEIFAKA_HIUFU1:                            ;7.10
           BTFSS     REN_FLAG, USER0SAM1   ;7.10
           GOTO       MAIN2_1              ;7.10
           BSF        FSR, 5               ;7.10
           MOVLW     02                    ;7.10
           MOVWF    ZHUANGTAI              ;7.10
           GOTO     MAIN1                  ;7.10

MAIN2_1:      CLRF      REN_FLAG            ;7.10

FEIXITONGKA:
JIANCEKA4:
FEIFAKA_HIUFU:
GAIMIYAOHUIFU:                           ;DU CHU SAM CUN CHU SHOU JU 
BUJIMINGKA3:            
YONGHUKA1:            
	    BSF     STATUS, 5
	    BCF     STATUS, 6
	    MOVLW   03H
	    MOVWF   R1
	    CLRF    R2
	    MOVLW   0FH
	    MOVWF   R3
	  ;  BSF     STATUS, 5
	    CALL    PUTDATAFILE2
	    BSF     REN_FLAG, USER0SAM1
	    CALL    ICCCOMMAND
	  ;  MOVLW   30H
	  ;  MOVWF   FSR
	    CALL     FUFSR30H
	    CALL    ICCRECEDATA

            BSF     1DH, 0       ; 7.18
            BCF     ZHUANGTAI, 1   ;7.19

            BCF     FSR, 5
	    MOVLW   10H
	    MOVWF   13H
	    CALL    ICCCOMMAND
	    MOVLW   50H
	    MOVWF   FSR
	    CALL    ICCRECEDATA
	  
	  
	  ;  MOVLW    03H
	  ;  MOVWF    R1
	  ;  CLRF     R2
	  ;  MOVLW    08H
	  ;  MOVWF    R3
	  ;  CALL     PUTDATAFILE2
	    BCF      FSR, 6
	    MOVLW    20H
	    MOVWF    13H
	    MOVLW    08H
	    MOVWF    14H
	    CALL     ICCCOMMAND
	    MOVLW    70H
	    MOVWF    FSR
	    CALL     ICCRECEDATA
	    
	    BCF      STATUS, 5
	    BTFSC     REN_FLAG, FFEIXITONGKA
	    GOTO      MAIN1

	    BTFSC     FLAG, FFEIFAKA
	    GOTO      MAIN1
	    
	    BTFSC    REN_FLAG, FGAIMIYAOKA
	    GOTO     GAIMIYAO_END
	    BTFSC    REN_FLAG, FBUJIMINGKA
	    GOTO     BUJIMINGKA4
	    
	    BTFSS    REN_FLAG, FYONGHUKA
	    GOTO     MAIN1_JIANCE
	    BSF      STATUS, 6
	    GOTO     YONGHUKA2
MAIN1_JIANCE:
	    BTFSS    REN_FLAG, FJIANCEKA
	    GOTO     MAIN1
	    BSF      STATUS, 5
	    BSF      STATUS, 6
	    GOTO      JIANCEKA5
MAIN1:
	   MOVLW     B'01110000'
	   TRIS      PORTC
             MOVLW    B'00000000'     ;7.22
             TRIS     PORTB           ;7.22

           CLRWDT                ;7.22
           BTFSS     PORTC, 0       
           GOTO      WDT_1          
          BCF       PORTC, 0        
           NOP                     
           BSF       PORTC,0       
           GOTO      WDT_END      
WDT_1:                             
          BSF       PORTC,0      
          NOP                    
          BCF       PORTC,0        
WDT_END:
	  BSF        STATUS, 6
	  BSF       STATUS, 5
	  CALL      CAMAICHONG
          BCF       STATUS, 6       ;6.30    ;7.9
          BCF       STATUS, 5       ;6.30    ;7.9
MAIN1_1:
            ;    MOVLW    B'01110000'     ;7.22
            ;    TRIS     PORTC           ;7.22
            ;    BTFSS    PORTC, DD   ;6.30    ;7.9
            ;    CALL     WAIT5MS     ;6.30    ;7.9     
            ;    BCF     STATUS, 6    ;6.30    ;7.9
            ;    BCF     STATUS, 5    ;6.30    ;7.9

                BTFSC    PORTC, DD
		GOTO    MAIN13
		
		GOTO    CUNFENDUSHOU 

;;;;;;;;
;diao dian hui xie
	      
 ;             MOVLW     03H
 ;             MOVWF     R1
 ;             MOVLW     26H
 ;             MOVWF     R2
 ;             MOVLW     02H
 ;             MOVWF     R3
 ;             BSF       STATUS, 5
 ;             CALL      PUTDATAFILE3
 ;             BSF       REN_FLAG, USER0SAM1
 ;             CALL      ICCCOMMAND
 ;             MOVLW     76H
 ;             MOVWF     FSR
 ;             CALL      ICCSENDDATA
;              BCF       STATUS, 5
;HUIXIEEND:      GOTO     HUIXIEEND 
;;;;;;;;;;;;;;;;;;;;;;;;

MAIN13:          
           MOVLW     30H        ;6.20
           MOVWF     FSR        ;6.20
        ;   MOVLW     2          ;6.20
        ;   SUBWF     ZHUANGTAI, W    ;6.20
         ;  SKPZ                      ;6.20
            BTFSS     ZHUANGTAI, 1
           GOTO      MAIN13_YUAN     ;6.20
           BSF       PORTC,DUANDIAN  ;6,24,2002;BCF       PORTC, DUANDIAN ;6.26
           GOTO      MAIN1_6         ;6.20

MAIN13_YUAN:
           BSF       FSR, 6
	   BTFSC     FLAG, TIAOZHA
	   GOTO      OUTTIAODIAN
	   BTFSC     FLAG, BAOJING2    
	   GOTO      OUTTIAODIAN                ;OUTTIAODIAN_1
	   BCF       PORTC, DUANDIAN   ;6,24,2002   BSF       PORTC,DUANDIAN
	   GOTO      OUTTIAO1
OUTTIAODIAN:           
            MOVLW    45H
	    SUBWF    FENDUSHOU2, W
	    SKPC
	  ;  BTFSS    FENDUSHOU2, 4
	    GOTO      OUTTIAODIAN_1
	    BCF      FSR, 6
	    MOVLW    1
	    MOVWF     ZHUANGTAI
	    BSF      FSR, 6
OUTTIAODIAN_1:           
	   BSF       PORTC,DUANDIAN  ;6,24,2002;BCF       PORTC, DUANDIAN ;6.26
OUTTIAO1:
	   ;  MOVLW    50H              ;SHI FU DAO BAOJING1 DIAN LIANG 
	   ;  MOVWF    FSR
	     BCF      FLAG, BAOJING1
	     BCF      FLAG, TIAOZHA
	   ;  MOVLW     50H
	   ;  MOVWF     FSR
	     BCF       FSR, 5
	     MOVF     BAOJING11, W
	     MOVWF    R5
	     MOVF     BAOJING12, W
	     MOVWF    R4
	     MOVF     BAOJING13, W
	     MOVWF    R3
	     MOVLW    30H
	     MOVWF    FSR
	     MOVF     R5, W
	     SUBWF    SHENGYUDIANLIANG1, W
	     SKPNZ
	     GOTO     XINSH2_1
	     SKPC
	     GOTO    BIJIAOTIAODIAN     ;BI JIAO SHI FU DAO 0 DU
	     GOTO    MAIN1_6
XINSH2_1:             
	     MOVF     R4, W
	     SUBWF    SHENGYUDIANLIANG2, W
	     SKPNZ
	     GOTO     XINSH2_2
	     SKPC
	     GOTO    BIJIAOTIAODIAN
	     GOTO    MAIN1_6      
XINSH2_2:    
	     MOVF     R3, W
	     SUBWF    SHENGYUDIANLIANG3, W
	     SKPNZ
	     GOTO    BIJIAOTIAODIAN
	     SKPC
	     GOTO    BIJIAOTIAODIAN
	     GOTO    MAIN1_6      

BIJIAOTIAODIAN:                            ;SHENG YU DIAN LIANG SHI FU WEI 0
	     MOVLW     70H
	     MOVWF     FSR
	     BSF      FLAG, BAOJING1
	   ;  MOVLW    30H
	   ;  MOVWF    FSR
	     BCF      FSR, 6
	     MOVF     SHENGYUDIANLIANG2, 1
	     SKPZ
	     GOTO     MAIN1_6
	     MOVF     SHENGYUDIANLIANG3, 1
	     SKPZ
	     GOTO     MAIN1_6
	   ;  MOVLW    70H
	   ;  MOVWF    FSR
	     BSF      FSR, 6
	     BSF      FLAG,   TIAOZHA

	   ;  BTFSS    FENDUSHOU2, 4
	   ;  
	   ;  GOTO      MAIN1_6
	   ;  BCF       FSR, 6
	   ;  MOVLW     1
	   ;  MOVWF     ZHUANGTAI
				     

MAIN1_6:
TESTCHECK:                           ; JIAN CA SHI FU YOU KA
         ;    MOVLW    B'00000000'     ;7.22
         ;    TRIS     PORTB           ;7.22
          ;   MOVLW    B'01110000'     ;7.22
          ;   TRIS     PORTC           ;7.22
	     MOVLW    70H
	     MOVWF    FSR
             BTFSC    FLAG, FKAWUXIAO  
             GOTO     KAWUXIAO         
	     BTFSS    PORTC, CHECK
	     GOTO     KAWUXIAO
	     BSF      STATUS, 5
	     BSF      STATUS, 6
             CALL     WAIT5MS
	     BCF      STATUS, 5
	     BCF      STATUS, 6
	     BTFSS    PORTC, CHECK
	     GOTO     KAWUXIAO
	  ;   GOTO     ICBUZAI_ZHUAN

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -