冰楓論壇

 找回密碼
 立即註冊
ads_sugarbook
搜索
查看: 498|回覆: 0
打印 上一主題 下一主題

[討論] STC8H1K08 多功能溫濕度計

[複製鏈接]

2609

主題

0

好友

947

積分

高級會員

Rank: 4

UID
373967
帖子
7454
主題
2609
精華
0
積分
947
楓幣
11347
威望
927
存款
16000
贊助金額
0
推廣
0
GP
1205
閱讀權限
50
在線時間
408 小時
註冊時間
2023-1-12
最後登入
2024-5-7

2023端午節紀念勳章 2023中秋節紀念勳章 2023聖誕節紀念勳章

跳轉到指定樓層
1
發表於 2023-4-9 09:18:57 |只看該作者 |倒序瀏覽
STC8H1K08是一款基於STC8系列單片機的多功能溫濕度計,其所需的零件和連接腳位可能會根據具體的設計方案而有所不同。以下是一些常用的零件和連接腳位:

所需零件:

STC8H1K08單片機
溫濕度傳感器
液晶顯示屏
電源電路和電池等
連接腳位:

溫濕度傳感器連接到單片機的GPIO口
液晶顯示屏連接到單片機的SPI接口和GPIO口
電源電路和電池連接到單片機的電源口
程序代碼:
以下是STC8H1K08多功能溫濕度計的示例代碼:


#include <reg52.h>
#include <intrins.h>

typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned long u32;

#define LCD_SCL P2_0
#define LCD_SDA P2_1
#define LCD_RST P2_2

sbit LCD_SCL=P2^0;
sbit LCD_SDA=P2^1;
sbit LCD_RST=P2^2;

u8 code number[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
u8 code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

u8 humiture_data[4]={0,0,0,0};

void delay(u16 i)
{
    while(i--);
}

void IIC_start()
{
    LCD_SDA=1;
    LCD_SCL=1;
    LCD_SDA=0;
    LCD_SCL=0;
}

void IIC_stop()
{
    LCD_SDA=0;
    LCD_SCL=1;
    LCD_SDA=1;
    LCD_SCL=0;
}

void IIC_write_byte(u8 dat)
{
    u8 i;
    for(i=0;i<8;i++)
    {
        LCD_SCL=0;
        if(dat&0x80) LCD_SDA=1;
        else LCD_SDA=0;
        LCD_SCL=1;
        dat<<=1;
    }
    LCD_SCL=0;
    LCD_SDA=1;
    LCD_SCL=1;
    while(LCD_SDA);
    LCD_SCL=0;
}

u8 IIC_read_byte()
{
    u8 i,dat;
    for(i=0;i<8;i++)
    {
        LCD_SCL=0;
        LCD_SCL=1;
        dat<<=1;
        if(LCD_SDA) dat|=0x01;
    }
    LCD_SCL=0;
    LCD_SDA=1;
    LCD_SCL=1;
    return dat;
}

void DHT11_read()
{
    u8 i,j;
    IIC_start();
    IIC_write_byte(0x80);
    if(IIC_read_byte()!=0x80) return;
    for(i=0;i<4;i++)
    {
        humiture_data[i]=0;
        for(j=0;j<8;j++)
        {
            humiture_data[i]<<=1;
            if(IICread_byte()&0x80) humiture_data[i]|=0x01;
}
}
IIC_stop();
}

void init_LCD()
{
LCD_SCL=0;
LCD_SDA=1;
LCD_RST=1;
delay(50000);
LCD_RST=0;
delay(50000);
LCD_RST=1;
delay(50000);
IIC_start();
IIC_write_byte(0x78);
IIC_write_byte(0x8a);
IIC_write_byte(0x00);
IIC_stop();
IIC_start();
IIC_write_byte(0x78);
IIC_write_byte(0xae);
IIC_write_byte(0x00);
IIC_stop();
}

void display(u8 *s,u8 x,u8 y)
{
u8 i;
IIC_start();
IIC_write_byte(0x78);
IIC_write_byte(0x40|x);
IIC_write_byte(0xb0|y);
for(i=0;i<8;i++)
{
IIC_write_byte(table[s[i]]);
}
IIC_stop();
}

void main()
{
u8 i;
init_LCD();
while(1)
{
DHT11_read();
display(number+humiture_data[0]/10,0,0);
display(number+humiture_data[0]%10,8,0);
display(number+humiture_data[2]/10,32,0);
display(number+humiture_data[2]%10,40,0);
for(i=0;i<8;i++) display("humi",i6,1);
for(i=0;i<8;i++) display("temp",i6,2);
delay(500000);
}
}



代碼使用了DHT11傳感器來測量溫濕度,並將結果顯示在液晶屏幕上。
收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1骰子
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$
高級模式
B Color Image Link Quote Code Smilies |上傳

廣告刊登意見回饋關於我們職位招聘本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-5-7 05:58

回頂部