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

📄 com.h

📁 字符型液晶LCD1602,驱动
💻 H
字号:
#ifndef _com_h_
#define _com_h_

#include<string.h>

/*-----STC89C52 专用-----*/
sfr  WDT = 0xE1;
#define _CLRWDT_  {WDT = 0x36;}

sbit CtrlCom485		=	P1^1;		// 485 发送接收控制脚

#define BAUD_1200		0xE8		// 波特率为1200		 	
#define BAUD_2400		0xF4	    // 波特率为2400
#define BAUD_4800		0xFA	    // 波特率为4800
#define BAUD_9600		0xFD	    // 波特率为9600
#define BAUD_14400		0xFE	    // 波特率为14400

#define SERIAL_BUF_LEN  4			// 串口缓冲个数

unsigned char SerialBuf[SERIAL_BUF_LEN];

/********************************************************
**名称:InitSerial()
**功能:串口初始化
**输入:无
**返回:无
**说明:无
********************************************************/
void InitSerial(void)
{
	TMOD = 0x20;			// T1 方式2
	PCON=0x00;				// PCON=00H,SMOD=0	  PD = PCON.2 = 1 进入掉电模式	
	TH1 = TL1 = BAUD_9600;  // BAUD: 9600
	SCON = 0x50;			// 串行通信方式1 REN=1 允许接收
	ET1 = 0;				// 不允许中断
	TR1 = 1;				// 开启定时器1
	IE = 0;					// 关闭所有中断允许位

	memset(&SerialBuf, 0x00, SERIAL_BUF_LEN);	// 初始化SerialBuf[SERIAL_BUF_LEN]
}

/********************************************************
**名称:SendByte()
**功能:串口发送一个字节
**输入:ucData
**返回:无
**说明:无
********************************************************/
void SendByte(unsigned char ucData) 
{
	SBUF = ucData;	         
  	while(!TI)
	{
		_CLRWDT_;
	} 
	TI = 0;
}

/********************************************************
**名称:TransmitEnable()
**功能:485 发送允许
**输入:无
**返回:无
**说明:无
********************************************************/
void TransmitEnable(void)
{
	CtrlCom485 = 1;
}

/********************************************************
**名称:ReceiveEnable()
**功能:485 接收允许
**输入:无
**返回:无
**说明:无
********************************************************/
void ReceiveEnable(void)
{
	CtrlCom485 = 0;
}

/********************************************************
**名称:SendMsg()
**功能:串口发送字符串
**输入:*ucBuf→输入缓冲; ucNum→发送个数
**返回:无
**说明:无
********************************************************/
void SendMsg(unsigned char *ucBuf, unsigned char ucNum)
{
    TransmitEnable();
	while (ucNum != 0)
    {
        SBUF = *ucBuf;
        while (!TI)
		{
			_CLRWDT_;
		}
        TI = 0;
        ucBuf++;
        ucNum--;
    }
	ReceiveEnable();
}

/********************************************************
**名称:Csum()
**功能:校验码的计算
**输入:*pucCmd→输入缓冲; ucNum→个数
**返回:无
**说明:无
********************************************************/
/*unsigned char Csum(unsigned char *pucCmd, unsigned char ucNum)
{
	unsigned char i;
	unsigned char ucSum = 0;
	unsigned char *p = (unsigned char *)pucCmd;
	for (i=0; i<ucNum; i++)
	{
		ucSum += *p++;
	}
	return ucSum;
}*/

/********************************************************
**名称:SconInit()
**功能:串口中断
**输入:无
**返回:无
**说明:无
********************************************************/
/*void SconInit(void) interrupt 4 using 1
{
	unsigned char ptr = 0;
	unsigned int uiTimes = 0;
	EA = 0;
	if (RI)
	{
		SerialBuf[ptr++] = SBUF;
		RI = 0;
		while(ptr<4)
		{
			uiTimes = 200;
			while ((RI == 0) && (uiTimes != 0))
			{
				uiTimes --;
			}
			if (uiTimes == 0) 
			{
				break;
			}
			else
			{
				SerialBuf[ptr++] = SBUF;
				RI = 0;	
			}
		}
		
		//SendMsg(SerialBuf,4);

		if (ptr==4 && SerialBuf[0]==0xAE && SerialBuf[1] == 0xEA)
		{	
			ucTemp = SerialBuf[2];
			ucFlag = SerialBuf[3];
			.........
		}
	}
	memset(SerialBuf, 0x00, SERIAL_BUF_LEN);
	EA = 1;
}*/

#endif

⌨️ 快捷键说明

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