劍桿織布機(jī)單片機(jī)C語言程序 作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 加入技術(shù)交流群 掃碼加入和技術(shù)大咖面對面交流海量資料庫查詢 收藏 if ((P3_7==0)&&(temp==0) && (temp1==0) &&(temp4==0)&&(xx==0) ) //松開點(diǎn)動按鈕{// delay(1);tag=0;P2_1=1;delay(1); //間隔P2_0=0; //delay(1);} /* if ((P3_7==0)&&(P2_1==1)&&(temp==0)&&(temp1==0)&&(temp4==0)&&(tag1==0)&&(xx==0)){tag=0;P2_1=1;_nop_();P2_0=0;tag1=1; //tag1 切斷點(diǎn)動制動if (count==1) P2_2=0; //點(diǎn)動制動后,瞬間高壓delay(20); //高壓2時間P2_2=1; _nop_(); temp9=0; //temp9 點(diǎn)動狀態(tài)標(biāo)志} */if ((P2_0==0) && (P2_1==1) &&(temp==0)&& (temp1==0)&&(temp4==0) &&(tag1==0)&&(tag==0)) {tag1=1;tag=0; //tag1 切斷點(diǎn)動制動if (count==1) P2_2=0; //點(diǎn)動制動后,瞬間高壓delay(20); //高壓2時間P2_2=1; delay(20); _nop_(); temp9=0;} if ((tag==1) && (tag1==1)) tag=0; //防止互鎖 if ((P0_3==1) &&(P0_4==1)){//delay(200); //延時時間不能太長delay(10);if ((P0_3==1) &&(P0_4==1))//{ temp6=1;xx=1;P2_1=1;P2_0=1;P2_2=1;P2_3=0; } //temp6 邏輯保護(hù)標(biāo)志TR1=1;// else {TR1=0;k=0;}} if ((P0_5==1)&&(P3_7==0)) TR1=1; //無點(diǎn)動,高壓觸發(fā)保護(hù)定時器if(!((P0_3==1)&&(P0_4==1))&&(P0_5==0)) {TR1=0;k=0;}if (P0_6==0) //過載信號負(fù)輸入{delay(200);if (P0_6==0){temp7=1;xx=1;P2_1=1;P2_0=1;P2_2=1;P2_3=0; } //temp7 過載保護(hù)} if ((temp6==1) ||(temp7==1)) {xx=1;P2_1=1;P2_0=1;P2_2=1;P2_3=0; } //保護(hù)if((P1_3==0)&&(P1_2==1)&&(P1_1==0)) // DIP2 DIP4 ON DIP3 OFF 緯停采樣調(diào)整{ if(P3_4==1) //停止按鈕按下 { if ((P2_4==0) &&(tag2==0) ) // tag2切斷 加按鈕 最多按18次{if(x<=24) {x+=1; P3_1=0;}tag4=0;tag2=1;delay(10);P3_1=1;}if (P2_4==1) tag2=0;if ((P2_5==0) &&(tag3==0)) //tag3切斷 減按鈕 最多按18次{if(x>=6) {x-=1; P3_0=0;}tag4=0;tag3=1;delay(10);P3_0=1;}if (P2_5==1) tag3=0; }if((P3_4==0)&&(tag4==0)) //tag4==0 寫允許 停止按鈕松開{Sector_Erase(0x2000); _nop_();byte_write( 0x2000, x); _nop_();_nop_();tag4=1;}}if((P1_3==0)&&(P1_2==0)&&(P1_1==1)) // DIP2 DIP3 ON DIP4 OFF 點(diǎn)動距離調(diào)整{ if(P3_4==1) //停止按鈕按下 { if ((P2_4==0) &&(tag2==0) ) // tag2切斷 加按鈕 最多按10次{if(x1<=44) {x1+=1; P3_1=0;}tag4=0;tag2=1;delay(10);P3_1=1;}if (P2_4==1) tag2=0;if ((P2_5==0) &&(tag3==0)) //tag3切斷 減按鈕 最多按10次{if(x1>=36) {x1-=1; P3_0=0;}tag4=0;tag3=1;delay(10);P3_0=1;}if (P2_5==1) tag3=0; }if((P3_4==0)&&(tag4==0)) //tag4==0 寫允許 停止按鈕松開{Sector_Erase(0x2200); _nop_();byte_write( 0x2200, x1); _nop_();_nop_();tag4=1;}}//if (temp1==1) {delay(10); enable=1;} // 開機(jī)瞬間緯停無效if (P3_5==1) TR2=1; //按鈕輸入正if ((temp1==0)&&(P3_5==0)) {enable=0; i1=0;TR2=0;} if (P2_0==0) //制動后 所有狀態(tài)復(fù)位 ,temp4除外{ //count1數(shù)字濾波計數(shù)for (count1=0;count1<5;count1++){value_buf[count1]=0;}mean=0;enable=0;temp=0;temp1=0;temp2=0;temp3=0;temp5=0;}}}void int_1(void) interrupt 1{TR0=0;TH0=(65536-10000)/256;TL0=(65536-10000)%256; } void int_3(void) interrupt 3 //保護(hù)定時器{k++;if(k>=100){xx=1;P2_1=1;P2_0=1;P2_2=1;P2_3=0; _nop_(); P2_0=1;TR1=0; k=0; temp6=1;}TH1=(65536-10000)/256;TL1=(65536-10000)%256; } void timer2() interrupt 5{i1++; TF2=0; //T2中斷 溢出標(biāo)志,必須清除if (i1>=10) //1S, 0.5s{TR2=0; i1=0; enable=1; // 定時時間到標(biāo)志 ,緯停允許}// TH2=(65536-50000)/256;//TL2=(65536-50000)%256; }unsigned char byte_read(unsigned int addr){unsigned char ii;ISP_ADDRH = (addr>>8);ISP_ADDRL = (addr&0x00ff);ISP_CONTR = ISP_IAP_ENABLE; //0x81ISP_CMD = ISP_IAP_BYTE_READ; //1ISP_TRIG = 0x46;ISP_TRIG = 0xb9;_nop_();_nop_();ii = ISP_DATA;ISP_CONTR = 0x00;ISP_CMD = 0x00;ISP_TRIG = 0x00;return ii;}void byte_write(unsigned int addr,unsigned char program_data){ISP_DATA = program_data;ISP_ADDRH = (addr>>8);ISP_ADDRL = (addr&0x00ff);ISP_CONTR = ISP_IAP_ENABLE; // 0x81ISP_CMD = ISP_IAP_BYTE_PROGRAM; // 2ISP_TRIG = 0x46;ISP_TRIG = 0xb9;_nop_();ISP_CONTR = 0x00;ISP_CMD = 0x00;ISP_TRIG = 0x00;}// void IAP_Disable()// {//IAP_CONTR=0;// IAP_CMD=0;// IAP_TRIG=0;// IAP_ADDRH=0;//IAP_ADDRL=0;// }void Sector_Erase(unsigned int addr){//addr=(addr&0xfe00); //地址小于0xfe00?ISP_ADDRH = (addr>>8);ISP_ADDRL = (addr&0x00ff);ISP_CONTR = ISP_IAP_ENABLE; //0x81ISP_CMD = ISP_IAP_SECTOR_ERASE; //3ISP_TRIG = 0x46;ISP_TRIG = 0xb9;_nop_();_nop_();_nop_();ISP_CONTR = 0x00;ISP_CMD = 0x00;ISP_TRIG = 0x00;}void delay(uchar ms){uchar m;while (ms--){for (m=0;m<250;m++){;}}} 上一頁 1 2 下一頁
評論