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

📄 usart.c

📁 This is the source code for 5x7 Matrix display developed using PIC Microcontroller
💻 C
字号:
//USART.C IS THE USART ROUTINE FILE FOR MICROCHIP C18 COMPILER
// FUNCTIONS EXPLANATION
//
//USART_INIT:
//		THIS FUNCTION IS USED TO CONFIGURE THE USART MODULE FOR 
//		USART COMMUNICATION
//
//TWO FUNCTIONS ARE AVAILABLE FOR RECEVING THE DATA FROM XTERNAL WORLD
//		unsigned char getc_ram(void);
//				This function is used for receiving single data and 
//				it return the received data as unsigned char
//		void gets_ram(far ram unsigned char *);
//				This function is used to receive the string of unsigned char data 
//				we must pass the destination ram variable as argument(address) 
//
//FOUR FUNCTIONS ARE AVAILABLE FOR TRANSMITTING DATA TO XTERNAL WORLD
//		void putc_rom(far rom unsigned char *);
//				This function transmit single byte of data from the program memory 
//				function contains the argument of pointer to the program memory source location
//		void putc_ram(ram unsigned char);
//				This function transmit single byte data from ram memory 
//		void puts_ram(ram const unsigned char *);
//				This function transmit the string of data from ram memory
//				This function containd the argument of pointer to the ram memory source location
//		void puts_rom(far rom const unsigned char *);
//				This function transmit the string of data from program memory
//				This function contailns tha argument of pointer to the rom memory location

void usart_init(void);
unsigned char getc_ram(void);
void gets_ram(far ram unsigned char *);
void putc_rom(far rom unsigned char *);
void putc_ram(ram unsigned char);
void puts_ram(ram const unsigned char *);


void usart_init(void)
{
	TRISC |= 0xC0;
	BAUDCON = 0x08;
	SPBRG=0xE1;  //9600 BAUD RATE
	SPBRGH = 0X04;
	TXSTA=0x24; //HIGH SPEED ASYNCHRONOUS 
	RCSTA=0x90;
	RCREG=0;
	RCREG=0;
	RCSTAbits.FERR=0;
	RCSTAbits.OERR=0;
}

unsigned char getc_ram()
{
	while(!PIR1bits.RCIF);
    return RCREG;
}

void gets_ram(far ram unsigned char *data)
{
	do
	{
		while(!PIR1bits.RCIF);
		*data = RCREG;
		putc_ram(*data);
		data++;
	}while(*(--data) != '\0');
}

void putc_ram(ram unsigned char data)
{
	while(!PIR1bits.TXIF);
	TXREG=data;
//	while(!TXSTAbits.TRMT);
}
 
void putc_rom(far rom unsigned char *data)
{
	while(!PIR1bits.TXIF);
	TXREG = *data;
//	while(!TXSTAbits.TRMT);
}

void puts_ram(ram const unsigned char *data)
{
	while(*data)
	{
		putc_ram(*data);
		data++;
	}
}




⌨️ 快捷键说明

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