📄 usart.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 + -