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

QQ登錄

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

搜索
查看: 3189|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

調(diào)溫報(bào)警器.聯(lián)調(diào)后結(jié)果顯示就一個(gè)0.溫度傳感器是我后來(lái)加的.大神們能幫我看看錯(cuò)誤在哪

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
50黑幣
本課程設(shè)計(jì)借助電路仿真軟件Protues對(duì)基于AT89C51單片機(jī)的溫度報(bào)警器的設(shè)計(jì),設(shè)計(jì)的內(nèi)容是由單片機(jī)、ADC0808作為溫度調(diào)節(jié)器、并由數(shù)碼管顯示的溫度報(bào)警器。當(dāng)調(diào)節(jié)溫度小于60攝氏度或者高于160攝氏度,系統(tǒng)將產(chǎn)生不同頻率的聲音,并且對(duì)應(yīng)的LED等閃爍。





  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  5. uchar Temperature[]={0,0,0};
  6. sbit ST= P2^5;
  7. sbit OE= P2^7;
  8. sbit EOC =P2^6;
  9. sbit CLK =P2^4;
  10. sbit H_LED=P3^0;
  11. sbit L_LED=P3^1;
  12. sbit BEEP = P3^7;
  13. uchar t=0;
  14. void DelayMS(intnb x)
  15. {
  16. uchar i;
  17. while(x)
  18. for(i = 0;i< 120; i++);
  19. }
  20. void Show_Temperature()
  21. {
  22. uchar i,DSY_IDX[]= {0xF7,0xFB,0xFD};
  23. for  (i = 0;i < 3; i++)
  24. {
  25.    P0 = DSY_CODE[ Temperature[i] ];
  26.    P2 = DSY_IDX[i];
  27.    DelayMS(5);
  28.    P2 = 0x0F;
  29.   }
  30. }

  31. void main()
  32. {
  33.   uchar d;
  34.   IE = 0x8a;
  35.   TMOD = 18;
  36.   TH0 = 245;
  37.   TL0 = 0;
  38.   TH1 = (65536 -1000) /256;
  39.   TL1 = (65536 -1000) &256;
  40.   TR0 = 1;
  41.   H_LED = L_LED = 1;
  42.   while(1)
  43. {
  44.    ST = 0; ST = 1; ST = 0;
  45.    while(1)
  46.   {
  47.     if(EOC == 1)
  48.     {
  49.       OE = 1;
  50.       d  = P1;
  51.       OE = 0;
  52.       Temperature[2] = d/100;
  53.       Temperature[1] = d%100/10;
  54.       Temperature[0] = d%10;
  55. Show_Temperature();
  56.   if(d < 60)
  57. {
  58.    TR1 = 1;  L_LED = !H_LED;
  59.   }
  60.   else
  61.   if(d > 160)
  62. {
  63.   TR1 = 1;  H_LED = !L_LED;
  64. }
  65.   else
  66. {
  67.   TR1 = 0;  H_LED = L_LED = 1;
  68. }
  69. break;
  70.           }
  71.          }
  72.        }
  73.     }
  74. void T0_INT() interrupt 1
  75. {
  76.    CLK = ~CLK;
  77. }
  78. void T1_INT() interrupt 3
  79. {
  80.   TL1 = (65536 -1000) % 256;
  81.   BEEP = ~BEEP;
  82.       if (++t !=150 ) return;
  83.    else  if (++t !=60 ) return;
  84.    t = 0;
  85.   DelayMS(20);
  86. }
復(fù)制代碼

00000000000000000.png (39.13 KB, 下載次數(shù): 136)

00000000000000000.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:121940 發(fā)表于 2016-6-3 23:39 | 只看該作者
你這個(gè)圖里面看不到你的溫度傳感器還有你的程序后面部分問(wèn)題很多 沒(méi)辦法改
回復(fù)

使用道具 舉報(bào)

板凳
ID:108510 發(fā)表于 2016-6-3 23:50 | 只看該作者
wutianyudengyan 發(fā)表于 2016-6-3 23:39
你這個(gè)圖里面看不到你的溫度傳感器還有你的程序后面部分問(wèn)題很多 沒(méi)辦法改

右下邊那個(gè)就是.DSB1820
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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