MORE RELATED

GROOMIX INFO
Blogs & Articles
MENU
. . .

programming

views : 719

Software Uart for AVR microcontroller tested on 1200 baud rate

Here is copy and paste code for Software UART. In many system design, we need more than one serial communication like GSM module and BT module. To connect these module with a single microcontroller, we need two UART port which is generally not available in AVR microcontroller. I could not found any code while Searching for Software UART code in google. So,i made software uart code for myself. Now, i am share this code so you need not to suffer from it. Following are the copy and paste code for you.

Software Uart code for AVR microcontroller tested on 1200 baud rate

//START -set baud rate for 1200bps
unsigned char min_bit_length = 83;
void send_byte(char send_byte){
    char i;
    //start bit
    output_port4 &=~(1<<utx);
    for(i=0; i<min_bit_length; i++){_delay_us(10);}//1 bit delay
   

 //1 bit
    if(send_byte & 0b00000001){output_port4 |= (1<<utx);} else{output_port4 &=~(1<<utx);}
    for(i=0; i<min_bit_length; i++){_delay_us(10);}//1 bit delay
//2 bit
    if(send_byte & 0b00000010){output_port4 |= (1<<utx);} else{output_port4 &=~(1<<utx);}
    for(i=0; i<min_bit_length; i++){_delay_us(10);}//1 bit delay
//3 bit
    if(send_byte & 0b00000100){output_port4 |= (1<<utx);} else{output_port4 &=~(1<<utx);}
    for(i=0; i<min_bit_length; i++){_delay_us(10);}//1 bit delay
//4 bit
    if(send_byte & 0b00001000){output_port4 |= (1<<utx);} else{output_port4 &=~(1<<utx);}
    for(i=0; i<min_bit_length; i++){_delay_us(10);}//1 bit delay
//5 bit
    if(send_byte & 0b00010000){output_port4 |= (1<<utx);} else{output_port4 &=~(1<<utx);}
    for(i=0; i<min_bit_length; i++){_delay_us(10);}//1 bit delay
//6 bit
    if(send_byte & 0b00100000){output_port4 |= (1<<utx);} else{output_port4 &=~(1<<utx);}
    for(i=0; i<min_bit_length; i++){_delay_us(10);}//1 bit delay
//7 bit
    if(send_byte & 0b01000000){output_port4 |= (1<<utx);} else{output_port4 &=~(1<<utx);}
    for(i=0; i<min_bit_length; i++){_delay_us(10);}//1 bit delay
//8 bit
    if(send_byte & 0b10000000){output_port4 |= (1<<utx);} else{output_port4 &=~(1<<utx);}
    for(i=0; i<min_bit_length; i++){_delay_us(10);}//1 bit delay
//stop bit
    output_port4 |= (1<<utx);
    for(i=0; i<min_bit_length; i++){_delay_us(10);}//1 bit delay
}
void send_string(char send_string[]){
    unsigned char i=0;      // iterating variable
    unsigned char LENGHT = 0;// length of the word
    for(i=0;i<500; i++){
      if(send_string[i] == NULL){break; }
      LENGHT++;
    }
    i=0;
    while(i<LENGHT){send_byte(send_s tring[i]);i++;}
}

//END
#define output_ddr DDRD
#define output_port4 PORTD
//in main()
//initialize this port
output_ddr |= (1<<utx);//as output port
output_port4 |= (1<<utx);//pull up because in idle time uart tx line is high


while(1 ){//main while
send_string("testing transmitter of software uart");// this will send out and you can see it on pc terminal
_delay_ms(1000);   
   
}

Above code is made for avr microcontroller and its crystal 12Mhz. for any doubt, ask me in comment below.

Posted By :
Mr. Unique

2017-08-16/00:12:20

Share this Page

Comments...

More :programming

programming
Arduino UNO tachometer coding with variable resistor and DC motor speed control

p

programming
Here is the code to interface 2 serial devices with AVR

p

programming
Software Uart for AVR microcontroller tested on 1200 baud rate

p

programming
ATMEL STUDIO-While loop conditioning issues

p

programming
ATMEL STUDIO-While loop is not working using interrupt incremented conditioning

p

programming
Copy and paste code for facebook share button in your websites
programming
How to program atmel 8051 family microcontroller? (step by step)
programming
Embedded program code in C language for Digital Voltmeter for AVR microcontroller
programming
Assemby program code for Automatic Door Opening System (8051 family microcontroller)
programming
Very simple and accurate Seven Segment Display program Code in Embedded C language

p

programming
Highway vehicle speed detector or checker Embedded C language code in MikroC AVR Framework also applicable for 8051 Microcontroller

p

programming
Assembly program for accurate 1 second delay function
programming
What is Embedded system programming?

Latest Updates

programming
Arduino UNO tachometer coding with variable resistor and DC motor speed control
views :219

p

programming
Here is the code to interface 2 serial devices with AVR
views :174

p

programming
Software Uart for AVR microcontroller tested on 1200 baud rate
views :719

p

programming
ATMEL STUDIO-While loop conditioning issues
views :249

p

programming
ATMEL STUDIO-While loop is not working using interrupt incremented conditioning
views :306

p

programming
Copy and paste code for facebook share button in your websites
views :310
programming
How to program atmel 8051 family microcontroller? (step by step)
views :355
programming
Embedded program code in C language for Digital Voltmeter for AVR microcontroller
views :294
programming
Assemby program code for Automatic Door Opening System (8051 family microcontroller)
views :234
programming
Very simple and accurate Seven Segment Display program Code in Embedded C language
views :198

p

programming
Highway vehicle speed detector or checker Embedded C language code in MikroC AVR Framework also applicable for 8051 Microcontroller
views :165

p

programming
Assembly program for accurate 1 second delay function
views :179
programming
What is Embedded system programming?
views :220

---More To Do---

This pages is developed to give users a genuine web materials of all types throughout the world. Many articles, by experts are publishing here, every hours. You can publish your topics as well as you can comment on all posted topics and learn more. Many types of topics are published here like Technology based ( Electronics, Electricals, Mechanicals, civil engineering, computer science, programming and software development, Assemply language codings), Health like medicine, healthy diets, Homeopathy etc) and many types of latest news updates.


All content, design, and layout are Copyright © 2016 - Digital Photography Review All Rights Reserved. Reproduction in whole or part in any form or medium without specific written permission is prohibited.

MORE TO DO