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

📄 ex7.asm

📁 这是用CCS编写的DSP汇编程序
💻 ASM
字号:
************************************************
* FileName:		ex7.asm                        *
* Description:	定时器实验                     *
* Copyright(C) SanZhi Electronic, Author Zpin  *
************************************************


		.title "ex7"
		.global _c_int00
		.mmregs
		
PERSEC	.set	60h
SEC		.set	61h
MIN		.set	62h
STATUS	.set	63h

TMP0	.set	64h
TMP1	.set	65h
TMP		.set	66h

D_LED	.set	0b000h

;D_LED0	.set 	01h
;D_LED1	.set 	02h
;D_LED2	.set 	03h
;D_LED3	.set 	04h
;D_LED4	.set 	05h
;D_LED5	.set 	06h

D_LED0	.set 	06h
D_LED1	.set 	05h
D_LED2	.set 	04h
D_LED3	.set 	03h
D_LED4	.set 	02h
D_LED5	.set 	01h


LED_DISP	.macro	hexdata,portaddr
		LD hexdata,B
		ST #0Ah,TMP0
		RPT #15
		SUBC TMP0,B
		STH B,TMP0				;存放BCD码个位
		STL B,TMP1				;存放BCD码十位
		ST #2000h,AR0
		LD TMP0,B
		ADD AR0,B
		STL B,AR0
		NOP
		NOP
		LD *AR0,A
		OR #portaddr+1,A		;计算位码
		PORTW AL,D_LED
		rpt #30000
		nop
		nop
		ST #2000h,AR0
		LD TMP1,B
		ADD AR0,B
		STL B,AR0
		NOP
		NOP
		LD *AR0,A
		OR #portaddr,A			;计算位码
		PORTW AL,D_LED
		rpt #30000
		nop
		nop
		.endm      

;段码
		.data
		.word 3F00h,0600h,5B00h,4f00h,6600h,6d00h,7d00h,0700h,7f00h,6f00h
		
		.sect ".vectors"
rst:	B _c_int00
		NOP
		NOP
		.space 15*4*16
int0:	B keydown
		NOP
		NOP
		.space 2*4*16
tint:	B timeout
		NOP
		NOP
		.space 12*4*16
		
		.text
_c_int00
		LD #0h,DP
		STM #3000h,SP
		SSBX INTM
		RSBX SXM
		STM #07FFFh,SWWSR
		stm #0001h,2Bh
		
		ST #0h,CLKMD
tst:	BITF CLKMD,#1h
		BC tst,TC
		ST #1087h,CLKMD
		BITF CLKMD,#1h
		RPT #0FFh
		NOP
		
		ORM #0010h,TCR
		ST #19999,PRD
		ORM #0009h,TCR
		ORM #0020h,TCR
		ST #0FFFFh,IFR
		ORM #0008h,IMR
		RSBX INTM

		ST #0,PERSEC
		ST #0,SEC
		ST #0,MIN
		ST #1,STATUS
		
		LED_DISP PERSEC,D_LED1
		LED_DISP MIN,D_LED5
		LED_DISP SEC,D_LED3

		ANDM #0FFEFh,TCR
		
susp	nop
		nop
		nop
		B susp
		
timeout ADDM #1,PERSEC
        LD #100,A
        SUB PERSEC,A
        BC secout,ALEQ
        B exit
secout	ST #0,PERSEC
        ADDM #1,SEC
		LD #60,A
		SUB SEC,A
		BC minout,ALEQ
		B exit
minout	ST #0,SEC
		ADDM #1,MIN
		LD #100,A
		SUB MIN,A
		BC overflow,ALEQ
		B exit
overflow
		ST #0,MIN
		ORM #0030h,TCR		;Stop and Reload Timer
		ST #0,STATUS		;Set stopfalg
exit	LED_DISP MIN,D_LED5	
		LED_DISP SEC,D_LED3
		LED_DISP PERSEC,D_LED1
		RETE		

keydown
		ST 0ffffh,IFR
		ORM #0030h,TCR
		BITF STATUS,#1h
		BC restart,NTC
		RETE
restart ST #0,PERSEC
		ST #0,SEC
		ST #0,MIN
        LED_DISP PERSEC,D_LED1		;刷新1/100秒表
		LED_DISP SEC,D_LED3			;刷新秒表
		LED_DISP MIN,D_LED5			;刷新分钟
		ANDM #0FFEFh,TCR
		RETE		

		.end		

⌨️ 快捷键说明

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