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

📄 main.c

📁 实现51与计算机的通信测试 通过1602LCD显示通信的数据
💻 C
字号:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char

sbit rs = P2^0;
sbit e = P2^1;

uchar idata xs_data1[16]="send:";//-----------显示的字符串
uchar idata xs_data2[16]="receiv:";

void isend(uchar adr);
void dsend(uchar asc);
void xianshi(uchar hang,uchar lie,uchar *p,uchar first,uchar num);//-------显示所在的行,列,内容,长度
void delay5ms();

void init();                  //串口初始化子程序 工作方式2
uchar receive_byte();		  //串口接收一个字节子函数 返回接收数据
void  send_byte (uchar s_b ); //串口发送数据程序

//-------------------------------------------

void main()
{	
     
     isend(1);//清屏指令 	 
     xianshi(1,0,xs_data1,0,5);
	 xianshi(2,0,xs_data2,0,7);
	 init(); //串口初始化子程序 工作方式2



	 send_byte(250);
	 xs_data1[5]=250;
	 xianshi(1,5,xs_data1,5,6);

     
    do
	{
	   xs_data2[7]=receive_byte();
	   xianshi(2,7,xs_data2,7,8); 	   

	 } while (1); 
 
 } 
 //----------------------------------------------
void init()               //串口初始化子程序 工作方式2
{
	TMOD=0X20;
	TH1=0XFD;                     //设置波特率9600 bit/s (0XFD)   波特率4800 bit/s(0XFA) 波特率2400 bit/s (0XF4) 波特率1200 bit/s(0XE8)
	TL1=0XFD;
	PCON=0X00;
	TR1=1;
	SCON=0X50;
}
//-------------------------------------------
void send_byte (uchar s_b ) //串口发送数据程序
{
    SBUF=s_b;
    while(TI==0);TI=0; 
}
//-------------------------------------------
uchar receive_byte()			//串口接收一个字节子函数 返回接收数据
{  	
	while(RI==0);RI=0;
	return SBUF;
}
//-------------------------------------------
void isend(uchar adr)       //显示屏写指令子程序
{   
	 P0=255;
     rs=0;
     e=1;
     P0=adr;
     e=0;
     delay5ms();
}
//-------------------------------------------
void dsend(uchar asc)        //显示屏写字符子程序
{
	P0=255;
	rs=1;
	e=1;
	P0=asc;
	e=0;
	delay5ms();
} 
//--------------------------------------------
void delay5ms()                       //显示延时5ms子程序
{
	uint j;
	for (j=0;j<1100;j++)
	{;}
} 
//------------------------------------------ 
void xianshi(uchar hang,uchar lie,uchar *p,uchar first,uchar num)
{
  int i,*xs;
  xs=p;	 
  isend(56);          //设置显示器
  isend(12);          //开显示,无光标 

  if(hang==1)isend(128+lie); //设置数据指针第1行
  else       isend(192+lie); //第2行

  for(i=first;i<num;i++)
     {	      
        dsend(p[i]);     
     }
}

⌨️ 快捷键说明

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