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

📄 uart.c

📁 在winavr环境下编译的串口程序,是AVR 16单片机的
💻 C
字号:
//#include <iom16v.h>
//#include  <macros.h>
#include <avr/io.h>

unsigned char ill_num=0x00;
unsigned char temp;
unsigned char i,k;

///////////////////////////////////
void delay(void)
{
    unsigned int i,j;
	for(i=0;i<40000;i++)
	   for(j=0;j<1;j++)
	      ;
}
///////////////////////////////////

//端口初始化
void port_Init(void)
{
DDRA=0xff;//A口做输出口
PORTA=0x00;//
DDRB=0xff; //B口做输出口
PORTB=0X00;//
DDRC=0xff;//C口作输出口
PORTC=0x00;//
DDRD=0xff;//D口作输出口
PORTD=0x00;//
}
/////////////////////////////////////////////////////
//功能:串口初始化
void Usart_Init(void)//9600,8,1,
{
 UCSRB = 0x00; //disable while setting baud rate
 UCSRA = 0x00;
 UCSRC = 0x86;
 UBRRL = 0x33; //set baud rate lo
 UBRRH = 0x00; //set baud rate hi
 UCSRB = 0x18;
}
//字符输出函数 		
void Usart_Tx(unsigned char data)
{	 
while (!(UCSRA&(1<<UDRE)));
UDR=data;    
}
//字符输入函数 		
unsigned char Usart_Rx(void)
{
while(!(UCSRA& (1<<RXC)));
return UDR;
}
///////////////////////////////////////////
void data_class(unsigned char ill_num)
{   
    Usart_Tx(0xff);//header
 	Usart_Tx(0x07);//year
	Usart_Tx(0x05);//month
	Usart_Tx(0x01);//day
	Usart_Tx(ill_num);//ill_number
	Usart_Tx(0x01);//project_name
	Usart_Tx(0x11);//8 正常范围
	Usart_Tx(0x22);
	Usart_Tx(0x33);
	Usart_Tx(0x44);
	Usart_Tx(0x55);
	Usart_Tx(0x66);
	Usart_Tx(0x77);
	Usart_Tx(0x88);
	Usart_Tx(0x11);//4浓度
	Usart_Tx(0x22);
	Usart_Tx(0x33);
	Usart_Tx(0x44);
	Usart_Tx(0x01);//单位
}
///////////////////////////////////////////
void init_devices(void)
{
    //CLI(); //禁止所有中断
    MCUCR  = 0x00;
    port_Init();
    Usart_Init();
    //SEI();//开全局中断
}
//主函数
int main(void)
{
 	OSCCAL=0xB8; 
    init_devices(); 
	//data_class(ill_num);
	data_class(ill_num);
	while(1)
	{
	
       /*
	    do
		{
       
	    NOP();
	    }
	    while(temp==1);
		NOP();*/
	temp=Usart_Rx();
	if(temp!=0)
	  if(temp==0xFF)
			{
			data_class(ill_num);
			}
	  else if(temp==0x55)
			{
			ill_num++;
			data_class(ill_num);
			}
	  else
	  ;
	else
	;
			
	}
	return 1;
}

⌨️ 快捷键说明

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