📄 dips.asm
字号:
;*********************************************************************
; File Name: dips.asm
; Target System: C24x Evaluation Board
;
; Description: This sample program demonstrates fetching data from
; I/O space from the DIP switches and then sending the
; data back to I/O space to the LEDs on the F240
; EVM Development Board
;
; The state of the LED (ON/OFF) reflects the state of
; the corresponding DIP switch.
;
; Revision: 1.00
;
;*********************************************************************
.include f240regs.h
;---------------------------------------------------------------------
; I/O Mapped EVM Register Declarations
;---------------------------------------------------------------------
DAC0 .set 0000h ;DAC Channel 0 Register
DAC1 .set 0001h ;DAC Channel 1 Register
DAC2 .set 0002h ;DAC Channel 2 Register
DAC3 .set 0003h ;DAC Channel 3 Register
DAC_UPDATE .set 0004h ;DAC Update Register
SWITCHES .set 0008h ;DIP Switch Register
LEDS .set 000Ch ;LEDs Register
temp .set 8000h
;---------------------------------------------------------------------
; Variable Declarations for on chip RAM Blocks
;---------------------------------------------------------------------
.bss GPR0,1 ;General purpose register.
.bss LED_STATUS,1 ;LED Status Register
.bss SW_STATUS,1 ;DIP Switch Status Register
;---------------------------------------------------------------------
; Vector address declarations
;---------------------------------------------------------------------
.sect ".vectors"
RSVECT B START ; Reset Vector
INT1 B PHANTOM ; Interrupt Level 1
INT2 B PHANTOM ; Interrupt Level 2
INT3 B PHANTOM ; Interrupt Level 3
INT4 B PHANTOM ; Interrupt Level 4
INT5 B PHANTOM ; Interrupt Level 5
INT6 B PHANTOM ; Interrupt Level 6
RESERVED B PHANTOM ; Reserved
SW_INT8 B PHANTOM ; User S/W Interrupt
SW_INT9 B PHANTOM ; User S/W Interrupt
SW_INT10 B PHANTOM ; User S/W Interrupt
SW_INT11 B PHANTOM ; User S/W Interrupt
SW_INT12 B PHANTOM ; User S/W Interrupt
SW_INT13 B PHANTOM ; User S/W Interrupt
SW_INT14 B PHANTOM ; User S/W Interrupt
SW_INT15 B PHANTOM ; User S/W Interrupt
SW_INT16 B PHANTOM ; User S/W Interrupt
TRAP B PHANTOM ; Trap vector
NMINT B PHANTOM ; Non-maskable Interrupt
EMU_TRAP B PHANTOM ; Emulator Trap
SW_INT20 B PHANTOM ; User S/W Interrupt
SW_INT21 B PHANTOM ; User S/W Interrupt
SW_INT22 B PHANTOM ; User S/W Interrupt
SW_INT23 B PHANTOM ; User S/W Interrupt
;=====================================================================
; M A I N C O D E - starts here
;=====================================================================
.text
NOP
START: SETC INTM ;Disable interrupts
SPLK #0000h,IMR ;Mask all core interrupts
LACC IFR ;Read Interrupt flags
SACL IFR ;Clear all interrupt flags
CLRC SXM ;Clear Sign Extension Mode
CLRC OVM ;Reset Overflow Mode
CLRC CNF ;Config Block B0 to Data mem
LDP #00E0h ;DP for addresses 7000h-707Fh
SPLK #00BBh,CKCR1 ;CLKIN(OSC)=10MHz,CPUCLK=20MHz
SPLK #00C3h,CKCR0 ;CLKMD=PLL Enable,SYSCLK=CPUCLK/2
SPLK #40C0h,SYSCR ;CLKOUT=CPUCLK
SPLK #006Fh, WDCR ;Disable WD if VCCP=5V (JP5 in pos. 2-3)
KICK_DOG ;Reset Watchdog
SPLK #0h,GPR0 ;Set wait state generator for:
OUT GPR0,WSGR ;Program Space, 0 wait states
;Data Space, 0 wait states
;I/O Space, 0 wait states
LOOP IN SW_STATUS,SWITCHES ;Get the status of each DIP switch
LACC SW_STATUS ;Load the status into the accumulator
SACL LED_STATUS ;Store the DIP status into the LEDs status
OUT LED_STATUS,LEDS ;Output the DIP status to the LEDS
B LOOP ; A DIP that is on will turn on the
; corresponding LED
; A DIP that is off will turn off the
; corresponding LED
;=====================================================================
; I S R - PHANTOM
;
; Description: Dummy ISR, used to trap spurious interrupts.
;
; Modifies: Nothing
;
; Last Update: 16 June 95
;=====================================================================
PHANTOM KICK_DOG ;Resets WD counter
B PHANTOM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -