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

📄 main.asm

📁 2407的一些源代码
💻 ASM
字号:

;==============================================================*
        .include "F2407.h" 		    ;头文件 
        .bss   GPR0,1
		
		.def   _c_int0
;==============================================================*
KICK_DOG 	.macro 				    ;看门狗复位宏指令
		LDP 	#00E0h 			
		SPLK 	#05555h, WDKEY
		SPLK	#0AAAAh, WDKEY
		LDP 	#0h 			
		.endm      
;==============================================================
;系统初始化
;使能EVA,EVB,A/D模块,其他的未使能(根据要求使能)
;==============================================================
        .text  
        .word   #0ffffh
        .word	#0ffffh
        .word	#0ffffh
        .word	#0ffffh
_c_int0:
        LDP     #0H
        SETC    INTM
        CLRC    SXM
        LACC    IFR
        SACL    IFR
        CLRC    CNF
        SETC    OVM
        LDP     #WDCR>>7
	    SPLK    #006Fh,	WDCR 	        ;看门狗不使能
	    KICK_DOG  
	    SPLK    #01C0h,	GPR0
		OUT     GPR0,	WSGR 
	    LDP     #SCSR1>>7
	    SPLK    #0000000001101100B,SCSR1   ;仅使能EVA,EVB,SPI,SCI     
	    LDP	    #IMR>>7
	    SPLK    #0002H,IMR                 ;中端级2使能
	    
	    LDP     #MCRA>>7
	    SPLK    #01100000000000011B,MCRA       ;A2,B7~B4 I/O(keyboard) 
	    SPLK    #1111111000011100B,MCRB       ;仿真口,spi,其他I/O,C0,C5(keyboard)  
	    SPLK    #0000000000000000B,MCRC       ;F2~F6 I/O(led)         
	    SPLK    #0000000000000000B,PADATDIR   
	    SPLK    #0000000000000000B,PBDATDIR  
	    SPLK    #0001010000000000B,PCDATDIR    ;没有必要置1
	    SPLK    #0H,PDDATDIR                  
	    SPLK    #0111111000000000B,PEDATDIR   
	    SPLK    #0111110000000000B,PFDATDIR     
;==============================================================
;SCI 初始化
;==============================================================
        LDP     #SCICCR>>7
        SPLK    #027H,SCICCR
        SPLK    #020H,SCICTL1
        SPLK    #02H,SCICTL2
        SPLK    #0H,SCIHBAUD        ;波特率为115200 
        SPLK    #02AH,SCILBAUD 
        SPLK    #0H,SCIPRI
        SPLK    #23H,SCICTL1
;==============================================================
loop:	
	    LDP		#0e0h 
        LACL    SCIRXBUF
	    CALL	_ci
	    CALL	_co
	    KICK_DOG	
	    SUB		#1Bh			; test if 'ESC' code
	    BCND    loop,NEQ
dead_loop:
	    B		dead_loop		;dead loop 	
;==============================================================
; Console Input Routine
;==============================================================
_ci:
	LDP		#0E0H 
;   LACL    SCIRXBUF
	BIT		SCIRXST,9		; test RXRDY bit
	BCND	_ci,NTC		    ; if RXRDY NEQ 1, loop back on input
	LACL	SCIRXBUF		; else, load ACCL with character received 
	AND		#00FFh			; mask unsignificant bits in ACC
	RET
;==============================================================
; Console Output Routine
;==============================================================
_co:
	LDP		#0E0H
	BIT		SCICTL2,8		; test TXRDY bit
	BCND	_co, NTC		; if TXRDY NEQ 1, loop back on output
	SACL	SCITXBUF		; else put character to send in SCI transmit buffer
	RET

                          
          
            
            
            
                   

⌨️ 快捷键说明

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