微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Proteus仿真的AVR单片机串口程序

基于Proteus仿真的AVR单片机串口程序

时间:10-19 来源:互联网 点击:

以前在Proteus上做过51的串口仿真没有成功,昨天再次尝试atmega16的串口仿真居然成功了;当然仿真是最简单的,实际做事的时候需要加上max232芯片,但仿真时就不需要了,

程序功能:由串口助手向单片机发送一组数据“I LOVE YOU-----SBILY1988”,单片机收到数据后发送回串口助手,

数据传输方向:计算机——>单片机; 单片机——>计算机;

现送上仿真图和程序:

#include

#include

void init();

void send(unsigned char);

unsigned char receive();

void main()

{unsigned char i=0,a=300;

init();

while(1)

{

i=receive();

send(i);

}

}

void init() //初始化函数

{

UCSRB=BIT(4)|BIT(3); //使能发送和接收器

UCSRC=BIT(7)|(3<<1); //设置数据帧格式(8数据位)

UBRRH=0; //设置波特率为8MHZ晶振下 9600bps

UBRRL=51;

}

void send(unsigned char data) //数据发送

{

while(!(UCSRA&BIT(5))); //等待发送缓冲器准备完毕

UDR=data;

while(!(UCSRA&BIT(6))); //等待发送结束

UCSRA&=BIT(6);

}

unsigned char receive() //数据接收

{unsigned char data=0;

while(!(UCSRA&BIT(7))); //等待数据接收完毕

data=UDR;

return data;

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top