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

📄 ext._h

📁 基于mega48单片机编码cmx865芯片驱动程序实现FSK通信模块。
💻 _H
字号:
#include <String.h>

#define  BUFF_LEN_TX   250
#define  BUFF_LEN_RX   35
 // 位变量定义 //
typedef struct BITS
{
	unsigned int	B0:1;										                    //LSB First
	unsigned int	B1:1;
	unsigned int	B2:1;
	unsigned int	B3:1;
	unsigned int	B4:1;
	unsigned int	B5:1;
	unsigned int	B6:1;
	unsigned int	B7:1;
	unsigned int	B8:1;										                    //LSB First
	unsigned int	B9:1;
	unsigned int	B10:1;
	unsigned int	B11:1;
	unsigned int	B12:1;
	unsigned int	B13:1;
	unsigned int	B14:1;
	unsigned int	B15:1;
}bit;
#define    bTX_flag   flag.B0  
#define   fHostTxOk flag.B1  
#define bDectLineOKNum  flag.B2
#define fFSKRecEnd flag.B3
#define FSKEndFlag flag.B4
#define fDelay1MS1 flag.B5
//#define fValidData flag.B6
#define fDelay250MS flag.B7
#define FSKSendFlag flag.B8
#define fDelay1MS2 flag.B9
#define fDetectRing flag.B10
#define fDetectLost flag.B11

/*#define TX_BUF_LEN		16	//发送缓冲区长度
#define    CMD_LEN_RX   5
#define    CMD_LEN_TX   10*/
#define    CMD_LEN_RX   35
typedef struct{
	unsigned char bLineCmd;					//应答选择
	unsigned char bLength;					// 数据长度 //
	unsigned char aBuf[CMD_LEN_RX];		// 接收数据缓冲区 //
}CMD_DATA_RX;
/*
typedef struct{
	unsigned char bLineCmd;				//线路命令
	unsigned char bLength;				//数据长度
	unsigned char aBuf[CMD_LEN_TX];		//发送数据缓冲区
}CMD_DATA_TX;*/
// 线路检测状态判断 //
typedef	struct{
	// 断线检测 //
	unsigned char cbLineLost;					// 脱线时间计数 //
	unsigned char cbLineOk;						// 线路正常计数 //
	unsigned char fLineOk;						// 线路正常标志 //
	unsigned char fLineLost;					// 线路脱线标志 //

	unsigned char bLineCmd;						// 存储接收到的各种命令 //

	// 振铃检测 //
    	unsigned char ciRingStop;                   				 // 用于判断振铃停 //
       unsigned char ciRingStart;                    				 // 用于判断振铃起始 //
	unsigned char cbRingTimes2;
	unsigned char fRingOn;						// 正在振铃 //
	unsigned char fRingOff;						// 振铃停 //

	// 线路状态 //
	unsigned char bNowStatus;						// 当前的该路状态 //
	unsigned char bStatusWord;					// 当前线路状态4个状态 //

	//unsigned char pTxWr;							// 发送缓冲区写指针//
	//unsigned char pTxRd;							// 发送缓冲区读指针//
	unsigned char bExpAns;						// 希望的应答 //
	unsigned char bLastCmd;						// 上一个通讯命令//

	unsigned char fTxEn;							// 发送允许 //
	//unsigned char cbReSend;						// 发送次数 //
	unsigned char bSaveLen;						// 保存数据长度 //
	//unsigned char aSaveBuf[260];					// 该缓冲区能够满足 //
	unsigned char cbTimeOut;						// 通讯超时计数 //
	unsigned char fTimeOut;						// 通讯超时标志 //

	unsigned char bDailWord;						// 代拨状态字 //
	unsigned char cbDelay10MS2;					// 摘机延时发平台接入码时间计数器 //
	unsigned char fDelay10MS2;
}LINE_DATA;
// 链路保持及线路状态说明,ccw //
#define		LINE_IDLE	    0			// 待机 //
#define 	LINE_OFFHOOK	1			// 线路摘机  //
#define 	LINE_LOST		2			// 线路断开 //
#define     LINE_INIT		0xff

// 常用宏定义:
#define TRUE			1
#define FALSE			0

#define RLY_ON		0
#define RLY_OFF		1

// 通信命令宏定义 //
#define P_INIT      	0x50			// 初始化 //
#define P_INITANS   	0x51			// 初始化应答 //
#define P_OK       		0x52			// 肯定应答 //
#define P_NAK       	0x53			// 否定应答 //
#define P_LINK     		0x54			// 链路保持 //
#define P_LOST     		0x55			// 线路脱线 //
#define P_RESUME    	0x56			// 线路恢复 //
#define P_RINGON	    0x57			// 线路振铃 //
#define P_RINGOFF	    0x58			// 振铃停 //
#define P_CONNECTICS	0x60			// 接入平台 S->T,变长  //
#define P_DTMFNUM     	0x61			// DTMF号码 S->T,变长  //
#define P_RXDFSK	  	0x62			// FSK接收 T->S,变长  //
#define P_TXDFSK	   	0x63			// FSK发送 S->T,变长 //
#define P_ONHOOK		0x64			// 挂机 //
#define P_OVER	    	0x99
#define P_NONE			0xff


// CML868控制寄存器定义:
#define GENERAL_RESET	0x01
#define SET_UP			0xE0
#define TX_MODE			0xE1
#define RX_MODE			0xE2
#define TX_DATA_BYTE	0xE3
#define RX_DATA_BYTE	0xE5
#define STATUS			0xE6
//#define PROGRAM			0xE8

⌨️ 快捷键说明

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