久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機晾衣架控制程序
[打印本頁]
作者:
曼曼吖
時間:
2019-12-21 18:04
標題:
單片機晾衣架控制程序
51hei.png
(113.46 KB, 下載次數(shù): 30)
下載附件
2019-12-22 20:29 上傳
單片機源程序如下:
#include<reg52.h>
#include<intrins.h>
#include<absacc.h> //頭文件
#define uc unsigned char
#define ui unsigned int
sbit in_go = P1^3;
sbit in_back = P1^2;//手動前進后退按鍵
sbit out_go = P3^0;
sbit out_back = P3^5;//電機控制輸出
sbit limit_go = P3^4;
sbit limit_back = P3^6;//前進后退限位開關
sbit led_go = P1^4;
sbit led_back = P1^5;//前進后退限位指示燈
sbit light = P1^0;//光線傳感器
sbit change = P1^1;//手動自動切換按鍵(默認自動)
sbit led_zhishi = P1^7;
sbit buzz = P1^6;
sbit W1=P2^2;
sbit W2=P2^1;
//定義DHT11數(shù)據(jù)口
sbit DATA = P2^0;
uc U8FLAG,U8temp,U8comdata,U8RH_data_H_temp,U8RH_data_L_temp,U8T_data_H_temp,U8T_data_L_temp,U8checkdata_temp;
uc U8RH_data_H,U8RH_data_L,U8T_data_H,U8T_data_L,U8checkdata;
uc Mode,humidity;
bit bdata FlagStartRH,hot,cold,humid,dry;
bit bdata flag1,flag2,change_flag,flag_shan,flag_shan1,flag_shan2,flag_HH;
uc m,n,shan;
uc code table[11]={ //共陰極字型碼
0x3f, //--0
0x06, //--1
0x5b, //--2
0x4f, //--3
0x66, //--4
0x6d, //--5
0x7d, //--6
0x07, //--7
0x7f, //--8
0x6f, //--9
0x00 //--NULL
};
//定時器0初始化
void Timer0_Init()
{
ET0 = 1; //允許定時器0中斷
TMOD = 1; //定時器工作方式選擇
TL0 = 0xb0;
TH0 = 0x3c; //定時器賦予初值
TR0 = 1; //啟動定時器
EA=1;
}
void Delay1(ui j)
{
uc i;
for(;j>0;j--)
{
for(i=0;i<27;i++);
}
}
void Delay_10us(void)
{
uc i;
i--;
i--;
i--;
i--;
i--;
i--;
}
void COM(void)
{
uc i;
for(i=0;i<8;i++)
{
U8FLAG=2;
while((!DATA)&&U8FLAG++);
Delay_10us();
Delay_10us();
Delay_10us();
U8temp=0;
if(DATA)U8temp=1;
U8FLAG=2;
while((DATA)&&U8FLAG++);
//超時則跳出for循環(huán)
if(U8FLAG==1)break;
//判斷數(shù)據(jù)位是0還是1
// 如果高電平高過預定0高電平值則數(shù)據(jù)位為 1
U8comdata<<=1;
U8comdata|=U8temp; //0
}//rof
}
//--------------------------------
//-----溫濕度讀取子程序 ------------
//--------------------------------
//----以下變量均為全局變量--------
//----溫度高8位== U8T_data_H------
//----溫度低8位== U8T_data_L------
//----濕度高8位== U8RH_data_H-----
//----濕度低8位== U8RH_data_L-----
//----校驗 8位 == U8checkdata-----
//----調用相關子程序如下----------
//---- Delay();, Delay_10us();,COM();
//--------------------------------
uc RH(void)
{
//主機拉低18ms
DATA=0;
Delay1(180); //原來為5
DATA=1;
//總線由上拉電阻拉高 主機延時20us
Delay_10us();
Delay_10us();
Delay_10us();
Delay_10us();
//主機設為輸入 判斷從機響應信號
DATA=1;
//判斷從機是否有低電平響應信號 如不響應則跳出,響應則向下運行
if(!DATA) //T !
{
U8FLAG=2;
//判斷從機是否發(fā)出 80us 的低電平響應信號是否結束
while((!DATA)&&U8FLAG++);
U8FLAG=2;
//判斷從機是否發(fā)出 80us 的高電平,如發(fā)出則進入數(shù)據(jù)接收狀態(tài)
while((DATA)&&U8FLAG++);
//數(shù)據(jù)接收狀態(tài)
COM();
U8RH_data_H_temp=U8comdata;
COM();
U8RH_data_L_temp=U8comdata;
COM();
U8T_data_H_temp=U8comdata;
COM();
U8T_data_L_temp=U8comdata;
COM();
U8checkdata_temp=U8comdata;
DATA=1;
//數(shù)據(jù)校驗
U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
if(U8temp==U8checkdata_temp)
{
U8RH_data_H=U8RH_data_H_temp;
U8RH_data_L=U8RH_data_L_temp;
U8T_data_H=U8T_data_H_temp;
U8T_data_L=U8T_data_L_temp;
U8checkdata=U8checkdata_temp;
}
return 1;
}
else //傳感器不響應
{
return 0;
}
}
void delay(ui x)//延時函數(shù)
{
ui i,j;
for(i=0;i<x;i++)
for(j=0;j<110;j++);
}
void display()
{
P0=table[humidity/10];
W1=0;
delay(1); //延時
W1=1; //關顯示
P0=table[humidity%10];
W2=0;
delay(1); //延時
W2=1; //關顯示
}
void work()//工作函數(shù)
{
if(change==0)//判斷切換是否按下
{
buzz=0;
delay(50);
if(change==0)
change_flag=~change_flag;//手動,自動切換
led_zhishi=change_flag;
if(change_flag==1)
{
out_go=1;
out_back=1;
led_go=1;
led_back=1;
}
buzz=1;
while(!change);//釋放
buzz=1;
}
if(change_flag==0)//自動模式
{
if(light==0||flag_HH==1)//夜間(無光)時拉回衣架 flag_HH==1濕度高
{
delay(20);
if(light==0||flag_HH==1)
{
if((limit_go==0)&&(flag_shan==0))
{
out_go=1;
out_back=1;
led_go=1;
for(shan=0;shan<6;shan++)
{
led_go=~led_go;
buzz=led_go;
delay(500);
}
flag_shan=1;
}
else if(limit_go==1)
{
out_go=1;
out_back=0;
led_back=1;
led_go=0;
flag_shan=0;
}
}
}
else if(light==1&&flag_HH==0)//白天(有光)時伸出衣架
{
delay(20);
if(light==1&&flag_HH==0)
{
if((limit_back==0)&&(flag_shan==0))
{
out_go=1;
out_back=1;
led_back=1;
for(shan=0;shan<6;shan++)
{
led_back=~led_back;
buzz=led_back;
delay(500);
}
flag_shan=1;
}
else if(limit_back==1)
{
out_go=0;
out_back=1;
led_back=0;
led_go=1;
flag_shan=0;
}
}
}
}
else if(change_flag==1)//手動模式
{
if((in_go==0)&&(limit_go==1))//關閉是否按下
{
buzz=0;
delay(5);
if((in_go==0)&&(limit_go==1))
{
buzz=1;
out_go=1;
out_back=~out_back;//按一下伸出,再按一下,停止
buzz=1;
led_back=1;
led_go=out_back;
flag_shan1=0;
}
while(!in_go);//釋放
buzz=1;
}
else if((in_back==0)&&(limit_back==1))//打開是否按下
{
buzz=0;
delay(5);
if((in_back==0)&&(limit_back==1))
{
buzz=1;
out_back=1;
out_go=~out_go;//按一下收回,再按一下,停止
buzz=1;
led_go=1;
led_back=out_go;
flag_shan2=0;
}
while(!in_back);//按鍵釋放
buzz=1;
}
if((limit_go==0)&&(flag_shan1==0))
{
delay(5);
if((limit_go==0)&&(flag_shan1==0))
{
out_back=1;
led_go=1;
for(shan=0;shan<6;shan++)
{
led_go=~led_go;
buzz=led_go;
delay(500);
}
flag_shan1=1;
}
}
if((limit_back==0)&&(flag_shan2==0))
{
delay(5);
if((limit_back==0)&&(flag_shan2==0))
{
out_go=1;
led_back=1;
for(shan=0;shan<6;shan++)
{
led_back=~led_back;
buzz=led_back;
delay(500);
}
flag_shan2=1;
}
}
}
}
void main()//主函數(shù)
{
uc testnum;
light=0;
buzz=1;
led_zhishi=0;
Timer0_Init();
while(1)//進入死循環(huán)
{
work();//調用工作函數(shù)
display();
if (FlagStartRH == 1) //溫濕度轉換標志檢查
{
testnum = RH();
FlagStartRH = 0;
humidity = U8RH_data_H; //讀出濕度,只取整數(shù)部分
if(humidity>=80)
flag_HH=1;
else
flag_HH=0;
TR0 = 1;
}
display();
}
}
//定時器0中斷
void Timer0_ISR (void) interrupt 1 using 0
{
ui RHCounter;
TL0 = 0xb0;
TH0 = 0x3c; //定時器賦予初值
//每5秒鐘啟動一次溫濕度轉換
RHCounter ++;
if (RHCounter >= 20)
{
FlagStartRH = 1;
RHCounter = 0;
TR0=0;
}
}
復制代碼
所有資料51hei提供下載:
晾衣架.rar
(235.43 KB, 下載次數(shù): 41)
2019-12-21 18:04 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
一区二区三区四区在线免费观看
|
日韩精品久久
|
亚洲欧美一区二区三区国产精品
|
精品一区二区久久久久久久网站
|
午夜一区二区三区在线观看
|
99re热精品视频国产免费
|
国产精品99久久久久久动医院
|
91在线导航
|
av网站免费在线观看
|
婷婷五月色综合香五月
|
日韩成人专区
|
亚洲国产成人av好男人在线观看
|
成人影院在线观看
|
婷婷综合网
|
狠狠操电影
|
这里精品
|
亚洲精品欧洲
|
国产日韩欧美一区二区
|
日韩视频精品在线
|
国产成人精品一区二
|
国产伊人久久久
|
欧美最猛性xxxxx亚洲精品
|
拍戏被cao翻了h承欢
|
中文字幕国产视频
|
国产精品久久久久不卡
|
久久久久久网站
|
国产午夜精品一区二区三区四区
|
久久久久亚洲精品
|
欧美一区二区三区视频
|
久久久久久国产精品
|
日本一区二区高清视频
|
热re99久久精品国99热观看
|
久久久免费观看视频
|
中文字幕在线精品
|
国产成人在线观看免费
|
久久伊人亚洲
|
国产免费福利在线
|
欧美在线天堂
|
亚洲日韩第一页
|
日韩欧美一区二区三区在线播放
|
国产精品成av人在线视午夜片
|