標題: 找到的一些單片機sht11傳感器溫控代碼 [打印本頁]
作者: lhxfdf 時間: 2018-1-27 15:56
標題: 找到的一些單片機sht11傳感器溫控代碼
基于51單片機 sht11傳感器
#include<reg52.h> //包含單片機寄存器的頭文件
#define uchar unsigned char
#define uint unsigned int
sbit P10=P1^0;
sbit ADD=P1^1;
sbit SUB=P1^2;
sbit P13=P1^3;
uint ya,temp,num=0,aa,th=180,tl=90;
//uchar aa,th=200,tl=100;
unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit CS=P2^3; //將CS位定義為P3.4引腳
sbit CLK=P2^4; //將CLK位定義為P1.0引腳
sbit DIO=P2^5; //將DIO位定義為P1.1引腳
void delay(uint z);
void display(uint a);
void displayth(uint b);
void displaytl(uint c);
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; }
void key()
{
if(P10==0)
{
delay(5);
if(P10==0)
{
num++;
if(num==3)
{
num=0;
}
}
while(!P10)
display(temp);
delay(5);
while(!P10) display(temp); }
if(num!=0)
{
if(ADD==0)
{
delay(5);
if(ADD==0)
{
if(num==1)
{
th++;
if(th==250)
th=tl+10;
}
if(num==2)
{
if(tl<(th-10))
tl++;
Else
tl=90;
}
}
while(!ADD)
display(th);
}
if(SUB==0)
{
delay(5);
if(SUB==0)
{
if(num==1)
{
th--;
if(th==(tl+10))
th=250;
}
if(num==2)
{
tl--;
if(tl==90)
tl=th-10;
}
}
while(!SUB) display(tl);
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(uint a)
{
P2=0xfe;
P0=table[a/100];
delay(5);
P2=0xfd;
P0=table[a%100/10];
delay(5);
P2=0xfb;
P0=table[a%100%10];
delay(5);
}
void displayth(uint b)
{
P2=0xfe;
P0=table[b/100];
delay(5);
P2=0xfb;
P0=table[c/100];
delay(5);
}
void display(uint c)
{
P2=0xfd;
P0=table[c%100/10];
delay(5);
P2=0xfb;
P0=table[c%100%10]; delay(5);
}
unsigned char A_D()
{
unsigned char i,dat;
CS=1; //一個轉換周期開始
CLK=0; //為第一個脈沖作準備
CS=0; //CS置0,片選有效
DIO=1; //DIO置1,規定的起始信號
CLK=1; //第一個脈沖
CLK=0; //第一個脈沖的下降沿,此前DIO必須是高電平
DIO=1; //DIO置1, 通道選擇信號
CLK=1; //第二個脈沖,第2、3個脈沖下沉之前,DI必須跟別輸入兩位數據用于選擇通道,這里選通道CH0
CLK=0; //第二個脈沖下降沿
DIO=0; //DI置0,選擇通道0
CLK=1; //第三個脈沖
CLK=0; //第三個脈沖下降沿
DIO=1; //第三個脈沖下沉之后,輸入端DIO失去作用,應置1
CLK=1; //第四個脈沖
for(i=0;i<8;i++) //高位在前
{
CLK=1; //第四個脈沖
CLK=0;
dat<<=1; //將下面儲存的低位數據向右移
dat|=(unsigned char)DIO; //將輸出數據DIO通過或運算儲存在dat最低位
}
CS=1; //片選無效
return dat; //將讀書的數據返回
}
/***************************************************** 函數功能:主函數
***************************************************/
main(void)
{
init();
while(1)
{
key();
if((temp<tl)||(temp>th))
P13=0;
else
P13=1;
if(num==0)
{
display(temp);
}
if(num==1) {
displayth(th);
}
if(num==2)
{
displaytl(tl);
}
}
}
void timer0()
interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256
aa++;
if(aa==20)
{
ya=A_D();
temp=(ya*100/51);//((ya*5)*100/255);
aa=0;
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
久久免费精品视频
|
国产亚洲成av人片在线观看桃
|
国产99久久久国产精品下药
|
亚洲精品成人av
|
日韩欧美在线播放
|
亚洲一区二区在线视频
|
麻豆亚洲
|
亚洲网站在线
|
欧美精品免费观看二区
|
欧美一区二区在线观看
|
亚洲一区在线日韩在线深爱
|
日韩中文在线
|
久久99精品久久久久久国产越南
|
欧美激情精品久久久久
|
国产激情免费视频
|
日韩欧美大片在线观看
|
国产精品久久国产精品
|
日韩欧美三级电影
|
久久久久久成人
|
最近免费日本视频在线
|
黄色大片免费网站
|
国产精品免费一区二区三区
|
h视频网站在线观看
|
久久www免费人成看片高清
|
精精久久
|
精品久久精品
|
亚洲欧美日韩成人在线
|
亚洲成人99|
亚洲欧美中文日韩在线v日本
|
亚洲第一av|
国产福利在线
|
国产精品久久国产精品
|
成人免费精品视频
|
国产一级毛片精品完整视频版
|
福利成人
|
日韩无
|
欧美日韩国产一区二区三区不卡
|
国产三级一区二区
|
古装人性做爰av网站
|
成人免费视频播放
|
成人亚洲一区
|