基于Proteus仿真的AVR单片机串口程序
时间:10-19
来源:互联网
点击:
以前在Proteus上做过51的串口仿真没有成功,昨天再次尝试atmega16的串口仿真居然成功了;当然仿真是最简单的,实际做事的时候需要加上max232芯片,但仿真时就不需要了,
程序功能:由串口助手向单片机发送一组数据“I LOVE YOU-----SBILY1988”,单片机收到数据后发送回串口助手,
数据传输方向:计算机——>单片机; 单片机——>计算机;
现送上仿真图和程序:
![](../img/eep/emb/emb-53178atbshu5g0we.jpg)
#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;
}
- 基于PROTEUS技术的ARM7显示系统设计与仿真实现(11-22)
- 单片机虚拟试验箱设计与研究(03-08)
- 基于PROTEUS软件的数字电压表印刷电路板设计(05-01)
- 基于51单片机的数字电压表仿真设计(05-29)
- Proteus在单片机教学和科技制作中的应用与实践(03-02)
- Proteus软件仿真与Keil的单片机系统设计(09-08)