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

📄 txsend.asm

📁 本资源提供了采用PIC单片机实现单线通讯的源程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:

            LIST      P=16F72
            INCLUDE P16F72.inc
	        __config(  _HS_OSC & _WDT_ON & _PWRTEN_ON &_CP_ALL)
            ORG     0x0000

            GOTO    Label_0001
            ORG     0x0004
            GOTO    Label_0002
         ORG 0X0006
TAB        ADDWF PCL,1    ;120
            RETLW  0x03
            RETLW  0X80
            RETLW  0X20
            RETLW  0X20
            RETLW  0X40
            RETLW  0X80
            RETLW  0X40
            RETLW  0x03
             RETURN
	      ORG   0X0010
TABBS        ADDWF PCL,1    ;120
            RETLW  0x03
            RETLW  0X70
            RETLW  0XC4
            RETLW  0XC4
            RETLW  0XA8
            RETLW  0X70
            RETLW  0XA8
            RETLW  0x03
             RETURN

               ORG 0X001A
Label_001C  ADDWF   PCL,1
            RETLW   0x08
            RETLW   0x08
            RETLW   0x0C
            RETLW   0x10
            RETLW   0x14
            RETLW   0x18
            RETLW   0x1C
            RETLW   0x20
            RETLW   0x24
            RETLW   0x28
            RETLW   0x2C
            RETLW   0x30
            RETLW   0x34
            RETLW   0x38
            RETLW   0x3C
            RETLW   0x40
            RETLW   0x45
            RETLW   0x4C
            RETLW   0x53
            RETLW   0x5A
            RETLW   0x60
            RETLW   0x68
            RETLW   0x70
            RETLW   0x78
            RETLW   0x80
            RETLW   0x88
            RETLW   0x90
            RETLW   0x98
            RETLW   0xA0
            RETLW   0xA8
            RETLW   0xB0
            RETLW   0xB8
            RETLW   0xC0
            RETLW   0xC4
            RETLW   0xC7
            RETLW   0xCD
            RETLW   0xD0
            RETLW   0xD4
            RETLW   0xD8
            RETLW   0xDC
            RETLW   0xE0
            RETLW   0XE4  
            RETLW   0xE8
            RETLW   0xEC
            RETLW   0xF0
            RETLW   0xF5
            RETLW   0xFA
            RETLW   0xFD
            RETLW   0xFF
            RETLW   0xFF
            RETLW   0xFF
            RETLW   0xFF
            RETLW   0xFF
             RETURN

            ORG     0X0052;;;;;;0x0049
Label_0001  CALL    Label_0003
			CALL    Label_0005
            CALL    MMQRS
	        CLRWDT
            CALL    Label_0004;延时
FF2         CLRWDT
            CALL    Label_0005;关闭上下桥
            CALL    Label_0006;;;;;AD测量多次求平均后与具体参数比较设标志位
            CALL    Label_0007;;;;;;;;(AN2)AD结果与给定数比较
            CALL    Label_0008;;;;;;;;换相处理
            CALL    Label_0009;;;;;;;;电池电压采样,结果在66H
            CLRWDT
            CALL    Label_000A;;;;;;;;刹车电压采样,结果在65H
            MOVLW   0x88;;;;;;;;;;;FOSC/32  AN1
            MOVWF   ADCON0
            BSF     ADCON0,ADON
            BSF     INTCON ,GIE
Label_000D ;---------------------
			CLRWDT
		    BTFSC PORTC,0
	        GOTO  JXZCX
	    	CALL    JCBJ
            BTFSC   0X3A,4
            GOTO    BS
	        ;---------------------
JXZCX      
			CALL    Label_000B
            CALL    Label_000C
            BTFSS   0x36,4
            GOTO    Label_000D
            CALL    Label_000E
            CALL    Label_000F
            CLRF    PCLATH
            CALL    Label_0010;;;;;电池电压〉45V?
LAB_WW      CALL    Label_0011
            GOTO    Label_000D
   

;-------------抱死电机----------------
BS          BCF INTCON,GIE 
			CLRF CCP1CON
	        BCF  PORTC,2
            MOVLW 0X03
            MOVWF PORTB
	;------------------
            BSF     STATUS    , RP0
            MOVLW   0xFF
            MOVWF ADCON1
            MOVWF   TRISA
            BCF     STATUS    , RP0 
        ;------------------ 	
            CALL EABS
BSBS        MOVF PORTC,0
            ANDLW 0X70
            MOVWF 0X43
	       
MZD         CLRWDT
	        CALL  JCBJ
            BTFSS  0X3A,4
            GOTO  Label_0001 
            MOVF PORTC,0
            ANDLW 0X70
            MOVWF 0X44
           
            MOVF  0X43,0
            SUBWF 0X44,0
            BTFSC STATUS,Z
            GOTO  MZD
;-----------------------------------
            MOVF 0X44,0
            MOVWF 0X43 
			SWAPF 0X43,1 
		
;-----------------------------------             
            MOVLW 0X03
            MOVWF PORTB
	       	    
			CLRF CCP1CON
		
		    MOVLW 0XA0;;;;;;;; 0X30
			MOVWF 0X23
DCXH        MOVLW 0XFF           
	        MOVWF 0X24
           
BSS         BSF PORTC,2
		 	CLRWDT
            MOVF 0X43,0 ;;;;; MOVLW 0XA8
	        CALL TABBS ;;;;;;
            MOVWF PORTB
            MOVLW 0X0D;;;;;;;;;;;0X12
            MOVWF 0X6F
BSJS2       DECFSZ 0X6F,1
            GOTO BSJS2
		
			BCF  PORTC,2
            NOP
			NOP
        	NOP
			NOP
		   ; NOP	
	        CLRWDT	
            MOVLW 0XE0
            MOVWF PORTB
            MOVLW 0X30
            MOVWF 0X6F
BSJS3       DECFSZ 0X6F,1
            GOTO BSJS3
			CLRWDT
		    DECFSZ 0X24,1
            GOTO BSS
			DECFSZ 0X23,1
            GOTO  DCXH;
            GOTO BSBS          

;-------------------------------------

;;;;;;;;;;;;;测量转把放入52H          
Label_000F  BTFSC   0x39,4
            GOTO    Label_0013;;;;欠压
           ; NOP; BCF PORTC,7
            BTFSC   0x38,0
            GOTO    Label_0013;;;;;;;过流
            BTFSC   0x39,2
            GOTO    Label_0014
            MOVF    0x67,0
            MOVWF   0x23
            MOVLW   0x14;;;;;;;0x20
            SUBWF   0x23,0
            BTFSS   STATUS,C
            GOTO    Label_0014
            BTFSS   0x37,6
            GOTO    Label_0015
            MOVF    0x23,0
            SUBLW   0xD8
            BTFSS   STATUS,C
            GOTO    Label_0014  ;>4.2v
            MOVWF   0x23
Label_0015  BTFSC   0x38,4
            RETURN   ;如果为巡航,返回
            MOVLW   0xA0;;;;;;;0x9E
            SUBWF   0x23,0
            BTFSC   STATUS,C
            GOTO    Label_0016
            BTFSS   0x37,1
            GOTO    Label_0017
            MOVLW   0x23   ;电角度在0.2—0.6v时
            SUBWF   0x23,1
            BTFSS   STATUS,C
            GOTO    Label_0018
            BCF     STATUS,C
            RLF     0x23,0
            MOVWF   0x23
            SUBWF   0x52,0
            BTFSS   STATUS,C
            GOTO    Label_0019
            SUBLW   0x04
            BTFSC   STATUS,C
            GOTO    Label_001A
Label_0019  MOVF    0x23,0
            MOVWF   0x52
            GOTO    Label_001A
Label_0017  MOVLW   0X3F;;;;;;;;0X3D;;;;;;;;;;0X35;;;;;;;;;;;;;0x3B
            SUBWF   0x23,1
            BTFSS   STATUS,C
            GOTO    Label_0018
            BCF     STATUS,C
            RRF     0x23,0
            ADDLW   0x01
            MOVWF   0x23
Label_001B  BCF     INTCON,GIE
            BTFSC   INTCON,GIE
            GOTO    Label_001B
           
            MOVF    0x23,0
            CALL    Label_001C
            MOVWF   0x52
            BSF     INTCON,GIE
Label_001A  BTFSS   0x39,7
            GOTO    Label_001D
            BCF     0x38,5
            BTFSC   0x39,3
            GOTO    Label_001D
Label_001E  BCF     INTCON,GIE
            BTFSC   INTCON,GIE
            GOTO    Label_001E
            CALL    Label_0008
            BSF     INTCON,GIE
Label_001D  BCF     0x39,7

;----------------DOUBLE POWER-----------------
            BTFSC   PORTC,7
            GOTO    SDL1

            BCF     STATUS,C
            RRF     0X52,1
            BCF     STATUS,C 
            RRF     0X52,0
            ADDWF   0X52,1
;---------------------------------------------


SDL1        MOVF    0x52,0
            MOVWF   0x2F
            BSF     0x36,0
            BTFSC   0x39,5
            GOTO    Label_001F
            RETURN
Label_001F  BCF     0x36,0
            CLRF    0x2F
            RETURN
Label_0016  MOVLW   0xFF
            MOVWF   0x52
            GOTO    Label_001A
Label_0014  BCF     0x38,4
Label_0018  BSF     0x39,7
            BCF     0x36,0
            CLRF    0x2F
            BCF     0x36,6
            CLRF    0x2E
            BCF     0x36,5
            RETURN
           
Label_0013  BCF     0x38,4
            BCF     0x36,0
            CLRF    0x2F
            RETURN


;-----------------电角度检测-----------------
Label_0007  BCF     0x37,6
            BSF     0x37,5
            BSF     0x37,7
            CLRF    0x3A
            CLRF    0x3B
            MOVLW   0x90
            MOVWF   ADCON0;;;;FOSC/32,AN2
            CALL    Label_0023;;;;;;AD测量求8次平均
            MOVWF   0x22
            MOVLW   0x80
            SUBWF   0x22,0
            BTFSS   STATUS,C
            GOTO    Label_0024;;;;;;;;;;AD结果〈80H   GOTO LABEL—0025
            BCF     0x37,7
            MOVWF   0x22
Label_0024  BTFSC   0x37,7
            GOTO    Label_0025
            MOVLW   0x20
            SUBWF   0x22,0
            BTFSS   STATUS,C
            GOTO    Label_0026
Label_0027  INCF    0x3B,1
            MOVLW   0x40
            SUBWF   0x22,0
            BTFSS   STATUS,C
            GOTO    Label_0026;;;;;;;;AD结果〈40H   RETURN 
            INCF    0x3B,1
            MOVLW   0x60
            SUBWF   0x22,0
            BTFSS   STATUS,C
            GOTO    Label_0026;;;;;;;AD结果〈60H   RETURN 
            INCF    0x3B,1
Label_0026  RETURN
Label_0025  MOVLW   0x0B
            SUBWF   0x22,0
            BTFSS   STATUS,C
            GOTO    Label_0026;;;;;;AD结果〈0BH  RETURN 
            MOVLW   0x1F
            SUBWF   0x22,0
            BTFSC   STATUS,C
            GOTO    Label_0027;;;;;;AD结果〉1FH   GOTO LABEL—0027 
            BSF     0x37,1
            RETURN

;----------------巡航检测38h。4  39h。2----------------------------


Label_000E  BTFSC   0x37,4
            GOTO    Label_0028
            BCF     0x39,2
            BCF     0x37,3
            BCF     0x39,3
            BTFSS   0x38,4
           ; NOP     ;BCF     PORTC,1
            MOVLW   0x08
            MOVWF   0x23
            CLRF    0x24
Label_0029  BTFSS   PORTC,3   ;0X7D,0;;;;;;;;;;PORTC,0
            INCF    0x24,1
            DECFSZ  0x23,1
            GOTO    Label_0029
            MOVLW   0x08
            SUBWF   0x24,0
            BTFSS   STATUS, Z
            GOTO    Label_002A
            MOVF    0x24,0
            SUBWF   0x51,0
            BTFSC   STATUS,Z
            GOTO    Label_002B
            INCF    0x58,1
            MOVLW   0x02
            SUBWF   0x58,W
            BTFSS   STATUS,C
            RETURN
            MOVF    0x24,0
            MOVWF   0x51
            BTFSS   0x38,4
            GOTO    Label_002C
            BCF     0x38,4
            RETURN
Label_002C  MOVF    0x30,1
            BTFSC   STATUS,Z
            GOTO    Label_002A
            BSF     0x38,4
           ; BSF     PORTC,1
            RETURN
Label_002A  CLRF    0x51
Label_002B  BTFSC   0x38,4
            GOTO    Label_002D
            CLRF    0x58
            RETURN
Label_002D  MOVLW   0x00
            MOVWF   0x58
            RETURN
Label_0028  BCF     0x38,4
            MOVLW   0x10
            MOVWF   0x23
            CLRF    0x24
Label_002E  BTFSS   PORTC,3
            INCF    0x24,1
            DECFSZ  0x23,1
            GOTO    Label_002E
            MOVLW   0x10
            SUBWF   0x24,0
            BTFSC   STATUS,Z
            GOTO    Label_002F
            MOVF    0x24,0
            SUBLW   0x02
            BTFSC   STATUS,C
            GOTO    Label_0030
            RETURN
Label_002F  BSF     0x39,2
           ; BSF     0X7D,0;;;;;PORTC,1
            CLRF    0x6A
            RETURN
Label_0030  INCF    0x6A,1
            MOVLW   0x05
            SUBWF   0x6A,0
            BTFSS   STATUS,C
            RETURN
            DECF    0x6A,1
            ;BCF     0X7D,0;;;;PORTC,1
            BCF     INTCON,GIE
            BCF     0x39,2
            BCF     0x37,3
            BCF     0x39,3
            BCF     0x37,0
            BSF     INTCON,GIE
            RETURN

;-------------测静态电流值,设标志------------------------------
Label_0006  MOVLW   0x08

⌨️ 快捷键说明

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