找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2519|回复: 3
收起左侧

调温报警器.联调后结果显示就一个0.温度传感器是我后来加的.大神们能帮我看看错误在哪

[复制链接]
ID:108510 发表于 2016-6-3 23:22 | 显示全部楼层 |阅读模式
50黑币
本课程设计借助电路仿真软件Protues对基于AT89C51单片机的温度报警器的设计,设计的内容是由单片机、ADC0808作为温度调节器、并由数码管显示的温度报警器。当调节温度小于60摄氏度或者高于160摄氏度,系统将产生不同频率的声音,并且对应的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. }
复制代码

00000000000000000.png
回复

使用道具 举报

ID:108510 发表于 2016-6-3 23:50 | 显示全部楼层
wutianyudengyan 发表于 2016-6-3 23:39
你这个图里面看不到你的温度传感器还有你的程序后面部分问题很多 没办法改

右下边那个就是.DSB1820
回复

使用道具 举报

ID:121940 发表于 2016-6-3 23:39 | 显示全部楼层
你这个图里面看不到你的温度传感器还有你的程序后面部分问题很多 没办法改
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表