首页 > 应用 > 单片机应用
[导读]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);   
              }    
        }  
}

本文引用地址: http://www.21ic.com/app/mcu/201711/745226.htm

换一批

延伸阅读

[测试测量] labview实现串口通信(三)

labview实现串口通信(三)

在调试的过程中,我们经常会发现有收到的数据延迟的现象,现在提出几点解决的方法:(1)在循环中加入适量的延时,通过一个简单的例子看,你会发现在cpu的占用率在加延时和不加的时候有很大的区别,当加的时候基本不占......

关键字:labview 串口通信

[单片机应用] AVR单片机IC卡程序

AVR单片机IC卡程序

AVR单片机IC卡程序#include#include#defineucharunsignedchar#defineuintunsignedint//**********定义全局变量*****************......

关键字:单片机 程序 AVR IC

[单片机应用] STM32F1的UART4串口配置

STM32F1的UART4串口配置

注意是UART4,不是USART4在stm32中UART和USART是不相同的 USART是通用同步/异步串行接收/发送器 UART是通用异步收发传输器 简单区分同步和异步就是看通信时需不需要对外提供时钟输出,我们平时用的串口通信基本都是 ......

关键字:STM32F1 UART4 串口配置

[单片机应用] linux和单片机的串口通信

linux和单片机的串口通信

最近做无线传输方面的东西,需要cc2430开发板和tq2440进行数据串口通信。os为linux。linux驱动在移植后时已经写好了,所以直接写应用层的程序即可,跟pc的写法类似。 修改自tq的serial_test demo程序,由pc端......

关键字:linux 单片机 串口通信

[单片机应用] ICCAVR自动下载程序说明

ICCAVR自动下载程序说明

ICCAVR软件有ISP功能,能过调用STK500完成的,只要设置好参数,在ICCAVR中就可以给芯片编程了,还可以让程序一编译完就自动下载到芯片中,相当方便。在Tools->environmentoption......

关键字:程序 ICCAVR

[单片机应用] STM32系列第7篇--串口通信基本原理

STM32系列第7篇--串口通信基本原理

两种通信方式:1、串行通信传输原理:数据按位顺序传输。优点:占用引脚资源少缺点:速度相对较慢2、并行通信传输原理:数据各个位同时传输。优点:速度快缺点:占用引脚资源多串口通信按数据传输方向可以分为单工、......

关键字:STM32系列 串口通信

[单片机应用] AVR单片机(学习ing)—(四)、ATMEGA16的定时/计数器—04

AVR单片机(学习ing)—(四)、ATMEGA16的定时/计数器—04

四、ATMEGA16的定时/计数器四—(04)、0~5V数字电压调整器PWM数字电压调整器由于定时器2(就是上一个实验)只能构成8位的PWM,作为数字电压调整器其精度不够,这里用定时器1构成10位PWM来实现0~5V的数字电压调整值显......

关键字:AVR单片机 ATMEGA16 定时 计数器

[单片机应用] avr单片机proteus仿真第二课:流水灯

avr单片机proteus仿真第二课:流水灯

先实现一个最简单的avr单片机proteus仿真,流水灯。对IO口写数据要先设置DDRxn=0xff,然后才输出PORTxn=输出数据。电路仿真图如下:avr c程序如下:#include #include int main(void){u......

关键字:avr单片机 proteus仿真 流水灯

[测试测量] 多通道相参信号测量-- 射频信号测量连载(八)

多通道相参信号测量-- 射频信号测量连载(八)

在MIMO(Multiple-input and Multiple-output)、相控阵以及做科学研究的场合,通常需要对多于4路的高速信号做同时测量。为了满足这种应用,现代的高带宽示波器在硬件和软件上都提供了......

关键字:多通道 相参信号 射频信号

我 要 评 论

网友评论