找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2320|回復(fù): 2
收起左側(cè)

求MH-Z19二氧化碳傳感器的程序

[復(fù)制鏈接]
ID:269410 發(fā)表于 2017-12-31 10:12 | 顯示全部樓層 |閱讀模式
求MH-Z19二氧化碳傳感器的程序
回復(fù)

使用道具 舉報(bào)

ID:269410 發(fā)表于 2017-12-31 10:13 | 顯示全部樓層
有沒(méi)有大神有MH-Z19二氧化碳傳感器的程序
回復(fù)

使用道具 舉報(bào)

ID:258566 發(fā)表于 2017-12-31 12:55 | 顯示全部樓層
#include"reg52.h"#include"stdio.h"#include"intrins.h"#include"lcd1602.H"#define uchar unsigned char#define uint unsigned int#define ulong unsigned longuchar code tab[9] ={ 0xff, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79 };uchar date[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };void delayms(uint xms){    uint x, y;    for (x = xms; x > 0; x--)        for (y = 110; y > 0; y--) ;}void send(uchar dat)    //發(fā)送一字節(jié)    {    SBUF = dat;    while (!TI) ;    TI = 0;}void main(void){    uint tmp;    uchar i;    TMOD = 0x20;    // T1定時(shí)方式2    SCON = 0x40;    //串行工作 方式1    PCON = 0x00;    //不加倍    TH1 = TL1 = 0xfd;   //定時(shí)器1賦初值  保證波特率9600    TR1 = 1;    //開(kāi)定時(shí)器1    REN = 1;    //允許串口接收    init_1602();    //液晶初始化    delayms(10);    ES = 1; //打開(kāi)串口中斷    EA = 1; //開(kāi)總中斷    while (1)    {        for (i = 0; i < 9; i++) //向co2傳感器發(fā)送數(shù)據(jù)        {            send(tab[i]);        }        delayms(1000);  //延時(shí)一秒  刷新測(cè)得數(shù)據(jù)        tmp = date[2] * 256 + date[3];  //計(jì)算出co2濃度值        if (tmp > 9999)            tmp = 0;        WRITE_LCD1602_COM(0x80 + 8);        if ((tmp / 1000) > 0)            WRITE_LCD1602_DAT(LCD1602_Table[tmp / 1000]);        else            WRITE_LCD1602_DAT(' ');        WRITE_LCD1602_DAT(LCD1602_Table[tmp00 / 100]);        WRITE_LCD1602_DAT(LCD1602_Table[tmp0 / 10]);        WRITE_LCD1602_DAT(LCD1602_Table[tmp]);    }}void serial() interrupt 4   //串口中斷服務(wù)函數(shù){    static uchar j=0;    ES = 0; //禁止中斷    if (!RI) ;    RI = 0; //清楚接收完畢標(biāo)志    date[j] = SBUF;    if (date[0] == 0xff)    //判斷接收到的第一位為傳感器所發(fā)數(shù)據(jù)        j++;    else        j = 0;    if (j == 9) //接收傳感器所發(fā)數(shù)據(jù)9字節(jié)        j = 0;    ES = 1; //允許串口中斷}//////////////////////////////////////////////////////////////////////////////////////////////lcd1602.H:#define uchar unsigned char#define uint unsigned intsbit RS = P2 ^ 5;sbit RW = P2 ^ 6;sbit EN = P2 ^ 7;uchar LCD1602_Table[] = "0123456789";//LCD1602顯示標(biāo)尺   //0123456789abcdefuchar code DIS_TIM[16] = { "    PPM=        " };    //顯示溫濕度uchar code DIS_STA[16] = { "  Test is   oK! " };    //uchar code DIS[16] = { "alarm       ppm" }; //extern void delayms(uint xms);void WRITE_LCD1602_DAT(uchar date){    EN = 0;    RS = 1;    P0 = date;    EN = 1;    delayms(2);    EN = 0;}void WRITE_LCD1602_COM(uchar date){    EN = 0;    RS = 0;    P0 = date;    EN = 1;    delayms(2);    EN = 0;}void init_1602(){    unsigned char i;    RW = 0;    WRITE_LCD1602_COM(0x38);    WRITE_LCD1602_COM(0x0c);    WRITE_LCD1602_COM(0x06);    WRITE_LCD1602_COM(0x01);    WRITE_LCD1602_COM(0x80);    for (i = 0; i < 8; i++)        WRITE_LCD1602_DAT(DIS_TIM[i]);}

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表