久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開始

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

為什么CO傳感器MQ-7檢測(cè)的數(shù)據(jù)不能傳輸?shù)絾纹瑱C(jī)進(jìn)而在液晶屏上顯示呢?

[復(fù)制鏈接]
ID:316425 發(fā)表于 2018-6-12 09:19 | 顯示全部樓層 |閱讀模式
板子是自己焊接的,1602調(diào)試可用,圖片中與四根杜邦線相連的器件就是MQ-7,芯片與ADC0832的0通道連接,單片機(jī)進(jìn)行數(shù)據(jù)處理后將數(shù)據(jù)顯示在液晶屏1602上。程序是直接燒入在芯片中,所以下載器只接了正負(fù)極,給板子供電。

問題是MQ-7可以檢測(cè)氣體,但是數(shù)據(jù)傳不到單片機(jī),無法進(jìn)一步處理,是硬件問題還是軟件問題呢,請(qǐng)給出具體解決辦法吧,非常感謝了,以下是所有程序


主函數(shù)部分






  1. #include <reg52.h>
  2. #include <intrins.h>  
  3. #include <math.h>   
  4. #include <stdio.h>
  5. #include "ad08.h"
  6. #include "l1602.h"
  7. #define uint unsigned int
  8. #define uchar unsigned char


  9. uchar qt;

  10. void LCD_init(void);
  11. unsigned int Adc0832(unsigned char channel);
  12. void LCD_disp_char(uchar x,uchar y,uchar dat);//??????????????,X(0-15),y(1-2)  
  13. void LCD_disp_str(uchar x,uchar y,uchar *str);
  14. void main()
  15. {

  16.         LCD_init();           
  17.          

  18.         while(1)
  19.         {
  20.           qt=Adc0832(0);
  21.          qt = qt*19.607843; //轉(zhuǎn)換為實(shí)際電壓便于顯示
  22.    qt=qt/1000%10;
  23.          LCD_disp_str(9,0,"Q:");
  24.          LCD_disp_char(11,0,qt/100+0x30);
  25.          LCD_disp_char(12,0,qt%100/10+0x30);
  26.          LCD_disp_char(13,0,qt%100%10+0x30);
  27.                  LCD_disp_str(14,0,"p");

  28.         }
  29. }
復(fù)制代碼
ADC0832部分





  1. #include <reg52.h>
  2. #include <intrins.h>  
  3. #include <math.h>   
  4. #include <stdio.h>
  5. #include "ad08.h"

  6. unsigned int Adc0832(unsigned char channel)
  7. {
  8.         uchar i=0;
  9.         uchar j;
  10.         long dat=0;
  11.         uchar ndat=0;
  12.         uchar  Vot=0;

  13.         if(channel==0)channel=2;
  14.         if(channel==1)channel=3;
  15.         ADDI=1;
  16.         _nop_();
  17.         _nop_();
  18.         ADCS=0;//??CS?
  19.         _nop_();
  20.         _nop_();
  21.         ADCLK=1;//??CLK?
  22.         _nop_();
  23.         _nop_();
  24.         ADCLK=0;//拉低CLK端,形成下降沿1
  25.         _nop_();
  26.         _nop_();
  27.   ADCLK=0;
  28.         _nop_();
  29.         _nop_();       
  30.         ADCLK=1;//??CLK?
  31.         ADDI=channel&0x1;
  32.         _nop_();
  33.         _nop_();
  34.         ADCLK=0;//拉低CLK端,形成下降沿2
  35.         _nop_();
  36.         _nop_();
  37.         ADCLK=1;//??CLK?
  38.         ADDI=(channel>>1)&0x1;
  39.         _nop_();
  40.         _nop_();
  41.         ADCLK=0;//拉低CLK端,形成下降沿3
  42.         ADDI=1;//控制命令結(jié)束
  43.         _nop_();
  44.         _nop_();
  45.         dat=0;
  46.         for(i=0;i<8;i++)
  47.         {
  48.                 dat|=ADDO;//接收數(shù)據(jù)
  49.                 ADCLK=1;
  50.                 _nop_();
  51.                 _nop_();
  52.                 ADCLK=0;//形成一次時(shí)鐘脈沖
  53.                 _nop_();
  54.                 _nop_();
  55.                 dat<<=1;
  56.                 if(i==7)dat|=ADDO;
  57.         }
  58.         for(i=0;i<8;i++)
  59.         {
  60.                 j=0;
  61.                 j=j|ADDO;//接收數(shù)據(jù)
  62.                 ADCLK=1;
  63.                 _nop_();
  64.                 _nop_();
  65.                 ADCLK=0;//形成一次時(shí)鐘脈沖
  66.                 _nop_();
  67.                 _nop_();
  68.                 j=j<<7;
  69.                 ndat=ndat|j;
  70.                 if(i<7)ndat>>=1;
  71.         }
  72.         ADCS=1;//??CS?
  73.         ADCLK=0;//??CLK?
  74.         ADDO=1;//拉高數(shù)據(jù)端,回到初始狀態(tài)
  75.         dat<<=8;
  76.         dat|=ndat;

  77.         return(dat);            //return ad data
  78. }
復(fù)制代碼

ADC0832頭文件





  1. #ifndef _L08_H
  2. #define _L08_H

  3. #include <reg52.h>

  4. #define uchar unsigned char
  5. #define uint unsigned int       
  6. sbit ADCS         =P1^2; //ADC0832 使能口
  7. sbit ADCLK  =P1^3; //ADC0832 時(shí)鐘口
  8. sbit ADDI         =P1^4; //ADC0832                數(shù)據(jù)口
  9. sbit ADDO         =P1^4;

  10. unsigned int Adc0832(unsigned char channel);


  11. #endif
復(fù)制代碼

液晶1602部分





  1. #include <reg52.h>
  2. #include <intrins.h>  
  3. #include <math.h>   
  4. #include <stdio.h>
  5. #include "l1602.h"

  6. #define uchar unsigned char
  7. #define uint unsigned int

  8.        
  9. void delay_n10us(uint n)  //延時(shí)
  10. {                 
  11.         uint i;                    
  12.         for(i=n;i>0;i--)            
  13.          {         
  14.          nop_();_nop_();_nop_();_nop_();_nop_();_nop_();   
  15.          }
  16. }
  17. void LCD_init(void)
  18. {  
  19.         delay_n10us(10);  
  20.         LCD_write_command(0x38);//??8???,2?,5x7
  21.         delay_n10us(10);  LCD_write_command(0x0c);//???,???,???
  22.         delay_n10us(10);  LCD_write_command(0x06);//??????,?????
  23.         delay_n10us(10);  LCD_write_command(0x01);//??????  
  24.         delay_n10us(100);       //????,????,???n?10us
  25. }

  26. void LCD_write_command(uchar dat)
  27. {  
  28.         delay_n10us(10);  
  29.         LCD_RS=0;         //??
  30.         LCD_RW=0;         //??
  31.         LCD_E=1;          //??
  32.         LCD_DB=dat;  delay_n10us(10);  //????,??LCD1602?,?for??1???????????
  33.         LCD_E=0;  delay_n10us(10);  //????,??LCD1602?,?for??1???????????
  34. }

  35. void LCD_write_data(uchar dat)
  36. {  
  37.         delay_n10us(10);  
  38.         LCD_RS=1;          //??
  39.         LCD_RW=0;                   //??
  40.         LCD_E=1;           //??
  41.         LCD_DB=dat; delay_n10us(10);
  42.          LCD_E=0;  delay_n10us(10);
  43. }

  44. void LCD_disp_char(uchar x,uchar y,uchar dat)
  45. {   
  46.         uchar address;   
  47.         if(y==0)           
  48.         address=0x80+x;  
  49.         else           
  50.         address=0xc0+x;   
  51.         LCD_write_command(address);   
  52.         LCD_write_data(dat);
  53. }

  54. void LCD_disp_str(uchar x,uchar y,uchar *str)
  55. {   
  56.         uchar address;   
  57.         if(y==0)           
  58.         address=0x80+x;   
  59.         else           
  60.         address=0xc0+x;   
  61.         LCD_write_command(address);   
  62.         while(*str!='\0')   
  63.                 {      
  64.                 LCD_write_data(*str);
  65.                 str++;
  66.                 }
  67. }
復(fù)制代碼

液晶頭文件





  1. #ifndef _L1602_H
  2. #define _L1602_H

  3. #include <reg52.h>

  4. #define LCD_DB        P0


  5. #define uchar unsigned char
  6. sbit         LCD_RS=P2^7;   
  7. sbit         LCD_RW=P2^6;  
  8. sbit         LCD_E=P2^5;

  9. void LCD_init(void);                          //?????
  10. void LCD_write_command(uchar command);        //?????
  11. void LCD_write_data(uchar dat);               //?????  
  12. void LCD_disp_char(uchar x,uchar y,uchar dat);//??????????????,X(0-15),y(1-2)  
  13. void LCD_disp_str(uchar x,uchar y,uchar *str); //LCD1602???????

  14. #endif
復(fù)制代碼




請(qǐng)大家?guī)兔鉀Q以下吧,比較著急用呢,多謝了






IMG_20180612_090258.jpg
回復(fù)

使用道具 舉報(bào)

ID:330198 發(fā)表于 2018-6-12 11:11 | 顯示全部樓層
360截圖20180612110151834.jpg
uchar類型的qt范圍0--255,我懷疑ADC0832是可以讀數(shù)據(jù)的,就是你在轉(zhuǎn)換的時(shí)候qt乘上一個(gè)浮點(diǎn)數(shù)在賦值給qt的時(shí)候數(shù)據(jù)會(huì)出錯(cuò)。最好再加個(gè)浮點(diǎn)數(shù)類型的中間變量。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:316425 發(fā)表于 2018-6-12 12:11 | 顯示全部樓層
zhanghyg 發(fā)表于 2018-6-12 11:11
uchar類型的qt范圍0--255,我懷疑ADC0832是可以讀數(shù)據(jù)的,就是你在轉(zhuǎn)換的時(shí)候qt乘上一個(gè)浮點(diǎn)數(shù)在賦值給qt ...

我先試試,多謝了
回復(fù)

使用道具 舉報(bào)

ID:316425 發(fā)表于 2018-6-12 12:31 | 顯示全部樓層
zhanghyg 發(fā)表于 2018-6-12 11:11
uchar類型的qt范圍0--255,我懷疑ADC0832是可以讀數(shù)據(jù)的,就是你在轉(zhuǎn)換的時(shí)候qt乘上一個(gè)浮點(diǎn)數(shù)在賦值給qt ...

非常感謝,已經(jīng)有讀數(shù)了
回復(fù)

使用道具 舉報(bào)

ID:543049 發(fā)表于 2019-5-30 10:03 | 顯示全部樓層
在嗎,可以給我說一下電路圖什么樣子么?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人精品视频 | 免费视频成人国产精品网站 | 亚洲国产精品一区二区三区 | 九九精品在线 | 本道综合精品 | 在线免费观看欧美 | 国产精品精品3d动漫 | 久久久久久久电影 | 国产色婷婷久久99精品91 | 久久区二区 | 成人在线视频一区 | 中文字幕在线播放第一页 | 日日干夜夜操 | 国产一区二区在线播放 | 欧美成人精品一区二区男人看 | 九九九视频精品 | 午夜男人视频 | 久久亚洲一区二区 | 日本一区二区三区四区 | 国产一区91精品张津瑜 | 欧美日韩激情 | 这里有精品 | 亚洲国产精品成人 | 欧美精品在线免费观看 | 精品国产青草久久久久96 | 91av久久久 | 日韩成人在线播放 | 欧美爱爱视频 | 欧美激情一区二区三区 | 亚洲国产成人精品女人 | 亚洲一二三在线观看 | 九九福利 | 午夜专区| 中文字幕视频在线观看 | 久久亚洲天堂 | 又黄又色 | 欧美一区二区在线 | av毛片在线播放 | 欧美专区在线 | 成人精品视频在线 | 精品国产18久久久久久二百 |