大神看一下,做的是一个气体报警器为什么我程序能跑,protus能仿真,灯不亮,喇叭不叫呢?

2019-07-18 10:04发布

  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  5. uchar wei[4]={0X01,0X02,0X04,0X08};
  6. sbit LED_G=P3^5;
  7. sbit LED_R=P3^6;
  8. sbit beep=P3^7;
  9. sbit ST=P3^0;
  10. sbit OE=P3^1;
  11. sbit EOC=P3^2;
  12. sbit CLK=P3^3;
  13. uint z,x,c,v,AD0808,i,date;
  14. void delay(uchar t)
  15. {
  16.   uchar i,j;
  17. for(i=0;i<t;i++)
  18. {
  19.     for(j=13;j>0;j--);
  20.    {
  21.     }
  22.   }
  23. }
  24. void xianshi()
  25. {
  26.   z=date/1000;
  27.   x=date%1000/100;
  28.   c=date%100/10;
  29.   v=date%10;
  30.   P2=wei[0];
  31.   P1=duan[z]&0x7f;
  32.   delay(50);
  33.   P2=wei[1];
  34.   P1=duan[x];
  35.   delay(50);
  36.   P2=wei[2];
  37.   P1=duan[c];
  38.   delay(50);
  39.   P2=wei[3];
  40.   P1=duan[v];
  41.   delay(50);
  42. }
  43. void timer0() interrupt 1
  44. {
  45.   TH0=(65536-2)/256;
  46.   TL0=(65536-2)%256;
  47.   CLK=!CLK;
  48. }
  49. void main()
  50. {  
  51.    LED_G=0;LED_R=1;
  52.    beep=0;
  53.   TMOD=0X01;
  54.   CLK=0;
  55.   TH0=(65536-2)/256;
  56.   TL0=(65536-2)%256;
  57.   EA=1;
  58.   ET0=1;
  59.   TR0=1;
  60.   while(1)
  61. {
  62.   ST=0;
  63.   ST=1;
  64.   ST=0;
  65.   while(!EOC);
  66.   OE=1;
  67.   AD0808=P0;
  68.   OE=0;
  69.   if(AD0808>=251)
  70.   AD0808=250;
  71.   date=AD0808*20;
  72.   xianshi();
  73.   if(AD0808>150)
  74. beep=1,LED_G=1,LED_R=0;
  75. else
  76.   Beep=0,LED_G=0,LED_R=1;
  77. }
  78. }
复制代码

protus仿真 protus仿真
气体检测111.DSN 下载积分: 积分 -1 分
143.67 KB, 下载次数: 28, 下载积分: 积分 -1 分 protus仿真
qqq.hex 下载积分: 积分 -1 分
69 Bytes, 下载次数: 26, 下载积分: 积分 -1 分 hex文件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。