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

📄 uart_tx.c

📁 ATMEGA8-timer
💻 C
字号:
//:rc:8M
//ic atmegal 8l

#include <avr/io.h>
#include <avr/interrupt.h>
#define uchar unsigned char
#define uint unsigned int

unsigned  char temrecv=0;

void delay(unsigned int x)
     {
      while(x)x--;	  
	 }

void uart0_init(void)
      {
	  UCSRB=0X00;
	  UBRRL=0X33;
	  UCSRB=0X98;
	  }

void sendchar(unsigned char c)
      {
	  UDR=c;
	  while(!(UCSRA&0X40));
	  UCSRA|=0X40;  
	  }


void  send(unsigned char const *str)
{  while(1)
   {  if( *str == '\0' ) break;
      sendchar(*str++);	    // 发送数据
   }
}



SIGNAL(SIG_OVERFLOW1)
      {
	  TCNT1=61712;

	  }


SIGNAL(USART_RXC_vect)
     { 
	 temrecv=UDR;
   

	 }

int main (void)
{
const unsigned char  SEND_STRING[] = "welcome to avr\n";
    DDRB=0xff;
	PORTB=0Xff;//1111,1111
	 sei();
	 TCCR1A=0X00;
	 TCCR1B=(1<<CS10);
	 TIMSK|=(1<<TOIE1);
     TCNT1=64536;

uart0_init(); 
 send(SEND_STRING);
while(1)
    {
   if(temrecv==0x01)
      {
	  PORTB=PORTB|0x01;//熄灭LED
	      send("01\n");
	temrecv=0;
	  }
   if(temrecv==0x02)
      {
	  PORTB=PORTB&0xfe;//亮LED
	     send("02\n");
	temrecv=0;
	 }
   if(temrecv==0x03)  
      {
	  PORTB=PORTB|0x02;//熄灭LED
	      send("03\n");
	temrecv=0;
	  }
   if(temrecv==0x04)
      {
	  PORTB=PORTB&0xfd;//亮LED
	      send("04\n");
	temrecv=0;
	  }




	}
	
	return (0); 
}


⌨️ 快捷键说明

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