您好,欢迎光临本网站![请登录][注册会员]  
文件名称: FPJD_有线发送和接受原代码
  所属分类: C
  开发工具:
  文件大小: 22kb
  下载次数: 0
  上传时间: 2010-01-20
  提 供 者: zha****
 详细说明: #include "reg932.h" #include #include OUTA=0;OUTB=0;jma=1; pro(P0si_1,color_R); pyo_1=1; pyo_2=pyo_0=0;pyoy=0; // keypa=0; luma=2;//yoyma(ma,luma); if(yomp!=luma) {yomp=luma;ma1=1;} } //lu=2 报警标志 if((INA_2==1)&&(INA_1==1)) { pro(P0si_1,color_D); in1=0; dj=0; yomp=0; // 无报警1关灯 if(((INA_2==1)&&(INA_1==1))&&((INB_2==1)&&(INB_1==1))) //if((in1==0)&&(in2==0)) { FA=0;b=0;pyo_0=pyo_1=pyo_2=0;inkp1=0; pyo_0a=pyo_1a=pyo_2a=0;sk0=sk1=sk2=0; if(jmb==0) OUTA=1;OUTB=1; jma=0; } //无动作 S1=S2=S3 keypa=0; clrwdt() ; } /*********************第二路**********************************/ if((INB_2==0)&&(INB_1==1)) //预报警动作&&((INA_2==1)&&(INA_1==1)) { pro(P0si_3,color_G); //绿灯,警声指示 S2=S3=0;S1=1; if(jma==0) OUTA=1;OUTB=0; jmb=0; if(pyoy==1) {{pyoy=0;}} pyo_0=1; pyo_1=pyo_2=0; in2=1; //in1=0; // 进入报警1 if(inkp2==1){inkp2=0;keypa=0;} lumb=5;//yoyma(ma,lumb); if(yompb!=lumb) {yompb=lumb;ma1=0;} } if((INB_1==0)&&(INB_2==0)&&(keypa==1) ) //报警动作解除 { pyoy=1; inkp2=1; if(jma==0) OUTA=1;OUTB=0; jmb=0; pro(P0si_3,color_B); //蓝灯 pyo_2=1; pyo_1=pyo_0=0; lumb=7; //yoyma(ma,lumb); if(yompb!=lumb) {yompb=lumb;ma1=0;} } if((INB_1==0)&&(INB_2==0)&&(keypa==0) ) //报警 { OUTA=0;OUTB=0;jmb=1; pro(P0si_3,color_R); pyo_1=1; pyo_2=pyo_0=0;pyoy=0; // keypa=0; lumb=6;//yoyma(ma,lumb); if(yompb!=lumb) {yompb=lumb;ma1=0;} } if((INB_2==1)&&(INB_1==1)) // 无报警1关灯 { pro(P0si_3,color_D); in2=0; dj2=0; yompb=0; if(((INA_2==1)&&(INA_1==1))&&((INB_2==1)&&(INB_1==1))) //无动作 S1=S2=S3 keypa=0; { FA=0;b=0;pyo_0a=pyo_1a=pyo_2a=0; pyo_0=pyo_1=pyo_2=0;inkp2=0; sk0=sk1=sk2=0; if(jma==0) OUTA=1;OUTB=1; jmb=0; } } if(ma1==1) lu=luma; else {lu=lumb;} dj=2 ;yoy (lu,dj); if(FA==1) { if(++b==zma) {tp=1;b=0;FA=0;dj=0; } else {tp=0;FA=1;} } clrwdt() ; goto moa; } /*************************** * 系统初始化 * ****************************/ void SysInit() { uchar data duanma[4]={0X20,0X40,0X80,0 } ; //20-蓝色 40-绿色 20-红色 uchar dong[5]; uchar sd[1]={0x04}; uchar DpBuf[5]; uchar i,j,dj; P0M1=0xCF; // P0口设置P0.0,0.1,0.2,0.3,为输入; P0.6,P0.7 为输出开漏 11001111, P0M2=0xC0; //11000000 P1M1 = 0x0C; //P1口设置P1.2,P1.3,P1.4,P1.6,P1.7 为输出开漏 11011100 0C P1M2 = 0x0C; //110111000C P2M1 = 0xCF; //P2设置口P2.0,P2.1,P2.2,P2.3为输入; P2.6,P2.7 为输出开漏 11001111 P2M2 = 0xC0; //11000000 sk0=sk1=sk2=0; OUTA= OUTB= OUTC= OUTD=1; keyp9= keypa=keypb=0; pyo_0=pyo_1=pyo_2= pyo_0a=pyo_1a=pyo_2a=tp=0; pyo_0a=pyo_1a=pyo_2a=0; //zn=0; in1=in2=in3=in4=0; zma=b=0; dj=0; ISendStr(ZLG7290, 0x0d, sd, 1); for (i=0;i<4;i++) { DpBuf[i]=0; } ISendStr(ZLG7290, 0x10, DpBuf, 5); DelayNS(10); j=0; for (i=0;i<4;i++) { dong[0]=duanma[j]; //百位显示 dong[1]=duanma[j]; //十位显示 dong[2]=duanma[j]; //个位 dong[3]=duanma[j]; dong[4]=duanma[j]; ISendStr(ZLG7290, 0x10, dong, 5); DelayNS(25); j++; } init_wdt(); } /********************************************************* *名称:DelayNS() *功能:延时一段时间 *入口参数:no *出口参数:无 *********************************************************/ void DelayNS(uchar no) { uchar i,j; for(; no>0; no--) { for(i=0; i<200; i++) // clrwdt() ; for(j=0; j<250; j++); clrwdt() ; } } /******************************************************************* * 报警位数函数 *功能 根据输入参数一决定报警位数,颜色,继电器开关 *入口参数 sla 报警位数 * ys 颜色 jou 继电器开关 * 出口参数 函数返回1表示操作成功 否则操作有误 ********************************************************************/ bit pro(uchar wa, uchar ys) { uchar data duanma[4]={0X20,0X40,0X80,0 } ; uchar dong[1]; //先位,后颜色。 dong[0]=duanma[ys]; ISendStr(ZLG7290, 0x10+wa, dong, 1); return(1); } /******************************************************************* * 报警声音函数 *功能 根据输入参数一决定报警声音,预报警声音,报警声音,解除报警声音.延时计数 三路调用同一函数,根据pyo决定输出级别。每一路只能调用一次。 *入口参数 pyo 报警声 预报警声音,报警声音,解除报警声音. * ysa 延时 标志位 * 出口参数 函数返回1,表示延时计数结束, 否则延时计数未结束 ********************************************************************/ void yoy(uchar lu,uchar py1) { uchar pyo; pyo=lu; if((pyo==3)||((pyo==7))) //解除报警声音 { if (pyo_2a!=1) {pyo_2a=1;FA=1;tp=tp2=0;b=0; pyo_0a=0; } // 第一次进入标志位 if(tp==1) {sk2=0; FA=0;b=0;pyo_0a=0; } else {sk2=1;sk0=sk1=0;FA=1; } } if((pyo==2)||((pyo==6))) //报警声音 { if (pyo_1a!=1) {pyo_1a=1;FA=1;tp=0;b=0;pyo_0a=pyo_2a=0; } // 第一次进入标志位 pyo_0a=pyo_2a=0; if(tp==1) {sk1=0; FA=0;b=0; //pyo_0a=0; } else {sk1=1;sk0=sk2=0;FA=1;} // pyo_0a=0; } if((pyo==1)||((pyo==5))) //预报警 { if (pyo_0a!=1) {pyo_0a=1;FA=1;tp=0;b=0;pyo_1a=pyo_2a=0; } // 第一次进入标志位 pyo_0a=pyo_2a=0; if(tp==1) {sk0=0; FA=0;b=0; //pyo_0a=0; } else {sk0=1;sk1=sk2=0;FA=1;} // } if(((INA_2==1)&&(INA_1==1))&&((INB_2==1)&&(INB_1==1))) //if((pyo==4)||((pyo==8))) { sk0=sk1=sk2=0 ; FA=0;tp=0;b=0;pyo_0a=pyo_1a=pyo_2a=0;lu=0;ma=0; } } /******************************************************************* * 报警声音函数 *功能 根据输入参数一决定报警声音,预报警声音,报警声音,解除报警声音.延时计数 三路调用同一函数,根据pyo决定输出级别。每一路只能调用一次。 *入口参数 pyo 报警声 预报警声音,报警声音,解除报警声音. * ysa 延时 标志位 * 出口参数 函数返回1,表示延时计数结束, 否则延时计数未结束 ********************************************************************/ /* void yoyma(uchar ma,uchar luma) { ; //if(ma1==1)lu==luma; // else {lu==lu;} /* if(ma==0){ ma=1; lu=luma; } else{ if(lu==luma)ma=1; else ma=0; } } */ /******************************************************************* * 申请总线 * 功能:进行I2C总线的初始化--包括时钟选择,I2C使能,发送起始信号等等。 * I2EN为1,设置为主机;CRSEL位为0,使用内部SCL发生器。 *******************************************************************/ void GetBus() { I2SCLH = 15; /* 设置SCL高电平的PCLK周期数 */ I2SCLL = 15; /* 设置SCL低电平的PCLK周期数,6MHz时为100Kbit/S */ /* 申请成为主机,起动总线。使用内部SCL发生器,I2EN和AA置位。 */ I2CON = RELEASE_BUS_STA; while( SI==0 ); /* 等待起始位的发送 */ } /******************************************************************* * 发送数据函数 * 功能:用于向总线发送数据 * 入口参数:ACC 待发送的数据 *******************************************************************/ void SendByte(uchar c) { I2DAT = c; I2CON = RELEASE_BUS_ACK; /* 清除SI位等等 */ while( SI==0 ); /* 等待数据的发送 */ } /******************************************************************* * 向有子地址器件发送多字节数据函数 * 功能:从启动总线到发送地址,子地址,数据,结束总线的全过程。 * 入口参数;sla 从器件地址 * suba 子地址 * s 发送内容的指针 * no 发送字节数 * 出口参数:返回1表示操作成功,否则操作有误。 ********************************************************************/ bit ISendStr(uchar sla, uchar suba, uchar *s, uchar no) { uchar i; GetBus(); /* 启动总线 */ SendByte(sla); /* 发送器件地址 */ if( I2STAT!=0X18 ) { I2CON = GENERATE_STOP; return(0); } SendByte(suba); /* 发送器件子地址 */ if( I2STAT!=0X28 ) { I2CON = GENERATE_STOP; return(0); } for(i=0; i
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 有线原代码
 输入关键字,在本站1000多万海量源码库中尽情搜索: