您的位置 首页 系统

avr uart仿真试验 PROTEUS virtual terminal

注意PROTEUSvirtualterminal的设置如下图。advancedproperties中,一定要选择inverted否则结果出错#includeiom16v.h>#includem.

留意PROTEUS virtual terminal的设置如下图。advanced properties中,一定要挑选inverted不然成果犯错

#include
#include
//#include
//#include “skey.c”
#define uchar unsigned char
#define uint unsigned int
#define MCLK 8000000
uchar str[]=”http://hi.baidu.com/282280072/blog”;
void delay(uint ms)
{
uint i,j;
for(i=0;ifor(j=0;j<1141;j++);
}
void uart_init(uint baud)
{
UCSRB=0x00;
UCSRA=0x00; //操控寄存器清零
UCSRC=(1< //挑选UCSRC,异步形式,制止 //校验,1位中止位,8位数据位

baud=MCLK/16/baud-1; //波特率最大为65K
UBRRL=baud&0xff;
UBRRH=(baud>>8)&0X0F; //设置波特率
UCSRB=(1< //接纳、发送使能,接纳中止使能
//SREG=BIT(7); //大局中止敞开
DDRD|=BIT(1); //装备TX为输出(很重要)

}
void uart_sendB(uchar data)
{
while(!(UCSRA&BIT(UDRE)));//等候数据reg为空
UDR=data;//写数据
while(!(UCSRA&BIT(TXC)));//等候数据发送完毕
UCSRA|=BIT(TXC);//铲除发送完毕标志
}

void uart_sentString(uchar *s)
{
while(*s)
{
uart_sendB(*s++);
}

}
void main()
{
uchar i=4;
uchar j=a;

uart_init(19200);
for(i=0;i<20;i++)
{
uart_sendB(j+i);
uart_sendB(j+i);
//delay(15);
//下面两条指令输出换行
uart_sendB(0x0d);
uart_sendB(0x0a);
//delay(15);
}

uart_sentString(str);
//uart_sendB(j);
//uart_sendB(j+1);
//uart_sendB(j+2);
}

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部