/******************************************************************************* * * 普中科技 -------------------------------------------------------------------------------- * 实 验 名 : RS232串口试验 * 实验说明 : 单片机将接收到的数据以10进制显示在LCD1602上面。 * 连接方式 : 见连接图 * 注 意 : *******************************************************************************/ #include<reg51.h> #include"lcd.h" //--定义全局函数--// unsigned char ChCode[14] = "Received data:"; //--声明全局函数--// void UsartConfiguration(); /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void main() { unsigned char i, receiveData; LcdInit(); for(i=0; i<14; i++) { LcdWriteData(ChCode[i]); } UsartConfiguration(); while(1) { if(RI == 1) //查看是否接收到数据 { receiveData = SBUF; //读取数据 RI = 0; //清除标志位 LcdWriteCom(0xC0); //--因为一次接受只能接收到8位数据,最大为255,所以只用显示百位之后--// LcdWriteData('0' + (receiveData / 100)); // 百位 LcdWriteData('0' + (receiveData % 100 / 10)); // 十位 LcdWriteData('0' + (receiveData % 10)); // 个位 } } } /******************************************************************************* * 函 数 名 :UsartConfiguration() * 函数功能 :设置串口 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void UsartConfiguration() { SCON=0X50; //设置为工作方式1 TMOD=0X20; //设置计数器工作方式2 PCON=0X80; //波特率加倍 TH1=0XF3; //计数器初始值设置,注意波特率是4800的 TL1=0XF3; TR1=1; //打开计数器 } |