亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
中文字幕在线观看不卡| 男男成人高潮片免费网站| 亚洲自拍欧美精品| 国产制服丝袜一区| 欧美少妇bbb| 亚洲欧洲精品成人久久奇米网| 日韩专区中文字幕一区二区| 暴力调教一区二区三区| 精品久久国产老人久久综合| 亚洲一线二线三线视频| www.综合网.com| 久久综合九色欧美综合狠狠| 国产盗摄一区二区| 欧美女孩性生活视频| 亚洲欧美国产三级| 国产69精品久久777的优势| 日韩欧美高清在线| 午夜影院久久久| 欧洲亚洲国产日韩| 国产精品乱人伦| 国产精品91一区二区| 精品国产乱子伦一区| 日韩av午夜在线观看| 欧美日韩高清一区二区不卡 | 国产sm精品调教视频网站| 欧美高清视频一二三区 | 国产精品久久久一区麻豆最新章节| 奇米影视在线99精品| 欧美高清精品3d| 亚洲线精品一区二区三区| 一本色道**综合亚洲精品蜜桃冫 | 久久在线观看免费| 免费在线观看不卡| 欧美一区二区在线视频| 天堂午夜影视日韩欧美一区二区| 欧美日韩国产美女| 亚洲一区二区三区视频在线| 欧美日韩在线播| 午夜精品久久久久久久久久久| 在线日韩国产精品| 亚洲电影视频在线| 欧美麻豆精品久久久久久| 偷窥国产亚洲免费视频| 91精品国产欧美一区二区成人| 日韩不卡一二三区| 精品久久久久久最新网址| 国产成人在线观看免费网站| 中文字幕欧美日韩一区| 一本大道久久a久久综合| 香蕉乱码成人久久天堂爱免费| 欧美电影一区二区三区| 激情深爱一区二区| 亚洲欧洲av在线| 欧美日韩一二区| 美女免费视频一区二区| 久久精品人人做人人爽人人| 99久久国产综合色|国产精品| 亚洲高清三级视频| 精品99一区二区三区| 成人ar影院免费观看视频| 亚洲国产精品久久久久婷婷884| 日韩一区二区三区电影在线观看| 久久不见久久见免费视频7| 国产精品国产三级国产普通话99 | 日本高清视频一区二区| 天天综合天天综合色| 久久久精品欧美丰满| 色综合色综合色综合色综合色综合 | 精品久久久久香蕉网| 成人av先锋影音| 日本人妖一区二区| 国产精品久久久久久久久免费丝袜| 欧美三级中文字| 国产精品一二三四五| 午夜在线电影亚洲一区| 中文字幕精品一区二区三区精品| 精品视频一区二区不卡| 国产91在线观看丝袜| 丝袜美腿一区二区三区| 中文字幕日韩一区二区| 日韩一区二区三区免费看| 日本丰满少妇一区二区三区| 国内精品久久久久影院一蜜桃| 一区二区三区在线视频播放| 久久一日本道色综合| 欧美日韩久久久久久| 91一区二区三区在线观看| 国产乱色国产精品免费视频| 日韩专区在线视频| 亚洲在线中文字幕| 中文字幕日本乱码精品影院| 亚洲精品一区二区三区香蕉| 在线成人av网站| 欧美自拍偷拍一区| 粉嫩13p一区二区三区| 久久99九九99精品| 琪琪久久久久日韩精品| 亚洲与欧洲av电影| 亚洲三级在线播放| 国产欧美日韩不卡免费| 日韩一区二区三区在线观看| 欧美人牲a欧美精品| 色综合久久中文字幕| 不卡的av在线播放| 国产电影一区在线| 国产成人免费xxxxxxxx| 韩国女主播成人在线| 九色综合国产一区二区三区| 蜜芽一区二区三区| 日本中文字幕一区二区视频| 亚洲国产成人av| 亚洲电影中文字幕在线观看| 亚洲一区二区在线免费观看视频| 亚洲欧美激情小说另类| 亚洲男同性视频| 亚洲麻豆国产自偷在线| 亚洲美女少妇撒尿| 一区二区三区欧美日韩| 一区二区三区中文字幕电影| 一区二区免费看| 午夜精品久久久久久久99樱桃| 亚洲国产日韩av| 亚洲va欧美va人人爽| 蜜臀va亚洲va欧美va天堂| 极品少妇xxxx精品少妇| 国产成人精品免费在线| 国产成人av网站| av电影在线观看完整版一区二区| 成人午夜精品一区二区三区| 色综合久久综合网欧美综合网 | 亚洲午夜激情网站| 亚洲精品视频在线观看免费| 亚洲精品国产无天堂网2021| 三级影片在线观看欧美日韩一区二区 | 丁香六月久久综合狠狠色| 成人h动漫精品| 日本福利一区二区| 日韩一区二区精品在线观看| 欧美精品一区二区三区高清aⅴ | 国产精品美女www爽爽爽| 一区二区三区在线视频免费观看| 日欧美一区二区| 国产一区欧美一区| 色悠悠久久综合| 日韩午夜精品电影| 中文字幕制服丝袜一区二区三区 | 亚洲一区二区三区中文字幕| 日韩国产精品久久久| 国产大陆精品国产| 91精品福利视频| 日韩欧美色电影| 亚洲免费视频中文字幕| 久久精品免费看| 色婷婷激情一区二区三区| 欧美videossexotv100| 亚洲人成网站影音先锋播放| 精品一区二区三区免费播放| 色婷婷激情综合| 久久亚洲欧美国产精品乐播 | 欧美色图在线观看| 久久综合久久综合九色| 亚洲线精品一区二区三区八戒| 国产在线播放一区二区三区| 欧美性受xxxx黑人xyx| 国产欧美一区二区三区在线看蜜臀| 亚洲自拍另类综合| 成人免费看的视频| 日韩欧美亚洲国产精品字幕久久久| 18成人在线观看| 国产剧情在线观看一区二区| 在线不卡的av| 亚洲欧美日韩中文字幕一区二区三区 | 国产精品系列在线播放| 在线成人av网站| 亚洲精品免费看| www.综合网.com| 国产片一区二区| 精品一区二区日韩| 欧美乱熟臀69xxxxxx| 亚洲视频一区二区在线观看| 国产剧情av麻豆香蕉精品| 欧美一区二区三区的| 国模无码大尺度一区二区三区| 欧美精品 国产精品| 亚洲一区二区三区四区不卡| 99re66热这里只有精品3直播| 亚洲精品一区二区三区香蕉| 老色鬼精品视频在线观看播放| 欧美性感一类影片在线播放| 18成人在线观看| 91在线观看地址| 亚洲人成网站影音先锋播放| av中文一区二区三区| 中文字幕免费不卡| 成人综合在线网站| 亚洲国产精品成人久久综合一区| 成人免费av在线| 国产精品欧美精品| 91在线一区二区三区| 中文字幕一区二区三区蜜月 |