欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機編程必須撐握的程序(兩鍵智能豆漿機程序)
[打印本頁]
作者:
das
時間:
2015-4-5 00:56
標題:
單片機編程必須撐握的程序(兩鍵智能豆漿機程序)
單片機學習編程,必須要將各種中斷方法靈活的運用到系統中去,如鍵實時盤掃描,顯示,各種輸出等;兩鍵智能豆漿機程序集鍵盤實時掃描,LED指示,輸出為一體;其綜合了“定時中斷,獨立按鍵,顯示,定時”等各種功能;該程序是學習實用型編程的必要撐握的程序。本人通過實際調試,輸出效果良好,達到預期的要求。
本豆漿機編程功能要求:
1、當機器通電后,干豆指示燈、濕豆指示燈、米糊指示燈,三燈同時以0.5秒的速度進行閃亮,以指示正在處于待機中;
2,當K1鍵按下,系統程序進入三種可選功能模式,(打干豆、打顯豆、打米糊);這三種功能選擇由K1完成;
3、當K1選定了其中一個工作模式,必須按下K2確認,然后系統程序立即進入工作中;
4、當用戶不想用上面選擇的工作模式時,按下K2鍵退出工作,然后按K1鍵再次進入工作模式選擇,然后再按K2確認進入本次想要的工作模式。
5、要求系統程序任何時間,程序都必須對鍵盤實時掃描,以確保用戶可以隨時重新選擇工作模式或停機。
6、要求每按下一次任意鍵蜂嗚器都有響聲,以表示按下成功;
7、要求統統模式工作完成后,要求程序回到待機狀態,以指示工作完成,用戶可以喝豆漿了。
以下程序用SiWN開發板驗證調試完成。
////------------------兩鍵(三功能)智能豆漿機程序-------------OK 2012-7-28
////-----------------芯片STC12C5A60S2(青龍工作室)----------------
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
static uchar ID=0;
static uchar ID2=0;
static uint time=0;
static uchar nem=0;
sbit k1=P0^1;//-----功能選擇按鍵
sbit k2=P0^2;//-----確認按鍵
sbit beep=P3^3;//---蜂嗚器
sbit LED_LE=P3^4;//-LED片選端
sbit HOT=P1^5;//----發熱管
sbit MM=P1^4;//-----電機
////////
sbit LED_gandou=P1^3;//----干豆指示燈
sbit LED_shidou=P1^2;//----濕豆指示燈
sbit LED_mihu=P1^1;//------米糊指示燈
////////-------------------------------延時
void delayms(uint yanshi)
{
uint a;
for(a=0;a<yanshi;a++);
}
///////-----------------------k2/(on/off)按鍵檢測
void k2_panduan()
{
if(!k2)
{
delayms(350);
if(!k2)
while(k2==0);
beep=0;
delayms(60000);
beep=1;
ID2++;
}
}
///////--------------------------------k1按鍵檢測
void k1_panduan()
{
if(!k1)
{
delayms(350);
if(!k1)
while(k1==0);
beep=0;
delayms(60000);
beep=1;
ID++;
}
}
///////--------------------------------功能程序---------
void start()
{
while(ID2<4)
{
if(ID==1)
{
LED_gandou=0;
LED_shidou=1;
LED_mihu=1;
////
k1_panduan();
if(!k2)
{
delayms(350);
while(k2==0);
beep=0;
delayms(60000);
beep=1;
while(time<401)
{
if(time<200)
{
TR1=1;
HOT=0;//發熱管接通
MM=1;
k2_panduan();
if(ID2==1)
{
ID2=0;
break;
}
}
///-----------------------------
if(time>200&&time<400)
{
TR1=1;
HOT=1;//發熱管斷開
MM=0;
k2_panduan();
if(ID2==1)
{
ID2=0;
break;
}
}
///-----------------------------
}
HOT=1;
MM=1;
time=0;
TR1=0;
goto qinlong;
}
}
////**********************************************///
else if(ID==2)
{
LED_gandou=1;
LED_shidou=0;
LED_mihu=1;
////
k1_panduan();
if(!k2)
{
delayms(350);
while(k2==0);
beep=0;
delayms(60000);
beep=1;
while(time<401)
{
if(time<200)
{
TR1=1;
HOT=1;//發熱管斷開
MM=0;
k2_panduan();
if(ID2==1)
{
ID2=0;
break;
}
}
//--------------------------
if(time>200&&time<400)
{
TR1=1;
HOT=0;//發熱管接通
MM=1;
k2_panduan();
if(ID2==1)
{
ID2=0;
break;
}
}
//--------------------------
}
HOT=1;
MM=1;
time=0;
TR1=0;
goto qinlong;
}
}
////**********************************************///
else if(ID==3)
{
LED_gandou=1;
LED_shidou=1;
LED_mihu=0;
////
k1_panduan();
if(!k2)
{
delayms(350);
while(k2==0);
beep=0;
delayms(60000);
beep=1;
while(time<401)
{
if(time<200)
{
TR1=1;
HOT=0;//發熱管斷開
MM=0;
k2_panduan();
if(ID2==1)
{
ID2=0;
break;
}
}
////---------------------
if(time>200&&time<400)
{
TR1=1;
HOT=1;//發熱管斷開
MM=1;
k2_panduan();
if(ID2==1)
{
ID2=0;
break;
}
}
///----------------------
}
HOT=1;
MM=1;
time=0;
TR1=0;
goto qinlong;
}
}
////-----------------------------
else if(ID==4)
ID=1;
}
qinlong:return;
}
/*---------------------------------------------*/
///////------------------------------------主程序
void main()
{
TMOD=0x11;
TH0=0x4c;
TL0=0x00;
IE=0x8a;
//-------------------------------
TH1=0x4c;
TL1=0x00;
TR0=1;
TR1=0;
//-------------------------------
LED_LE=0;
while(1)
{
if(!k1)
{
delayms(300);
if(!k1)
{
while(k1==0);
beep=0;
delayms(60000);
beep=1;
ID++;
start();//ID判斷
}
}
////============================
if(nem==10)
{
LED_gandou=~ LED_gandou;
LED_shidou=~LED_shidou;
LED_mihu=~LED_mihu;
nem=0;
}
}
////
}
/*---------------------定時中斷0--------------------*/
void Tmer_0() interrupt 1
{
TR0=0;
TH0=0x4c;
TL0=0x00;
nem++;
TR0=1;
}
///////////////////////定時中斷1/////////////////////
void Tmer_1() interrupt 3
{
TR1=0;
TH1=0x4c;
TL1=0x00;
time++;
TR1=1;
}
作者:
looksave
時間:
2015-5-2 20:40
很好
作者:
huakai
時間:
2017-6-9 12:08
有電路原理圖嗎???
作者:
3760609865
時間:
2017-6-9 23:47
謝謝分享。
作者:
wis98
時間:
2017-8-14 16:22
學習一下樓主的文章
作者:
stick@
時間:
2017-8-22 14:17
水位,溫度,安全,都加進去或者加WiFi模塊整手機APP好像就是個產品了
作者:
w963135423
時間:
2018-5-11 22:51
求電路圖啊 大神
作者:
axkf
時間:
2019-2-9 17:02
學習一下樓主的文章
作者:
payload
時間:
2019-2-10 12:13
謝謝分享,學習了
作者:
853762295
時間:
2019-2-10 15:03
謝謝分享!!!
作者:
wsyyta
時間:
2020-6-5 19:59
樓主有原理圖沒
作者:
王秋冬
時間:
2020-6-6 11:13
不錯的,謝謝分享。
作者:
18078462863
時間:
2022-3-30 16:14
加上水位檢測,溢出檢測、加熱模塊會更好
作者:
新鄉家電維修
時間:
2022-3-31 10:13
發表于 2017-6-9 12:08
有電路原理圖嗎???
這哪用得著電路圖啊,看程序定義就知道電路圖啥樣了
作者:
dsbk123
時間:
2022-4-1 09:51
樓主辛苦,多謝分享!
作者:
快樂眼淚
時間:
2022-4-16 21:20
經典的實用的程序
作者:
dsbk123
時間:
2024-10-24 14:30
學習了,多謝樓主分享!
作者:
251932270
時間:
2025-9-16 23:26
學習了,多謝樓主分享!
作者:
lxh0508
時間:
2025-9-18 20:04
這個應該沒法及時響應按鍵了吧,按鍵按下后6秒內都不會響應別的按鍵了
作者:
man1234567
時間:
2025-11-10 14:35
感覺不如一的結業作業,就是個唬人的東東。
豆漿機控制加熱的不是時間而是液面。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1