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

📄 main.c

📁 AVR单片机系统开发经典实例部分源程序
💻 C
字号:
#include<iom128v.h>
#include<macros.h>
#define fosc 4000000 //晶振4MHZ
#define baud 2400	 //波特率
#define com0	

#define U8 unsigned char 
#define U16 unsigned int 
 
U8 StrGpsLgd[8];				
U16 i;
U16 RecFlag;										
U16 IGpsLgd;					
U16 NumComa;		

void delay(U16 t)
{
	U16 i;
	while(t--)
	{
		for (i=0;i<125;i++)
		{}
	}
} 

void uart0_init(void)
{
 UCSR0B = 0x00; //disable while setting baud rate
 UCSR0A = 0x00;
 UCSR0C =(1<<UCSZ01)|(1<<UCSZ00);//8bit+1bit stop
 UBRR0L=(fosc/16/(baud+1))%256;
 UBRR0H=(fosc/16/(baud+1))/256;
 UCSR0B =(1<<RXEN0)|(1<<TXEN0);//RXCEN TXCEN
}
void uart1_init(void)
{
 UCSR1B = 0x00; //disable while setting baud rate
 UCSR1A = 0x00;
 UCSR1C = (1<<UCSZ11)|(1<<UCSZ10);//8bit+1bit stop
 UBRR1L=(fosc/16/(baud+1))%256;
 UBRR1H=(fosc/16/(baud+1))/256;
 UCSR1B =(1<<RXEN1)|(1<<TXEN1);//RXCEN TXCEN
}
void putchar0(unsigned char c)
	{	 
     while (!(UCSR0A&(1<<UDRE0)));
	 UDR0=c;    
	}
void putchar1(unsigned char c)
	{	 
     while (!(UCSR1A&(1<<UDRE1)));
	 UDR1=c;    
	}	
unsigned char getchar0(void)
  	{
	 while(!(UCSR0A& (1<<RXC0)));
     return UDR0;
	}	
unsigned char getchar1(void)
  	{
	 while(!(UCSR1A& (1<<RXC1)));
     return UDR1;
	}			
void puts0(char *s)
	{
	while (*s)
		{
		putchar0(*s);
		s++;
		}	
    putchar0(0x0a);
	putchar0(0x0d);
	}
void puts1(char *s)
	{
	while (*s)
		{
		putchar1(*s);
		s++;
		}	
    putchar1(0x0a);
	putchar1(0x0d);
	}	
void main(void)
{
 unsigned char i;
 #ifdef com0 
 	uart0_init();
 	puts0("HELLO!");
 #else
 	uart1_init();
 	puts1("HELLO!"); 
 #endif
 //启动GPS
 puts0("0x24");
 delay(10);
 puts0("P");
 delay(10);
 puts0("G");
 delay(10);
 puts0("R");
 delay(10);
 puts0("M");
 delay(10);
 puts0("O");
 delay(10);
 puts0(",");
 delay(10);
 puts0("G");
 delay(10);
 puts0("P");
 delay(10);
 puts0("R");
 delay(10);
 puts0("M");
 delay(10);
 puts0("C");
 delay(10);
 puts0(",");
 delay(10);
 puts0("1");
 delay(10);
 puts0("0x2a");
 
 
 
 //关GPS
 puts0("0x24");
 delay(10);
 puts0("P");
 delay(10);
 puts0("G");
 delay(10);
 puts0("R");
 delay(10);
 puts0("M");
 delay(10);
 puts0("O");
 delay(10);
 puts0(",");
 delay(10);
 puts0(",");
 delay(10);
 puts0("2");
 delay(10);
 puts0("0x2a");
 delay(10);
 
 
 
 while(1)
    {
	 #ifdef com0
    	 //LCD显示  
	 #endif		   	 
	}
}	
	

⌨️ 快捷键说明

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