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

📄 micro.h

📁 使用单片机开发的16路电话同时进行号码解析和CID功能
💻 H
字号:
/**************************************
pj name:           DTMF CID
author:             RPJ
version:            V0.1
description:      the code for 16 channel CID of dtmf mode.
                          hook off/ on register ADDR at 8000h and 9000h,
                          data for cid decoder register ADDR at A000h and B000h,
                          8870 stb single at hight  4 bit of P1 port,
**************************************/

#include "absacc.h"
#include "clock.h"

#define	W78E58B			1
#if W78E58B
#include "ISP_78E58B.h"
#else
#include "reg52.h"
#endif


typedef bit BOOL;
typedef unsigned char UNCHAR;
typedef unsigned int  UNINT;

#define TRUE			1
#define FALSE			!TRUE
#define NULL			0

#define	Timer2ms

#define	ADDR_DTMFDATA	0xA000
#define	ADDR_HOOKDATA	0x8000
#define	EXT_Group_Offset	0x1000

#define	FRAMEHEAD		0xcc
#define	DISPDATA		0x0a
#define	CLSDATA			0x0c
#define	FRAMEEND		0xaa

#define	BUFSIZE			50
#define	TIME_SPACE		10		//10*micro_scan_8870*4=10*10*4=400ms
#define	ALIGSIZE			255
#define	TAL_EXT_PORT	17

#define	MT8870_EnOut	0x08	//8870 have a output
#define	MT8870_NoOut	0x01	//8870 have a output front
#define	MT8870_EnRec	0x10	//8870 scan enable
#define	MT8870_NoRec	0x00	//8870 stop scan data

#define	EXT_SCAN_ON	0x80	//system scan hook on/off
#define	EXT_SCAN_OFF	0x00	//system stop scan hook on/off
#define	EXT_SCAN_PRI	0x0b	//system scan ext state pri
#define	EXT_SCAN_LEN	EXT_SCAN_ON+EXT_SCAN_PRI//T=EXT_SCAN_PRI*100ms


#define MICRO_SendToBuf(Buf, Data, WP, Tal, BufSize) \
{\
	(Buf) = (Data) ; \
	(Tal)++ ; \
	(WP)++ ; \
	if( (WP) == (BufSize) ) \
		(WP) = 0 ; \
}

#define MICRO_GetFromBuf(Buf, cData, RP, Tal, BufSize) \
{ \
	(cData) = (Buf) ; \
	(Tal)-- ; \
	(RP)++ ; \
	if( (RP) == (BufSize) ) \
		(RP) = 0 ; \
}  

#define LOAD_TIMER0(th,tl)\
{\
	TH0 = (th);\
	TL0 = (th);\
}
#define LOAD_TIMER1(th,tl)\
{\
	TH1 = (th);\
	TL1 = (th);\
}


UNCHAR	xdata	DTMF_Rec_ST[16];
UNCHAR	xdata	DTMF_Reg_Rec[16];
UNCHAR	xdata	COUNTER[16];
UNCHAR	xdata	CHECK_Reg[16];
UNCHAR	xdata	GROUP_Red_ST[2];
UNCHAR	xdata	GROUP_RESAVE_ST[2];
BOOL	Flag_Head,Flag_Second,Flag_End;

UNCHAR	xdata	EXT_RecDtmf_List[ALIGSIZE];
UNCHAR	xdata	EXT_EVENT_QUEUE[BUFSIZE];
UNCHAR	xdata	ALIGNMENT[ALIGSIZE];
UNCHAR	xdata	UART_CIDList[ALIGSIZE];
UNCHAR	WP_EVENT,RP_EVENT,TAL_EVENT;
UNCHAR	WP_ALIGN,RP_ALIGN,TAL_ALIGN;
UNCHAR	WP_UCID,RP_UCID,TAL_UCID;

UNCHAR	xdata	TRK_No_List[ALIGSIZE*4];
UNCHAR	TRK_No;
BOOL	ISP_Mode;

UNCHAR	SLEC_Point;
UNCHAR	Counter2ms,Counter5ms,Counter10ms,Counter100ms;
BOOL	Flag_2ms,Flag_5ms,Flag_10ms,Flag_100ms,Flag_s,Flag_Scan;

UNCHAR	STD8870;

/*********************IAP _SSTMCU*************/

#define	Inhabit_Addr	0xf000

BOOL COMPLETE_FLAG = 0;

⌨️ 快捷键说明

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