www.pudn.com > TFT.rar > Serinit.c


/*------------------------------------------------------------------------------ 
Serinit.C 
Crystal 16MHz 
------------------------------------------------------------------------------*/ 
#include "Main.h" 
#include "Serinit.h" 
#include "Delay.h" 
 
//UART0 initialize 
// desired baud rate: 57600 
// actual: baud rate:58824 (2.1%) 
void serinit(void) 
{ 
 	    UCSRB = 0x00; 	  //disable while setting baud rate 
        UCSRA = 0x00; 
        UCSRC = BIT(URSEL)|BIT(UCSZ1)|BIT(UCSZ0); // 8 bit data 
        UBRRL = 0x10; 	  //set baud rate lo 
        UBRRH = 0x00; 	  //set baud rate hi 
        UCSRB = BIT(RXEN)|BIT(TXEN); 
} 
 
unsigned char get_data(void) 
{		 
	 	while( !(UCSRA&BIT(RXC)) ); 
		return UDR; 
} 
 
void send_data(unsigned char data) 
{ 
   		while( !(UCSRA&BIT(UDRE)) ); 
        UDR=data; 
} 
 
void send_string(unsigned char *str) 
{  
  	    while(*str!=0) 
  	    { 
   	        send_data(*str); 
   		    str++; 
			delay_50us(); 
  	    } 
} 
 
const unsigned char prompt_ascii[]="0123456789ABCDEF"; 
void send_num(unsigned char byte)//ÏÔʾÁ½Î»HEXÂë 
{   
		unsigned char a; 
 
        delay_1ms(); 
		a=(byte&0xF0)>>4; 
    	send_data(prompt_ascii[a]); 
        delay_1ms(); 
		a=byte&0x0F; 
    	send_data(prompt_ascii[a]); 
        delay_500us(); 
} 
 
#pragma interrupt_handler uart0_rx_isr:10 
void uart0_rx_isr(void) 
{ 
}