pic microcontroller UART communication - 2
මයික්රෝකොන්ට්රෝලරය යොදාගෙන RS232 ක්රමයට දත්ත සංනිවේදනය කිරීම
RS232 ක්රමයට දත්ත සංනිවේදනය කිරීමට මයික්රෝකොන්ට්රෝලරය සතුව ඇති ඒකකය UART වේ.PIC16F877A මයික්රෝකොන්ට්රෝලරය තුලද මෙම ඒකකයක් අන්තර්ගත කොට ඇත.පහත දැක්වෙන්නේ මෙම UART ඒකකය හසුරවමින් RS232 ක්රමයට සංනිවේදනය හැසිරවීමට මයික්රෝකොන්ට්රෝලරය තුල ඇති රෙජිස්ටර වේ.
TXSTA -මෙම
රෙජිස්ටරය මගින් දත්ත transmit
කිරීම පාලනය කරනු ලබයි.
මෙම රෙජිස්ටරය මගින් දත්තය
transmit කිරීමට අදාල data Frame එක සකස් කිරීම
සිදුකිරීම හා transmit ක්රියාවලිය
පාලනය කිරීම සිදු කරනු ලබයි.පහත දැක්වෙනන්න එම ක්රියාවලිය සිදු කිරීමට අදාල බිට්
සැකසුම් සුදුකරන ආකාරය වේ.
TX9: 9-bit Transmit Enable bit
1 = Selects 9-bit transmission
1 = Selects 9-bit transmission
0 = Selects 8-bit transmission
මෙම බිට් එක මගින් Parity bit එකක් යොදා transmission එක කරනවාද යන්න තීරනය කරනු ලබයි.
TXEN: Transmit Enable bit
මෙම බිට් එක මගින් Parity bit එකක් යොදා transmission එක කරනවාද යන්න තීරනය කරනු ලබයි.
TXEN: Transmit Enable bit
1 = Transmit enabled
0 = Transmit disabled
0 = Transmit disabled
SYNC: USART Mode
Select bit
1 = Synchronous mode
0 = Asynchronous mode
BRGH: High Baud Rate Select bit
1 = High speed
0 = Low speed
TRMT: Transmit Shift Register Status bit
1 = TSR empty
0 = TSR full
TX9D: Parity bit එක ලෙස යෙදෙනු ලබන බිට් එක යෙදීම සිදුකරයි.
RCSTA - මෙම රෙජිස්ටරය
මගින් බාහිර සිට පැමිනෙන දතත් පාලනය කිරීම
සිදු කරනු ලබයි.1 = Synchronous mode
0 = Asynchronous mode
BRGH: High Baud Rate Select bit
1 = High speed
0 = Low speed
TRMT: Transmit Shift Register Status bit
1 = TSR empty
0 = TSR full
TX9D: Parity bit එක ලෙස යෙදෙනු ලබන බිට් එක යෙදීම සිදුකරයි.
මෙම රෙජිස්ටරය මගින් බාහිර
උපාංගයේ සිට පැමිනෙන data Frame පාලනය කිරීම සහ නැවත
දත්තය සැදීම සිදු කරනු ලබයි.
SPEN: Serial Port Enable bit - RC7, RC6 පින් සිරියල් ක්රමයට දත්ත ගමන් කිරීමට සකස් කිරීම සිදු කරනු ලබයි.
1 = Serial port enabled
0 = Serial port disabled
RX9: 9-bit Receive Enable bit - data Frame එකේ Parity bit එකක් අත්ද නැත්ද යන්න සටහන් කිරීමටයොදාගනු ලබයි.
1 = Selects 9-bit reception
0 = Selects 8-bit reception
SREN: Single Receive Enable bit
මෙම බිට් එක මෙම සංනිවේදනයේදී නොසලකා හරිනු ලබයි.
CREN: Continuous Receive Enable bit
Asynchronous mode:
1 = Enables continuous receive
0 = Disables continuous receive
ADDEN: Address Detect Enable bit
මෙම බිට් එක යොදාගනු ලබන්නේ Parity bit එකක් සහිත සංනිවේදන වලදී වේ.
Asynchronous mode 9-bit (RX9 = 1):
1 = Enables address detection, enables interrupt and load of the receive buffer when RSR is set
0 = Disables address detection, all bytes are received and ninth bit can be used as parity bit
FERR: Framing Error bit
1 = Framing error (can be updated by reading RCREG register and receive next valid byte)
0 = No framing error
OERR: Overrun Error bit
1 = Overrun error (can be cleared by clearing bit CREN)
0 = No overrun error
RX9D: 9th bit of Received Data (can be parity bit but must be calculated by user firmware)
1 = Enables continuous receive
0 = Disables continuous receive
ADDEN: Address Detect Enable bit
මෙම බිට් එක යොදාගනු ලබන්නේ Parity bit එකක් සහිත සංනිවේදන වලදී වේ.
Asynchronous mode 9-bit (RX9 = 1):
1 = Enables address detection, enables interrupt and load of the receive buffer when RSR is set
0 = Disables address detection, all bytes are received and ninth bit can be used as parity bit
FERR: Framing Error bit
1 = Framing error (can be updated by reading RCREG register and receive next valid byte)
0 = No framing error
OERR: Overrun Error bit
1 = Overrun error (can be cleared by clearing bit CREN)
0 = No overrun error
RX9D: 9th bit of Received Data (can be parity bit but must be calculated by user firmware)
SPBRG - RS232 ක්රමයේ
ඇති වැදගත්ම කොටස වන Baud Rate එක සකස්
කිරීම මෙම රෙජිස්ටරයමගින් සිදු කරනු ලබයි.
TXREG -මෙම රෙජිස්ටරය
යොදාගනු ලබන්නේ ඉහත transmit
කිරීමට සකස්කල data Frame එක ගබඩාකර
තබාගැනීම සදහා වේ.
RCREG- මෙම රෙජිස්ටරය මගින් කරනු ලබන්නේ බාහිර උපාංගයේ සිට පැමිනෙන data Frame එක ගබඩාකර තබා ගැනීමට වේ.
MikroC මගින් RS232 ක්රමයට දත්ත
සංනිවේදනය කිරීම
MikroC යොදාගෙන RS232 ක්රමයට දත්ත
සංනිවේදනය කිරීම සදහා ඉහත ආකාරයට රෙජිස්ටරවල දැනුමක් අවශ්යය නොවේ.ඊට හේතුව වන්නේ MikroC හී language libry එක මගින් මෙම
රෙජිස්ටර යොදාගෙන සංනිවේදනය කිරීම සදහා function
නිර්මාණය කර තිබීමයි.ඒ අනුව මෙම function යොදාගෙන පහසුවෙන් RS232 ක්රමයට සංනිවේදනය
සිදු කර ගත හැක.පහත දැක්වෙන්නේ RS232 ක්රමයට
යොදාගැනෙන එම function වේ.
UART1_Init(Baud Rate):- RS232 ක්රමයට
සංනිවේදනය ආරම්බ කිරීම සහ Baud Rate එක සකස්
කිරීම සිදු කරනු ලබයි.
UART1_Data_Ready:-යම් දත්තයක් ලැබෙන්නේ
නම් එය ලැබීමට සූදානම් කරනු ලබයි.මෙහිදී 1 නම් receive register දත්ත ලබා ගත
හැක.0 නම් receive register යේ දත්ත
නොමැත
UART1_Read():-receive register ඇති දත්ත ලබා
ගැනීම සදහා යොදාගනු ලබයි.
UARTx_Read_Text:- Text වර්ගයේ දත්තයක්
කියවීම සිදු කරනු ලබයි.
UARTx_Write :- දත්තයක් Transmit කිරීම සිදු කරනු ලබයි.
UARTx_Write_Text :- Text
වර්ගයේ දත්තයක් Transmit කිරීම සිදු කරනු ලබයි.
Programming
PIC Microcontroller for UART Communication:
මෙම
වැඩසටහන මගින් මයික්රෝකොන්ට්රෝලරයේ UART ඒකකය යොදාගෙන RS232 ක්රමය මගින් දත්ත සංනිවේදනය කරන ආකාරය
පැහැදිලි කරගත හැක.ඒ සදහා PIC16F877A මයික්රෝකොන්ට්රෝලර දෙකක් යොදාගෙන එම දෙක අතර RS232 ක්රමයට දත්ත සංනිවේදනය කරන ආකාරය සලකා බලමු.ඒ අනුව මෙහිදී
සිදු කරනු ලබන්නේ එක් මයික්රෝකොන්ට්රෝලරයට lcd display එකක් සම්බන්ද කර ඇති අතර අනෙක් මයික්රෝකොන්ට්රෝලරයට keypad එකක් සම්බන්ද කර, keypad එක මගින් ලබා දෙන දත්ත RS232 ක්රමයට lcd එක සම්බන්ද
මයික්රෝකොන්ට්රෝලරයට ලබා දී, එම
දත්ත lcd එකේ ප්රදර්ශනය කරන ආකාරයේ වැඩසටහනකි. පහත
දැක්වෙන්නේ එම වැඩසටහනට අදාල පරිපථ සටහන් සහ මයික්රෝකොන්ට්රෝලරයන්ට අදාල
වැඩසටහන් වේ.