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

📄 c54init.asm

📁 这里面有很多dsp应用程序源码
💻 ASM
字号:

************************** c54init.asm ********************
		.mmregs
		.include c54.inc
		.def c54init
		.sect "progsys"
c54init:
*SWWSR :SoftWare Wait-State Register Address 0028h
* -------------------------------------------------------------------------
* |     15     | 14    12 | 11      9 | 8        6 | 5       3 | 2      0 |
* -------------------------------------------------------------------------
* |   XPA      |  I/O     |  Data     |  Data      | Program   |  Program |
* -------------------------------------------------------------------------
		STM #0x7208,SWWSR				;0 111 001 000 001 000
*I/O空间为7个等待周期
*数据空间8000h-FFFFh为1个等待周期
*数据空间0000h-7FFFh为0个等待周期
*程序空间8000h-FFFFh为1个等待周期
*程序空间0000h-7FFFh为0个等待周期

*SWCR :SoftWare Wait-State Conctrol Register Address 002Bh
* -------------------------------------------------------------------------
* |                                                            |     0    |
* -------------------------------------------------------------------------
* |                                                            |    SWSM  |
* -------------------------------------------------------------------------
		STM #0,SWCR
*等待周期不变
*(STM #1,SWCR 等待周期加倍)
*
*
*BSCR :Programabel bank-switching wait states Address 0029h
* -------------------------------------------------------------------------
* | 15       12  |      11      |  10    3 |    2   |    1     |    0     |
* -------------------------------------------------------------------------
* |    BNKCMP    |    PS–DS    | Reserved |   HBH  |    BH    |   EXIO   |
* -------------------------------------------------------------------------
		STM #0xF800,BSCR             ;1111 1000 0000 0000
*允许修改PMST中的值
*在连续的读程序或数据空间时插入1个额外的等待周期
*外部存储器的空白区间为4k
*
*
*ST0
* ------------------------------------------------------------------------
* |  15   13   |   12   |   11   |   10   |   9   |      8        0      |
* ------------------------------------------------------------------------
* |    ARP     |   TC   |   C    |  OVA   |  OVB  |          DP          |
* ------------------------------------------------------------------------
		STM #0,ST0
*数据页指针指向0
*
*
*ST1
* ------------------------------------------------------------------------
* | 15 | 14  | 13 | 12 |  11  |10 |  9  |  8  |  7  |  6   |  5   |4   0 |
* ------------------------------------------------------------------------
* |BRAF| CPL | XF | HM | INTM | 0 | OVM | SXM | C16 | FRCT | CMPT |  ASM |
* ------------------------------------------------------------------------
		STM #0x2b00,ST1				;0010 1011 0000 0000
*INTM=1  将全局中断禁止
*SXM=1   数据进入ALU之前进行符号位扩展
*OVM=1	 益处控制位(参考ST1资料)
*
*
*PMST
* ------------------------------------------------------------------------
* | 15        7  |   6    |    5   |    4   |   3    |    2   |  1  |  0 |
* ------------------------------------------------------------------------
* |     IPTR     | MP/MC  |  OVLY  |  AVIS  |  DROM  | CLKOFF | SMUL|SST |
* ------------------------------------------------------------------------
* |0020 1111 1   |   0    |    1   |    0   |    0   |    0   |  0  | 0  |
* ------------------------------------------------------------------------
*       0011 11111   1         1        0        0        1      0    0		
		STM #0x2fe4,PMST			;0010 1111 1110 0100
*将中断向量表映射到  2f80
*MP/MC=0 芯片工作在微计算机方式,可以寻址片内程序存储器
*
*
*IFR or IMR
* --------------------------------------------------------------------------------------------
* |15 14 | 13  |  12 |  11  |  10  |  9  |  8 |  7  |  6  |  5   |   4  |  3  |  2 | 1  |  0 |
* ---------------------------------------------------------------------------------------------
* |RES   |DMAC5|DMAC4|BXINT1|BRINT1|HPINT|INT3|TINT1|DMAC0|BXINT0|BRINT0|TINT0|INT2|INT1|INT0|
* |      |     |     |DMAC3 |DMAC2 |     |    |DMAC1|     |      |      |     |    |    |    |
* --------------------------------------------------------------------------------------------
*    00     0     0     0      0      0    0     0     0     0      0      0     0    0    0	
		STM #0xFFFF,IFR
*清除挂起的中断
		STM #0x0000,IMR				;关闭所有中断
*打开定时器0的中断。		
*									
*
*CLKMD 
* ------------------------------------------------------------------------
* | 15     12  |   11   | 10      3 |     2     |    1     |       0     |
* ------------------------------------------------------------------------
* |   PLLMUL   | PLLDIV | PLLCOUNT  | PLLON/OFF | PLLNDIV  |  PLLSTATUS  |
* ------------------------------------------------------------------------			
		STM #0,CLKMD
clkcon:	LDM CLKMD,A
		AND #0x01,A
		BC clkcon,ANEQ
		STM #0x43ff,CLKMD			;0100 0011 1111 1111
*利用软件对CLKMD进行加载(参考教材:P250)		
*PLL=4 MUL=5 100Mhz; PLL=3 MUL=4 80Mhz
*
*		
*TCR
* ------------------------------------------------------------------------
* | 15        12 |   11   |    10  | 9   6  |   5    |    4   |  3     0 |
* ------------------------------------------------------------------------
* |     Revd     | soft   | free   |  PSC   |  TRB   |  TSS   |   TDDR   |
* ------------------------------------------------------------------------		
		STM #0x0010,TCR1				;timer1  stop
		STM #0x0010,TCR					;TSS=1 Timer stop
		STM #12800,PRD
		STM #0x0020,TCR
*定时中断周期=CLKOUT*(TDDR+1)*(PRD+1)
		RSBX INTM
*将全局中断使能
		NOP
		NOP		
				
		RET
		.end

⌨️ 快捷键说明

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