亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jbinit.c

?? 電話PSTN線路上FSK處理軟件。。。。。。。。。
?? C
?? 第 1 頁 / 共 2 頁
字號:

/*************************************************************
 *
 *		文 件 名:	jbMain.c
 *		說    明:	JJF24-1B型計費器主程序文件
 *		起始日期: 	1999.11.25
 *
 ************************************************************/

//#pragma SRC
//#pragma DEBUG
 
#include <jbInit.h>

byte code aVersion[]={'J','F','B','0','5','0','4','4','0','1'};
 
/***********************************************************
 *
 *		函  數:ApiProgram(void)
 *		說  明:應用程序主循環
 *
 ************************************************************/

void ApiProgram(void)
{
	bFailTimes=0;
	fWaitExit=0;
	fFirstCmd=0;
	bLastCmd=0xff;
    bStatusWord=S_HARDWAREINIT;				// 程序主循環        
    bFailTimes=0;
    bEnterFlag=0;
   	while(TRUE){
 		switch(bStatusWord){
 			case S_HARDWAREINIT:			// 00:硬件初始化過程
 				HardwareInit();
 				break;

 			case S_OLDPARAINIT:				// 01:OLD模式變量初始化
 				OldParaInit();
 				break;
			
 			case S_OLDMASTERCALL:			// 09:NEW模式主叫通話過程	
 				OldMasterCall();
 				break;

 			case S_OLDSLAVECALL:			// 10:NEW模式被叫通話過程
 				OldSlaveCall();
            	break;

			case S_OLDLOCKWAIT:				// 07:NEW模式鎖機等待過程
			case S_NEWLOCKWAIT:				// 07:NEW模式鎖機等待過程
 				LockWait();
 				TR2=0;
				ET2=0;
 				break;

 			case S_OLDUNLOCKWAIT:			// 08:NEW模式開鎖(掛機)等待過程
 			case S_NEWUNLOCKWAIT:			// 08:NEW模式開鎖(掛機)等待過程
 				UnLockWait();
 				break;

			case S_NEWPARAINIT:			// 06:NEW模式變量初始化過程
				NewParaInit();
				break;
			
 			case S_NEWMASTERCALL:		// 09:NEW模式主叫通話過程	
 				NewMasterCall();
 				break;

 			case S_NEWSLAVECALL:		// 10:NEW模式被叫通話過程
 				NewSlaveCall();
            	break;

			// MODEM通信上呼狀態散轉:		
	 		case S_UPCALL:				// 11:撥號呼叫管理機過程
 				UpCall();		
 				break;
 			
 			case S_OLDUPCOMM:			// 12:OLD模式數據上傳過程
 				OldComm();
 				break;	
 		
 			case S_NEWUPCOMM:			// 13:NEW模式數據上傳過程
 				NewComm();
 				break;	
	
			// MODEM通信下傳狀態散轉:
	 		case S_DOWNCALL:			// 14:管理機下呼過程
 				DownCall();
 				break;

 			case S_OLDDOWNCOMM:			// 15:OLD模式數據下傳過程
	 			OldComm();
 				break;	

 			case S_NEWDOWNCOMM:			// 16:NEW模式數據下傳過程
 				NewComm();
 				break;	

			// 公共過程處理: 
	 		case S_SERIALCOMM:			// 17:RS232串行口通信過程
 				UartComm();   
 				break;

	 		case S_SERVICE:				// 18:維護狀態
 				Server();
 				break;

 			default:						// 出現異常時,重新進行初始化
 				bStatusWord=S_HARDWAREINIT;
 				break;	
 		} // End switch(bStatusWord)
 		if(bDlpReason!=0)
 			return;	
	} // End while(TRUE) 		
}
// End	function: Main()

/*************************************************************
 *
 *	函	數: HardwareInit()
 *	說  明:	JJF24-1B型計費器上電硬件初始化函數
 *			處理定時器,中斷,外部口及12887初始化、
 *
 ************************************************************/
void HardwareInit(void)
{
 	byte i;
 	byte bdata *Point;

    TMOD=0x21;				// 定時器0選擇工作模式1 
    TH0=L5MS_H;				// 主頻為11.0592MHZ,5MS定時常數
    TL0=L5MS_L;
    TH1=L9600;				// 串口9600BPS定時常數
	TL1=L9600;
	T2CON=0x00;     	  	/* time2 16-bits reload mode        */
    RCAP2H=L278us_H;
    RCAP2L=L278us_L;
    	
    SCON=0x40;				// 串口工作模式1,8位UART
    PCON=0x80;
   	
    for(Point=0x20;Point<=0x2f;Point++)
        *Point=0;
	IP=0x20;						// 中斷初始化, 278us 為最高級中斷
	IT0=0;EX0=0;
	IT1=1;EX1=0;
	TR0=1;ET0=1;
	TR1=0;ET1=0;
	TR2=0;ET2=0;
	ES=0;
	
	EA=1;
	cbDelay5MS=30;
	fDelay5MS=0;
	while(!fDelay5MS) IDLE;

 	DispInit();						// 顯示初始化
 	DispClr();						// 清除大顯示器
    ReadByte(RTC_CONTROLC,6); 		// 取消12887中斷請求信號
	Close(MLD);
	Open(RLY);
	Close(POWER_ON);
	ResetModem();
	Speaker(80);

	pReadNumber=0;					// 全局共用變量初始化
	pWriteNumber=0;
	cbFangDao=200;
	// yxw 2001-05-12 16:08 add
 	Page(6);
	OutBuf|=0x04;
	XBYTE[OUT_CE]=OutBuf;
	Page(5);
	
	bErrorCode=ERR_NO;
	fWaitExit=0;
 	
	AutoReadPara(47);				// 讀處計費器當前工作模式
	if(bParaByte==0x88)
		fWorkMode=0;
	else{
		fWorkMode=1;
		if(bParaByte!=0x99){
			bParaByte=0x99;
			AutoWritePara(47);
		}
	}		
	CheckPara();
 	if(KeyProcess())
		return;
	AutoReadPara(49);
	if(bParaByte!=0x55){
		memset(&aDataBuf,0x00,20);
		WriteData(1,PARA_100,20,&aDataBuf);
		bParaByte=0x55;
		AutoWritePara(49);
	}
	AutoReadPara(50);
	for(i=0;i<10;i++){
		if(aVersion[i]!=aParaBuf[i]){
			bErrorCode=ERR_34;
			break;
		}
	}			
	if(bErrorCode==ERR_34){
		for(i=0;i<10;i++)
			aParaBuf[i]=aVersion[i];	
		WriteData(1,PARA_50,10,&aParaBuf);	//填入版本號
	}	
	bErrorCode=ERR_NO;
	CheckRTCTime();					// 檢查12887中時間值的合法性
	CheckSumTest();					// 檢查各種重要參數檢驗和 
	
	//
	bErrorCode=ERR_NO;
	//
	if(bErrorCode!=ERR_NO){
		DispErrorCode();
		if(fWorkMode){
			AutoReadPara(16);
			if(bParaByte>8)
				bParaByte=8;
			if(bParaByte<1)
				bParaByte=1;	
		}
		else
			bParaByte=3;
		if(bFailTimes>9)
			bFailTimes=0;		
		if(bFailTimes<bParaByte){
           	if(fWorkMode)
           		bCallReason=NEW_TEST;
           	else	
           		bCallReason=OLD_TEST;
           	bStatusWord=S_UPCALL;
           	return;
        }	
        else{
        	bStatusWord=S_NEWLOCKWAIT;
		    cbRingTimes=0;
    		cbRingPulseNum=0;
		    while(1){								//多次呼叫不成功后,等待系統呼入
		    	IDLE;
				if((cbRingTimes>3)||(OffHook()&&InComingCall())){
				    if(DetectConnectTone(1)){
					   	bStatusWord=S_DOWNCALL;
					  	Open(POWER_ON);    
					}	
					else
		        		bStatusWord=S_HARDWAREINIT;
	    	    	return;	
				}  	
			}
		}	
	}	
	DispCurrentDate();	
	SavePowerOnOff();
	InBuf=ReadByte(IN_CE,6);		// 檢查外線是否接反
	if((InBuf&0x08)==0){
		Close(RLY);
		DelaySecond(2);
		InBuf=ReadByte(IN_CE,6);
		Open(RLY);
		if((InBuf&0x08)!=0){
			bErrorCode=ERR_20;
			DispErrorCode();
		}	
	}
	else	
		DelaySecond(2);
	//
	EX0=1;	
	fMustReport=0;
	fDelaySecond=1;
	fLocked=1;
	
	if(fWorkMode)
		bStatusWord=S_NEWPARAINIT;				
	else
		bStatusWord=S_OLDPARAINIT;				
	Page(5);	
}
// End function: HardWareInit()
	
/****************************************************************
 *
 *	函	數: OldParaInit()
 *	說	明: OLD模式參數初始化處理
 *			調整記錄指針,記錄開關機記錄
 *
 **************************************************************/	
byte code aParaCode[]={67,68,69,70,71,72};
byte code aOldRange[]={199,199,200,31,14,34};
uint code aNewRange[]={499,499,500,31,31,34};
byte code aAccumulateCode[]={60,65};

void CheckPara(void)
{
	byte i;
	byte j,bTemp;
	uint iTemp;
	//判斷主、被叫統計參數是否越界
	for(i=0;i<2;i++){
		j=aAccumulateCode[i];
		AutoReadPara(j);
		if(iParaWord>9999){
			iParaWord=0;
			lParaLWord=0;
			AutoWritePara(j);
			AutoWritePara(j+1);
		}	
	}	
	//判斷各指針是否超出范圍
	for(i=0;i<6;i++){
		if(fWorkMode)
			iTemp=aNewRange[i];
		else
			iTemp=aOldRange[i];
		if(i>2)		
			bTemp=(byte)iTemp;
		j=aParaCode[i];
		AutoReadPara(j);
		if(i>2){
			if(bParaByte>bTemp)
				bParaByte=0;
			else
				continue;	
		}
		else{
			if(iParaWord>iTemp)
				iParaWord=0;
			else 
				continue;
		}				
		AutoWritePara(j);
	}
	//判斷日分項合計的時間是否為非法
	WaitRTC();
	Page(6);
	if((XBYTE[0xc02c]>0x12)||(XBYTE[0xc02d]>0x31)
	 ||(XBYTE[0xc02c]==0)||(XBYTE[0xc02d]==0)){
	    XBYTE[0xc02a]=0x20;
    	XBYTE[0xc02b]=XBYTE[0xc009];
    	XBYTE[0xc02c]=XBYTE[0xc008];
    	XBYTE[0xc02d]=XBYTE[0xc007];
		for(iTemp=0xc02e,i=0;i<17;i++,iTemp++)
			XBYTE[iTemp]=0;
	}
	Page(5);		
}		
		
void OldParaInit(void)
{
	AutoReadPara(211);					// 初始化各種控制標志位
	fbBuf1=bParaByte;					
	fIDDPrintLimit=fDDDPrintLimit;
	AutoReadPara(212);
	fbBuf2=bParaByte;
	//
    AutoReadPara(203);
    bAutoOffHookTimes=bParaByte>>4;
    bReDialTimes=bParaByte&0x0f;
    AutoReadPara(205);
    bResetTime=bParaByte;
    AutoReadPara(209);
    bReportNum=bParaByte;	
	//
	if(fAutoReport)
	    bReportWord=1;
	else
		bReportWord=0;    
    iDetectCarrierTime=50;
    iCancelCodeDelay=0;
    bStationFDLength=0;
    iOffHookTime=20;
    bAutoOnOffHookTime=20;
    bTalkDispTime=20;
    bOffHookDelay=120;	
    fSaveFreeTalk=0;
    fSaveInTalk=0;
   	fStartFangDao=0;
   	fFanjiFangDao=0;
   	// Use For Wait Status
    iTalkLength=199;	
    bDayTotalLength=14;
    fUnlockStat=0;
    // Read Old Mode Control Parameter.
    AutoReadPara(51);
//    if((bParaByte&0x01)!=0)		// FDD
//    	fFDD=1;
//    else
    	fFDD=0;	
    if((bParaByte&0x02)!=0)		// NO
    	fDispTalkPointer=1;
    else
    	fDispTalkPointer=0;	
    if((bParaByte&0x08)!=0)		// BHY
    	fDetectDialTone=1;
    else
    	fDetectDialTone=0;	
    if((bParaByte&0x20)!=0)		// FPU
    	fPluseFD=1;
    else
    	fPluseFD=0;
    if((bParaByte&0x40)!=0)		// CDY
    	iWaitDDTime=400;
    else
    	iWaitDDTime=320;
    //
	bStatusWord=S_OLDLOCKWAIT;
}
// End function: OldParaInit()	
			
/****************************************************************
 *
 *
 *		函	數: NewParaInit()
 *		說	明: NEW模式參數初始化處理
 *
 *
 **************************************************************/	
void NewParaInit(void)
{
	fUnlockStat=0;   
	ReadData(1,PARA_07,14,&aNumBuf);
	if(aNumBuf[0]!=0)
   		fIDDCallLimit=1;			// IDD呼出限制
	if(aNumBuf[1]!=0)			
   		fDDDCallLimit=1;			// DDD呼出限制
	if(aNumBuf[2]!=0)			
   		fLOCCallLimit=1;			// LOCLA呼出限制
	if(aNumBuf[3]!=0)
    	fIDDPrintLimit=1;			// IDD打印限制
	if(aNumBuf[4]!=0)
    	fDDDPrintLimit=1;			// DDD打印限制
	if(aNumBuf[5]!=0)
    	fLOCPrintLimit=1;			// LOCAL打印限制
	if(aNumBuf[6]!=0)
    	fDialForm=1;				// 主叫撥號方式
	if(aNumBuf[7]!=0)
    	fSecretSelect=1;			// 通訊加密選擇
	if(aNumBuf[8]!=0)
    	fHanderEnable=1;			// 手動計時允許
	if(aNumBuf[9]!=0)
    	fErrorAutoCall=1;			// 自檢出錯呼叫管理系統
	if(aNumBuf[10]!=0)
    	fClearTotalEnable=1;		// 允許手動清累計值
	if(aNumBuf[11]!=0)
		fUnlockStat=1;
	if(aNumBuf[12]!=0)
    	fEndLockEnable=1;			// 話畢鎖機
	if(aNumBuf[13]!=0)
    	fSlaveCalcForm=1;			// 呼入是否自動計費
    AutoReadPara(03);
    bAutoOffHookTimes=bParaByte;
    AutoReadPara(04);
    bReDialTimes=bParaByte;
    AutoReadPara(05);
    bReportWord=bParaByte;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品露脸对白| 天天影视涩香欲综合网 | 中文字幕一区二区不卡| 国产成人免费在线观看| 欧美国产精品一区| 91丨国产丨九色丨pron| 亚洲一区二区三区国产| 欧美一区二区三区人| 久久精品国产亚洲a| 久久久久久免费网| 91免费国产在线| 日韩av电影一区| 国产日韩欧美高清| 在线视频亚洲一区| 麻豆久久久久久| 中文字幕第一页久久| 91黄视频在线| 久久成人久久鬼色| 17c精品麻豆一区二区免费| 欧美专区亚洲专区| 国产精品一区二区免费不卡| 综合久久久久综合| 欧美大黄免费观看| 91视频国产观看| 美女任你摸久久| 成人欧美一区二区三区白人 | 日韩精品一区二区三区swag| 狠狠色丁香婷婷综合久久片| 中文字幕一区二区三区不卡在线 | 日韩精品一二三四| 国产女主播视频一区二区| 欧美影院精品一区| 国产成人精品亚洲日本在线桃色| 亚洲视频小说图片| 久久久影视传媒| 在线观看一区二区视频| 国产麻豆精品久久一二三| 亚洲一区二区三区免费视频| 久久婷婷久久一区二区三区| 欧美群妇大交群中文字幕| 丁香六月综合激情| 美女网站一区二区| 亚洲一区二区三区自拍| 日本一区二区三区四区在线视频| 欧美电影在线免费观看| 99精品偷自拍| 丁香桃色午夜亚洲一区二区三区 | 美国av一区二区| 夜夜嗨av一区二区三区| 国产日产欧产精品推荐色| 欧美一级国产精品| 欧美日韩视频不卡| 色综合视频在线观看| 成人午夜短视频| 欧美日韩免费不卡视频一区二区三区 | 另类中文字幕网| 亚洲小说欧美激情另类| 最新成人av在线| 国产精品初高中害羞小美女文 | 国产精品久久久久久久久快鸭 | 国产视频一区二区在线| 日韩精品一区在线| 91精品国产综合久久精品麻豆| 色综合久久久网| 色综合天天综合色综合av | 欧美日韩国产片| 日本精品裸体写真集在线观看 | 国产精品久久久久久久久免费樱桃| 欧美一区二区三区不卡| 欧美精品一二三区| 欧美精品在欧美一区二区少妇| 欧美性受xxxx黑人xyx性爽| 色哟哟日韩精品| 91色porny在线视频| 91麻豆视频网站| 色综合久久88色综合天天免费| 9久草视频在线视频精品| 大桥未久av一区二区三区中文| 粗大黑人巨茎大战欧美成人| 波多野结衣91| 色婷婷综合中文久久一本| 99久久精品国产导航| 色诱亚洲精品久久久久久| 欧美在线一二三| 777久久久精品| 欧美变态口味重另类| 久久影院视频免费| 国产精品色在线| 亚洲精选在线视频| 亚洲国产精品一区二区久久恐怖片| 亚洲国产精品视频| 免费在线观看一区二区三区| 寂寞少妇一区二区三区| 国产精品77777| 99久久99久久综合| 欧美日韩在线免费视频| 日韩精品专区在线| 国产欧美日韩综合| 亚洲码国产岛国毛片在线| 亚洲午夜电影在线| 蜜桃视频一区二区三区 | 91丝袜美女网| 欧美男女性生活在线直播观看| 日韩欧美一区在线观看| 国产偷国产偷亚洲高清人白洁 | 欧美xxxxxxxxx| 国产精品电影一区二区三区| 亚洲成人免费看| 国产一区二区三区观看| 中文字幕精品一区二区三区精品| 亚洲欧美在线另类| 日本va欧美va精品发布| 国产 欧美在线| 91精品国产综合久久精品app| 国产午夜精品久久| 丝袜a∨在线一区二区三区不卡| 国产综合久久久久影院| 色素色在线综合| 精品福利一二区| 亚洲在线免费播放| 国产精品亚洲专一区二区三区| 欧美最新大片在线看| 久久综合九色综合欧美就去吻| 亚洲色欲色欲www| 国产最新精品免费| 欧美亚州韩日在线看免费版国语版| 精品日韩一区二区| 亚洲成a人在线观看| 国产成人在线视频播放| 欧美精品日韩精品| 亚洲人成亚洲人成在线观看图片| 精品一区二区综合| 在线播放中文一区| 亚洲欧洲制服丝袜| 国产精品一区二区无线| 欧美精品乱码久久久久久| 99久久夜色精品国产网站| 成人蜜臀av电影| 久久久美女艺术照精彩视频福利播放| 亚洲一区二区欧美| 不卡的av电影| 国产日韩三级在线| 免费成人在线视频观看| 精品污污网站免费看| 国产精品美女久久久久久久久| 久久99国产精品免费网站| 亚洲免费观看高清完整版在线| 国内精品不卡在线| 日韩一级二级三级精品视频| 亚洲国产精品久久艾草纯爱| 99在线精品视频| 国产精品嫩草99a| 国产盗摄视频一区二区三区| 精品国产污网站| 毛片基地黄久久久久久天堂| 4438成人网| 日韩高清中文字幕一区| 在线成人av影院| 午夜精品久久久久久久蜜桃app| 91丝袜国产在线播放| 最新不卡av在线| 91美女视频网站| 一区二区在线电影| 91久久精品国产91性色tv| 亚洲精品成人少妇| 94-欧美-setu| 一级精品视频在线观看宜春院 | 日本中文字幕一区二区视频 | 中文字幕乱码亚洲精品一区| 国产精品综合二区| 国产欧美一区二区三区网站| 国产成人三级在线观看| 国产精品美女一区二区三区| 成人午夜视频在线| 亚洲免费观看高清完整 | 欧美成人一区二区三区在线观看| 日韩精品免费视频人成| 欧美精品18+| 久久99久久久欧美国产| 久久久蜜臀国产一区二区| 成人av网址在线| 亚洲综合色在线| 亚洲一区在线观看视频| 欧美精选在线播放| 国产一区二区三区美女| 国产精品人妖ts系列视频| 91视频在线看| 奇米影视一区二区三区小说| 精品国产污污免费网站入口| 成人激情图片网| 婷婷国产在线综合| 精品福利一区二区三区免费视频| 国产91丝袜在线18| 亚洲自拍偷拍麻豆| 日韩精品中文字幕在线一区| 成人免费视频播放| 午夜精品123| 中文av一区特黄| 欧美群妇大交群中文字幕| 精品一区二区三区的国产在线播放|