Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/10/08 10:17
Read: times


 
#152065 - Bit banging UART TX.
Responding to: ???'s previous message
It is easy. The 19200 baud means 52uS per bit.

SoftTX = 1;             // start bit
delay_us(52);
for (i = 8; i--; c >>= 1) {
    SoftTX = c & 1;     // low bit first
    delay_us(52);
}
SoftTX = 0;             // stop bit
delay_us(52);


Since you do not seem to need an RX for your printer or LCD, you just steal that pin for the SoftTX. And obviously do not enable RX on your UART. The 8051 drives the LCD TTL directly.

If you cannot afford to poll for this length of time, you just set the TX_byte to be handled by a timer IRQ. You could even share the baud rate generator if you used 9600 baud.

David.


List of 32 messages in thread
TopicAuthorDate
One RS232 port and two devices            01/01/70 00:00      
   Almost certainly not!            01/01/70 00:00      
      neither one talks back            01/01/70 00:00      
         Soft-UART ?            01/01/70 00:00      
         Simplex            01/01/70 00:00      
            responses            01/01/70 00:00      
               The beaty of the 8051            01/01/70 00:00      
                  why all this about bit-banging            01/01/70 00:00      
               Bit banging UART TX.            01/01/70 00:00      
                  Easy to get wrong.            01/01/70 00:00      
                     Point taken, but you can calculate delay.            01/01/70 00:00      
                        Depends on compiler/etc...            01/01/70 00:00      
                           Don't use HLL!            01/01/70 00:00      
                              Cycle counting.            01/01/70 00:00      
                                 Fundamental flaw            01/01/70 00:00      
                              Not an Absolute....            01/01/70 00:00      
                                 RE: Never is a strong word            01/01/70 00:00      
                                    ... and            01/01/70 00:00      
                              assembly verses HLL            01/01/70 00:00      
                           Use a Timer IRQ to set the soft baudrate            01/01/70 00:00      
                              Surprise.            01/01/70 00:00      
                                 High risk            01/01/70 00:00      
                                    Straying into fantasy.            01/01/70 00:00      
                                       Not so fantastic?            01/01/70 00:00      
                  Resistance is too high            01/01/70 00:00      
                  Another reason why this is not so easy...            01/01/70 00:00      
               Timescales            01/01/70 00:00      
      message formatting            01/01/70 00:00      
         Try it now            01/01/70 00:00      
            It's OK now, thanks.            01/01/70 00:00      
   Two RS232 devices            01/01/70 00:00      
      the LCD display            01/01/70 00:00      

Back to Subject List