??? 09/25/09 03:16 Read: times |
#169115 - RS232: Sending data to PC from 8051 MCU - Please help! |
Hi all,
I am working on a project that uses 8051 MCU (ADuC848). The device measures 0 – 5VDC voltage from 10 channels then send to PC via RS232. Here is the protocol the device needs to follow to exchange the data to the PC: ;----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The host PC’s program requests information by sending simple ASCII commands, followed by carriage return (cr). The MCU replies with data, followed by “cr”. PC’s command: Meaning: MCU’s reply S1 Status 0 or 1 or 2 with “cr” Vn Voltage 0-65565 (2 bytes of 16 bit ADC result) with n = channel 1 to 10 “cr” must be sent as well. The PC’s program will ask all test result of channel 1 to 10 ;----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- I have been able to set up the communication in between the ADuC848 and PC’s terminal as: void serial_init(void) { //Configure UART T3CON = 0x83; //configure timer 3... T3FD = 0x12; //...for 9600 baud SCON = 0x52; } I use this to send ADC result to the terminal: ADCread(); //read results from channel 1 to 10 printf("Head #1: %un",Channel1_ADC); //display channel 1 reading on windows' terminal printf("Head #2: %un", Channel 2_ADC); //display channel 2 reading on windows' terminal Thought I have been working with embedded software for quite sometimes but still not familiar in this RS232 communication. If it’s possible please give me any advice of how to receiving and sending data to the PC following the above protocol. I do appreciate your time and thank you very much in advance for your help. Thanks, Ralf |