Ðề tài: Cấu hình 18F458
View Single Post
Old 18-06-2008, 08:40 AM   #3
KA52
Đệ tử 1 túi
 
Tham gia ngày: Oct 2007
Bài gửi: 22
:
Pà con cho m hỏi chương trình m viết như vầy nhưng sao nó lại không báo ngắt để kết thúc truyền vậy? Chính xác là ko có ngắt để vào chương trình ngắt.
Vùng nhớ trong 458 phân bank thấp cao vậy m chỉnh bank khi chuyên lệnh là nó báo tràn con trỏ?

Code:
	title	"18F458 TRANSMIT TEST"
	processor	18F458
	include		<P18F458.inc>
	CONFIG	OSC = XT, OSCS = OFF
	CONFIG	PWRT = ON, BOR = ON, BORV = 27
	CONFIG	WDT = OFF, WDTPS = 128
	CONFIG 	STVR = ON, LVP = OFF, DEBUG = OFF
	CBLOCK	0X20
		W_SV,STATUS_SV,FSR_SV,PCLATH_SV,FSR,CANSTAT_SV
	ENDC

	ORG		0X00
	GOTO	MAIN
	ORG		0X04
	GOTO	NGAT

NGAT
	MOVWF	W_SV
	SWAPF   STATUS,W
	CLRF    STATUS
	MOVWF 	STATUS_SV
	MOVF	PCLATH,W
	MOVWF	PCLATH_SV
	CLRF    PCLATH
    MOVF   	FSR,W
	MOVWF	FSR_SV

	BTFSC	PIR3,TXB0IF				;KT NGAT TRANSMIT
	GOTO	NGATRANS
	BTFSC	PIR3,ERRIF
	GOTO	LOI
	GOTO	EXITNGAT

NGATRANS
	BSF		PORTD,5
	RETFIE

LOI
	MOVLW	0XF0
	MOVWF	PORTD
	RETFIE

EXITNGAT
	MOVF	FSR_SV,W
	MOVWF	FSR
	MOVF	PCLATH_SV,W
	MOVWF	PCLATH
	SWAPF	STATUS_SV,W
	MOVWF	STATUS
	SWAPF	W_SV,W
	BSF		INTCON,GIE
	RETFIE

MAIN
	MOVLW	0X08
	MOVWF	TRISB					;PORTB XUAT DATA
	CLRF	TRISC					;PORTC TEST TRANSMIT
	CLRF	TRISD					;-NT-
	CLRF	PORTC
	CLRF	PORTD

	CLRF	BRGCON1
	CLRF	BRGCON2
	CLRF	BRGCON3
	MOVLW	B'00001000'
	MOVWF	CANCON
	BSF		CIOCON,ENDRHI
	BSF		CIOCON,CANCAP
	MOVLW	B'00100100'
	MOVWF	PIE3
	MOVLW	B'00100000'
	MOVWF	IPR3
	BSF		INTCON,GIE
	CALL 	TRANSMIT
	BTFSC	TXB0CON,TXERR
	BSF		PORTD,0					;ERR=1
	BTFSS	TXB0CON,TXREG
	BSF		PORTD,0					;REG=0
	BTFSS	TXB0CON,TXIE
	BSF		PORTD,2					;IE=0
	BSF		PORTD,3
	BSF		PORTD,4
	GOTO	$

TRANSMIT
	MOVLW	B'00001111'
	MOVWF	BSR
	MOVLW	B'00000000'
	MOVWF	TXB0SIDH
	MOVLW	B'11100000'
	MOVWF	TXB0SIDL
	MOVLW	B'00001000'
	MOVWF	TXB0DLC
	MOVLW	B'11001100'
	MOVWF	TXB0D0
	MOVWF	PORTC				;TEST PORTC
	MOVLW	B'11001100'
	MOVWF	TXB0D1
	MOVWF	TXB0D2
	MOVWF	TXB0D3
	MOVWF	TXB0D4
	MOVWF	TXB0D5
	MOVWF	TXB0D6
	MOVWF	TXB0D7
	BSF		TXB0CON,TXREG
	RETURN

	END

thay đổi nội dung bởi: KA52, 24-06-2008 lúc 12:44 PM. Lý do: sửa ng.nhận
KA52 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn