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

📄 ssx-m02.c

📁 此程序是自抗扰控制器设计的原程序,不过是调节模块驱动的程序,就缺少液晶显示和键盘扫描,以用过,没问题
💻 C
📖 第 1 页 / 共 4 页
字号:
                                        {
                                        DE=1;
                                        TI=0;
                                        SBUF=td_dat[i];
                                        while(TI==0){}
                                        }
                                }
                        }
                    else{                    /*零号命令校准,写站号...无应答*/
                        if(rd_dat[3]==0)
                                {
                                bjzh=1;
                                zhhao=rd_dat[5];
                                }
                        if(rd_dat[3]==1){shrjzh=1;}
                        if(rd_dat[3]==2)
                                {
                                shchjzh=1;
                                mingling=rd_dat[5];
                                }
                        for(i=0;i<8;i++)                /*原样发回*/
                                {
                                td_dat[i]=rd_dat[i];
                                }
                        ES=0;
                        for(i=0;i<8;i++)
                                {
                                DE=1;
                                TI=0;
                                SBUF=td_dat[i];
                                while(TI==0){}
                                }
                        RI=0;
                        ES=1;
                        if(rd_dat[3]==4)
                                {
if((rd_dat[5]==1)||(rd_dat[5]==2)||(rd_dat[5]==4)||(rd_dat[5]==8)||(rd_dat[5]==16)||(rd_dat[5]==32))
                                   {
                                tx_bzh=1;
                                   }
                                }
                        }
                }
        }
rd_cont=0;
}
/*==========================================================================================*/
void timer1() interrupt 3
{
    	TH1=-(9216/256);
 	TL1=-(9216%256);
        jsh++;
        if(jsh==10)
                {
                jsh=0;
                dshbit=1;
                }
}
/*==========================================================================================*/
serial_comm() interrupt 4
{
        if(TI==1)
        {
        DE=0;
        TI=0;
        rd_cont=0;
        RI=0;
        }
        else
        {
        RI=0;
        rd_dat[rd_cont]=SBUF;
        rd_cont++;
        if(rd_cont>=9){rd_cont=0;}         /*最多接受8个字符*/
        TR0=0;                             /*每接受一个字符,重新置超时计数器*/
        TH0=0-(com_bzh+com_bzh>>1);        /*1.5字节+0.25毫秒认为数据流中断*/
        TL0=0x00;
        TR0=1;
        ET0=1;
        }
}
/*==========================================================================================*/
void d_a(x)
unsigned int xdata x;
{
unsigned char idata i;
	sclk=0;
	d_acs=1;
	d_acs=0;
	da=x/256;
	for(i=0;i<=7;i++)
	        {
	        sclk=1;
	        din=da_7;
	        sclk=0;
	        da=da<<1;
	        }
	da=x&0x00ff;
	for(i=0;i<=7;i++)
	        {
	        sclk=1;
	        din=da_7;
	        sclk=0;
	        da=da<<1;
	        }
        sclk=1;
        sclk=0;
	d_acs=1;
}
/*==========================================================================================*/
shamao()
{
int data shm;
unsigned char data i;
        shm=read(200);
        if(shm!=0x55aa)
                {
                wren();
                rdsr();
                wrsr();
                rdsr();
                shm=0x55aa;
                write(shm,200);
                rdsr();
                write(3855,0);
                rdsr();
                write(3855,2);
                rdsr();
                write(3855,4);
                rdsr();
                write(3855,6);
                rdsr();
                write(735,8);
                rdsr();
                write(3660,10);
                rdsr();
                write(735,12);
                rdsr();
                write(3660,14);
                rdsr();
                write(2,16);
                rdsr();
                write(1,100);            /*100写入波特率默认值1=19200波特*/
                rdsr();
                write(0,40);
                rdsr();
                write(500,42);
                rdsr();
                write(500,44);
                rdsr();
                write(1000,46);
                rdsr();
                write(1000,48);
                rdsr();
                write(600,50);
                rdsr();
                write(600,52);
                rdsr();
                write(0,54);
                rdsr();
                write(0,56);
                rdsr();
                write(1,58);
                rdsr();
                write(1,60);
                rdsr();
                write(0,62);
                rdsr();
                write(0,64);
                rdsr();
                write(1,66);
                rdsr();
                write(1,68);
                rdsr();
                write(1,70);
                rdsr();
                write(1,72);
                rdsr();
                write(0,74);
                rdsr();
                write(0,76);
                rdsr();
                }
                zh=0;
                zl=0;
                v=0;
                r=0;
                da=0;
                jsh=0;
                dshbit=0;
                rd_cont=0;
                shrjzh=0;
                shchjzh=0;
                bjzh=0;
                tx_bzh=0;
                zhhao=read(16);
                com_bzh=read(100);
                mingling=0;
                haz1=0;
                haz2=0;
                cel1=0;
                cel2=0;
                dde=0;
                de1=0;
                de2=0;
                df1=0;
                tel1=0;
                tel2=0;
                tde=0;
                te1=0;
                te2=0;
                tf1=0;
                qsh1=0;
                qsh2=0;
                shchf1=0;
                shchf2=0;
                bz1=0;
                bz2=0;
                for(i=0;i<19;i++)
                    {
                    jshhc[i]=read(40+i*2);
                    }
}
/*==========================================================================================*/
void chsh(unsigned char data x1)
{
        v=x1;
        zh=0;

        xsclk=0;
        ysh();
        xscs=0;
        ysh();

        /*11*/

        zh_3=xsdou;
        xsdin=v_7;
        xsclk=1;
        xsclk=0;

        /*10*/

  	zh_2=xsdou;
        xsdin=v_6;
        xsclk=1;
        xsclk=0;

        /*9*/

        zh_1=xsdou;
        xsdin=v_5;
  	xsclk=1;
        xsclk=0;

        /*8*/

        zh_0=xsdou;
  	xsdin=v_4;
  	xsclk=1;
        xsclk=0;

        /*7*/

        zl_7=xsdou;
  	xsdin=v_3;
        xsclk=1;
        xsclk=0;

        /*6*/

        zl_6=xsdou;
  	xsdin=v_2;
        xsclk=1;
        xsclk=0;

        /*5*/

        zl_5=xsdou;
  	xsdin=v_1;
  	xsclk=1;
        xsclk=0;

        /*4*/

        zl_4=xsdou;
  	xsdin=v_0;
  	xsclk=1;
        xsclk=0;

        /*3*/

        zl_3=xsdou;
  	xsdin=v_7;
  	xsclk=1;
        xsclk=0;

        /*2*/

        zl_2=xsdou;
  	xsdin=v_7;
  	xsclk=1;
        xsclk=0;

        /*1*/

        zl_1=xsdou;
  	xsdin=v_7;
  	xsclk=1;
        xsclk=0;

        /*0*/

        zl_0=xsdou;
  	xsdin=v_7;
  	xsclk=1;
        xsclk=0;

        ysh();
        xscs=1;

        ysh();
        ysh();
}
/*==========================================================================================*/
void ad()
{
unsigned char xdata a[64];
unsigned int idata y[32];
unsigned int data x1,x2;
unsigned char data i,j,k,m;
float data x3,x4;

        for(j=0;j<=3;j++)
                {
                for(i=0;i<=30;i++)
                        {
                        while(xseoc==0){};
                        k=j*16;
                        chsh(k);
                        a[2*i]=zh;
                        a[2*i+1]=zl;
                        }

                while(xseoc==0){};
                k=(j+1)*16;
                if(k==64){k=0;}
                chsh(k);
                a[62]=zh;
                a[63]=zl;
                ep_cs!=ep_cs;
                for(i=0;i<=31;i++)
                        {
                        x1=a[2*i];
                        x1=x1*256;
                        x2=a[2*i+1];
                        y[i]=x1+x2;
                        }

                for(i=0;i<=30;i++)
                        {
                        for(m=0;m<=30;m++)
                                {
                                x1=y[m];
                                x2=y[m+1];
                                if(x1<x2)
                                        {

⌨️ 快捷键说明

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