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

📄 jbmain.c

📁 电话PSTN线路上FSK处理软件。。。。。。。。。
💻 C
字号:

/*************************************************************
 *
 *	文 件 名:	jbMain.c
 *	说    明:	JJF24-1B新型计费器主程序文件
 *	起始日期: 	99-11-26 8:02
 *	完成日期:
 *	原型函数:	void Main(void)
 *				bool CheckProgramSum(void)
 *				void _Second(void) interrupt 0 using 1
 *				void _Time0(void) interrupt 1 using 1
 *				void _ModemInt(void) interrupt 2 using 1
 *				void _Uart(void) interrupt 4 using 1
 *				void _Time1(void) interrupt 3 using 1
 *				void _Time2(void) interrupt 5 using 1
 *
 ************************************************************/
//#pragma SRC 
//#pragma DEBUG
 #include <jbMain.h>
/*************************************************************
 *
 *	函数名:	Main.c
 *	说  明:	JJF24-1B型计费器主函数
 *
 ************************************************************/
void Main(void)
{
	while(1){
		EA=0;						// 屏蔽所有中断
		PSW=0x00;					// 选择寄存器组1	
    	P1=0xff;					// 端口初始化
    	P3=0xff;
		DlpPage(6);
		OutBuf=0xc3;				// 1110 0001	d1=RLY
		XBYTE[OUT_CE]=OutBuf;
		bRecSBUF=XBYTE[RTC_CONTROLC];
   		bRecSBUF=XBYTE[IN_CE]&0xf0;
		DlpPage(5);
		bDlpReason=0;
		bFailTimes=0;
		fWaitExit=0;
		fFirstCmd=0;
		bLastCmd=0xff;
		fTxFSKStart=0;
		// 按键机可直接进入串口接收等待状态:
   		if(bRecSBUF==K234)
   			bDlpReason=3;			// 转入串口接收等待过程
		else if((!CheckProgramSum())||(bRecSBUF==K134))
			bDlpReason=2;
		while(TRUE){
			if(bDlpReason==TO_INIT)		// 程序重新开始入口
				break;	
			else if(bDlpReason==0)
				ApiProgram();
			else
				DlpProgram();
		}
	}		
	// 计费器工作主循环程序			
}
// End function: Main()	

/*******************************************************************************
 *
 *  Function:   CheckProgramSum
 *  Descrip:    特定算法计算应用程序检验和
 *  Return:     right return 1;
 *              error return 0. 				
 *
 ******************************************************************************/
bool CheckProgramSum(void)
{
	uint CheckSum1=0;
	uint CheckSum2=0;
	byte code  *Dpnt;
	uint xdata *Dpnt1;
	uint i;
    byte j;
	DlpPage(0);
	for(i=0x2000,j=0;i!=0;i+=0x100){		
		Dpnt=i+j;
		CheckSum1+=*Dpnt; 			
 		j++;
	} 	
	DlpPage(5);
	Dpnt1=PROGRAM_CHECKSUM_ADDR;	
	DlpPage(1);
	CheckSum2=*Dpnt1;
	DlpPage(5);
	if(CheckSum1==CheckSum2) 
	    return 1;
    else 	
	    return 0;
} 
// End function: CheckProgramSum()


void _Second(void) interrupt 0 using 1
{
	if(bDlpReason==0)
		_ApiSecond();
	else
		DlpSecond();		
}
// End function: _Second()

void _Time0(void) interrupt 1 using 1
{
	if(bDlpReason==0)
		_ApiTime0();
	else
		DlpTime0();		
}
// End function: _Time0()

void _ExtInt1(void) interrupt 2 using 1
{
	if(bDlpReason==0)
		_ApiInt1();
	else
		DlpInt1();		
}
// End function: _VccLow()

void _Uart(void) interrupt 4 using 1
{
	if(bDlpReason==0)
		_ApiUart();
	else
		DlpUart();		
}
// End function: _Uart()

// 下为备用中断服务程序,用于将来的扩展:
void _Time1(void) interrupt 3 using 1
{
	if(bDlpReason==0)
		_ApiTime1();
	else
		DlpTime1();		
}
// End function: _Time1()

void _Time2(void) interrupt 5 using 1
{
	if(bDlpReason==0)
		_ApiTime2();
	else
		DlpTime2();		
}
// End function: _Time2()

//
// End file: jbMain.c
//

⌨️ 快捷键说明

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