vb傳pic |
尚未結案
|
tt123
一般會員 發表:1 回覆:0 積分:0 註冊:2003-06-05 發送簡訊給我 |
小弟是新手要用vb傳資料(如:傳一個"A"給pic)到pic(PIC16F877)然後顯示在LCD(在LCD上要顯示出A)
下面是小弟寫的接收程式,程式在執行的時候在vb(pc)方按下傳輸鍵,pic方的反應是,有時候LCD上的游標會移動有時不會,有移動時那一位元只顯示出黑黑的一塊,難道是沒接收到嗎?此程式有什麼缺失嗎?
~>.<~~~感謝喔~ LIST P=16F877
#INCLUDE VAL_US EQU .249
VAL_6MS EQU 6
VAL_1S EQU 10
COUNT_US EQU 0X20
COUNT_1S EQU 0X21
COUNT_6MS EQU 0X22
TMPW0 EQU 0X23
TMPW1 EQU 0X24
TMPW2 EQU 0X25
DD EQU 0X26
RR EQU 0X27
M EQU 0X28
DATA_1 EQU 0X29
DATA_2 EQU 0X30
DATA_3 EQU 0X31 RS EQU 0
EN EQU 2
LCD_DATA EQU 0X32 ORG 00H
NOP
GOTO A1 ;中斷程式宣告
ORG 04H
GOTO ISR A1:
BANKSEL TRISD
MOVLW 00H
MOVWF TRISD
MOVWF TRISE
BANKSEL PORTD BANKSEL SPBRG
MOVLW 34
MOVWF SPBRG
BSF TXSTA,BRGH
BCF TXSTA,SYNC
BANKSEL RCSTA
BSF RCSTA,SPEN
BANKSEL PIE1
BSF PIE1,RCIE
BSF INTCON,GIE
BSF INTCON,INTE
BANKSEL RCSTA
BSF RCSTA,CREN
CALL INITLCD
MAIN:
CALL LCD_CLEAR
CALL LCD_ONOFF
CALL ENTRY
;規劃LCD
INITLCD: CALL LCD_FUNC
CALL DELAY
CALL LCD_CLEAR
CALL DELAY
CALL LCD_ONOFF
CALL DELAY
CALL LCD_CURSOR
CALL DELAY
RETURN LCD_FUNC: MOVLW B'00111000'
MOVWF PORTD
BCF PORTE,RS
BSF PORTE,EN
BCF PORTE,EN
BCF STATUS,RP0 LCD_CLEAR: MOVLW B'00000001'
MOVWF PORTD
BCF PORTE,RS
BSF PORTE,EN
BCF PORTE,EN
BCF STATUS,RP0 LCD_ONOFF: MOVLW B'00001111'
MOVWF PORTD
BCF PORTE,RS
BSF PORTE,EN
BCF PORTE,EN
BCF STATUS,RP0 LCD_CURSOR: MOVLW B'00000010'
MOVWF PORTD
BCF PORTE,RS
BSF PORTE,EN
BCF PORTE,EN
BCF STATUS,RP0
RETURN
ENTRY: MOVLW B'00000110'
MOVWF PORTD
BCF PORTE,RS
BSF PORTE,EN
BSF PORTE,EN
BCF STATUS,RP0
;中斷副程式
ISR:
BANKSEL PIR1
BTFSC PIR1,RCIF
CALL RRW
GOTO ISR
;把接收到的資料讀出
RRW:
MOVF RCREG,W
MOVWF LCD_DATA
;由LCD顯示出該資料
IN_LCD:
MOVWF LCD_DATA
CALL WRDR
CALL DELAY
CLRF LCD_DATA
BCF INTCON,INTF
NOP
GOTO ISR WRIR: BSF PORTE,EN
BCF PORTE,RS
MOVF LCD_DATA,W
MOVWF PORTD
BCF PORTE,EN
NOP
CALL DELAY
BCF STATUS,RP0
RETURN WRDR:
BSF PORTE,EN
BSF PORTE,RS
MOVF LCD_DATA,W
MOVWF PORTD
BCF PORTE,EN
NOP
CALL DELAY
BCF STATUS,RP0
RETURN
DELAY: DELAY_6MS:
MOVLW VAL_6MS
MOVWF COUNT_6MS
DEC_6MS:
CALL DELAY_1MS
DECFSZ COUNT_6MS,F
GOTO DEC_6MS
RETURN
DELAY_1MS:
MOVLW VAL_US
MOVWF COUNT_US
DEC_LOOP:
NOP
DECFSZ COUNT_US,F
GOTO DEC_LOOP
RETURN
END
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |