📄 usart_1.c
字号:
/**********************************
!!!!!!注意在发送的字符串后边需加'/'!!!!!!!!!
可以用‘*’进行清屏
**********************************/
#include <pic.h>
#define uint unsigned int
#define uchar unsigned char
//**********函数声明*************
void Init_LCD(void);
void LCD_Clear(void);
void delay_nms(unsigned int);
void LCD_DisplayString (char, char ,unsigned char*);
void LCD_DisplayCharacter(char);
void LCD_WriteControl(uchar);
//void get_usart_result(void);
void get_usart_string(void); //receive the string from the USART
void send_usart_date(uchar);
uchar string_usart[]=0;
//*************************************
void usartint()
{TRISC6=0; //TX引脚输出
TRISC7=1; //RX引脚输入
SPBRG=0X67; //波特率设为,0x67-2400,0x33-4800,0x19-9600
TXSTA=0X24; //设为高速波特率,发送8位数据
RCSTA=0X90; //串行端口使能
GIE=0;
TRISD=0x00;
PORTD=0x00;
//TXREG=0x88;
}
//接收USART数据
void get_usart_string()
{
uint count=0;
do{
do{;}while(RCIF==0);
RCIF=0;
string_usart[count]=RCREG;
count++;
if('*'==RCREG)
{
LCD_Clear(); //If send '*',clear the LCD
break; // tip the cycle!
}
}while(RCREG!='/'); //!!!!!!注意在发送的字符串后边需加'/'!!!!!!!!!
string_usart[count-1]='\0'; //加停止符
}
//通过USART发送数据
void send_usart_date(uchar send_temp)
{
TXREG=send_temp;
do{;}while(0==TXIF);
TXIF=0;
}
//*********display***********
void display()
{
get_usart_string();
LCD_DisplayString (1,1 ,string_usart);
}
void main()
{
usartint();
Init_LCD();
LCD_WriteControl(0x80); //显示起始地址
while(1)
{
display();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -