您的位置 首页 软件

怎么完成ATMEGA16单片机与PC机的通讯

如何实现ATMEGA16单片机与PC机的通信-ATMEGA16与PC机的通信实验1//PC机发送一个字符给单片机,单片机收到后既在发光二极管进行显示,同时将其回传给PC//单片机的发送。

ATMEGA16与PC机的通讯试验1//PC机发送一个字符单片机,单片机收到后既在发光二极管进行显现,一起将其回传给PC//单片机的发送。

怎么完成ATMEGA16单片机与PC机的通讯

//——————————————————————————

//ATMEGA16与PC机的通讯试验1

//PC机发送一个字符给单片机,单片机收到后既在发光二极管进行显现,一起将其回传给PC

//单片机的发送和接纳都选用查询方法

#include“ioavr.h”

#include“intrinsics.h”

#include“delayics.h”

//——————————————————————————

typedef unsigned char uchar;

typedef unsigned intuint;

#define UDRE5

#define RXC 7

//——————————————————————————

//端口初始化函数

void port_init()

{

DDRB=0XFF;

PORTB=0XFF;

DDRD=0X02;

PORTD=0XFF;

}

//——————————————————————————

//USART初始化函数

void usart_init()

{

UCSRA=0X02;//置位U2X,倍速发送

UCSRC=0X06;//挑选字符长度为8位

UBRRL=0X67;//设置波特率9600,检查datesheet

UBRRH=0X00;

UCSRB=0X18;//发送使能、接纳使能

}

//——————————————————————————

//芯片初始化函数

void device_init()

{

__disable_interrupt();

port_init();

usart_init();

}

//——————————————————————————

//发送5~8位数据位的帧

void usart_send_8(uchar i)

{

while(!(UCSRA&(1《UDR=i;

}

//——————————————————————————

//接纳5~8位数据位的帧

uchar usart_receive_8()

{

while(!(UCSRA&(1《return(UDR);

}

//——————————————————————————

//main

void main()

{

uchar temp;

device_init();

while(1)

{

temp=usart_receive_8();

PORTB=~temp;

usart_send_8(temp);

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/346325.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部