欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機寫的電梯程序
[打印本頁]
作者:
h1007886499
時間:
2018-3-16 20:37
標題:
51單片機寫的電梯程序
電梯用到中斷,數碼管,和現實中電梯有相同的功能,考慮的應該很全了
/**************功能:電梯樓層的控制的顯示*******/
#include<reg52.h>
#define uchar unsigned char //宏定義
sbit fmq=P3^6; //蜂鳴器的定義
uchar pg=0, pf=0,g=9,p=0; //定義 pg存是數碼管顯示的數字 ,pf存按鍵返回的值
uchar house_code[8]={0};
uchar code dis_playd[11]={0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0xfe,0xbf,0xf7}; //數組中存有"1~8"、"上-"、“中-”、 “下-”
uchar code dis_playw[3 ]={0x7f,0xbf,0xdf}; //位選的三位
uchar code key_defin[8 ]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,};//按鍵的編
/**************函數聲明***************/
void dis_up1();
uchar keyscan();
void dis_down1();
/*************1ms延時函數*********************/
void delay_1ms(uchar i)
{
uchar j=0;
while(i--)
for(j=0;j<115;j++)
;
}
/*************數碼管顯示*****************/
void display(uchar k)
{
P2=dis_playw[0];
P0=dis_playd[pg];
delay_1ms(2);
P0=0xff;
P2=dis_playw[1];
P0=dis_playd[k];
delay_1ms(2);
P0=0xff;
}
/***************數碼管中的延時*************/
void delay_x1(int i)
{
uchar j=0;
while(i--)
{
for(j=0;j<115;j++)
{
display(g);
}
}
}
/*******上升重按鍵掃描******/
void delay_x(int i)
{
uchar j=0;
while(i--)
{
for(j=0;j<115;j++)
{
display(g);
if(P1!=0xf0)
{
delay_1ms(10);
if(P1!=0xf0)
{
pf=keyscan();
if(pf!=p&&pf!=pg)
{
dis_up1();
}
}
}
}
}
}
/*******下降重按鍵掃描******/
void delay_x2(int i)
{
uchar j=0;
while(i--)
{
for(j=0;j<115;j++)
{
display(g);
if(P1!=0xf0)
{
delay_1ms(10);
if(P1!=0xf0)
{
pf=keyscan();
if(pf!=p&&pf!=pg)
{
dis_down1();
}
}
}
}
}
}
/**************產生1KHZ頻率聲音的函數**************/
void beep(void)
{
fmq=0;
delay_1ms(100);
fmq=1;
delay_1ms(100);
}
/*************線反轉法檢測 按下了哪一個鍵并返回數值 **********/
uchar keyscan()
{
uchar k1=0,k2=0,k=0,i=0,j=0;
P1=0xf0;
if(P1!=0xf0)
{
delay_1ms(20);
if(P1!=0xf0)
{
k1=P1;
P1=0x0f;
k2=P1;
k=k1|k2;
for(i=0;i<16;i++)
{
if(k==key_defin[i])
{
j=i;
return(j);
}
}
while(P1!=0x0f)
;
}
}
return(0);
}
/***********上升嵌套函數 **************/
void dis_up1()
{
while(pf>pg)
{
g=8;
delay_x1(2);
pg++;
}
g=9;
display(g);
beep();
delay_x1(2);
}
/*********下降套函數 ****************/
void dis_down1()
{
while(pf<pg)
{
g=10;
delay_x1(2);
pg--;
}
g=9;
display(g);
beep();
delay_x1(2);
}
/****************電梯上升函數**************/
void dis_up()
{
P1=0xf0;
while(p>pg)
{
g=8;
delay_x(2);
pg++;
}
g=9;
display(g);
beep();
}
/****************電梯下降函數**************/
void dis_down()
{
while(p<pg)
{
g=10;
delay_x2(2);
pg--;
}
g=9;
display(9);
beep();
}
復制代碼
余下自己下載
電梯程序.rar
2018-3-16 20:36 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
27.67 KB, 下載次數: 41, 下載積分: 黑幣 -5
作者:
admin
時間:
2018-3-17 01:24
樓主能分享個原理圖嗎?
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1