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

📄 main.asm

📁 2407的一些源代码
💻 ASM
字号:
;==========================================================================*
* File name : main.asm *
* Author: Qu Bo *
* Data: 2006.11.19*
* Version: 2.0 *
* Organization: DSP&EMC,National Key Laboratory of Power Electronics, 
*               Zhejiang University, Hangzhou 310027, China *
* Description : PROGRAM TO CONTROL A ELECTRIC CAR USE F2407A * 

;============================================================================*
        .include "F2407.h"                 ;头文件
        .def  _c_int0
        .bss  TEMP,1 
        .bss  TEMP1,1
        .bss  TEMP2,1
        .bss  COUNT,1
        .bss  DATA3,1
        .bss  GPR0,1
;======================================================
;系统初始化
;使能EVA,EVB,SPI模块,其他的未使能(根据要求使能)。
;======================================================
        .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    #00h,GPR0
		OUT     GPR0,WSGR                  ;与外部等待时间为0
	    LDP     #SCSR1>>7
	    SPLK    #0000000000101100B,SCSR1   ;使能EVA,EVB,SPI
	    LDP	    #IMR>>7
	    SPLK    #0002H,IMR                 ;中端级2使能

        LDP		#MCRB>>7
	    SPLK	#0FFFDH,MCRB               ;9~15脚须置1,以实现在线仿真功能
	    LDP		#PCDATDIR>>7
	    SPLK	#0FFFDH,PCDATDIR
	    LDP     #TEMP2
	    SPLK    #0FFFFH,TEMP2
	    OUT     TEMP2,2000H
	    OUT     TEMP2,6000H

MAIN:	

		CALL	INIT                       ;调用INIT子程序
		LDP		#COUNT
		SPLK	#0,COUNT                   ;计数值COUNT初始化
		LDP		#TEMP1
		SPLK	#80H,TEMP1                 ;TEMP1的初始值
		CALL	ADD_SET                    ;DDRAM地址设定
SHOW_LP
		LDP		#COUNT
		LACC	COUNT
		AND     #00FFH
		ADD     #TABLE
		TBLR    TEMP1                      ;查表显示
		CALL	DATA_SET                   ;数据设定
		LACC	COUNT 
		ADD		#1
		SACL	COUNT                      ;加1计数,不大于64时逐一显示
		SUB		#64                        
		BCND	SHOW_LP,LT                 ;ACC<0

LOOP
		NOP
		NOP
		B       LOOP                       ;大循环等待


INIT
		CALL	A11                       ;调用"基本指令"子程序
		CALL	A0                        ;调用"清寄存器"子程序
		CALL	A2                        ;调用"显示关"子程序
		CALL	A3                        ;调用"整体显示"子程序
		NOP
		RET
		
A0 
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选,加一时钟信号,使负责液晶使能输出的锁存器工作
		SPLK	#01H,TEMP		         ;清寄存器,也为待命模式
		OUT		TEMP,04000H              ;送数据给送显示的锁存器  
		CALL	DELAY                    ;延时等待                
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选,加一时钟信号,使负责液晶数据输入显示的锁存器工作
		CALL	DELAY1                   ;延时等待
		CALL	DELAY1                
		CALL	DELAY1                
		RET
A1
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选
		SPLK	#02H,TEMP
		OUT		TEMP,04000H              ;送数据,地址复位
		CALL	DELAY                    ;延时等待
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
		CALL	DELAY1                   ;延时等待                
		CALL	DELAY1                
		CALL	DELAY1                
		RET

A2
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选   
		SPLK	#08H,TEMP
		OUT		TEMP,04000H              ;送数据,显示关(整体显示,游标,游标位置均关)
		CALL	DELAY                    ;延时等待              
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
		CALL	DELAY                    ;延时等待                
		RET
A3		
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选    
		SPLK	#0CH,TEMP                ;字体左右移可通过修改此数据实现
		OUT		TEMP,04000H              ;送数据,实现整体显示
    	CALL	DELAY                    ;延时等待                
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
		CALL	DELAY                    ;延时等待                  
		RET		
A4
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选
		SPLK	#0EH,TEMP
		OUT		TEMP,04000H              ;送数据,实现游标显示
		CALL	DELAY                    ;延时等待          
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
		CALL	DELAY                    ;延时等待
		RET
A5
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选       
		SPLK	#0FH,TEMP
		OUT		TEMP,04000H              ;送数据,实现游标位置显示
        CALL	DELAY                    ;延时等待              
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
    	CALL	DELAY                    ;延时等待            
		RET
A6
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选      
		SPLK	#10H,TEMP
		OUT		TEMP,04000H              ;送数据,实现光标左移
    	CALL	DELAY                    ;延时等待                
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
		CALL	DELAY                    ;延时等待               
		RET
A7
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选      
		SPLK	#14H,TEMP
		OUT		TEMP,04000H              ;送数据,实现光标右移
    	CALL	DELAY                    ;延时等待                
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
    	CALL	DELAY                    ;延时等待              
		RET 
A8
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选      
		SPLK	#18H,TEMP
		OUT		TEMP,04000H              ;送数据,实现整体显示左移
		CALL	DELAY                    ;延时等待               
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
    	CALL	DELAY                    ;延时等待
		RET
A9
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选      
		SPLK	#02H,TEMP
		OUT		TEMP,04000H              ;送数据,实现整体显示右移
    	CALL	DELAY                    ;延时等待                
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
		CALL	DELAY                    ;延时等待   
		RET
A10
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选      
		SPLK	#34H,TEMP
		OUT		TEMP,04000H              ;送数据,实现扩充指令
		CALL	DELAY                    ;延时等待
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
		CALL	DELAY                    ;延时等待
		RET
A11
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选等       
		SPLK	#30H,TEMP
		OUT		TEMP,04000H              ;送数据,基本指令功能
		CALL	DELAY                    ;延时等待                
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
		CALL	DELAY                    ;延时等待        
		RET
ADD_SET
		LDP		#TEMP
		SPLK	#0F6H,TEMP
		OUT		TEMP,0C000H              ;片选
		LACC	TEMP1
		SACL	TEMP      
		OUT		TEMP,04000H              ;送数据,DDRAM地址设定
    	CALL	DELAY                    ;延时等待                
		SPLK	#0F4H,TEMP
		OUT		TEMP,0C000H              ;片选
		CALL	DELAY                 
		RET
DATA_SET
		LDP		#TEMP
		SPLK	#0F7H,TEMP
		OUT		TEMP,0C000H              ;片选  
		LACC	TEMP1
		SACL	TEMP    
		OUT		TEMP,04000H              ;送数据,送入的为要显示的内容
		CALL	DELAY                    ;延时等待               
		SPLK	#0F5H,TEMP
		OUT		TEMP,0C000H              ;片选
		CALL	DELAY                    ;延时等待
		RET
 		     
DELAY:                                   ;延时子程序
		LACC	#0B0H  
D_LOOP		
		SUB		#1
		BNZ		D_LOOP
		RET		     
		     
DELAY1                                   ;延时子程序
		LACC	#01000H  
D1_LOOP		
		SUB		#1
		BNZ		D1_LOOP
		RET	    
		
TABLE:
		
		.WORD 	#20H		;80     
		.WORD 	#54H		;1    T
		.WORD 	#48H		;81   H
		.WORD 	#46H		;2    F
		.WORD 	#2DH		;82   -
		.WORD 	#32H		;     2
		.WORD 	#20H		;83   
		.WORD 	#20H		;      
		.WORD 	#20H		;84   
		.WORD 	#20H		;     
		.WORD 	#20H		;85   
		.WORD 	#44H		;     D
		.WORD 	#53H		;86   S
		.WORD 	#50H		;     P
		.WORD 	#20H		;87   
		.WORD 	#20H		;
		
	    .WORD 	#0CCH	    ;1    天
		.WORD 	#0ECH		;
		.WORD 	#0BBH		;2    煌
		.WORD 	#0CDH		;
		.WORD 	#0BDH		;3    教
		.WORD 	#0CCH		;
		.WORD 	#0D2H		;4    仪
		.WORD 	#0C7H		;
		.WORD 	#0B0H		;5    伴 
		.WORD 	#0E9H		;
		.WORD 	#0C4H		;6    你  
		.WORD 	#0E3H		;
		.WORD 	#0B3H		;7    成 
		.WORD 	#0C9H		;
		.WORD 	#0B3H		;8    长      
		.WORD 	#0A4H		;	 
			
		.WORD 	#0CAH		;1    实
		.WORD 	#0B5H		;       
		.WORD 	#0D1H		;2    验
		.WORD 	#0E9H		;       
		.WORD 	#0D3H		;3    与
		.WORD 	#0EBH		;       
		.WORD 	#0BFH		;4    开
		.WORD 	#0AAH		;       
		.WORD 	#0B7H		;5    发
		.WORD 	#0A2H		;       
		.WORD 	#0CFH		;6    系
		.WORD 	#0B5H		;       
		.WORD 	#0CDH		;7    统
		.WORD 	#0B3H		;       
		.WORD 	#020H		;8    
		.WORD 	#020H		;    
		
	
        .WORD 	#0C8H		;1    日
		.WORD 	#0D5H		;
		.WORD 	#0C6H		;2    期
		.WORD 	#0DAH		;       
		.WORD 	#3AH		;3     :
		.WORD 	#32H		;      2
		.WORD 	#30H		;4     0
		.WORD 	#30H		;      0
		.WORD 	#37H		;5     7
		.WORD 	#2EH		;      .
		.WORD 	#30H		;6     0
		.WORD 	#35H		;      5
		.WORD 	#2EH		;7     .
		.WORD 	#31H		;      1
		.WORD 	#37H		;8     7
		.WORD 	#20H		;	
		
		.END
				

⌨️ 快捷键说明

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