中文字幕无码不卡一区二区三区_少妇被又大又粗又爽毛片久久黑人_91精品国产在热久久无毒不卡_久久久久久亚洲综合网站

技術(shù)熱線: 4007-888-234
設(shè)計開發(fā)

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開發(fā)工具

提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

技術(shù)支持

從全面的產(chǎn)品導入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

新聞中心

提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)

單片機開發(fā):如何用8051單片機做一個溫度計

更新時間: 2021-10-19
閱讀量:3172

溫度傳感器廣泛用于電子設(shè)備中,用來顯示實時溫度,比如我們經(jīng)??吹揭恍?shù)字時鐘便帶有溫度計,這是由于其中嵌入了溫度傳感器。在這個項目中,將展示如何設(shè)計數(shù)字溫度傳感器電路。在這個過程中,使用的是8051單片機。

溫度值是模擬的,因此它需要使用模數(shù)轉(zhuǎn)換器(ADC)轉(zhuǎn)換為數(shù)字值,然后顯示出來。

一、數(shù)字溫度傳感器電路原理

該電路的主要原理是將模擬溫度值轉(zhuǎn)換為數(shù)字值,并在LCD顯示屏上顯示數(shù)字溫度值。這里使用了8051單片機AT89C51,它沒有內(nèi)置ADC。因此,需要將外部ADC芯片ADC0804與8051單片機連接起來,以將模擬溫度值轉(zhuǎn)換為數(shù)字值。

二、使用8051的數(shù)字溫度傳感器電路

1.所需組件

AT89C51(8051單片機);
11.0592MHz晶振;
2X33pF電容器;
10μF/16V電容;
3X10KΩ電阻器;
1KΩx8電阻包;
10KΩ電位器;
16X2液晶顯示器;
ADC0804;
LM35;
150pF電容;
330Ω電阻;
電源;
連接電線。

2.電路設(shè)計

ADCIC的數(shù)字輸出引腳連接到8051的PORT3引腳。PORT0引腳使用1KΩ電阻包上拉,它們連接到16×2LCD的數(shù)據(jù)引腳。8051的P2.0和P2.1接LCD的RS和E。

LM35連接到ADC0804的模擬輸入引腳VIN+(引腳6)。此處不解釋振蕩器、復位等基本組件。

完成所有連接并將代碼燒錄到8051單片機后,打開電源。LM35溫度傳感器向ADC0804提供模擬溫度數(shù)據(jù),ADC0804將其轉(zhuǎn)換為數(shù)字值并發(fā)送到8051。

接收到數(shù)字值后,8051單片機執(zhí)行一個小的計算,然后在LCD上顯示溫度。詳細代碼如下:


#include<reg51.h>
#define lcd P0
#define dat P3
sbit rs=P2^0;
sbit e=P2^1;


void delay (int);
void display (unsigned char);
void cmd (unsigned char);
void init (void);
void string (char *);
void intro (void);
unsigned char degree[8]={0x0e,0x0a,0x0e,0x00,0x00,0x00,0x00,0x00};
char i=0;

void delay (int d)
{
    unsigned char i=0;
    for(;d>0;d--)
    {
        for(i=250;i>0;i--);
        for(i=248;i>0;i--);
    }
}
void cmd (unsigned char c)
{
    lcd=c;
    rs=0;
    e=1;
    delay(10);
    e=0;
}
void display (unsigned char c)
{
    lcd=c;
    rs=1;
    e=1;
    delay(10);
    e=0;
}
void string (char *c)
{
    while(*c)
    {
        display(*c++);
    }
}
void init (void)
{
    cmd(0x38);
    cmd(0x01);
  cmd(0x0c);
    cmd(0x80);
}
void intro (void)
{
    string("  Electronics  ");
    cmd(0xc0);
    string("      Hub      ");
    delay(1000);
    cmd(0x01);
    string("    Digital    ");
    cmd(0xc0);
    string("  Thermometer  ");
    delay(1000);
    cmd(0x01);
        cmd(0x40);
        for(i=0;i<8;i++)
        display(degree[i]);
      i=0;
     cmd(0x80);
}

void main()
{
    unsigned int val=0;
    unsigned int temp=0;
    init();
    intro();
    dat=0xff;
    while(1)
    {
        if(i==0)
        {
            string("Temp: ");
            i++;
        }
        val=dat*1.953;
        cmd(0x86);
        
        
        temp=(((val/10)%10)+48);
        display(temp);
        
        temp=((val%10)+48);
        display(temp);
    if(i==1)
        {
        display(0);
        string("C");
            i++;
        }
        delay(300);
    }
    while(1);
}


以上就是英銳恩單片機開發(fā)工程師分享的單片機知識,英銳恩專注單片機應(yīng)用方案設(shè)計與開發(fā),提供8位單片機、16位單片機、32位單片機。

相關(guān)文章推薦:

卢湾区| 定陶县| 札达县| 新干县| 镇雄县| 长治市| 佛冈县| 红原县| 镇宁| 麦盖提县| 上高县| 荆州市| 广西| 台湾省| 拜城县| 裕民县| 新晃| 峡江县| 大洼县| 遵义县| 玉林市| 德清县| 永丰县| 金乡县| 清镇市| 筠连县| 吉木萨尔县| 田东县| 金溪县| 河津市| 观塘区| 万荣县| 阜阳市| 栾川县| 泌阳县| 天峻县| 长海县| 格尔木市| 寿阳县| 长阳| 株洲县|