历史上的今天
返回首页

历史上的今天

今天是:2024年10月15日(星期二)

正在发生

2019年10月15日 | DMAVR-L的USART串口发送与接收数据示例程序

2019-10-15 来源:eefocus

//***********************************************************************

//                        包含文件

//***********************************************************************


#include

#include

#define         F_CPU        16000000                // 单片机主频为16MHz,用于延时子程序,熔丝位必须设置到外部高频晶振才行

#include

#include

#include

#include            //中断信号头文件

#include "Config.h"


//***********************************************************************

//                        定义变量区

//***********************************************************************

uint   tx_count=200,tx_flag=0xff;

static uchar A1,A2,A3;                                  

uchar usart_rx_data=0xff;



//***********************************************************************

//                        IO端口初始化

//***********************************************************************


void system_init()

{

    LED = 0xFF;                                 //数据口为输出


    LEDDDR=0xFF;                                                //设置为输出

}


//*************************************************************************

//   将收到的串口数据显示到LED发光二极管,可以根据自己的情况更改

//*************************************************************************


void Display_Uart(uint Data_Rev)

{


        LED = Data_Rev;

}



void usart_init()

{

  UCSR0A=0x00;                                 //单倍速模式


  UCSR0B=0x98;                                 //接收中断允许,发送结束和寄存器空中断关闭,采用查询发送模式                               


  UCSR0C=(1<

  UBRR0H=baud_h;                               //写波特率的值


  UBRR0L=baud_l; 

}


//*************************************************************************

//                数据处理函数

//*************************************************************************

void data_do(uchar temp_d)

{

     uchar A2t;


         A1=temp_d/100;                                 //分出百,十,和个位


         A2t=temp_d%100;


         A2=A2t/10;


         A3=A2t%10;

}


//*************************************************************************

//                串口相关中断服务子程序

//*************************************************************************

                                //数据发送结束中断向量

ISR(USART0_TX_vect)             //中断服务程序

{

   delay_ms(10);                            //相关操作

}


                                    //数据接收结束中断向量

ISR(USART0_RX_vect)             //中断服务程序

{

    usart_rx_data=UDR0;             //将接收到的数据取出

        Send_SingleChar(usart_rx_data); //接收到的数据再发回电脑,显示在串口调试助手上

}

                                    //数据寄存器空中断向量


void Send_SingleChar(uchar usart_tx_data)

{

        while(!(UCSR0A&(1<

        UDR0=usart_tx_data;                                        //写入发送数据


        while(!(UCSR0A&(1<

        UCSR0A|=(1<

}


//*************************************************************************

//                        主程序

//*************************************************************************

int main(void)

{

  uchar i;


  system_init();                             //系统初始化


  usart_init();                              //usart串口初始化配置


  for(i=1;i<=200;i++)

  {

          Send_SingleChar(i);                                                 //发送01到200

  }


  SREG|=0x80;                               //开启全局中断


  while(1);


}


推荐阅读

史海拾趣

Heatron LED Integration公司的发展小趣事

Heatron LED Integration始终将客户需求放在首位,提供全方位的服务支持。公司建立了完善的售前咨询、售中指导和售后服务体系,确保客户在使用过程中能够得到及时、专业的帮助。此外,公司还根据客户需求提供定制化解决方案,满足不同场景下的照明需求。这种客户至上的服务理念,赢得了广大客户的信赖和好评。

DECON公司的发展小趣事

品质是企业的生命线,DECON公司深知这一点。因此,公司建立了完善的品质管理体系,从原材料采购到生产过程的每一个环节都进行严格的质量监控。公司引进了先进的生产设备和技术,优化了生产流程,提高了生产效率和产品质量。同时,公司还建立了完善的售后服务体系,为客户提供及时、高效的技术支持和解决方案。

DRS Technologies公司的发展小趣事

在21世纪初,DRS接受了价值16亿美元的合同,为美国陆军和海军陆战队的部队现代化计划制造加固式计算机。这一合同不仅展示了DRS在军事领域的实力,也进一步巩固了其在全球电子行业的地位。DRS提供的“探索者”MP加固式轻便多平台工作站,为数字战场提供了强大的支持。

Abbotec Incorporated公司的发展小趣事

随着技术的不断成熟,Abbotec开始将目光投向国际市场。公司积极参与国际电子展会,与多家国外企业建立了合作关系。通过与这些企业的合作,Abbotec不仅将产品销往全球各地,还引进了一些先进的生产技术和管理经验,进一步提升了自身的竞争力。

Able Systems公司的发展小趣事

随着电子行业的快速发展,Able Systems公司不断引进新技术,对产品进行升级改进。公司在打印机的设计和制造方面结合独家采购的领先技术,确保产品能够满足最苛刻的要求。这种对技术创新的执着追求,使得Able Systems的产品在行业中始终保持领先地位。

Habia Cable公司的发展小趣事

Able Systems公司成立于1982年,初创时期面临着资金短缺、市场竞争激烈等诸多挑战。然而,公司凭借对微型打印机技术的深刻理解和独特见解,成功开发出了具有竞争力的产品。通过不懈的努力和持续的技术创新,Able Systems逐渐在市场中站稳了脚跟,并赢得了客户的信任。

问答坊 | AI 解惑

ARM7内核上的 uC/OS—II嵌入式系统移植

ARM7内核上的 uC/OS—II嵌入式系统移植…

查看全部问答>

请教 宽长比的设计问题

如果用0.18um的工艺设计电路,那么如何估算晶体管的宽长比呢?手算还是用MATLAB,求详细解释,不胜感激…

查看全部问答>

3G协议的数据传输问题

现在要做一个基于3G协议的数据采集卡,不知道从何下手,想高人请教一下。 如果是自己设计硬件电路,3G网络芯片该如何选择?如果是选择usb 接口的 3G上网卡是否要自己写通信协议的驱动?还是直接写USB的驱动就可以了呢?…

查看全部问答>

分享Wince600的内存查看工具

由于在CE6下,AP的权限有限,很难看到物理地址和kernel地址空间的memory的状况。 上不来附件,提供url: http://www.armce.cn/bbs/thread-271-1-1.html…

查看全部问答>

ucos IO 模拟I2C程序问题

  使用atmega128 移植ucos II 在I2C 程序,移植的io口模拟时序程序,但是I2C 的程序在单片机程序跑的好好的 一点问题都没有有 ,而且波形也对。都能够完全实现通讯。    当我原封的程序移植到ucos ii 里 就不行了 ,根本没有 ...…

查看全部问答>

请问WINCE的所有者信息存储在哪里?

请问在WINCE6下如何不通过控制面板直接修改所有者?是修改注册表吗? 如果是的话具体存在那个键值?请高手解答....谢谢...…

查看全部问答>

编译内核遇到的问题100分全部家当了

linux-2.6.23的核 make menuconfig  设置全为默认设置没有修改、 make 屏幕输出如下 ################################################################## /usr ...…

查看全部问答>

LaunchPad上的demo温度测量怎么校准的?

大致看了说明书,好像第二次按p1.3键是进行校准,请问校准原理是什么?具体怎么操作校准到真实温度显示环境温度?…

查看全部问答>

13.56MHZ RFID阅读器设计

求大神关于 RFID阅读器设计的资料…

查看全部问答>