main.c

来自「ATmega8/ATmega16异步串口UART通信实例,希望对大家学习AVR单」· C语言 代码 · 共 38 行

C
38
字号
/***********************************
*实验目的:熟悉UART编程
*设    计:萧联珠
*日    期:2007-11-20
************************************/
#include <iom16v.h>
#include "cfg.h"

void main()
{
  char num;
  unsigned int i;
  port_init();
  uart_init();
  
  while(1)
  {
   num=UDR;
   if((num=='a')|(num=='A'))  //假如接收到A或a则发送0到9
   {
     UCSRB|=(1<<TXEN);           //发送使能
     while(!(UCSRA&(1<<UDRE)));  //等待发送准备完备
	 for(i=0;i<10;i++)
	 {
	  UDR=i;
	  while(!(UCSRA&(1<<UDRE)));  
	  }
	}
   else if(num=='8')      //假如接收到8则停止发送数据
	 UCSRB&=~(1<<TXEN);
   else                   //否则轰鸣器报警
   {
     PORTD|=1<<PD5;
	 delay_ms(100);
	 PORTD&=~(1<<PD5);
	}
  }
}

⌨️ 快捷键说明

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