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

📄 commdrv.c

📁 基于51的单片机的PPP协议实现
💻 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) {
  (void)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, register CommOptions Options) {
  SCBR = BaudRate;		// Set the baud rate
  SCC1 = 0x40;  		// Enable baud rate generator //
  SCC2 = Options;
}


/***********************************************************************
Function :	CloseComm

Parameters : 	

Date : 		July 2000

Desc : 		

***********************************************************************/
void CloseComm (void) {
}



/***********************************************************************
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) {
  SCDR = c;				// Write char to SCI data register
  while (!(SCS1 & 0x80));		// Wait until character gets transmited
}




/***********************************************************************
Function :	ReadComm

Parameters : 	

Date : 		July 2000

Desc : 		

***********************************************************************/
BYTE ReadComm (void) {	
  while (!(SCS1 & 0x20));
  return SCDR;
}


/***********************************************************************
Function :	WriteCommStr

Parameters : 	

Date : 		July 2000

Desc : 		

***********************************************************************/
void WriteCommStr (char* string) {
  while (*string) {
    SCDR = *string++;
    while (!(SCS1 & 0x80));
  }
}



/***********************************************************************
Function :	CommRx

Parameters : 	

Date : 		July 2000

Desc : 		

***********************************************************************/
void @interrupt UartRxISR (void) {
	SCS1;				// acknowledge this IRQ
	EvtProcedure (SCDR);		// Fordward the character to a service routine
}

⌨️ 快捷键说明

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