?? com.h
字號:
#ifndef _com_h_
#define _com_h_
#include<string.h>
/*-----STC89C52 專用-----*/
sfr WDT = 0xE1;
#define _CLRWDT_ {WDT = 0x36;}
sbit CtrlCom485 = P1^1; // 485 發(fā)送接收控制腳
#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 // 串口緩沖個數(shù)
unsigned char SerialBuf[SERIAL_BUF_LEN];
/********************************************************
**名稱:InitSerial()
**功能:串口初始化
**輸入:無
**返回:無
**說明:無
********************************************************/
void InitSerial(void)
{
TMOD = 0x21; // T1 方式2 T1 方式1
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()
**功能:串口發(fā)送一個字節(jié)
**輸入:ucData
**返回:無
**說明:無
********************************************************/
void SendByte(unsigned char ucData)
{
SBUF = ucData;
while(!TI)
{
_CLRWDT_;
}
TI = 0;
}
/********************************************************
**名稱:TransmitEnable()
**功能:485 發(fā)送允許
**輸入:無
**返回:無
**說明:無
********************************************************/
/*void TransmitEnable(void)
{
CtrlCom485 = 1;
}
/********************************************************
**名稱:ReceiveEnable()
**功能:485 接收允許
**輸入:無
**返回:無
**說明:無
********************************************************/
/*void ReceiveEnable(void)
{
CtrlCom485 = 0;
}
/********************************************************
**名稱:SendMsg()
**功能:串口發(fā)送字符串
**輸入:*ucBuf→輸入緩沖; ucNum→發(fā)送個數(shù)
**返回:無
**說明:無
********************************************************/
/*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→個數(shù)
**返回:無
**說明:無
********************************************************/
/*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 + -