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

📄 main.asm

📁 2407的一些源代码
💻 ASM
字号:
;============================================================================*
        
        .include "F2407.h" 		        ;头文件  
        .def   _c_int0,T3_INT
        .bss   GPR0,1

;============================================================================*
;系统初始化
;使能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                     ;B0为数据存储区
        SETC    OVM
        LDP     #WDCR>>7
	    SPLK    #006Fh,	WDCR 	        ;看门狗不使能
	    KICK_DOG  
	    SPLK    #01FFh,	GPR0
		OUT     GPR0,	WSGR            ;设置整体延时
	    LDP     #SCSR1>>7
	    SPLK    #0000011010001100B,SCSR1;仅使能ADC EVA EVB时钟,节能      
	    LDP	    #MCRB>>7                ;设置指向I/O口复用寄存器B
	    SPLK    #0FFFDH,MCRB            ;MCRB中设置1硬件上与仿真器相连,实现在线仿真      
;========================初始化=============================                   
	    LDP     #IFR>>7
	    SPLK	#0FFH,IFR               ;写1清除中断标志位
	    SPLK	#02H,IMR                ;使能INT1
	    LDP     #MCRC>>7
	    SPLK    #0FFH,MCRC              ;设置MCRC均为基本功能
	                                    ;对应的均为EVB中用到的管脚
	    LDP		#EVBIFRA>>7
	    SPLK	#0FFFFH,EVBIFRA         ;清除EVB中断标志寄存器A中的标志位
	    SPLK	#0FFFFH,EVBIFRB         ;清除EVB中断标志寄存器B中的标志位
	    SPLK	#0FFFFH,EVBIFRC         ;清除EVB中断标志寄存器C中的标志位
	    SPLK	#00400H,EVBIMRA         ;#0400H,使能定时器3上溢中断
	                                    ;#0200H,使能定时器3下溢中断
	                                    ;#0100H,使能定时器3比较中断
	                                    ;#0080H,使能定时器3周期中断
	    SPLK	#0,EVBIMRB
	    SPLK	#0,EVBIMRC

;====================初始化事件管理器=======================
        LDP		#234                    ;数据页面指向寄存器地址7500H~7480H
        SPLK    #0000000001000001B,GPTCONB
                                        ;位6,即TCOMPOE=1,允许定时器比较输出
                                        ;位1~0,即T3PIN=01,允许定时器比较输出低电平有效
        SPLK    #0FFFFH,T1PR            ;设置周期寄存器
        SPLK    #300H,T1CMPR            ;设置比较寄存器
        SPLK    #01H,T3CNT              ;设置计数寄存器
        SPLK    #0001011101000110B,T3CON
                                        ;位12~11,即TMODE=10,采用连续增计数模式
                                        ;位10~8,即TPS2-0=111,预定标分频因子为x/128
                                        ;位6,即TENABLE=1,定时器计数使能
                                        ;位5~4,即TCLKS1-TCLKS0TCI=00,采用内部时钟
                                        ;位3~2,即TCLD1~0=01,计数器值为0或等于周期寄存器的值时重载
                                        ;位1,即TECMPR=1,定时器3比较使能
                                        ;位0,即SELT1PR=0,使能自身的周期寄存器
        
        CLRC    INTM                    ;开中断屏蔽 
;===========================================================
LOOP                                    ;死循环等待中断
        NOP
        NOP
        NOP
        B       LOOP 
	   
T3_INT
        NOP
        LDP		#EVBIFRA>>7
	    SPLK	#0FFFH,EVBIFRA          ;清中断标志等待下一次中断
        CLRC    INTM
        RET
        .END
       
                  
            
                   

⌨️ 快捷键说明

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