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

📄 colock2.asm

📁 TMS2407开发平台键盘LED试验
💻 ASM
📖 第 1 页 / 共 2 页
字号:
ZERO:         LDP #200H>>7
	      SPLK #0000H,218H
	      SPLK #0000H,219H
	      SPLK #0000H,21AH
	      SPLK #0000H,21BH
             CALL DISP0
GISR2_RET:					;中断返回
	   LDP		#0E8H               ;	恢复现场
	   LACL	EVAIFRA
	   SACL	EVAIFRA    
          CLRC	INTM			;开总中断,因为一进中断就自动关闭总中断
		RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PHANTOM: 	
        KICK_DOG					;复位看门狗
		RET 

;*********************************************************
IOPF_INIT:		    LDP #MCRC>>7  ;允许输出
	                LACL MCRC
	                AND #0FCFFH
		        	SACL MCRC     ;IOPF0/IOPF1为IO输出口
	                LACL PFDATDIR
	                OR   #0302H
	                AND #0FFFEH
	                SACL PFDATDIR
	                RET   
	                
IOPE_INIT:		    LDP #MCRC>>7 ;IOPE7为output low 
					LACL MCRC
					AND #0FF7EH
					SACL MCRC
					LACL PEDATDIR
					OR #8E00H
					AND #0FF7FH
					SACL PEDATDIR
					RET
;*********************************************************
WRITE_7219:         LDP #PEDATDIR>>7    ;AR1存放显示数据,AR2计数
		      LAR AR2,#15				
			SBIT0 PEDATDIR,LOAD_7219
			CALL DELAY
WRITE1			SBIT0 PEDATDIR,CLK_7219
			CALL DELAY
                    MAR *,AR1
                    LACC *,16					
	             SFL
	             SACH *
	             BCND WRITE2,C
	             SBIT0 PEDATDIR,DIN_7219
	             CALL DELAY
	             B WRITE3
WRITE2			SBIT1 PEDATDIR,DIN_7219
                    CALL DELAY
WRITE3              SBIT1 PEDATDIR,CLK_7219
			CALL DELAY
			MAR *,AR2
			BANZ WRITE1
			SBIT1 PEDATDIR,LOAD_7219
			CALL DELAY					
			RET

DELAY                             RPT #2
					NOP
					RET

;(3)系统初始化程序
;*********************************************************
SYSINIT:
		            SETC 	INTM
					CLRC 	SXM
			       	CLRC 	OVM
					CLRC 	CNF					;B0区被配置为数据空间
        LDP 		#0E0H				;指向7000h~7080h区
        SPLK 	#86FEH, SCSR1   		;时钟4倍频,(***CLKIN=10 M,CLKOUT=10 M***)
        SPLK		#0E8H, WDCR			;不使能WDT
        LDP		#0
		SPLK		#03H,IMR			;使能中断优先级INT1\INT2
		SPLK		#0FFFFh,IFR			;清中断标志
              LDP     #XINT1CR>>7
		SPLK    #8001H,XINT1CR        ;priority  
		RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIMEINIT:LDP		#DP_EVA				;指向7400h~7480h区
		SPLK		#80H, EVAIMRA		;使能T1PINT 中断
		SPLK		#0FFFFh, EVAIFRA		;清EVA中断标志
		SPLK		#0,GPTCONA
		SPLK		#30DH,T1PR			;30D(***)使定时器每10ms产生一次中断
		SPLK		#0,T3CNT
              SPLK		#074CH,T1CON		;(***)074CH为停止计数
                                                ;TMODE=10 连续增计数模式,TPS=110 预分频为128
							;TENABLE=1 定时器计数使能, TCLKS=00 内部时钟
							;TECMPR=1 定时器1比较使能, SELT1PR=0 
		CLRC	INTM				;开总中断
		RET		 
;(3)外部中断程序  
GISR1:						
                                   	;	保护现场
		LDP		#0E0H
		LACC	PIVR,1				;读取外设中断向量寄存器(PIVR),并左移一位
		ADD		#PVECTORS			;加上外设中断入口地址
		BACC						;跳到相应的中断服务子程序
XINT1_ISR:	CLRC INTM                    				
		LDP #200h>>7
		MAR *,AR6
		LAR AR6,#0208H  
		IN *,0100H                ;GET KEY VALUE  KEYNUM IS IN 208H
                LACC *
                AND #0FH
                SACL * 
                LDP #4                 
	         LACL 1CH
                SUB #01H
                BCND SETH10,EQ
                SUB #01H
                BCND SETH1,EQ
                SUB #01H
                BCND SETM10,EQ
                SUB #01H
                BCND SETM1,EQ
                SUB #01H
                BCND SETS10,EQ
                SUB #01H
                BCND SETS1,EQ
                SUB #01H
                BCND SETMS01,EQ
                SUB #01H
                BCND SETMS1,EQ
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                LDP #200H>>7
                SPLK #00H,21CH
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                MAR *,AR6
		  LAR AR6,#0208H  
		  LACC * 
                SUB #0AH
                BCND STAR,EQ
                LACC * 
                SUB #0BH
                BCND SETNUM,EQ
                LACC * 
                SUB #0CH
                BCND CLEAR,EQ	                 
                LACC * 
                SUB #0DH
                BCND STOP,EQ   
                B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETH10:         LACL 08H
                SUB #02h
                BCND CLEAR,GT           ;大于2,display 0000
                LACL 08H
                RPT #3
                SFL
                SACL 1BH
                RPT #3
                SFR
                OR #1100h
                LDP #4
                SACL 10H
                LAR AR1,#210H
                CALL    WRITE_7219
                LACC #02H
                LDP #4
                SACL 1CH
                B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETH1:          LACL 08H
                SUB #09h
                BCND CLEAR,GT           ;大于9,display 0000
                LACL 08H
                OR 1BH
                SACL 1BH
                LACL	1BH		;M
				SUB	#23H		;M
				BCND	CLEAR,GT	;M	
                LACL 08H
                OR #2280h
                SACL 10H
                LAR AR1,#210H
                CALL    WRITE_7219
                LACC #03H
                LDP #4
                SACL 1CH
                B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETM10:         LACL 08H
                SUB #05h
                BCND CLEAR,GT           ;大于5,display 0000
                LACL 08H
                RPT #3
                SFL
                SACL 1AH
                RPT #3
                SFR
                OR #3300h
                SACL 10H
                LAR AR1,#210H
                CALL    WRITE_7219
                LACC #04H
                LDP #4
                SACL 1CH
                B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETM1:          LACL 08H
                SUB #09h
                BCND CLEAR,GT           ;大于9,display 0000
                LACL 08H
                OR 1AH
                SACL 1AH
                LACL 08H
                OR #4480h
                SACL 10H
                LAR AR1,#210H
                CALL    WRITE_7219
                LACC #05H
                LDP #4
                SACL 1CH
                B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETS10:         LACL 08H
                SUB #05h
                BCND CLEAR,GT           ;大于5,display 0000
                LACL 08H
                RPT #3
                SFL
                SACL 19H
                RPT #3
                SFR
                OR #5500h
                SACL 10H
                LAR AR1,#210H
                CALL    WRITE_7219
                LACC #06H
                LDP #4
                SACL 1CH
                B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETS1:          
                LACL 08H
                SUB #09h
                BCND CLEAR,GT           ;大于9,display 0000
                LACL 08H
                OR 19H
                SACL 19H
		
                LACL 08H
                OR #6680h
                SACL 10H
                LAR AR1,#210H
                CALL    WRITE_7219
                LACC #07H
                LDP #4
                SACL 1CH
                B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETMS01:        LACL 08H
                SUB #09h
                BCND CLEAR,GT           ;大于9,display 0000
                LACL 08H
                RPT #3
                SFL
                SACL 18H
                RPT #3
                SFR
                OR #7700h
                SACL 10H
                LAR AR1,#210H
                CALL    WRITE_7219
                LACC #08H
                LDP #4
                SACL 1CH
                B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETMS1:         LACL 08H
                SUB #09h
                BCND CLEAR,GT           ;大于9,display 0000
                LACL 08H
                OR 18H
                SACL 18H
                LACL 08H
                OR #8800h
                SACL 10H
                LAR AR1,#210H
                CALL    WRITE_7219
                LACC #00H
                LDP #4
                SACL 1CH
                B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
STAR:           LDP		#DP_EVA				;指向7400h~7480h区
                SPLK		#174CH,T1CON
                B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETNUM:         LACC #01H
                LDP #4
                SACL 1CH   
                LACC #110AH
                SACL 10H
                LAR AR1,#210H
                CALL    WRITE_7219

                B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLEAR:        LDP #200H>>7
	      SPLK #0000H,218H
	      SPLK #0000H,219H
	      SPLK #0000H,21AH
	      SPLK #0000H,21BH 
	      LDP		#DP_EVA				;指向7400h~7480h区
          SPLK		#074CH,T1CON
             CALL DISP0 
             LACC #00H
                LDP #4
                SACL 1CH
             B GISR1_RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
STOP:           LDP		#DP_EVA				;指向7400h~7480h区
                SPLK		#074CH,T1CON
GISR1_RET:					;中断返回
	       CLRC	INTM			;开总中断,因为一进中断就自动关闭总中断
		  LDP  #XINT1CR>>7
		SPLK #8001H,XINT1CR
		RET

            END

⌨️ 快捷键说明

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