Atmega128串口UART 0/1测试代码

发布者:喜悦的38号最新更新时间:2013-12-11 来源: eefocus关键字:Atmega128  UART  测试代码 手机看文章 扫描二维码
随时随地手机看文章

#include
#define fosc 7372800UL //晶振7.3728MHZ
#define baud 9600//波特率
#define com0


void uart0_init(void)
{
     UCSR0B = 0x00; //disable while setting baud rate
     UCSR0A = 0x00;
     UCSR0C =(1<     UBRR0L=(fosc/16/(baud+1))%256;
     UBRR0H=(fosc/16/(baud+1))/256;
     UCSR0B =(1<}


void uart1_init(void)
{
     UCSR1B = 0x00; //disable while setting baud rate
     UCSR1A = 0x00;
     UCSR1C = (1<     UBRR1L=(fosc/16/(baud+1))%256;
     UBRR1H=(fosc/16/(baud+1))/256;
     UCSR1B =(1<}


void putchar0(unsigned char c)

    while (!(UCSR0A&(1<    UDR0=c;   
}


void putchar1(unsigned char c)

    while (!(UCSR1A&(1<    UDR1=c;   
}


unsigned char getchar0(void)
{
    while(!(UCSR0A& (1<    return UDR0;
}


unsigned char getchar1(void)
{
    while(!(UCSR1A& (1<    return UDR1;
}


void puts0(char *s)
{
    while (*s)
    {
        putchar0(*s);
        s++;
    }
    putchar0(0x0a);
    putchar0(0x0d);
}


void puts1(char *s)
{
    while (*s)
    {
        putchar1(*s);
        s++;
    }
    putchar1(0x0a);
    putchar1(0x0d);
}


int main(void)
{
    unsigned char i;
    #ifdef com0
    uart0_init();
    puts0("HELLO!");
    #else
    uart1_init();
    puts1("HELLO!");
    #endif
    while(1)
    {
    #ifdef com0
        if (getchar0()=='t')//按键盘t键开始测试
        {
            puts0("test ok!");
            for (i=0;i<10;i++)
           {
               putchar0(0x30+i);
           }
           putchar0(0x0a);
           putchar0(0x0d);   
        }
       #else
      if (getchar1()=='t')//按键盘t键开始测试
        {
         puts1("test ok!");
      for (i=0;i<10;i++)
       {
        putchar1(0x30+i);
       }
         putchar1(0x0a);
         putchar1(0x0d);   
        }  
  #endif      
 }
}

关键字:Atmega128  UART  测试代码 引用地址:Atmega128串口UART 0/1测试代码

上一篇:基于AVR单片机的温度测量系统
下一篇:ATMEGA32熔丝位设置

推荐阅读最新更新时间:2024-03-16 13:32

Wavecom推出超小GSM/GPRS四频通信模块,面向M2M应用
  Wavecom公司日前推出据称市场上最小的GSM/GPRS四频通信模块WISMO Quik Q2686,支持GSM/GPRS 850/900/1800/1900 MHz,只要嵌入Q2686,产品即可通行全球(包括韩国,日本除外)。此外,Wavecom亦同步推出其模块操作系统OS 6.60新版本。新版操作系统可整合更多平台,协助研发设计人员能快速导入,开发更多应用。   Quik Q26系列是Wavecom新推出的无线通信模块产品线,专为机器对机器(machine-to-machine)应用所设计。Q26系列搭配新版操作系统OS6.60,为将来EDGE与3G开发铺路。Q2686为Q26系列的第一个成员,大小为40×32.2×4
[工业控制]
ATmega128 引脚功能
引脚名称 引脚功能说明 VCC 数字电路的电源。 GND 地。 端口A(PA7..PA0) 端口A 为8 位双向I/O 口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动 特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电 路拉低时将输出电流。复位发生时端口A 为三态。 端口A 也可以用做其他不同的特殊功能,请参见P 68。 端口B(PB7..PB0) 端口B 为8 位双向I/O 口,并具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动 特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电 路拉低时将输出电流。复位发生时端口B 为三态。 端口B 也可以
[单片机]
MAX3140集成通用异步接收发送器(UART)和失效保护的
MAX3140是一个完整的通用异步接收发送器( UART )和一个真正的 失效保护 的RS-485/RS-422收发器在一个28引脚QSOP封装为空间,成本和功率受限的应用软件包相结合。在MAX3140节省了额外的板空间,以及微控制器(μC)的I /特色的SPI™/ QSPI的™/ MICROWIRE™兼容的串行接口O引脚。这是引脚对所有的RS-485/RS-422网络的配置编程。   在MAX3140包括一个单一的RS-485/RS-422驱动器和接收具有真正的失效保护电路,保证逻辑高接收器输出时,接收器输入开路或短路。此功能提供免疫缺陷,而无需复杂的终止。该MAX3140提供软件可选的半双工或全双工操作,数据速率,压摆率,
[电源管理]
MAX3140集成通用异步接收发送器(<font color='red'>UART</font>)和失效保护的
异步串口uart的c语言编程
#include io8535v.h #define uchar unsigned char #define uint unsigned int uchar Table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar Send_Da ta ={'a','b','c','d'}; uchar Receive_Da ta ={0,0,0,0}; void DelayMs(uint i) {uint j; for(;
[单片机]
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);
[单片机]
mini2440硬件篇之UART
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器。UART以全双工方式传输数据,最简单的连线只有2根,TxD用于发送,RxD用于接收,Gnd地。UART使用标准的TTL电平(0~3.3V或0~5V),表示高低电平,为了增加抗干扰能力,增加传输长度,通常将TTL电平转换为RS-232电平。3~12V表示0,-3~-12表示1。 平常数据引脚处于空闲1状态,发送数据时,TxD变低电平,表示一个起始信号。然后后面可以跟5、6、7、8位的数据,LSB低位优先。如果使用校验,数据发完后再发送一个校验位,最后发送1、2位停止位。 芯片手
[单片机]
mini2440硬件篇之<font color='red'>UART</font>
基于队列的UART通信模块
/******************************** 基于队列的Mega8 UART通信驱动程序 文件名:uart.c 编译:WinAVR-20070122 硬件:CA-M8X 时钟:外部4MHz *******************************/ #include avr/io.h #include avr/interrupt.h #include queue.h #define UART_BUF_SIZE 16 //发送和接收缓冲长度 HQUEUE g_SendQueue; //发送队列句柄 HQUEUE g_RecvQueue;//接收队列句柄 uint8_t g_S
[单片机]
ATmega128(EEPROM)
//atmega128的读写EEPROM示例程序,记录CPU启动的次数到EEPROM中 //在LED数码管上显示读出的数据,可用复位键刷新显示 //编译环境 AVR Studio 4.17/AVR GCC //系统时钟7.3728MHZ,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms //*********************************************************************** // 包含文件 //*********************************************************************** #include strin
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved