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

📄 cmd_dispose.c

📁 一些用于电话管理的pc机下位机程序
💻 C
字号:
#include	"p18cxxx.h"//
           

extern unsigned char RC_s[10];//关于232通讯数据
extern unsigned char Err[2];//关于外部命令错误
extern unsigned char byte_Count;//字符数组的长度数
extern unsigned char SignalList[3];//关于外部音频信号状态
extern unsigned char channels;
void En_see_bit(void);//设置查询
void Dn_see_bit(void);//设置查询

extern void ctrl_8816(void);//设置8816IC
void Cmd_see_about()		//查询命令处理并(调试时)发送应答信息
{
 	if((RC_s[2]<1)||(RC_s[2]>21))//查错
		goto Cmd_see_about_Err;
	if(RC_s[1]==1){			//指令正确
        channels=RC_s[2];   //建立监察点
		//En_see_bit(); 	//加入到表
		goto Cmd_see_about_End;
	}
    else 
    if(RC_s[1]==3){	//指令正确
        channels=0;			//消除监察点
		//Dn_see_bit();		//从表消除
		goto Cmd_see_about_End;
	}	
Cmd_see_about_Err:
	RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5;		//查询错误指令:02 04 bb bb 01 
	channels=0;	
	while(PIE1bits.TXIE==1)	
	_asm CLRWDT _endasm//忙等待
	PIE1bits.TXIE=1;	  //发送中断使能,232发送	
Cmd_see_about_End:
;
}
//下面程序不用
void En_see_bit()				//信号状态查询对象表对应位设置1
{
	unsigned char tmpA=1;
	unsigned char tmpB;
	tmpB=RC_s[2];

	if(tmpB<1)
	{
 	RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5;		//查询错误指令:02 04 bb bb 01 
			channels=0;	
			while(PIE1bits.TXIE==1)	
				_asm CLRWDT _endasm//忙等待
			PIE1bits.TXIE=1;	  //发送中断使能,232发送	
	} 
	else if(tmpB<8)
	{
	tmpB-=1;
	tmpA<<=tmpB;
	SignalList[2]|=tmpA;
	} 
	else if(tmpB<15)
	{
	tmpB-=8;
	tmpA<<=tmpB;
	SignalList[1]|=tmpA;
	} 
	else if(tmpB<22)
	{
	tmpB-=15;
	tmpA<<=tmpB;
	SignalList[0]|=tmpA;
	}
	else {									
	RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5;		//查询错误指令:02 04 bb bb 01 
			channels=0;	
			while(PIE1bits.TXIE==1)	
				_asm CLRWDT _endasm//忙等待
			PIE1bits.TXIE=1;	  //发送中断使能,232发送	
	}		
}

void Dn_see_bit()//信号状态查询对象表对应位设置0
{
	unsigned char tmpA=1;
	unsigned char tmpB;
	tmpB=RC_s[2];
	if(tmpB<1)
	{
 	RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5;		//查询错误指令:02 04 bb bb 01 
			channels=0;	
			while(PIE1bits.TXIE==1)	
				_asm CLRWDT _endasm//忙等待
			PIE1bits.TXIE=1;	  //发送中断使能,232发送	
	} 
	else if(tmpB<8)
	{
	tmpB-=1;
	tmpA<<=tmpB;
    tmpA^=0xFF;
	SignalList[2]&=tmpA;
	} 
	else if(tmpB<15)
	{
	tmpB-=8;
	tmpA<<=tmpB;
	tmpA^=0xFF;
	SignalList[1]&=tmpA;
	} 
	else if(tmpB<22)
	{
	tmpB-=15;
	tmpA<<=tmpB;
	tmpA^=0xFF;
	SignalList[0]&=tmpA;
	}
    else {
 	RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5;		//查询错误指令:02 04 bb bb 01 
			channels=0;	
			while(PIE1bits.TXIE==1)	
				_asm CLRWDT _endasm//忙等待
			PIE1bits.TXIE=1;	  //发送中断使能,232发送	
	}	
}


⌨️ 快捷键说明

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