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

📄 main.asm

📁 2407的一些源代码
💻 ASM
字号:
;============================================================================*
        
        .include "F2407.h" 		        ;头文件  
        .def   _c_int0
        .bss   GPR0,1
		.bss   TEMP,1
        .bss   TEMP1,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     #GPR0
	    SPLK    #01FFh,	GPR0            ;设置整体延时
		OUT     GPR0,	WSGR 
	    LDP     #SCSR1>>7
	    SPLK    #0000011010001100B,SCSR1;使能EVA,EVB,ADC时钟   
	    LDP     #TEMP                   ;打开TEMP所对应的页
	    SPLK    #0FH,TEMP              ;此值决定发光二极管点亮的次数
	    
	    SPLK    #0FFH,TEMP1             ;初始状态送高电平,根据硬件,设置高电平时发光二极管为灭
        OUT     TEMP1,2000H             ;初始状态保证L1~L8灯为灭
        
        LDP     #WDCR>>7
        SPLK    #02FH,WDCR              ;#06FH禁止看门狗
                                        ;#02FH使能看门狗
;====================================================================================
MAIN
        NOP
        LDP     #TEMP1                  ;打开TEMP1所对应的页
        RPT     #0FH                    ;延时等待
        NOP
        SPLK    #0FFH,TEMP1             ;此两句将TEMP1的值送给发光二极管
        OUT     TEMP1,2000H             ;高电平使发光二极管为灭的状态
        
        CALL    DELAY                   ;调用延时子程序
        
        LDP     #TEMP1                  ;打开TEMP1所对应的页
        RPT     #0FH                    ;延时等待
        NOP
        SPLK    #000H,TEMP1             ;此两句将TEMP1的值送给发光二极管
        OUT     TEMP1,2000H             ;低电平使发光二极管为亮的状态
  
        CALL    DELAY                   ;调用延时子程序
        
        LDP     #TEMP                   ;打开TEMP1所对应的页
        LACC    TEMP                    ;将TEMP的值装入ACC中
        SUB     #1                      ;减1
        SACL    TEMP                    ;减后保存所得的值
        BNZ     MAIN                    ;若不为0,跳转到主程序继续运行
                                        
        CALL    DEAD_LOOP               ;人为设置一个死循环
        B       MAIN 

DELAY
        LACC    #01FFFH                 ;改变此值可以调整发光二极管的发光时间
D_LOOP
        SUB     #1
        RPT     #0FFH
        NOP
        BNZ     D_LOOP 
        LDP     #WDKEY>>7
        SPLK    #55H,WDKEY             ;#055H看门狗密钥
        SPLK    #0AAH,WDKEY             ;#0aaH看门狗密钥
        RET
       
DEAD_LOOP                               ;死循环子程序
        NOP
        NOP
        B       DEAD_LOOP
        RET
        .END
       
                  
            
                   

⌨️ 快捷键说明

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