<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 用51單片機做的小旋磁美容儀

用51單片機做的小旋磁美容儀

作者: 時(shí)間:2012-12-01 來(lái)源:網(wǎng)絡(luò ) 收藏

//以下為按鍵檢測子程序
void key(void)
{
uchar num,num1=0;
uint a;
P1=0xfc;
num=P1;
if(num!=0xfc)
{ fmqbit=0; //檢測按鍵有輸入鍵值時(shí)使蜂鳴器鳴叫
if(openbit!=0)
{

for(a=17;a>0;a--)
{
display(time,hotled,xuanled);
}
}
else
{
for(a=200;a>0;a--)
{
duan=0xfe; //此處隨便加入值
shila=0;
gela=0;
hotla=0;
xuanla=0;//打開(kāi)四路數碼管位顯示控制
delay(1);
}
hotla=1;
shila=1;
gela=1;
xuanla=1;//關(guān)閉四路數碼管位顯示控制
}
P1=0xfc;
num=P1;
if(num!=0xfc)
{ P1=0xfe;
num=P1;
if(num!=0xfe)
{
switch(num)
{
case 0xfa: num1=7; break;//旋轉減
case 0xf6: num1=5; break;//hot 減
case 0xee: num1=3; break;//時(shí)間減
case 0xde:
if(openbit!=0)
{
for(a=40;a>0;a--)
display(time,hotled,xuanled);
}
else
{
for(a=400;a>0;a--)
{
duan=0xfe; //此處隨便加入值
hotla=0;
shila=0;
gela=0;
xuanla=0;//打開(kāi)四路數碼管位顯示控制
delay(2);
}
hotla=1;
shila=1;
gela=1;
xuanla=1;//關(guān)閉四路數碼管位顯示控制
}
openbit=~openbit;//改變開(kāi)關(guān)機標志位
default:break;
}

}
else
{
P1=0xfd;
num=P1;
switch(num)
{
case 0xf9: num1=6; break;
case 0xf5: num1=4; break;
case 0xed: num1=2; break;
default: break;
} }
if(openbit!=0)
bianlian(num1);//開(kāi)機即可改變相關(guān)變量值,條件為開(kāi)機后使能 }
} P1=0xfc;
}//以下為定時(shí)0中斷程序,定時(shí)時(shí)間為50MS
void time0_int(void) interrupt 1
{
TH0=0x3c;
TL0=0xb0; //進(jìn)入裝初值
d++;
fmq=~fmq;
if(d%10==0)
xsd=~xsd;
if(d==1200)
{
d=0;
if(time!=0)
time--; //此處停機變量處理已OK了。
else
openbit=0;

}
}//以下為定時(shí)1中斷程序,定時(shí)時(shí)間為1000US
void time1_int(void) interrupt 3
{
TH1=0xff;
TL1=0xe0;//進(jìn)入裝初值if(openbit!=0)
{

if(hot1)
{
hot1--;
if(hot1==0)
{
hotoff1=hotoff;
if(biaobit0!=0)
hotout=0;
else hotout=1;
}
}
if(hotoff1)
{
hotoff1--;
if(hotoff1==0)
{
hot1=hot;
if(biaobit1!=0)
hotout=1;
else hotout=0;
}
} if(xuan1)
{
xuan1--;
if(xuan1==0)
{
xuanoff1=xuanoff;
if(biaobit2!=0)
xuanout=0;
else xuanout=1;
}
}

if(xuanoff1)
{
xuanoff1--;
if(xuanoff1==0)
{
xuan1=xuan;
if(biaobit3!=0)
xuanout=1;
else xuanout=0;
}
}



}
}
void main(void)
{
P1=0xfc;
openbit=0;//使起始狀態(tài)為停機等待狀態(tài)
TMOD=0x11; //定義定時(shí)器工作模式
IP=0x08; //定時(shí)器1設置為最高中斷級別
TH0=0x3c;
TL0=0xb0; //進(jìn)入裝初值
TH1=0xff;
TL1=0xe0;//進(jìn)入裝初值
ET0=1;
ET1=1;
EA=1; //定時(shí)中斷至此全部打開(kāi)開(kāi)始運作。
while(1)
{
hotout=1;
xuanout=1;//將輸出都置為0輸出狀態(tài),待機狀態(tài) TR0=0;
TR1=0;//將返回的定時(shí)器全部關(guān)閉,避免不必要的誤動(dòng)作
duan=0xfe; //待機時(shí)顯示的筆段控制
hotla=0;
shila=0;
gela=0;
xuanla=0;//打開(kāi)四路數碼管位顯示控制
delay(1); //顯示維持時(shí)間設定
hotla=1;
shila=1;
gela=1;
xuanla=1;//關(guān)閉四路數碼管位顯示控制

if(P1!=0xfc)
fmqbit=0;
else fmqbit=1; //對按鍵掃描進(jìn)行檢測,得出判斷蜂鳴器的鳴叫結果。 key(); //按鍵檢測函數調用
if(openbit!=0)
{

d=0; //秒鐘計時(shí)值置0狀態(tài)
TR0=1;
TR1=1;
hot=0;
hot1=hot;
hotoff=t-hot;
hotoff1=hotoff; //將熱控制的初值給予設定 xuan=0;
xuan1=xuan;
xuanoff=t-xuan;
xuanoff1=xuanoff; //將旋轉控制的初值給予設定 biaobit0=0;
biaobit1=1;
biaobit2=0;
biaobit3=1; hotled=0; //將熱輸出顯示值及狀態(tài)設置為0狀態(tài)
xuanled=0; //旋轉,效果同上 time=30; //時(shí)間初值設置為30分鐘整
while(openbit!=0)
{
key(); //按鍵檢測函數
if((time==0)(d>=1000))
{fmqbit=xsd;} //倒計至最后10秒時(shí)進(jìn)行鳴叫
else
{
if(P1==0xfc)
fmqbit=1;
else fmqbit=0; //對按鍵掃描進(jìn)行檢測,得出判斷蜂鳴器的鳴叫結果。
}
display(time,hotled,xuanled);//調用顯示函數
}
}
}}
與hotandxuan10區別于bing1 和bing0兩個(gè)變量取消,同時(shí)定時(shí)中斷1的程序體全部加以代碼優(yōu)化,解決掉原程序執行過(guò)程中中斷停留時(shí)間過(guò)長(cháng),影響數碼管顯示,閃爍的問(wèn)題,同時(shí)處理掉按鍵在開(kāi)至最高檔時(shí)檢測靈敏度下降問(wèn)題.

蜂鳴器相關(guān)文章:蜂鳴器原理

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>