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

📄 baset.asm

📁 电力系统中的保护装置全部代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.line	1
;----------------------------------------------------------------------
;  43 | VOID    DS1302WriteByte(UNSIGNED idata)                                
;----------------------------------------------------------------------
        push      fp
        ldiu      sp,fp
	.line	2
;----------------------------------------------------------------------
;  45 | register UNSIGNED  i;                                                  
;----------------------------------------------------------------------
	.line	4
;----------------------------------------------------------------------
;  46 | register UNSIGNED  *pSerialPort0XCTRL = (UNSIGNED *)0x808042;          
;----------------------------------------------------------------------
        ldp       @CL1,DP
        ldiu      @CL1,ar0              ; |46| 
	.line	6
;----------------------------------------------------------------------
;  48 | for(i = 0; i <= 7; i++, idata >>= 1)                                   
;----------------------------------------------------------------------
        ldiu      0,r2                  ; |48| 
        cmpi      7,r2                  ; |48| 
        bhi       L10                   ; |48| 
;*      Branch Occurs to L10            ; |48| 
L6:        
	.line	9
;----------------------------------------------------------------------
;  51 | if(idata & 0x1)               //写数据SDATA                            
;----------------------------------------------------------------------
        ldiu      1,r0                  ; |51| 
        tstb      *-fp(2),r0            ; |51| 
        beq       L8                    ; |51| 
;*      Branch Occurs to L8             ; |51| 
	.line	10
;----------------------------------------------------------------------
;  52 | SetSDATA();                                                            
;  53 | else                                                                   
;----------------------------------------------------------------------
        ldiu      64,r0                 ; |52| 
        or3       r0,*ar0,r0            ; |52| 
        sti       r0,*ar0               ; |52| 
        bu        L9                    ; |42| 
;*      Branch Occurs to L9             ; |42| 
L8:        
	.line	12
;----------------------------------------------------------------------
;  54 | ClrSDATA();                                                            
;----------------------------------------------------------------------
        ldiu      4031,r0               ; |54| 
        and3      r0,*ar0,r0            ; |54| 
        sti       r0,*ar0               ; |54| 
L9:        
	.line	14
;----------------------------------------------------------------------
;  56 | ClrSCLK();                    //SCLK清0                                
;----------------------------------------------------------------------
        ldiu      4091,r0               ; |56| 
        and3      r0,*ar0,r0            ; |56| 
        sti       r0,*ar0               ; |56| 
	.line	16
;----------------------------------------------------------------------
;  58 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |58| 
        callu     r0                    ; far call to _Delay1us	; |58| 
                                        ; |58| Far Call Occurs
	.line	18
;----------------------------------------------------------------------
;  60 | SetSCLK();                    //SCLK置1,形成上升沿,数据写入DS1302
;     |                                                                        
;----------------------------------------------------------------------
        ldiu      4,r0                  ; |60| 
        or3       r0,*ar0,r0            ; |60| 
        sti       r0,*ar0               ; |60| 
	.line	20
;----------------------------------------------------------------------
;  62 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |62| 
        callu     r0                    ; far call to _Delay1us	; |62| 
                                        ; |62| Far Call Occurs
	.line	6
        ldiu      *-fp(2),r0            ; |48| 
        lsh       -1,r0                 ; |48| 
        sti       r0,*-fp(2)            ; |48| 
        addi      1,r2                  ; |48| Unsigned
        cmpi      7,r2                  ; |48| 
        bls       L6                    ; |48| 
;*      Branch Occurs to L6             ; |48| 
L10:        
	.line	22
                                        ; Begin Epilog Code
        ldiu      *-fp(1),r1
        ldiu      *fp,fp
                                        ; Unallocate the Frame
        subi      2,sp
        bu        r1
;*      Branch Occurs to r1 
	.endfunc	64,000000000h,0


	.sect	 ".text"

	.global	_DS1302ReadByte
	.sym	_DS1302ReadByte,_DS1302ReadByte,46,2,0
	.func	69
;******************************************************************************
;* FUNCTION NAME: _DS1302ReadByte                                             *
;*                                                                            *
;*   Architecture       : TMS320C32                                           *
;*   Calling Convention : Stack Parameter Convention                          *
;*   Function Uses Regs : r0,r2,r3,ar0,st                                     *
;*   Regs Saved         :                                                     *
;*   Stack Frame        : Full (w/ debug)                                     *
;*   Total Frame Size   : 2 Call + 0 Parm + 0 Auto + 0 SOE = 2 words          *
;******************************************************************************
_DS1302ReadByte:
;* r3    assigned to _i
	.sym	_i,3,14,4,32
;* r2    assigned to _j
	.sym	_j,2,14,4,32
;* ar0   assigned to _pSerialPort0XCTRL
	.sym	_pSerialPort0XCTRL,8,30,4,32
	.line	1
;----------------------------------------------------------------------
;  69 | UNSIGNED DS1302ReadByte(VOID)                                          
;----------------------------------------------------------------------
        push      fp
        ldiu      sp,fp
	.line	3
;----------------------------------------------------------------------
;  71 | register UNSIGNED  i,j = 0;                                            
;----------------------------------------------------------------------
        ldiu      0,r2                  ; |71| 
	.line	4
;----------------------------------------------------------------------
;  72 | register UNSIGNED  *pSerialPort0XCTRL = (UNSIGNED *)0x808042;          
;----------------------------------------------------------------------
        ldp       @CL1,DP
        ldiu      @CL1,ar0              ; |72| 
	.line	6
;----------------------------------------------------------------------
;  74 | for(i = 0; i <= 7; i++)                                                
;----------------------------------------------------------------------
        ldiu      0,r3                  ; |74| 
        cmpi      7,r3                  ; |74| 
        bhi       L16                   ; |74| 
;*      Branch Occurs to L16            ; |74| 
L13:        
	.line	8
;----------------------------------------------------------------------
;  76 | j >>= 1;                                                               
;----------------------------------------------------------------------
        lsh       -1,r2                 ; |76| 
	.line	10
;----------------------------------------------------------------------
;  78 | ClrSCLK();                    //SCLK清0,数据读出DS1302                 
;----------------------------------------------------------------------
        ldiu      4091,r0               ; |78| 
        and3      r0,*ar0,r0            ; |78| 
        sti       r0,*ar0               ; |78| 
	.line	11
;----------------------------------------------------------------------
;  79 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |79| 
        callu     r0                    ; far call to _Delay1us	; |79| 
                                        ; |79| Far Call Occurs
	.line	13
;----------------------------------------------------------------------
;  81 | if(DataDeclare())             //判断SDATA                              
;----------------------------------------------------------------------
        ldiu      128,r0                ; |81| 
        tstb3     *ar0,r0               ; |81| 
        beq       L15                   ; |81| 
;*      Branch Occurs to L15            ; |81| 
	.line	14
;----------------------------------------------------------------------
;  82 | j |= 0x80;                                                             
;----------------------------------------------------------------------
        or        128,r2                ; |82| 
L15:        
	.line	16
;----------------------------------------------------------------------
;  84 | SetSCLK();                    //SCLK置1,准备读下一位                   
;----------------------------------------------------------------------
        ldiu      4,r0                  ; |84| 
        or3       r0,*ar0,r0            ; |84| 
        sti       r0,*ar0               ; |84| 
	.line	17
;----------------------------------------------------------------------
;  85 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |85| 
        callu     r0                    ; far call to _Delay1us	; |85| 
                                        ; |85| Far Call Occurs
	.line	6
        addi      1,r3                  ; |74| Unsigned
        cmpi      7,r3                  ; |74| 
        bls       L13                   ; |74| 
;*      Branch Occurs to L13            ; |74| 
L16:        
	.line	20
;----------------------------------------------------------------------
;  88 | return(j);                                                             
;----------------------------------------------------------------------
	.line	21
        ldiu      r2,r0                 ; |89| 
                                        ; Begin Epilog Code
        ldiu      *-fp(1),r1            ; |89| 
        ldiu      *fp,fp                ; |89| 
                                        ; Unallocate the Frame
        subi      2,sp                  ; |89| 
        bu        r1
;*      Branch Occurs to r1 
	.endfunc	89,000000000h,0


	.sect	 ".text"

	.global	_DS1302BurstRead
	.sym	_DS1302BurstRead,_DS1302BurstRead,32,2,0
	.func	94
;******************************************************************************
;* FUNCTION NAME: _DS1302BurstRead                                            *
;*                                                                            *
;*   Architecture       : TMS320C32                                           *
;*   Calling Convention : Stack Parameter Convention                          *
;*   Function Uses Regs : r0,r1,ar0,ar1,fp,sp,st,rs                           *
;*   Regs Saved         :                                                     *
;*   Stack Frame        : Full (w/ debug)                                     *
;*   Total Frame Size   : 2 Call + 3 Parm + 0 Auto + 0 SOE = 5 words          *
;******************************************************************************
_DS1302BurstRead:
	.sym	_SourceCode,-2,14,9,32
	.sym	_pDestination,-3,30,9,32
	.sym	_Length,-4,14,9,32
;* rs    assigned to _i
	.sym	_i,20,14,4,32
;* ar1   assigned to _pSerialPort0XCTRL
	.sym	_pSerialPort0XCTRL,9,30,4,32
	.line	1
;----------------------------------------------------------------------
;  94 | VOID    DS1302BurstRead(UNSIGNED SourceCode, UNSIGNED *pDestination, UN
;     | SIGNED Length)                                                         
;----------------------------------------------------------------------
        push      fp
        ldiu      sp,fp
	.line	2
;----------------------------------------------------------------------
;  96 | register UNSIGNED  i;                                                  
;----------------------------------------------------------------------
	.line	4
;----------------------------------------------------------------------
;  97 | register UNSIGNED  *pSerialPort0XCTRL = (UNSIGNED *)0x808042;          
;----------------------------------------------------------------------
        ldp       @CL1,DP
        ldiu      @CL1,ar1              ; |97| 
	.line	6
;----------------------------------------------------------------------
;  99 | *pSerialPort0XCTRL = 0x222;       //DSP口线设置为输出方式,初始值为0    
;----------------------------------------------------------------------
        ldiu      546,r0                ; |99| 
        sti       r0,*ar1               ; |99| 
	.line	7
;----------------------------------------------------------------------
; 100 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |100| 
        callu     r0                    ; far call to _Delay1us	; |100| 
                                        ; |100| Far Call Occurs
	.line	9
;----------------------------------------------------------------------
; 102 | SetSRST();                        //RST置1,允许操作DS1302              
;----------------------------------------------------------------------
        ldiu      1024,r0               ; |102| 
        or3       r0,*ar1,r0            ; |102| 
        sti       r0,*ar1               ; |102| 
	.line	10
;----------------------------------------------------------------------
; 103 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |103| 
        callu     r0                    ; far call to _Delay1us	; |103| 
                                        ; |103| Far Call Occurs

⌨️ 快捷键说明

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