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

📄 usart.c

📁 AVR单片机ATmega128的串口通讯程序
💻 C
字号:
#include<avr/io.h>
#include<stdio.h>
#include<avr/signal.h>
#include<avr/interrupt.h>

unsigned char j;

void port_init(void){
     DDRA=0XFF;
	 PORTA=0XFF;
	 DDRC=0X00;
	 PORTC=0XFF;
	}
	
void usart0_init(void){
     UBRR0L=0X19;
	 UBRR0H=0X00;
	 UCSR0B=(1<<RXEN0)|(1<<TXEN0)|(1<<RXCIE0);
	 UCSR0C=(1<<UCSZ01)|(1<<UCSZ00);
	}
	
void usart0_transmit(unsigned char data){
     while(!(UCSR0A&(1<<UDRE0)));
	 UDR0=data;
	}
	
SIGNAL(SIG_USART0_RECV){
     j=UDR0;
	 switch(j){
	     case 0X31: PORTA=0B11111110; break;
		 case 0X32: PORTA=0B11111101; break;
		 case 0X33: PORTA=0B11111011; break;
		 case 0X34: PORTA=0B11110111; break;
		 case 0X35: PORTA=0B11101111; break;
		 case 0X36: PORTA=0B11011111; break;
		 case 0X37: PORTA=0B10111111; break;
		 case 0X38: PORTA=0B01111111; break;
		 case 0X39: PORTA=0B00000000; break;
		 default: break;
		}
	}
	
int main(void){
     unsigned char i,m;
	 cli();
     port_init();
	 usart0_init();
	 sei();
	 for(m=0;m<10;m++){
	     i=PINC;
		 usart0_transmit(i);
		}
	 for(;;){
        }
    } 	

⌨️ 快捷键说明

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