We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi all, I have done one simple serial rs232 c program in keil and when download in eprom it produce no output on the termulator.This program is to do serial transmission from 8051 to pc. Here is the code:
/* RS232 SIMPLE TRIAL */ #include <stdio.h> #include <reg51.h> /*Function to initialize RS232 serial port*/ void serial_init() { SCON=0X50; //Setup for 8-bit data TMOD=0X20; //Setup Timer 1 for auto-reload TH1=0XFD; //Setup for 9600 baud TR1=1; //Turn on Timer 1 T1=1; //Indicate Ready to Transmit } /*This func display a null-terminated string on the rs232 port*/ void send_serial(unsigned char*s) { while(*s!=0x0) { SBUF=*s; while(!T1) { } T1=0; s++; } } /*Start of main program*/ main() { unsigned char crlf[]={0x0D,0x0A,0x0}; serial_init(); for (;;) { send_serial("Another test"); send_serial(crlf); } }
You might want to try using Transmitter Interrupt (TI) not T1.
http://www.keil.com/download/docs/intsio.zip.asp
Hi Bob, Thank-you very much for noticing the typo error mistake. After changing it to TI it works fine. thanks.