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

📄 commdrv.c

📁 本代码是本人毕设所做的GPRS数传系统的软件部分
💻 C
字号:
/******************************************************************************
File Name : CommDrv.c
Author : Rene Trenado
Location : Motorola Applications Lab, Baja California
Date Created : July 2000
Current Revision : 0.0
Notes : This file contains the code to drive the serial port
*******************************************************************************/
#include "CommDrv.h"
static void CommDrvDefaultProc (register BYTE value);
static void (* EvtProcedure) (register BYTE value) = CommDrvDefaultProc;
/***********************************************************************
Function : CommDrvDefaultProc
Parameters :
Date : July 2000
Desc :
***********************************************************************/
static void CommDrvDefaultProc (BYTE value) {
	
}
/***********************************************************************
Function : UseDefaultCommProc
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void UseDefaultCommProc (void) {
	DisableInterrupts;
	EvtProcedure = CommDrvDefaultProc;
	EnableInterrupts;
}
/***********************************************************************
Function : OpenComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void OpenComm (register BYTE BaudRate) {
	IP=0x10;
	IE=0x90;
	TMOD=0x20;
	SCON=0x50;
	TH1=TL1=0xF3;
	switch(BaudRate){
		case 2://2 for 4800
			PCON|=0x80;
			break;
		case 1://1 for 2400
			PCON&=0x7F;
			break;
	}
	TR1=1;
}
/***********************************************************************
Function : CloseComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void CloseComm (void) {
	DisableInterrupts;
}
/***********************************************************************
Function : AssignCommEventProc
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void CommEventProc (EventProc Proc) {
	DisableInterrupts; // Disable Interrupts
	EvtProcedure = Proc; // Install service handler
	EnableInterrupts; // Enable interrupts
}
/***********************************************************************
Function : WriteComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void WriteComm (BYTE c) {
	SBUF = c; // Write char to SCI data register
	while (!TI); // Wait until character gets transmited
	TI=0;
}
/***********************************************************************
Function : ReadComm
Parameters :
Date : July 2000
Desc :
***********************************************************************/
BYTE ReadComm (void) {
	while (!RI);
	RI=0;
	return SBUF;
}
/***********************************************************************
Function : WriteCommStr
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void WriteCommStr (char* string) {
	while (*string) {
		SBUF = *string++;
		while (!TI);
		TI=0;
	}
}
/***********************************************************************
Function : CommRx
Parameters :
Date : July 2000
Desc :
***********************************************************************/
void UartRxISR (void) interrupt 4 {
	RI=0; // acknowledge this IRQ
	EvtProcedure (SBUF); // Fordward the character to a service routine
}

⌨️ 快捷键说明

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