当前位置:首页 > 单片机 > 单片机
[导读]AVR的uart串口通信程序

 //  1、使用ICCAVR的终端调试窗口(Terminal),进行通信调试。  
//  2、对ICCAVR的终端调试窗口进行设置,设置串口为com1或com2   
//     通信波特率为19200(Tools->Environment Options...)。  
//  3、将PC屏幕光标定位于调试窗口中。  
#include   
#define fosc 8000000              //晶振8MHZ  
#define baud 19200                //波特率  
#define osc_address   0x1ff0  
extern unsigned char read_flash(unsigned int add);  
            
void putchar(unsigned char c)  
{    
          while (!(UCSRA&(1<  UDR=c;      
}  
           
unsigned char getchar(void)  
      {  
      while(!(UCSRA& (1<     return UDR;  
   }   
             
int puts(char *s)  
   {  
         while (*s)  
       {  
          putchar(*s);  
           s++;  
      }   
            putchar(0x0a);//回车换行  
            putchar(0x0d);  
            return 1;  
       }  
         
void putstr(char *s)  
    {  
        while (*s)  
     {  
          putchar(*s);  
          s++;  
        }   
    }   
            
void uart_init(void)  
    {  
         OSCCAL=read_flash(osc_address);  
         UCSRB=(1< UBRRL=(fosc/16/(baud+1))%6;  
         UBRRH=(fosc/16/(baud+1))/256;  
         UCSRC=(1<}  
           
void main(void)  
     {  
          unsigned char i;  
          uart_init();  
         puts("广州天河双龙电子公司RS232通信演示程序");  
         puts("HTTP://WWW.SL.COM.CN");  
         puts("MAIL Tsllg@sl.com.cn");  
     while(1)  
               {  
            i=getchar();  
               if (i!=0)//按PC键盘开始测试  
      {  
            putstr("当前按键是:");  
              putchar(i);  
              putchar(0x0a);  
                  putchar(0x0d);  
               puts("广州天河双龙电子公司RS232通信演示程序");  
                puts("HTTP://WWW.SL.COM.CN");  
                puts("MAIL Tsllg@sl.com.cn");  
                    putchar(0x0a);  
                 putchar(0x0d);   
              }    
        }  
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭