欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 求MH-Z19二氧化碳傳感器的程序 [打印本頁]

作者: pass1    時間: 2017-12-31 10:12
標題: 求MH-Z19二氧化碳傳感器的程序
求MH-Z19二氧化碳傳感器的程序

作者: pass1    時間: 2017-12-31 10:13
有沒有大神有MH-Z19二氧化碳傳感器的程序
作者: cccc888    時間: 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)    //發送一字節    {    SBUF = dat;    while (!TI) ;    TI = 0;}void main(void){    uint tmp;    uchar i;    TMOD = 0x20;    // T1定時方式2    SCON = 0x40;    //串行工作 方式1    PCON = 0x00;    //不加倍    TH1 = TL1 = 0xfd;   //定時器1賦初值  保證波特率9600    TR1 = 1;    //開定時器1    REN = 1;    //允許串口接收    init_1602();    //液晶初始化    delayms(10);    ES = 1; //打開串口中斷    EA = 1; //開總中斷    while (1)    {        for (i = 0; i < 9; i++) //向co2傳感器發送數據        {            send(tab[i]);        }        delayms(1000);  //延時一秒  刷新測得數據        tmp = date[2] * 256 + date[3];  //計算出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   //串口中斷服務函數{    static uchar j=0;    ES = 0; //禁止中斷    if (!RI) ;    RI = 0; //清楚接收完畢標志    date[j] = SBUF;    if (date[0] == 0xff)    //判斷接收到的第一位為傳感器所發數據        j++;    else        j = 0;    if (j == 9) //接收傳感器所發數據9字節        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顯示標尺   //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]);}





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1