標(biāo)題: 單片機(jī)溫度監(jiān)測(cè) 個(gè)位無(wú)法顯示 求幫助 [打印本頁(yè)]

作者: 常常常常    時(shí)間: 2021-12-16 12:04
標(biāo)題: 單片機(jī)溫度監(jiān)測(cè) 個(gè)位無(wú)法顯示 求幫助


單片機(jī)源程序如下:
  1. #include "reg51.h"
  2. #include "intrins.h"
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define out P0
  6. sbit smg1=out^4;
  7. sbit smg2=out^5;
  8. sbit DQ=P3^7;
  9. void delay5(uchar n);
  10. void init_ds18b20(void);
  11. uchar readbyte(void);
  12. void writebyte(uchar dat);
  13. uchar retemp(void);
  14. void main()
  15. {
  16.   uchar i,temp;
  17.         while(1)
  18.         {
  19.                 P0=0xff;
  20.           temp=retemp();
  21.                 for(i=0;i<5;i++)
  22.                 {
  23.                   out=(temp/10)&0x0f;
  24.                         smg1=0;
  25.                         smg2=1;
  26.                         delay5(100);
  27.                         out=(temp%10)&0x0f;
  28.                         smg1=1;
  29.                         smg2=0;
  30.                         delay5(100);
  31.                 }
  32.         }
  33. }
  34. void delay5(uchar i)
  35. {
  36.    while(i--);
  37. }
  38. void init_ds18b20(void)
  39. {
  40.   uchar x=0;
  41.         DQ=0;
  42.         delay5(120);
  43.         DQ=1;
  44.         delay5(16);
  45.         delay5(80);
  46. }
  47. uchar readbyte(void)
  48. {
  49.   uchar i=0;
  50.         uchar date=0;
  51.           for(i=8;i>0;i--)
  52.            {
  53.                    DQ=0;
  54.                          delay5(1);
  55.                          DQ=1;
  56.                          date>>=1;
  57.                          if(DQ)
  58.                          date|=0x80;
  59.                          delay5(11);
  60.                  }
  61.                  return(date);
  62. }
  63. void writebyte(uchar dat)
  64. {
  65.   uchar i=0;
  66.           for(i=8;i>0;i--)
  67.            {
  68.                    DQ=0;
  69.                          DQ=dat&0x01;
  70.                          delay5(12);
  71.                          DQ=1;
  72.                          dat>>=1;
  73.                          delay5(5); }
  74. }
  75. uchar retemp(void)
  76. {
  77.   uchar a,b,tt;
  78.          uint t;
  79.          init_ds18b20();
  80.         writebyte(0xcc);
  81.         writebyte(0x44);
  82.         init_ds18b20();
  83.         writebyte(0xcc);
  84.         writebyte(0xbe);
  85.         a=readbyte();
  86.         b=readbyte();
  87.         t=b;
  88.         t<<=8;
  89.         t=t|a;
  90.         tt=t*0.0625;
  91.         return(tt);
  92. }
復(fù)制代碼

所有資料51hei附件下載:
溫度監(jiān)測(cè).rar (76.43 KB, 下載次數(shù): 4)



作者: lsqtzj    時(shí)間: 2022-1-1 12:02
不是吧,仿真圖少了條電阻連個(gè)位三極管基極連線




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