有四個副程式做鏈結: main,openint,rs232ini,var
=================================
MAIN:
list p=18f452,r=dec
#include p18f452.inc
;----- include variable -----
extern W_Temp,STATUS_Temp,BSR_Temp
;----- include function -----
extern RS232_Initial,Open_Interrupt
;----- start vector -----
org 0x00
nop
goto Main_Program
org 0x08
goto INT_SER
org 0x18
retfie
org 0x30
Main_Program:
call RS232_Initial
call Open_Interrupt
goto $
INT_SER:
movwf W_Temp,0
movff STATUS,STATUS_Temp
movff BSR,BSR_Temp
btfss PIR1,RCIF,0
goto INT_SER_End
movf RCREG,W,0
movwf TXREG,0
INT_SER_End:
movff STATUS_Temp,STATUS
movff BSR_Temp,BSR movf W_Temp,W,0
==============================
OPENINT:
list p=18f452,r=dec
#include p18f452.inc
bootcode code
Open_Interrupt:
global Open_Interrupt
bsf RCON,IPEN,0
bsf INTCON,PEIE,0
bsf INTCON,GIE,0
return
end
================================
rs232ini:
list p=18f452,r=dec
#include p18f452.inc
Baud_Rate equ d'25' Code P_Code code
RS232_Initial:
global RS232_Initial
bcf TRISC,6,0
bsf TRISC,7,0
movlw Baud_Rate
movwf SPBRG,0
bsf TXSTA,BRGH,0
bsf TXSTA,TXEN,0
bsf RCSTA,CREN,0
bsf RCSTA,SPEN,0
bsf IPR1,RCIP,0
bsf PIE1,RCIE,0
return
end
====================================
Variable:
udata_acs 0x00
W_Temp res 1
STATUS_Temp res 1
BSR_Temp res 1
global W_Temp,STATUS_Temp,BSR_Temp
end
====================================
這是從書上直接抄下來的.....應該不會有任何問題
這是要做VB傳送,PIC接收,RS232串列傳輸的小專題
可是很納悶的是VB端已經測試可以傳出8bits的數位訊號
但pic端卻無法在PORTD處亮燈
我遺漏了什麼嗎!?
請各位大大提供些方法吧 拜託拜託~~ Orz