欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
寫了一個關于兩個廠房門聯動的pic單片機程序,上板后不好使,求指點
[打印本頁]
作者:
weewmy
時間:
2018-8-21 10:08
標題:
寫了一個關于兩個廠房門聯動的pic單片機程序,上板后不好使,求指點
//這是一個關于兩個廠房門聯動的程序。
#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x3B31);
uchar cishu; //設置一個標記變量,通過這個變量來觀察是否有車輛正在通過通道,確定內外門是否開啟
//來自地感的開門信號,判斷次數是否為0,為0說明沒有車輛通過,門可以開啟;如果為1,說
//明有車兩正在通過,不能開門
uchar jin; //為了解決內外兩個門同時下咯,軟件如何執行的問題,設立3個變量,同過比較進出兩個變量
uchar chu; //大小,相等時變量為0,為0時候不動作;變量不為0時候執行命令。進出兩個變量由開門信號產生。
uchar bijiao;
void delay(uint x);
void init();
void scan();
void didi1(uchar num);
void didi2(uchar num);
void main()
{
jin=0;
chu=0;
bijiao=0;
cishu=0;
init();
while(1)
{
scan();
}
}
void delay(uint x)
{
uint a,b;
for(a=x;a>0;a--)
for(b=110;b>0;b--);
}
void init()
{
TRISA=0B00001111;PORTA=0B00000001;
TRISB=0B00000000; PORTB=0B00000000;
TRISC=0B11111111; PORTC=0B11111111;
}
void scan()
{
if(RA1==1) //室內門開門信號
{
delay(10);
if(RA1==1)
{
jin=jin+1;
switch(cishu)
{
case 0:didi1(100);RB5=1;RB7=1;break; //RB6 內門開,外門鎖,警燈亮
case 1:cishu=-1;break;
}
}
}
if(RA2==1) //室外門開門信號
{
delay(10);
if(RA2==1)
{
chu=chu+1;
switch(cishu)
{
case 0:didi2(100);RA5=1;RB7=1;break; //RB2外門開,內門鎖,警燈亮
case 1:cishu=-1;break;
}
}
}
if(RA0==0) //室內門關閉到位,外門解鎖 ,外門開啟,次數加1.
{
delay(10);
if(RA0==0)
{
if(jin=chu)bijiao=0;
if(bijiao!=0){
cishu=cishu+1;
RB5=0;
didi2(50); //開外門 RB2
}
if(bijiao==0){;}
}
}
if(RC6==0) //室外門關閉到位,內門解鎖 ,內門開啟,次數加1.
{
delay(10);
if(RC6==0)
{
if(jin=chu)bijiao=0;
if(bijiao!=0){
cishu=cishu+1;
RA5=0;
didi1(50); //開內門 RB6
}
if(bijiao==0){;}
}
}
}
void didi1(uchar num)
{
uchar di_num;
for(di_num=num;di_num>0;di_num--)
{
RB6=1; //內門開
delay(50);
RB6=0;
delay(20);
}
}
void didi2(uchar num)
{
uchar di_num;
for(di_num=num;di_num>0;di_num--)
{
RB2=1;
delay(50); //外門開
RB2=0;
delay(20);
}
}
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1