日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单片机光敏电阻控制蜂鸣器_走进单片机|第七期:湿度检测

發布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机光敏电阻控制蜂鸣器_走进单片机|第七期:湿度检测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上篇推文介紹了以51單片機為控制核心來實現對傳感器的控制。本期推文將以電光學院“星火杯”中的優秀作品——基于51單片機的智能晾衣架為例,介紹51單片機在濕度檢測方面的應用。

(圖片來源:“星火杯”參賽隊伍湯玥? 李可欣? 曹宗青組)

基于51單片機的智能晾衣架設計原理

智能晾衣架設計思路:本設計采用單片機STC89C51作為自動晾衣架的檢測及控制核心,通過發光二極管顯示晾衣架的工作狀態,通過濕度傳感器與光敏電阻自動根據環境濕度和光線強度升降晾衣架,在此基礎上增加無線控制功能,提供更加方便的操作。

特點

1采用無線遙控控制方式。

2利用光敏電阻來智能識別光線,對衣架智能控制,天黑時自動收衣,天亮后自動晾衣。

3利用濕度傳感器,陰雨時自動收衣,天晴后自動晾衣。

4利用限位開關來控制晾衣架停止,防止超限,阻力過大,燒壞電機或者損壞機械。

(文字來源:“星火杯”參賽隊伍湯玥? 李可欣? 曹宗青組)

(圖片來源:“星火杯”參賽隊伍湯玥? 李可欣? 曹宗青組)

程序示例:

#include?? ? ? ? ? ? ? ? //調用單片機頭文件

#define uchar unsigned char ?//無符號字符型 宏定義 ? ? ? ?變量范圍0~255

#define uint ?unsigned int ? ? ? ? //無符號整型 宏定義 ? ? ? ?變量范圍0~65535

sbit beep = P1^4; ? //蜂鳴器

int flag_300ms ;

// ?按鍵的IO變量的定義

uchar key_can; ? ? ? ? ? ? ? ? //按鍵值的變量

sbit wh_led = P2^2; ?//溫度報警指示燈IO口定義

sbit wl_led = P2^3; ?//溫度報警指示燈IO口定義

sbit sh_led = P2^1; ?//濕度報警指示燈IO口定義

sbit sl_led = P2^0; ?//濕度報警指示燈IO口定義

uchar flag_en = 1;

uchar menu_1; ? ? ? ?//菜單設計的變量

uint t_high = 35,t_low = 10; ? ? ? ?//溫度報警參數

uint s_high = 80,s_low = 10; ? ? ? ?//濕度報警參數

/***************************************************************

* 名稱 : delay_1ms()

* 功能 : 延時1ms函數

* 輸入 : q

* 輸出 : 無

****************************************************************/

void delay_1ms(uint q)

{

? ? ? ? uint i,j;

? ? ? ? for(i=0;i

? ? ? ? ? ? ? ? for(j=0;j<120;j++);

}

sbit dht11=P1^5; ? ? ? ? //溫度傳感器IO口定義

uchar table_dht11[5]={1,2,3,4,5};

uchar code table_num[]="0123456789abcdefg";

sbit rs=P1^0; ? ? ? ? //寄存器選擇信號 H:數據寄存器 ? ? ? ? ?L:指令寄存器

sbit rw=P1^1; ? ? ? ? //寄存器選擇信號 H:數據寄存器 ? ? ? ? ?L:指令寄存器

sbit e =P1^2; ? ? ? ? //片選信號 ? 下降沿觸發

/********************************************************************

* 名稱 : delay_uint()

* 功能 : 小延時。

* 輸入 : 無

* 輸出 : 無

***********************************************************************/

void delay_uint(uint q)

{

? ? ? ? while(q--);

}

/********************************************************************

* 名稱 : write_com(uchar com)

* 功能 : 1602命令函數

* 輸入 : 輸入的命令值

* 輸出 : 無

***********************************************************************/

void write_com(uchar com)

{

? ? ? ? e=0;

? ? ? ? rs=0;

? ? ? ? rw=0;

? ? ? ? P0=com;

? ? ? ? delay_uint(25);

? ? ? ? e=1;

? ? ? ? delay_uint(100);

? ? ? ? e=0;

}

/********************************************************************

* 名稱 : write_data(uchar dat)

* 功能 : 1602寫數據函數

* 輸入 : 需要寫入1602的數據

* 輸出 : 無

***********************************************************************/

void write_data(uchar dat)

{

? ? ? ? e=0;

? ? ? ? rs=1;

? ? ? ? rw=0;

? ? ? ? P0=dat;

? ? ? ? delay_uint(25);

? ? ? ? e=1;

? ? ? ? delay_uint(100);

? ? ? ? e=0; ? ? ? ?

}

/***********************lcd1602上顯示特定的字符****0XDF 度********************/

void write_zifu(uchar hang,uchar add,uchar date)

{

? ? ? ? if(hang==1) ??

? ? ? ? ? ? ? ? write_com(0x80+add);

? ? ? ? else

? ? ? ? ? ? ? ? write_com(0x80+0x40+add);

? ? ? ? write_data(date); ? ? ? ?

}

/***********************lcd1602上顯示兩位十進制數************************/

void write_sfm2(uchar hang,uchar add,uint date)

{

? ? ? ? if(hang==1) ??

? ? ? ? ? ? ? ? write_com(0x80+add);

? ? ? ? else

? ? ? ? ? ? ? ? write_com(0x80+0x40+add);

? ? ? ? write_data(0x30+date/10%10);

? ? ? ? write_data(0x30+date%10); ? ? ? ?

}

/***********************lcd1602上顯示這字符函數************************/

void write_string(uchar hang,uchar add,uchar *p)

{

? ? ? ? if(hang==1) ??

? ? ? ? ? ? ? ? write_com(0x80+add);

? ? ? ? else

? ? ? ? ? ? ? ? write_com(0x80+0x40+add);

? ? ? ? ? ? ? ? while(1) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? if(*p == '') ?break;

? ? ? ? ? ? ? ? ? ? ? ? write_data(*p);

? ? ? ? ? ? ? ? ? ? ? ? p++;

? ? ? ? ? ? ? ? } ? ? ? ?

}

/***********************lcd1602初始化設置************************/

void init_1602() ? ? ? ?//lcd1602初始化

{

? ? ? ? write_com(0x38); ? ? ? ?

? ? ? ? write_com(0x0c);

? ? ? ? write_com(0x06);

? ? ? ? delay_uint(1000);

? ? ? ? write_string(1,0,"Wd:00 ?H00 ?L00 ? "); ? ? ? ?

? ? ? ? write_string(2,0,"Sd:00% H00% L00% "); ? ? ? ?

? ? ? ? write_zifu(1,5,0xdf); ? ? ? ?//顯示度 ? ? ? ? ? ? ? ?

? ? ? ? write_zifu(1,10,0xdf); ? ? ? ?//顯示度 ? ? ? ?

? ? ? ? write_zifu(1,15,0xdf); ? ? ? ?//顯示度 ? ? ? ?

? ? ? ? write_sfm2(1,3,table_dht11[2]); ? ? ? ? ? //顯示溫度

? ? ? ? write_sfm2(2,3,table_dht11[0]); ? //顯示濕度 ? ? ? ?

? ? ? ? write_sfm2(1,7,t_high); ? ? ? ? ?//顯示溫度

? ? ? ? write_sfm2(2,7,s_high); ? //顯示濕度 ? ? ? ? ? ? ? ?

? ? ? ? write_sfm2(1,10,t_low); ? ? ? ? ?//顯示溫度

? ? ? ? write_sfm2(2,10,s_low); ? //顯示濕度 ? ? ? ? ? ? ? ?

}

/********************獨立按鍵程序*****************/

uchar key_can; ? ? ? ? //按鍵值

void key() ? ? ? ? ? ? //獨立按鍵程序

{

? ? ? ? static uchar key_new;

? ? ? ? key_can = 20; ? ? ? ? ? ? ? //按鍵值還原

? ? ? ? P3 |= 0xf0;

? ? ? ? if((P3 & 0xf0) != 0xf0) ? ? ? ? ? ? ? ?//按鍵按下

? ? ? ? {

? ? ? ? ? ? ? ? delay_1ms(1); ? ? ? ? ? ? ? ? ? ? //按鍵消抖動

? ? ? ? ?? ? ? if(((P3 & 0xf0) != 0xf0) && (key_new == 1))

? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//確認是按鍵按下? ? ? ? ? ? ? ? ? ? ? ? key_new = 0;

switch(

switch(P3 & 0xf0)

? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 0xd0: key_can = 1; break; ? ? ? ? ? //得到k1鍵值

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 0xb0: key_can = 2; break; ? ? ? ? ? //得到K2鍵值

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 0x70: key_can = 3; break; ? ? ? ? ? //得到k3鍵值

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? }

? ? ? ? else?

? ? ? ? ? ? ? ? key_new = 1; ? ? ? ?

}

(代碼來源: http://news.eeworld.com.cn/mcu/ic480289.html)

(代碼來源: http://news.eeworld.com.cn/mcu/ic480289.html)

本次推文簡要介紹了單片機應用于智能晾衣架的實例與原理,同學們可以自己嘗試進性編程學習,后續的推文還將繼續介紹51單片機其他模塊的使用。

總結

以上是生活随笔為你收集整理的单片机光敏电阻控制蜂鸣器_走进单片机|第七期:湿度检测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久午夜夜伦鲁鲁片无码免费 | 医生强烈淫药h调教小说视频 | 91九色蝌蚪 | 国产精品蜜 | 欧美日韩亚洲精品一区二区 | 天堂av免费| 黄片毛片视频 | 国产伦精品一区二区三区免费视频 | 一本不卡 | 成人二三区 | 久久99国产精品久久99 | 国产综合视频 | 午夜在线观看一区 | 亚洲制服丝袜av | 人妖av在线 | 少妇15p| 日本十八禁视频无遮挡 | 亚洲一区二区精华 | 1级黄色大片儿 | 波多野结衣中文字幕在线播放 | 国产精品中文在线 | 国产美女裸体无遮挡免费视频 | 精品人伦一区二区三区蜜桃免费 | japan粗暴video蹂躏 | 又嫩又硬又黄又爽的视频 | 日本成人毛片 | 久久免费在线视频 | 可以直接看av的网址 | 伊伊综合网 | 日韩综合精品 | 亚洲一二三区在线 | 重口味av | 久久成人综合 | 欧美日韩乱国产 | 99精品视频免费看 | 99re这里都是精品 | 九九综合久久 | 91桃色视频在线观看 | 欧美三级韩国三级日本三斤在线观看 | hd丰满圆润的女人hd | 高清无码一区二区在线观看吞精 | 亚洲性猛交xxxx乱大交 | av不卡一区二区三区 | 中文字幕欧美人妻精品 | av优选在线观看 | 中文字幕av久久 | 欧美久久网 | 五月婷网 | 91漂亮少妇露脸在线播放 | 秋霞一级视频 | 国产欧美日韩在线播放 | 日韩成人在线观看 | 国产夜色精品一区二区av | 强行挺进白丝老师翘臀网站 | 亚州精品国产精品乱码不99按摩 | 97av免费视频| 国产午夜精品一区二区三区四区 | 成长快手短视频在线观看 | 成人久色 | 亚洲精品福利网站 | 中国成熟妇女毛茸茸 | 婷久久| 欧洲高潮三级做爰 | 激情视频区 | 91手机视频在线观看 | 性高湖久久久久久久久免费 | 下面一进一出好爽视频 | 久久免费高清视频 | 91丨国产丨白丝 | 国产精品欧美激情在线 | 亚洲av无一区二区三区久久 | 处破痛哭a√18成年片免费 | 色交视频 | 欧美一级二级三级视频 | 麻豆精品av| 天天干天天操天天干 | 国产精品久久久久久久久久久久 | 综合久久久久 | 伊人狠狠| 天天看毛片 | 国产精品美女久久久久av超清 | 亚洲人视频在线观看 | 国产精品久久久久久亚洲av | 日韩av片在线 | 天天舔天天干 | 日韩精品在线观看免费 | 日韩爱爱免费视频 | 日本啪啪网 | 国产又粗又大又爽视频 | 在线激情小视频 | 草比视频在线观看 | av免费在线观看网址 | 91国在线观看 | 色香五月 | 日本偷拍一区 | 色在线网站| 国产乱在线 | 国产在线观看免费视频软件 | 久久中文字幕在线 |