بعد التحيه
حاليا انا بتعلم برمجه السيريال للميكروكنترولر البيك و اتبعت الشرح اللي منزلاه الشركه لبرمجه ميديول ال USART للاستخدام في ال وضع Asynchronous Mode و الشرح موجودعلي اللنك ده
http://www1.microchip.com/downloads/...eDoc/usart.pdf
المشكله اني عمل البدع لكن مفيش حاجه راضيه تشتغل مع اني راعيت اللي مكتوب في الشرح و كمان اللي مكتوب في الداتاشيت للمتحكم PIC16f876A اللي استخدمته في الدايره و اللي مكتوب في صفحه 109 كالاتي
"Bit SPEN (RCSTA<7>) and bits TRISC<7:6> have to be set in order to configure pins RC6/TX/CK and RC7/RX/DT as the Universal Synchronous Asynchronous Receiver Transmitter."
و ده فعلا اللي عملته و مزودتش ابدا علي كده لكن للاسف مفيش حاجه شغاله
انا كتبت الكود للمرسل بحيث انه يرسل قيمه 0xFF دائما الي المستقبل و المستقبل بدوره هيعرضها عليالليدات اللي علي PORTB
عامه دا الكود للمرسل
كود:
LIST P=16F876A
#INCLUDE<P16F876A.INC>
__CONFIG _CP_OFF&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC
TXDataByte EQU 0X20
ORG 0X00
INITIATE
;---------------------;
BANKSEL SPBRG ;|
MOVLW D'25' ;| initiate SPBRG baud rate generator register - 9600
MOVWF SPBRG ;|
;---------------------;
BANKSEL TRISC ;|
MOVLW B'11000000' ;| initiate TRISC behavior of PORTC
MOVWF TRISC ;|
;---------------------;
BANKSEL TXSTA ;|
MOVLW B'00100100' ;| initiate TXSTA TRANSMIT STATUS AND CONTROL REGISTER
MOVWF TXSTA ;|
;---------------------;
BANKSEL RCSTA ;|
MOVLW B'10010000' ;| initiate RCSTA RECEIVE STATUS AND CONTROL REGISTER
MOVWF RCSTA ;|
;---------------------;
BANKSEL TXDataByte ;|
MOVLW 0XFF ;| initiate TXDataByte byte to be sent
MOVWF TXDataByte ;|
;---------------------;
MAIN
BANKSEL PIR1
BTFSS PIR1,TXIF
GOTO MAIN;NO
BANKSEL TXDataByte;YES
MOVF TXDataByte
BANKSEL TXREG
MOVWF TXREG
GOTO MAIN
END
و ده الكود للمستقبل
كود:
LIST P=16F876A
#INCLUDE<P16F876A.INC>
__CONFIG _CP_OFF&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC
RXDataByte EQU 0X20
ORG 0X00
INITIATE
;---------------------;
BANKSEL SPBRG ;|
MOVLW D'25' ;| initiate SPBRG baud rate generator register - 9600
MOVWF SPBRG ;|
;---------------------;
BANKSEL TRISC ;|
MOVLW B'11000000' ;| initiate TRISC behavior of PORTC
MOVWF TRISC ;|
;---------------------;
BANKSEL TXSTA ;|
MOVLW B'00100100' ;| initiate TXSTA TRANSMIT STATUS AND CONTROL REGISTER
MOVWF TXSTA ;|
;---------------------;
BANKSEL RCSTA ;|
MOVLW B'10010000' ;| initiate RCSTA RECEIVE STATUS AND CONTROL REGISTER
MOVWF RCSTA ;|
;---------------------;
BANKSEL TRISB ;|
MOVLW B'00000000' ;| initiate TRISB behavior of PORTC
MOVWF TRISB ;|
;---------------------;
BANKSEL PORTB ;|
MOVLW B'00000000' ;| initiate PORTB value of PORTB
MOVWF PORTB ;|
;---------------------;
MAIN
BANKSEL PIR1
BTFSS PIR1,RCIF
GOTO MAIN;NO
BANKSEL RCREG;YES
MOVF RCREG
BANKSEL PORTB
MOVWF PORTB
GOTO MAIN
END
و دي الدايره اللي بنتها علي البروتس للمحاكاه
ارجو اني اكون وضحت المشكله بشكل جيد و ان شاء الله تكونوا خير معين لي كما كنتم دائما و شكرا