📄 hjcomm.c
字号:
wdi_reset();
}
date=0x30+mode; /*0:k0,1:k1*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x0d; /*回车符*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
delay(200);
/*屏蔽MODEM回显*/
date=0x41; /*A*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x54; /*T*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x65; /*e*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x30; /*0*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x0d; /*回车符*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
delay(200);
date=0x41; /*A*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x54; /*T*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x71; /*q*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x31; /*1*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x0d; /*回车符*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
delay(200);
}
wdi_reset();
EA=1;
}
/*-------------------------------------------------------*/
void modem_angser(uchar comm_no,mode){/*设置MODEM为自动应答*/
uchar data date ;
uint data i;
EA=0;
wdi_reset();
if(comm_no==1){ //-------------------com1口-------------------------
date=0x41; /*A*/
XBYTE[0xeff0]=date;
i=0;
while((XBYTE[0xeffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x54; /*T*/
XBYTE[0xeff0]=date;
i=0;
while((XBYTE[0xeffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x53; /*S*/
XBYTE[0xeff0]=date;
i=0;
while((XBYTE[0xeffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x30; /*0*/
XBYTE[0xeff0]=date;
i=0;
while((XBYTE[0xeffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x3d; /*=*/
XBYTE[0xeff0]=date;
i=0;
while((XBYTE[0xeffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
if(mode==1){
date=0x31; /*1:自动应答*/
}
else{
date=0x30; /*主呼*/
}
XBYTE[0xeff0]=date;
i=0;
while((XBYTE[0xeffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x0d; /*回车符*/
XBYTE[0xeff0]=date;
i=0;
while((XBYTE[0xeffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
delay(200);
}
else{ //-------------------com2口-----------------------
date=0x41; /*A*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x54; /*T*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x53; /*S*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x30; /*0*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x3d; /*=*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
if(mode==1){
date=0x31; /*1:自动应答*/
}
else{
date=0x30; /*主呼*/
}
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
date=0x0d; /*回车符*/
XBYTE[0xdff0]=date;
i=0;
while((XBYTE[0xdffd]<0x60)&(i<7000)){
i=i+1;
wdi_reset();
}
delay(200);
}
wdi_reset();
EA=1;
}
/*-------------------------------------------------------*/
void modem_dial(uchar comm_num){ /*进行MODEM拨号连接*/
uchar data date;
uint data j;
wdi_reset();
if(comm_num==1){
XBYTE[0xeff0]=0x41; /*A*/
j=0;
while((XBYTE[0xeffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
XBYTE[0xeff0]=0x54; /*T*/
j=0;
while((XBYTE[0xeffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
XBYTE[0xeff0]=0x44; /*D*/
j=0;
while((XBYTE[0xeffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
XBYTE[0xeff0]=0x54; /*T*/
j=0;
while((XBYTE[0xeffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
date=0;
while((XBYTE[0xf006+date]!=0xff)&(date<10)){/*拨电话号码*/
XBYTE[0xeff0]=XBYTE[0xf006+date]+0x30;
j=0;
while((XBYTE[0xeffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
date=date+1;
}
XBYTE[0xeff0]=0X0d;
j=0;
while((XBYTE[0xeffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
}
else{
date=0x41; /*A*/
XBYTE[0xdff0]=date;
j=0;
while((XBYTE[0xdffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
date=0x54; /*T*/
XBYTE[0xdff0]=date;
j=0;
while((XBYTE[0xdffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
date=0x44; /*D*/
XBYTE[0xdff0]=date;
j=0;
while((XBYTE[0xdffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
date=0x54; /*T*/
XBYTE[0xdff0]=date;
j=0;
while((XBYTE[0xdffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
date=0;
while((XBYTE[0xf010+date]!=0xff)&(date<10)){/* 拨电话号码*/
XBYTE[0xdff0]=XBYTE[0xf010+date]+0x30;
j=0;
while((XBYTE[0xdffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
date=date+1;
}
XBYTE[0xdff0]=0x0d;
j=0;
while((XBYTE[0xdffd]<0x60)&(j<7000)){
j=j+1;
wdi_reset();
}
}
wdi_reset();
}
/*-------------------------------------------------------*/
void set_baud(){ /*CPU初始化各通信口速率*/
EA=0;
wdi_reset();
if(((XBYTE[0xf000]&0x01)==1)&(XBYTE[0xf02d]!=XBYTE[0xf001])){ /*更新RS-232-1通信速率*/
wdi_reset();
XBYTE[0xf02d]=XBYTE[0xf001];
set_comm1(XBYTE[0xf001]);
/* if(XBYTE[0xf004]==1){ 拨号方式*/
XBYTE[0xeffc]=1;
delay(200);
XBYTE[0xeffc]=0;
delay(200);
modem_angser(1,1);
delay(200);
modem_flow(1,3);
delay(200);
/* if(XBYTE[0xf01e]==1){ 互为备用
XBYTE[0xdffc]=1;
delay(200);
XBYTE[0xdffc]=0;
delay(200);
modem_angser(2,1);
delay(200);
modem_flow(2,3);
delay(200);
}
}*/
}
if(((XBYTE[0xf000]&0x02)==2)&(XBYTE[0xf02e]!=XBYTE[0xf002])){ /*更新RS-232-2通信速率*/
wdi_reset();
XBYTE[0xf02e]=XBYTE[0xf002];
set_comm2(XBYTE[0xf002]);
/* if(XBYTE[0xf005]==1){ 拨号方式*/
XBYTE[0xdffc]=1;
delay(200);
delay(200);
XBYTE[0xdffc]=0;
delay(200);
delay(200);
modem_angser(2,1); //com2口,自动应答
delay(200);
modem_flow(2,3);
delay(200);
/* if(XBYTE[0xf01e]==1){ 互为备用
XBYTE[0xeffc]=1;
delay(200);
XBYTE[0xeffc]=0;
delay(200);
modem_angser(1,1);
delay(200);
modem_flow(1,3);
delay(200);
}
}*/
}
if(((XBYTE[0xf000]&0x04)==4)&(XBYTE[0xf02f]!=XBYTE[0xf003])){ /*更新RS-485口通信速率*/
wdi_reset();
set_comm3(XBYTE[0xf003]);
XBYTE[0xf02f]=XBYTE[0xf003];
}
XBYTE[0xf000]=0;
wdi_reset();
EA=1;
}
/*-------------------------------------------------------*/
/*void calcu_ram(){ 整理碎片
uchar data i,data j,data true,data k;
uint data beg_add,data end_add;
wdi_reset();
true=0;
XBYTE[0xf076]=0x88;
beg_add=XBYTE[0xf01f]*256+XBYTE[0xf020];
end_add=XBYTE[0xf021]*256+XBYTE[0xf022];首尾越界
if((beg_add<0xa080)||(beg_add>0xf7ff)){
true=1;
}
else{
if((beg_add>0xa7ff)&(beg_add<0xf080)){
true=1;
}
else{
if((end_add<0xa080)||(end_add>0xf7ff)){
true=1;
}
else{
if((end_add>0xa7ff)&(end_add<0xf080)){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -