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

📄 scomm.c

📁 51单片机与PC通信--串口通信实验 keil环境
💻 C
字号:

//ZC-51学习板实验源程序
//学习板和PC通信--串口通信实验
//http://www.ednchina.com/blog/zhichengdz/
//E-mail: zhicheng_dz@163.com

#include <reg52.h>
#include <main_.h>
#define uchar unsigned char
#define uint unsigned int

uchar chrec;
bit brec;
               
void commini (void)	   //串口初始化
{
	SCON  = 0x50;     //01010000  //方式1,允许接收             
	TMOD |= 0x21;     //8位自动装入常数的定时器              
	TH1 = 0xfd;       //波特率产生器自动装入常数                
	TR1   = 1;        //T1开始运行                

	ES = 1;			  //打开串口中断
	EA=1;			  //打开全局中断
}

putbyte(unsigned char c)   //放入一个字节到发送缓冲区
{
SBUF=c;
while(!TI);TI=0;
}

void putstring(uchar  *puts)		 //发送一个定义在程序存储区的字符串到串口
{
	for(;*puts!=0;puts++)   //遇到停止符0结束
	putbyte(*puts);
}

void serial () interrupt 4	   //串口中断处理
{
	if (RI)
	{
		RI = 0;
		brec=1;
		chrec=SBUF;
		SBUF=chrec;
	}
}
uchar code arrhex[]={"0123456789ABCDEF"};
void LCM1602 (uchar ch)				//以十六进制显示从PC接收到的数据
{	uchar cht;
	
	cht=ch%16;
	lcdchar (13,1,arrhex[cht]);

	cht=ch/16;
	lcdchar (12,1,arrhex[cht]);
}
void main ()
{	
	commini ();	   //串口初始化

	lcdreset();						  //LCM初始化
	lcdwda(0,0,"ZC-51 comm. Exp.");
	lcdwda(0,1," rec. char:     ");
	putstring("ZC-51 communications Exp.");
	while (1)
	{
		if (brec)
		{	brec=0;
			LCM1602 (chrec);	   //以十六进制显示从PC接收到的数据
		}
	}
}

⌨️ 快捷键说明

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