欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
自己在網(wǎng)上找資料,想思路,慢慢打出來(lái)的八層簡(jiǎn)易電梯。
[打印本頁(yè)]
作者:
xoxojojo
時(shí)間:
2019-7-20 20:16
標(biāo)題:
自己在網(wǎng)上找資料,想思路,慢慢打出來(lái)的八層簡(jiǎn)易電梯。
多謝51黑上的各位大神提供的資料以及思路,讓我得以打出來(lái)這個(gè)程序,將這個(gè)程序拿出來(lái)在返還給大家。51黑很精彩!
附上直流電機(jī)的驅(qū)動(dòng)電路(可以將該電梯用步進(jìn)電機(jī)來(lái)帶動(dòng),我用的是直流電機(jī))。
0.jpeg
(28.97 KB, 下載次數(shù): 73)
下載附件
2019-7-20 20:10 上傳
單片機(jī)源程序如下:
#include <REGX51.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit sda=P2^4;
sbit lcd_rs=P2^5;
sbit lcd_rw=P2^6;
sbit lcd_en=P2^7;
sbit sxdj1=P2^0;
sbit sxdj2=P2^1;
sbit zydj1=P2^2;
sbit zydj2=P2^3;
sbit key_ddd=P3^3;
uchar jinji=0; //緊急標(biāo)識(shí)
uchar l1;
uchar l2;
uchar l3;
uchar l4;
uchar l5;
uchar l6;
uchar l7;
uchar l8;
uchar kye_1=0,kye_2=0,kye_3=0,kye_4=0,kye_5=0,kye_6=0,kye_7=0,kye_8=0;
uchar dt_c1=0; /*電梯層數(shù)標(biāo)識(shí)*/
uchar dt_c2=0;
uchar dt_c3=0;
uchar dt_c4=0;
uchar dt_c5=0;
uchar dt_c6=0;
uchar dt_c7=0;
uchar dt_c8=0;
uchar dt_sx=0; /*電梯是上還是下的標(biāo)志*/
uchar dt_cs=1; /*電梯到哪一層的標(biāo)識(shí)*/
bit dt_stop=1; /*電梯停止標(biāo)識(shí),是否再某一層停下*/
uchar shang=0,xia=0; /*顯示上下的標(biāo)識(shí)*/
uchar value; /*電梯計(jì)數(shù)*/
uchar djzy=0; /*電機(jī)左右的標(biāo)識(shí)*/
uchar time_ms;
uchar time_ting;
uchar dj_1=0; //正轉(zhuǎn)(開(kāi)門(mén))
uchar dj_2=0; //反轉(zhuǎn)(關(guān)門(mén))
uchar dj_3=0; //停止
uchar S; /*時(shí)間計(jì)時(shí)曄?/
uchar value1;
uchar deep; /*語(yǔ)音提醒標(biāo)識(shí)*/
uchar key_value; /*按鍵標(biāo)識(shí)*/
uchar table1[]={0x00,0x04,0x0E,0x15,0x04,0x04,0x04,0x00}; /*上升標(biāo)識(shí)*/
uchar table2[]={0x00,0x04,0x04,0x04,0x15,0x0E,0x04,0x00}; /*下降標(biāo)識(shí)*/
void delayms(uint xus)
{
while(xus--);
}
void SendData(uchar dat) /*JQ8900一線(xiàn)串口通信模式*/
{
uchar i;
EA=0; /*發(fā)送時(shí)關(guān)閉中斷,防止干擾*/
sda=1; /*開(kāi)始拉高*/
delayms(1000);
sda=0; /*開(kāi)始引導(dǎo)*/
delayms(2200);
for(i=0;i<8;i++)
{
sda=1;
if(dat&0x01) /*3:1表示數(shù)據(jù)位1,每個(gè)位用兩個(gè)脈*/
{
delayms(500);
sda=0;
delayms(210);
}
else
{
delayms(210); /*1:3表示數(shù)據(jù)位0,每個(gè)位用兩個(gè)脈沖*/
sda=0;
delayms(500);
}
dat>>=1;
}
sda=1;
EA=1;
}
/**********lcd1602程序************/
void delay1ms(unsigned int ms) //延時(shí)1毫秒(不夠精確的)
{
unsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<100;j++);
}
void write_com(unsigned char com) //寫(xiě)指令//
{
delay1ms(1);
lcd_rs=0;
lcd_rw=0;
lcd_en=0;
P0=com;
delay1ms(1);
lcd_en=1;
delay1ms(1);
lcd_en=0;
}
void write_dat(unsigned char dat) //寫(xiě)數(shù)據(jù)//
{
delay1ms(1);;
lcd_rs=1;
lcd_rw=0;
lcd_en=0;
P0=dat;
delay1ms(1);
lcd_en=1;
delay1ms(1);
lcd_en=0;
}
void lcd_init() //初始化設(shè)置//
{
lcd_rs=1;
lcd_rw=0;
write_com(0x38);
write_com(0x08);
write_com(0x01);
write_com(0x06);
write_com(0x0c);
}
void yaoquloucheng() //要去的樓層
{
if(dt_c1==1)
{
write_com(0x80+0x44);
write_dat('1');
}
else
{
write_com(0x80+0x44);
write_dat(' ');
}
if(dt_c2==1)
{
write_com(0x80+0x45);
write_dat('2');
}
else
{
write_com(0x80+0x45);
write_dat(' ');
}
if(dt_c3==1)
{
write_com(0x80+0x46);
write_dat('3');
}
else
{
write_com(0x80+0x46);
write_dat(' ');
}
if(dt_c4==1)
{
write_com(0x80+0x47);
write_dat('4');
}
else
{
write_com(0x80+0x47);
write_dat(' ');
}
if(dt_c5==1)
{
write_com(0x80+0x48);
write_dat('5');
}
else
{
write_com(0x80+0x48);
write_dat(' ');
}
if(dt_c6==1)
{
write_com(0x80+0x49);
write_dat('6');
}
else
{
write_com(0x80+0x49);
write_dat(' ');
}
if(dt_c7==1)
{
write_com(0x80+0x40+0x0a);
write_dat('7');
}
else
{
write_com(0x80+0x40+0x0a);
write_dat(' ');
}
if(dt_c8==1)
{
write_com(0x80+0x40+0x0b);
write_dat('8');
}
else
{
write_com(0x80+0x40+0x0b);
write_dat(' ');
}
}
void dangqianlouceng() //顯示樓層函數(shù)
{
write_com(0x80);
write_dat(dt_cs+0x30);
}
void shangxiabioashi() //顯示去上去下
{
uchar i;
if(shang==1)
{
write_com(0x40);
for(i=0;i<8;i++)
{
write_dat(table1[i]);
}
write_com(0x80+0x40);
write_dat(0x00);
}
else if(shang==0)
{
write_com(0x80+0x40);
write_dat(' ');
}
if(xia==1)
{
write_com(0x48);
for(i=0;i<8;i++)
{
write_dat(table2[i]);
}
write_com(0x80+0x40);
write_dat(0x01);
}
else if(xia == 0)
{
write_com(0x80+0x40);
write_dat(' ');
}
}
/*************矩陣按鍵************/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
} //矩陣按鍵檢測(cè)
void key() //獨(dú)立按鍵程序
{
P1 |= 0xff;
if(P1 != 0xff) //按鍵按下
{
delay_1ms(1); //按鍵消抖動(dòng)
if(P1 != 0xff)
{ //確認(rèn)是按鍵按下
key_value= 0;
switch(P1)
{
case 0xfe: key_value = 1; kye_1++; break; //得到按鍵值
case 0xfd: key_value = 2; kye_2++; break; //得到按鍵值
case 0xfb: key_value = 3; kye_3++; break; //得到按鍵值
case 0xf7: key_value = 4; kye_4++; break; //得到按鍵值
case 0xef: key_value = 5; kye_5++; break; //得到按鍵值
case 0xdf: key_value = 6; kye_6++; break; //得到按鍵值
case 0xbf: key_value = 7; kye_7++; break; //得到按鍵值
case 0x7f: key_value = 8; kye_8++; break; //得到按鍵值
}
}
}
}
void change() //矩陣數(shù)據(jù)轉(zhuǎn)換(進(jìn)行標(biāo)識(shí))
{
uchar ooo;
ooo= dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7+dt_c8;
if(key_value==1)
{
ooo= dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7+dt_c8;
if(kye_1==1)
{
dt_c1=1;
}
if(ooo != 1)
{
if(kye_1==2)
{
kye_1=0;
dt_c1=0;
}
}
}
if(key_value==2)
{
ooo= dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7+dt_c8;
if(kye_2==1)
{
dt_c2=1;
}
if(ooo != 1)
{
if(kye_2==2)
{
kye_2=0;
dt_c2=0;
}
}
}
if(key_value==3)
{
ooo= dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7+dt_c8;
if(kye_3==1)
{
dt_c3=1;
}
if(ooo != 1)
{
if(kye_3==2)
{
kye_3=0;
dt_c3=0;
}
}
}
if(key_value==4)
{
ooo= dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7+dt_c8;
if(kye_4==1)
{
dt_c4=1;
}
if(ooo != 1)
{
if(kye_4==2)
{
kye_4=0;
dt_c4=0;
}
}
}
if(key_value==5)
{
ooo= dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7+dt_c8;
if(kye_5==1)
{
dt_c5=1;
}
if(ooo != 1)
{
if(kye_5==2)
{
kye_5=0;
dt_c5=0;
}
}
}
if(key_value==6)
{
ooo= dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7+dt_c8;
if(kye_6==1)
{
dt_c6=1;
}
if(ooo != 1)
{
if(kye_6==2)
{
kye_6=0;
dt_c6=0;
}
}
}
if(key_value==7)
{
ooo= dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7+dt_c8;
if(kye_7==1)
{
dt_c7=1;
}
if(ooo != 1 )
{
if(kye_7==2)
{
kye_7=0;
dt_c7=0;
}
}
}
if(key_value==8)
{
ooo= dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7+dt_c8;
if(kye_8==1)
{
dt_c8=1;
}
if(ooo != 1)
{
if(kye_8==2)
{
kye_8=0;
dt_c8=0;
}
}
}
}
/************電機(jī)驅(qū)動(dòng)*************/
void dianjiqudong1() //對(duì)電機(jī)的上行下行進(jìn)行判斷
{
if(dt_stop==1)
{
if(dt_sx==1)
{
sxdj1=1;
sxdj2=0;
}
else if(dt_sx==2)
{
sxdj1=0;
sxdj2=1;
}
if(dt_sx==0)
{
sxdj1=0;
sxdj2=0;
}
}
else
{
sxdj1=0;
sxdj2=0;
}
}
void dianjiqudong2() //電機(jī)控制開(kāi)關(guān)門(mén)
{
if(dt_stop==0)
{
if(dj_3==1)
{
if(dj_1==1)
{
zydj1=1;
zydj2=0;
}
if(dj_2==1)
{
zydj1=0;
zydj2=1;
}
}
}
else
{
zydj1=0;
zydj2=0;
}
}
/*************判斷程序************/
/**電梯不動(dòng)時(shí),判斷是向上還是向下**/
void diantipanudan1() //電梯不動(dòng)時(shí),進(jìn)行上下的判斷
{
static uchar lll;
if(dt_sx==0)
{
dt_stop=1;
if(dt_cs==1)//停在一樓時(shí)
{
lll = dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7+dt_c8;
if(lll != 0)
{
dt_sx=1;//等于一向上 ,等于二向下,等于零時(shí)不動(dòng)
shang=1;//等于一顯示上,等于零不顯示
xia=0; //等于一顯示下,等于零不顯示
}
}
if(dt_cs==2)//停在二樓時(shí)
{
lll=dt_c3 + dt_c4 + dt_c5 + dt_c6 + dt_c7 + dt_c8;
if(lll != 0)
{
dt_sx=1;//等于一向上 ,等于二向下,等于零時(shí)不動(dòng)
shang=1;//等于一顯示上,等于零不顯示
xia=0;//等于一顯示下,等于零不顯示
}
lll=dt_c1;
if(lll != 0)
{
dt_sx= 2;//等于一向上 ,等于二向下
shang=0;//等于一顯示上,等于零不顯示
xia=1;//等于一顯示下,等于零不顯
}
}
if(dt_cs==3)//停在三樓時(shí)
{
lll=dt_c4 + dt_c5 + dt_c6 + dt_c7 + dt_c8;
if(lll != 0)
{
dt_sx=1;//等于一向上 ,等于二向下,等于零時(shí)不動(dòng)
shang=1;//等于一顯示上,等于零不顯示
xia=0;//等于一顯示下,等于零不顯示
}
lll=dt_c1+dt_c2;
if(lll != 0)
{
dt_sx=2;//等于一向上 ,等于二向下
shang=0;//等于一顯示上,等于零不顯示
xia=1;//等于一顯示下,等于零不顯示
}
}
if(dt_cs==4)//停在四樓時(shí)
{
lll = dt_c5+dt_c6+dt_c7+dt_c8;
if(lll != 0)
{
dt_sx=1;//等于一向上 ,等于二向下,等于零時(shí)不動(dòng)
shang=1;//等于一顯示上,等于零不顯示
xia=0;//等于一顯示下,等于零不顯示
}
lll = dt_c1+dt_c2+dt_c3;
if(lll != 0)
{
dt_sx=2;//等于一向上 ,等于二向下
shang=0;//等于一顯示上,等于零不顯示
xia=1;//等于一顯示下,等于零不顯示
}
}
if(dt_cs==5)//停在五樓時(shí)
{
lll = dt_c6+dt_c7+dt_c8;
if(lll != 0)
{
dt_sx=1;//等于一向上 ,等于二向下,等于零時(shí)不動(dòng)
shang=1;//等于一顯示上,等于零不顯示
xia=0;//等于一顯示下,等于零不顯示
}
lll = dt_c1+dt_c2+dt_c3+dt_c4;
if(lll != 0)
{
dt_sx=2;//等于一向上 ,等于二向下
shang=0;//等于一顯示上,等于零不顯示
xia=1;//等于一顯示下,等于零不顯示
}
}
if(dt_cs==6)//停在六樓時(shí)
{
lll = dt_c7+dt_c8;
if(lll != 0)
{
dt_sx=1;//等于一向上 ,等于二向下,等于零時(shí)不動(dòng)
shang=1;//等于一顯示上,等于零不顯示
xia=0;//等于一顯示下,等于零不顯示
}
lll=dt_c1+dt_c2+dt_c3+dt_c4+dt_c5;
if(lll != 0)
{
dt_sx=2;//等于一向上 ,等于二向下
shang=0;//等于一顯示上,等于零不顯示
xia=1;//等于一顯示下,等于零不顯示
}
}
if(dt_cs==7)//停在七樓時(shí)
{
lll=dt_c8;
if(lll != 0)
{
dt_sx=1;//等于一向上 ,等于二向下、等于零時(shí)不動(dòng)
shang=1;//等于一顯示上,等于零不顯示
xia=0;//等于一顯示下,等于零不顯示
}
lll=dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6;
if(lll != 0)
{
dt_sx=2;//等于一向上 ,等于二向下
shang=0;//等于一顯示上,等于零不顯示
xia=1;//等于一顯示下,等于零不顯示
}
}
if(dt_cs==8)//停在八樓時(shí)
{
lll=dt_c8;
if(lll != 0)
{
dt_sx=1;//等于一向上 ,等于二向下,等于零時(shí)不動(dòng)
shang=1;//等于一顯示上,等于零不顯示
xia=0;//等于一顯示下,等于零不顯示
}
lll=dt_c1 + dt_c2 + dt_c3 + dt_c4 + dt_c5 + dt_c6+dt_c7;
if(lll != 0)
{
dt_sx=2;//等于一向上 ,等于二向下,等于零時(shí)不動(dòng)
shang=0;//等于一顯示上,等于零不顯示
xia=1;//等于一顯示下,等于零不顯示
}
}
}
}
/**電梯在移動(dòng)時(shí)進(jìn)行向下或向上的運(yùn)動(dòng)判斷*/
void diantipanduan2() //向上走時(shí)進(jìn)行判斷,判斷是否繼續(xù)向上
{
uchar jjj;
if(dt_sx==1) //電梯向上走
{
if(dt_cs==1) //在一樓時(shí)是否繼續(xù)向上
{
jjj= dt_c2 + dt_c3 + dt_c4 + dt_c5 + dt_c6 + dt_c7 + dt_c8;
if(jjj==0)
{
dt_sx=0;
shang=0;
}
else
dt_stop=1;
}
else if(dt_cs==2) //在二樓時(shí)
{
jjj= dt_c3 + dt_c4 + dt_c5 + dt_c6 + dt_c7 + dt_c8;
if(jjj==0)
{
dt_sx=0;
shang=0;
}
else
dt_stop=1;
}
else if(dt_cs==3) //在三樓時(shí)
{
jjj= dt_c4 + dt_c5 + dt_c6 + dt_c7 + dt_c8;
if(jjj==0)
{
dt_sx=0;
shang=0;
}
else
dt_stop=1;
}
else if(dt_cs==4) //在四樓時(shí)
{
jjj= dt_c5 + dt_c6 + dt_c7 + dt_c8;
if(jjj==0)
{
dt_sx=0;
shang=0;
}
else
dt_stop=1;
}
else if(dt_cs==5) //在五樓時(shí)
{
jjj= dt_c6 + dt_c7 + dt_c8;
if(jjj==0)
{
dt_sx=0;
shang=0;
}
else
dt_stop=1;
}
else if(dt_cs==6) //在六樓時(shí)
{
jjj= dt_c7 + dt_c8;
if(jjj==0)
{
dt_sx=0;
shang=0;
}
else
dt_stop=1;
}
else if(dt_cs==7) //在七樓時(shí)
{
jjj=dt_c8;
if(jjj==0)
{
dt_sx=0;
shang=0;
}
else
dt_stop=1;
}
else if(dt_cs==8) //在八樓時(shí)
{
dt_sx=0;
shang=0;
dt_stop=1;
}
}
}
void diantipanduan3() //向下走時(shí)進(jìn)行判斷,判斷是否繼續(xù)向下
{
uchar hhh;
if(dt_sx==2)
{
if(dt_cs==1) ///在一樓時(shí)判斷是否繼續(xù)向下
{
dt_sx=0;
xia=0;
shang=0;
dt_stop=1;
// shangxiabioashi();
}
else if(dt_cs==2) ///在二樓時(shí)
{
hhh=dt_c1;
if(hhh==0)
{
dt_sx=0;
xia=0;
}
else
dt_stop=1;
}
else if(dt_cs==3) ///在三樓時(shí)
{
hhh=dt_c1+dt_c2;
if(hhh==0)
{
dt_sx=0;
xia=0;
}
else
dt_stop=1;
}
else if(dt_cs==4) ///在四樓時(shí)
{
hhh=dt_c1+dt_c2+dt_c3;
if(hhh==0)
{
dt_sx=0;
xia=0;
}
else
dt_stop=1;
}
else if(dt_cs==5) ///在五樓時(shí)
{
hhh=dt_c1+dt_c2+dt_c3+dt_c4;
if(hhh==0)
{
dt_sx=0;
xia=0;
}
else
dt_stop=1;
}
else if(dt_cs==6) ///在六樓時(shí)
{
hhh=dt_c1+dt_c2+dt_c3+dt_c4+dt_c5;
if(hhh==0)
{
dt_sx=0;
xia=0;
}
else
dt_stop=1;
}
else if(dt_cs==7) ///在七樓時(shí)
{
hhh=dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6;
if(hhh==0)
{
dt_sx=0;
xia=0;
}
else
dt_stop=1;
}
else if(dt_cs==8) ///在八樓時(shí)
{
hhh=dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7;
if(hhh==0)
{
dt_sx=0;
xia=0;
}
else
dt_stop=1;
}
}
}
/**********電梯總判斷************/
void diantiting() //控制電梯停靠
{
uchar ggg,fff;
ggg=dt_c1+dt_c2+dt_c3+dt_c4+dt_c5+dt_c6+dt_c7+dt_c8;
if(ggg != 0)
{
if(dt_stop == 1 )
{
if(dt_sx != 0)
{
fff++;
if(fff>=20)
{
fff=0;
if(dt_sx == 1) //向上走
{
dt_cs++;
shang=1;
shangxiabioashi();
}
if(dt_sx == 2) //向下走
{
dt_cs--;
xia=1;
shangxiabioashi();
}
if(dt_cs==1) //是否在一樓停下
{
if(dt_c1==1)
{
dt_c1=0;
dt_stop=0;
kye_1=0;
value=0;
l1=1;
S=0;
if(l1==1)
{
l1=0;
SendData(0x0a);
SendData(0x01);
SendData(0x0b);
}
}
}
else if(dt_cs==2) //是否在二樓停下
{
if(dt_c2==1)
{
dt_c2=0;
dt_stop=0;
kye_2=0;
value1=0;
l2=1;
S=0;
if(l2==1)
{
l2=0;
SendData(0x0a);
SendData(0x02);
SendData(0x0b);
}
}
}
else if(dt_cs==3) //三樓
{
if(dt_c3==1)
{
dt_c3=0;
dt_stop=0;
kye_1=0;
value1=0;
l3=1;
S=0;
if(l3==1)
{
l3=0;
SendData(0x0a);
SendData(0x03);
SendData(0x0b);
}
}
}
else if(dt_cs==4) //四樓
{
if(dt_c4==1)
{
dt_c4=0;
dt_stop=0;
kye_4=0;
value1=0;
l4=1;
S=0;
if(l4==1)
{
l4=0;
SendData(0x0a);
SendData(0x04);
SendData(0x0b);
}
}
}
else if(dt_cs==5) //五樓
{
if(dt_c5==1)
{
dt_c5=0;
dt_stop=0;
kye_5=0;
value1=0;
l5=1;
S=0;
if(l5==1)
{
l5=0;
SendData(0x0a);
SendData(0x05);
SendData(0x0b);
}
}
}
else if(dt_cs==6) //六樓
{
if(dt_c6==1)
{
dt_c6=0;
dt_stop=0;
kye_6=0;
value1=0;
l6=1;
S=0;
if(l6==1)
{
l6=0;
SendData(0x0a);
SendData(0x06);
SendData(0x0b);
}
}
}
else if(dt_cs==7) //七樓
{
if(dt_c7==1)
{
dt_c7=0;
dt_stop=0;
kye_7=0;
value1=0;
l7=1;
S=0;
if(l7==1)
{
l7=0;
SendData(0x0a);
SendData(0x07);
SendData(0x0b);
}
}
}
else if(dt_cs==8) //八樓
{
if(dt_c8==1)
{
dt_c8=0;
dt_stop=0;
kye_8=0;
value1=0;
l8=1;
S=0;
if(l8==1)
{
l8=0;
SendData(0x0a);
SendData(0x08);
SendData(0x0b);
}
}
}
}
}
}
}
if(dt_stop == 0)
{
value++;
if(value%5 == 0)
{
if(dt_sx == 1)
{
// shang=~shang;
}
if(dt_sx == 2)
{
// xia=~xia;
}
}
if(value >= 20)
{
value=0;
diantipanduan2(); //電體向上時(shí),進(jìn)行是否繼續(xù)向上的判別
diantipanduan3(); //電梯向下時(shí),進(jìn)行是否繼續(xù)向下的判別
}
}
}
void time_init() //定時(shí)器0的初始化
{
TMOD = 0x01; //定時(shí)器0、工作方式1、定時(shí)模式、非門(mén)控方式
TH0 =0x0D8;
TL0 =0x0F0;; // 0x3CB0=15536,方式一,定時(shí)50ms
EA = 1; //開(kāi)總中斷
ET0 = 1; //開(kāi)定時(shí)器0中斷
TR0 = 1; //允許定時(shí)器0定時(shí)
EX0=1;
}
void main() //主函數(shù)
{
lcd_init(); //1602初始化
time_init(); //定時(shí)器初始化
while(1)
{
key(); //矩陣按鍵的識(shí)別
if(key_value < 20)
{
if(dt_sx == 0)
{
value = 0;
dt_stop = 1;
}
change(); //矩陣數(shù)據(jù)的轉(zhuǎn)換
}
yaoquloucheng();
diantipanudan1(); //當(dāng)電梯停下時(shí)進(jìn)行運(yùn)動(dòng)判斷
dangqianlouceng(); //顯示函數(shù)
shangxiabioashi();
if(time_ting==1)
{
time_ting=0;
diantiting(); //電梯總控制
}
dianjiqudong1(); //電機(jī)驅(qū)動(dòng)上下樓
dianjiqudong2(); //電機(jī)驅(qū)動(dòng)開(kāi)關(guān)門(mén)
}
}
void zhongduan() interrupt 0 //外部中斷觸發(fā)警報(bào)
{
deep=0;
}
void time_0() interrupt 1 //定時(shí)器函數(shù)
{
TH0 = (65534-45872)/256;
TL0 = (65534-45872)%256; //重新裝載初值
value1 ++;
time_ms++;
S++;
if(time_ms==8)
{
time_ms=1;
time_ting=1;
}
if(S==40)
{
dj_1=1;
dj_3=1;
}
if(S==80)
{
dj_1=0;
dj_3=0;
}
if(S==100)
{
dj_2=1;
dj_3=1;
}
if(S==140)
{
dj_2=0;
dj_3=0;
dj_1=0;
}
}
復(fù)制代碼
程序:
簡(jiǎn)易電梯.zip
(60.43 KB, 下載次數(shù): 11)
2019-7-20 20:14 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1