欢迎来到天天文库
浏览记录
ID:50231808
大小:159.00 KB
页数:7页
时间:2020-03-05
《串口通信接收LCD1602显示.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、注意:晶振使用11.0592MHz波特率9600/*********************************************************************文件名:串口接收试验.c*描述:该程序从串口接收数据,通过LCD显示数据。在LCD的第一行显示出来,当数据过多时(超过16个字符),LCD第一行将会被覆盖。该试验使用的晶振是11.0592,如果使用12M晶振,会出现串口接收不正常的情况。原因是用12M晶振,波特率9600时的误差率达8%。********************
2、***************************************************/#include#include#defineucharunsignedchar#defineuintunsignedint/*LED_Buffer[16]用来存储串口发送的数据,com_dat用来记录串口发送的个数*/ucharLED_Buffer[16],*q,com_dat;//从串口接收的数据//这三个引脚参考资料sbitE=P2^7;//1602使能引脚sbit
3、RW=P2^6;//1602读写引脚sbitRS=P2^5;//1602数据/命令选择引脚/*********************************************************************名称:Delay(uintdel)*功能:延时10ms*del*输入:无*输出:无***********************************************************************/voidDelay(uintdel){uinti,j;for(
4、i=0;i5、=0;j<=2;j++);}/*********************************************************************名称:Convert(ucharIn_Date)*功能:因为电路设计时,P0.0--P0.7接法刚好了资料中的相反,所以设计该函数。*输入:1602资料上的值*输出:送到1602的值***********************************************************************/ucharConvert6、(ucharIn_Date){uchari,Out_Date=0,temp=0;for(i=0;i<8;i++){temp=(In_Date>>i)&0x01;Out_Date7、=(temp<<(7-i));}returnOut_Date;}/*********************************************************************名称:enable(uchardel)*功能:1602命令函数*输入:输入的命令值*输出:无**********************8、*************************************************/voidenable(uchardel){P0=Convert(del);RS=0;RW=0;E=0;delay();E=1;delay();}/*********************************************************************名称:write(uchardel)*功能:1602写数据函数*输入:需要写入1602的数据*输出:无****************9、*******************************************************/voidwrite(uchardel){P0=Convert(del);RS=1;RW=0;E=0;delay();E=1;delay();}/***********************************************************
5、=0;j<=2;j++);}/*********************************************************************名称:Convert(ucharIn_Date)*功能:因为电路设计时,P0.0--P0.7接法刚好了资料中的相反,所以设计该函数。*输入:1602资料上的值*输出:送到1602的值***********************************************************************/ucharConvert
6、(ucharIn_Date){uchari,Out_Date=0,temp=0;for(i=0;i<8;i++){temp=(In_Date>>i)&0x01;Out_Date
7、=(temp<<(7-i));}returnOut_Date;}/*********************************************************************名称:enable(uchardel)*功能:1602命令函数*输入:输入的命令值*输出:无**********************
8、*************************************************/voidenable(uchardel){P0=Convert(del);RS=0;RW=0;E=0;delay();E=1;delay();}/*********************************************************************名称:write(uchardel)*功能:1602写数据函数*输入:需要写入1602的数据*输出:无****************
9、*******************************************************/voidwrite(uchardel){P0=Convert(del);RS=1;RW=0;E=0;delay();E=1;delay();}/***********************************************************
此文档下载收益归作者所有