⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usart1.c

📁 AVR单片机串口异步通信,通过电脑串口助手使电脑和单片机运行简单的数据通讯
💻 C
字号:
#include<iom16v.h>
#define key (PIND&0x04)          //定义按键PD2
/*****************函数原型声明************************/
void USART_Init(unsigned int baud);
void USART_Transmit(unsigned char dat);
void delayms(unsigned int t);
unsigned char USART_Receive(void);
unsigned char strings[]="大学生电子创新协会";
/******************主函数****************************/
void main(void)
 { unsigned char rec,i;
    PORTB=0xff;
    DDRB=0xff;
    PORTD=0x07;
	DDRD=0x02;
    USART_Init(71);//波特为9600,外部晶振11.0592
	for(i=0;i<18;i++)
   USART_Transmit(strings[i]);
    while(1)
	{ /* 	
	  if(key==0){    //按键按下发送一字节数据
	     delayms(10);
		 if(key==0){
		 while(!key);
		 for(i=0;i<18;i++)
		 USART_Transmit(strings[i]);
		        }
	      }
    if(UCSRA&(1<<RXC))    //如果接收缓存区有数据*********
  {
   rec=USART_Receive(); 
   USART_Transmit(rec); 
         }*/
   }		 
}	
/******************USART初始化***********************/    
void USART_Init(unsigned int baud)
 {
  //UBRRH=(unsigned char)(baud/256);
  UBRRL=(unsigned char)baud;  //设定波特率
  UCSRB=0x18;                 //使能接收和发送
  UCSRC=0x8e;                 //设置帧格式8数据位,2停止位
 }
/************发送函数****************************/
void USART_Transmit(unsigned char dat)
 {
   while(!(UCSRA&(1<<UDRE)));
   UDR=dat;
 }
/************接收函数*****************************/
unsigned char USART_Receive(void)
 {
  while(!(UCSRA&(1<<RXC)));
  return UDR;
 }
/**********延时*********************************/
void delayms(unsigned int t)
 {
   unsigned int i,j;
   for(i=0;i<t;i++)
    for(j=0;j<100;j++);
 }	  
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -