📄 fifo_loopback.asm
字号:
;********************************************************************************
;FT245U169 FIFO Loopback
;Version: 0.2
;Written by: Troy Harstad
;Written for: SoftBaugh, Inc.
;Date: July 28, 2004
;Description: This program transmits data through the FT245BM FIFO data bus to the MSP430F169 on Port 4.
; The data is decremented and sent back out of Port 4 to to FIFO on the FT245BM. Use Hyperterminal
; to send and receive data. FIFO control lines are on Port2 (P2.0-P2.3).
;
; Connect D0-P4.0 D1-P4.1
; D2-P4.2 D3-P4.3
; D4-P4.4 D5-P4.5
; D6-P4.6 D7-P4.7
; RD#-P2.0 WR-P2.1
; TXE#-P2.2 RXF#-P2.3
;
;********************************************************************************
#include "MSP430x16x.h"
ORG 1100h
RD equ 001h ;Output on MSP
WR equ 002h ;Output on MSP
TXE equ 004h ;Input on MSP
RXF equ 008h ;Input on MSP
RESET
mov.w #0A00h,SP ; Initialize 'F169 stackpointer
mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop Watchdog Timer
;Setup LED on P1.0
bic.b #BIT0,&P1SEL
bis.b #BIT0,&P1DIR
bic.b #BIT0,&P1OUT
;***********************************************
;Setup FIFO control
;***********************************************
;FIFO 8-bit data bus on port 4
mov.b #000h,&P4SEL
mov.b #000h,&P4DIR
;FIFO Control lines on P2.0-P2.3
;RD BIT0 ;Output on MSP
;WR BIT1 ;Output on MSPd
;TXE BIT2 ;Input on MSP
;RXF BIT3 ;Input on MSP
mov.b #000h,&P2SEL
mov.b #003h,&P2DIR
mov.b #002h,&P2OUT
;******************************************************************************
; Mainloop
;******************************************************************************
LoopTop
; Go to sleep
; bis #(CPUOFF+SCG0+SCG1),SR
; bic.b #BIT0,&P1OUT
CheckRXF
;When RXF goes low there is data in the FT245 FIFO buffer that can be read
;by strobing RD low then high again
bit.b #RXF,&P2IN ;RXF
jnz CheckRXF
;intentional fall-through
StrobeRD_Low_To_High ;Allows data to be read
bic.b #RD,&P2OUT
bis.b #RD,&P2OUT
bic.b #RD,&P2OUT
;intentional fall-through
ReadDataIN
xor.b #BIT0,&P1OUT ;Toggple LED when data is read into R5
mov.b &P4IN,R5 ;Read data bus in
dec.b R5 ;Add one to data
call #SetupP4_OUT
CheckTXE
bit.b #TXE,&P2IN
jnz CheckTXE
mov.b R5,&P4OUT
StrobeWR_High_To_Low
bis.b #WR,&P2OUT
bic.b #WR,&P2OUT
bis.b #WR,&P2OUT
call #SetupP4_IN
jmp CheckRXF
SetupP4_OUT
mov.b #000h,&P4SEL
mov.b #0FFh,&P4DIR
ret
SetupP4_IN
mov.b #000h,&P4SEL
mov.b #000h,&P4DIR
mov.b #000h,&P4OUT
ret
;------------------------------------------------------------------------------
; Interrupt Vectors
;------------------------------------------------------------------------------
ORG 0FFFEh ; MSP430 RESET Vector
DW RESET ;
END
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -