网站地图 | 加入收藏 | English

网站首页 产品列表 软件下载 技术资料 付款方式 发货查询 关于我们 淘宝商城 论坛
搜索 高级/组合搜索
网站新闻
所有新闻
HiFi音响文章
站内新闻
单片机工具资料
汇编程序实例
C语言程序实例
单片机提高资料
单片机初学资料
单片机软件下载
单片机技术资料
  您的位置: 首页 >> 文章列表 >> AVR单片机与PC机RS485通讯

AVR单片机与PC机RS485通讯


作者:单片机爱好者   转载自:单片机工具之家  发布日期:2011-4-17

/**********************************************
工程名称:串口+485发送程序
控 制 器: ATmega16
晶      振: 8.0000Mhz
创建时间:2009年2月18日
说       明:CPU通过串口接RS485发送数据,终端PC机通过
                 RS485转RS232转换器接入PC机,使用串口调试
                 助手发送数据并接收数据。
端口配置:
CPU        RS485
RXD        RO
TXD        DI
PD6        DE,/RE

**********************************************/
#include <iom16v.h>
#include <macros.h>

#define  uchar unsigned char
#define  uint  unsigned int

#define  mclk   8000000
uchar rdata,flag=0;

void uart_sendB(uchar Data) //发送
{
  while( !(UCSRA & (1<<UDRE)) );
     UDR=Data;
  while(!(UCSRA&(BIT(TXC))));
     UCSRA|=BIT(TXC);
}

void port_init(void)
{
    PORTA = 0x00;
    DDRA = 0x00;
    PORTB = 0x00;
    DDRB = 0x00;
    PORTC = 0x00; //m103 output only
    DDRC = 0x00;
    PORTD = 0x40;
    DDRD = 0x40;
}

void uart0_init(uint baud)
{
    UCSRB = 0x00; //disable while setting baud rate
    UCSRA = 0x00;     //控制寄存器清零
    UCSRC=(1<<URSEL)|(1<<USBS)|(0<<UPM0)|(3<<UCSZ0);   //选择UCSRC,异步模式,禁止                      
                                            //   校验,2位停止位,8位数据位
    baud=mclk/16/baud-1 ;   //波特率最大为65K
    UBRRL=baud;             
    UBRRH=baud>>8;      //设置波特率
  
    UCSRB=(1<<TXEN)|(1<<RXEN)|(1<<RXCIE);     //接收、发送使能,接收中断使能
    SREG=BIT(7);                 //全局中断开放
    DDRD|=0X02;                 //配置TX为输出(很重要)
}

#pragma interrupt_handler uart0_rx:12
void uart0_rx(void)
{
    UCSRB&=~BIT(RXCIE);
    rdata=UDR;
    flag=1;
    UCSRB|=BIT(RXCIE);
}


void main(void)
{
     port_init();
     uart0_init(19200);
     while(1)
      {
          if(flag)
             {
                 PORTD = 0x40;
                 uart_sendB(rdata);
                 PORTD = ~0x40;
                 flag=0;
             }
      }
}


【版权声明】
  1.任何网站转载本站内容必需注明“来源:单片机工具之家”。
  2.本网转载自其它媒体的信息,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
  3.未经本站明确许可,任何网站不得非法盗链软件下载连接及抄袭本网站原创内容资源。
  4.违反上述声明者,本网将追究其相关法律责任。谢谢!

分享到:
更多


关于我们
网站介绍
联系我们
付款方式
银行汇款
货到付款
发货方式
快递运输
上门自提
售后服务
退换货政策
质保承诺
购买方式
购物流程
在线订购

公司名称:深圳市乾龙盛电子科技有限公司   永久域名:http://www.pic16.net  网站名称:单片机工具之家
公司地址:广东省深圳市宝安区龙华镇民治路牛栏前大厦15楼A1502室  电话:0755-28187975  13715306011  联系人:唐先生
展销柜台:广东省深圳市福田区新亚洲电子二期三楼N3D033室(华强电子世界附件)【查看地图】  联系电话:0755-82543360
:淘宝商店   :qls@cxqmcu.com   :qls@cxqmcu.com
销售点击Q我:243355504 (唐永红)先生   技术支持点击Q我:443935535 (钟先生)
网站版权:单片机工具之家  粤ICP备09028690号