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

📄 set.c

📁 这个系统是我根据常州拨云拨号器的硬体写的应用系统,完全兼容拨云拨号器的硬件和全功能实现,能实现自动拨接语音ip接入号,设定十组,各种号码路由权限设定!反极侦察产生!
💻 C
字号:
#include <reg2051.h>
#include "Dialer_program.h"

unsigned char data address;
//unsigned char data key;
unsigned char data setkeycount;
unsigned char *ptr;
unsigned char ipRouter[3];
unsigned char data keytemp0;
unsigned char data keytemp1;
unsigned char data keytemp2;
unsigned char data key;

bit setbit;
bit keyack;

#define  bcbcbb		80	   //add + 7
#define  bcbc04		12	   //add + 2
#define  bcbc05		19	   //add + 7
#define  bcbc06		27	   //add + 9
#define  bcbc07		37	   //add + 9
#define  bccc		47	   //add + 32
#define	 bcbc56		88	   //add + 9
#define	 bcbc08		98	   //add + 7
#define	 bcbc03		106	   //add + 2
#define  bcbc50		108	   //add + 2
#define	 bccb		106
#define  bbccc		0x12   //add = 8 char
#define  bbccb		0x12   //add = 8 char
#define  bbcbb		0x12   //add = 4 char psid
#define  error_nkey 0xffff

void setkey(void){
static unsigned char odd = 1;
	if (setbit & keyack){
		if (odd){ 
			keybuf[nkey] = key * 0x10;
			odd=~odd;
		}
		else {
			keybuf[nkey] = keybuf[nkey] | key;
			odd = ~odd;
			nkey++;
		}
		keyack = 0;

		switch (nkey){
			case 0x00: case 0x01:case 0x02:case 0x04:
				setkeycount ++;
				nkey++;						 				//*
				break;
			case 0x03:
				switch (keybuf[0]*0x100+keybuf[1]){
					case 0xbcbc:
						setkeycount++;
						nkey ++;
					break;
					case 0xbccc:
						setkeycount++;
						ptr = &p[0]; 
						nkey = bccc;
					break;
					case 0xbbcc:
						setkeycount++;
						nkey = bccb;
					break;
					case 0xbccb:
						setkeycount++;
						nkey = bccb;
					break;
					default:
						play(errormusic);
						setkeycount=0;
						nkey = error_nkey;
						break;
					}
				break;
			 case 0x05:
			 	switch (keybuf[2]){
					case 0x00:							//复位
						ipRouter[0]=0x00;
						ipRouter[1]=0x11;
						ipRouter[2]=0x1f;
//						EEWritePage (&ipRouter[0], (ipRouter_add/0x100), (ipRouter_add%0x100), 3); 	//读IP路由信息
					
					
					case 0x08:							//设定本地手机路由
						setkeycount++;
						nkey = bcbc08;
						play(suremusic);
						break;
					default:
						play(errormusic);
						nkey = error_nkey;
						break;
						
				}
				break;
//*********************************************************************设置ip路由
			case bcbc08:
			case bcbc08+1:
			case bcbc08+2:
			case bcbc08+3:
			case bcbc08+4:
				setkeycount++;
				nkey++;
				break;
			case bcbc08+5:
				if (key == 0x0c){
//					EEWritePage (&keybuf[3], (ipRouter_add/0x100), ipRouter_add%0x100, 3); 
//					EEDelayMs(0x50);							 
//					EEReadPage 	(&ipRouter[0], (ipRouter_add/0x100), ipRouter_add%0x100, 3); 	
					if (keybuf[3] != ipRouter[0]){play(errormusic);return;}
					play(suremusic);
					nkey = 0;
				   	}
				else  play(errormusic);
				break;
				
//*********************************************************************设置ip号
			case bccc:
				switch(keybuf[2]){
					case 0x10:
					case 0x20:
					case 0x30:
					case 0x40:
					case 0x50:
						nkey = (bccc+1);
						setkeycount = 3;
						odd = 1;
						play(suremusic);
					break;
					default:
						play(errormusic);
						nkey = error_nkey;
						break;
					}
				break;
			case(bccc+1): case(bccc+2): case(bccc+3): case(bccc+4):
			case(bccc+5): case(bccc+6): case(bccc+7): case(bccc+8):
			case(bccc+9): case(bccc+10):case(bccc+11):case(bccc+12):
			case(bccc+13):case(bccc+14):case(bccc+15):case(bccc+16):
			case(bccc+17):case(bccc+18):case(bccc+19):case(bccc+20): 
			case(bccc+21):case(bccc+22):case(bccc+23):case(bccc+24):
			case(bccc+25):case(bccc+26):case(bccc+27):case(bccc+28):
			case(bccc+29):case(bccc+30):case(bccc+31):case(bccc+32):

				if ((keytemp0 != key || (key < 0x0a))){
					keytemp2 = keytemp1; 
					keytemp0 = keytemp1 = key;
					if (keytemp2 != 0xff){
						if (odd) {
							*ptr = ((keytemp2 * 0x10 )|0x0f);
							}
						else {	
							*ptr &= (keytemp2|0xf0); 
							ptr++;
							}
						}
					nkey++;
					}
				else {
					if ((key==0x0b) && (keytemp1 < 0x0f))keytemp1 ++;
						odd = ~odd;
					if (key==0x0c){
//						EEWritePage (&p[0], (ip_number_add/0x100), ((keybuf[2]-0x10))%0x100, 16); 	//读IP路由信息
						EEReadPage 	(&p[16], (ip_number_add/0x100), ((keybuf[2]-0x10))%0x100, 3); 	//读IP路由信息
						if ((p[16] == p[0]) && (p[17] == p[1]) && (p[18] == p[2])){
							play(suremusic);
						}
						else {
							play(errormusic);
							nkey = error_nkey;
							}
						}
					}
				break;
//*********************************************************************设置ip号
		}
	}
}

void scankey (void) interrupt 0 {
unsigned char key;
	STD = 1;
	if (!STD){
	audiopin = 1;
	
		key = _9270 & 0x0f;

		key = key >>1;
		a3 =	CY;
		key = key >>1;
		a2 =	CY;
		key = key >>1;
		a1 =	CY;
		key = key >>1;
		a0 =	CY;
		a4 = 1;
		a5 = 1;
		a6 = 0;
		a7 = 0;
		keybuf[nkey] = B;
		while(!STD);
		nkey++;
		if (B == 0x3C){
//			led = ~led;
			dialbit = 1;
//			still = 1;
		}
//		led = ~led;
	}
}

⌨️ 快捷键说明

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