找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 981|回复: 0
打印 上一主题 下一主题
收起左侧

能请大佬们看看程序有啥问题啊 求帮助

[复制链接]
跳转到指定楼层
楼主
ID:539012 发表于 2019-5-15 16:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include<reg51.h>        
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit cs=P3^5;
  6. sbit rd=P3^7;
  7. sbit wr=P3^6;
  8. sbit lcdrs=P2^0;
  9. sbit lcdrw=P2^1;
  10. sbit lcden=P2^2;
  11. sbit s1=P2^4;
  12. sbit s2=P2^5;
  13. sbit s3=P2^6;
  14. sbit s4=P2^7;
  15. sbit speaker=P3^2;
  16. sbit D1=P3^0;
  17. sbit D0=P3^1;
  18. unsigned char timer0h,timer0l,time;

  19. uchar code table[]="Humidity   ";
  20. uchar code table1[]="%";
  21. uchar code table2[]="Low";
  22. uchar code table3[]="%  High";
  23. uchar result,Low=202,High=216;
  24. void been(void)
  25. {
  26. unsigned char k,i;
  27.          int sszymmh[20];

  28. TMOD=1; //?CT0??????1
  29. EA=1;
  30. ET0=1;//IE=0x82 //CPU???,CT0???
  31.          i=0;  
  32.        while(i<35)
  33.                                  {              
  34.        k=sszymmh[i]+7*sszymmh[i+1]-1;
  35.        timer0h=FREQH[k];
  36.        timer0l=FREQL[k];
  37.        time=sszymmh[i+2];
  38.        i=i+3;
  39.        song();
  40.           }
  41.   }
  42. void delay(uint i)                //????
  43.         {      
  44.            uchar j;
  45.                while(i--)      
  46.                   {               
  47.                       for(j=0;j<115;j++)        
  48.                                   {
  49.                       };
  50.                   }
  51.         }
  52. void init_ad()            //???AD
  53.                {      
  54.                      cs=0;
  55.                }
  56.                   void start_ad()    //??AD
  57.         {      
  58.                         cs=0;  
  59.                                 _nop_();     
  60.                         wr=0;     
  61.                                 _nop_();  
  62.                         rd=1;   
  63.                                 _nop_();
  64.                         wr=1;      
  65.                                 _nop_();      
  66.                                 _nop_();      
  67.                         cs=1;     
  68.                                 _nop_();  
  69.                                 _nop_();
  70.         }
  71. void read_ad()           //  ?AD?????
  72. {     
  73.                 cs=0;   
  74.                      _nop_();  
  75.                 wr=1;      
  76.                      _nop_();
  77.                 wr=0;
  78.                      _nop_();                    
  79.                 rd=0;     
  80.                      _nop_();   
  81.                      _nop_();   
  82.                 result=P0;
  83.                      _nop_();   
  84.                      _nop_();        
  85.                                         rd=1;     
  86.                       _nop_();     
  87.                        cs=1;        
  88.                     _nop_();
  89. }  
  90.                         void write_com(uchar com)   //???????
  91.            {  
  92.                         lcdrs=0;
  93.                                  P1=com;  
  94.                                    delay(5);
  95.                                  lcden=1;  
  96.                                   delay(5);
  97.                                   lcden=0;
  98.            }
  99. void write_data(uchar result)    //???????
  100.           {   
  101.                       lcdrs=1;  
  102.                           P1=result;
  103.                                  delay(5);  
  104.                                  lcden=1;   
  105.                                delay(5);      
  106.                  lcden=0;
  107.           }
  108. void init()         //??????
  109.               {      
  110.                    uchar num;
  111.                    lcden=0;  
  112.               write_com(0x38);
  113.                    write_com(0x0c);
  114.                    write_com(0x06);
  115.                    write_com(0x01);           //????   
  116.                            write_com(0x8a);          //??????      
  117.               }
  118.         void display()                     //?????
  119.         {      
  120.         uint num, Low1,Low2,High1,High2;            
  121.                  uchar x,y;   
  122.                              x=result%100/10;     
  123.                              y=result%10;
  124.                                  Low1=Low%100/10;     
  125.                              Low2=Low%10;
  126.                                  High1=High%100/10;
  127.                                  High2=High%10;  
  128.                                     write_com(0x80);        //??????  
  129.                                      for(num=0;num<10;num++)
  130.                         {
  131.                                 write_data(table[num]);//??????          ????Humidity
  132.                         delay(5);
  133.                         }  
  134.                         write_com(0x8c);
  135.                         delay(5);
  136.                         write_data(table1[0]) ;                         //??%
  137.                      write_com(0x80+0x40);//?????????2?
  138.                                         for(num=0;num<3;num++)
  139.                         {
  140.                                 write_data(table2[num]);//??????           ?? ??Low
  141.                                                                 delay(5);
  142.                     }
  143.                         write_com(0x80+0x45);
  144.                 for(num=0;num<7;num++)
  145.                         {
  146.                                 write_data(table3[num]);//??????                 ?? ??High
  147.                                                                 delay(5);
  148.                         }
  149.                  write_com(0x80+0x43);       //?????? ?Low??     
  150.                              write_data(Low1+0x30);   
  151.                               delay(5);            
  152.                               write_data(Low2+0x30);
  153.                               delay(5);
  154.                                    write_com(0x80+0x4c);       //??????  High??
  155.                  write_data(High1+0x30);   
  156.                               delay(5);            
  157.                              write_data(High2+0x30);
  158.                              delay(5);
  159.                  write_data(table1[0]) ;                         //??%
  160.                      write_com(0x80+0x4e);//?????????2?
  161.     }
  162. void keyscan()
  163. {
  164.    if(s1==0)
  165.    {
  166.            delay(10);
  167.            if(s1==0)
  168.            {
  169.                  High++;
  170.                  if(High==99)
  171.                     High=98;
  172.                         while(!s1);
  173.                                    }
  174.    }
  175.    if(s2==0)
  176.    {
  177.            delay(10);
  178.            if(s2==0)
  179.            {
  180.                  High--;
  181.                  if(High==01)
  182.                     High=02;
  183.                         while(!s2);
  184.            }   
  185.    }
  186.    if(s3==0)
  187.    {
  188.            delay(10);
  189.              if(s3==0)
  190.                  {
  191.                      Low++;
  192.                                 while(!s3);
  193.                  }
  194.    }
  195.    if(s4==0)
  196.    {
  197.            delay(10);
  198.               if(s4==0)
  199.                   {
  200.                       Low--;
  201.                                   while(!s4);
  202.                                           }
  203.    }
  204. }        
  205. void delay2(unsigned char t)
  206.    {
  207.    unsigned char t1;
  208.    unsigned long t2;
  209.    for(t1=0;t1<t;t1++)
  210.    {
  211.     for(t2=0;t2<8000;t2++)
  212.              {
  213.              }
  214.            }
  215.         TR0=0;
  216. }
  217. void t0int() interrupt 1
  218. {
  219. TR0=0;
  220. speaker=!speaker;
  221. TH0=timer0h;
  222. TL0=timer0l;
  223. TR0=1;
  224. }
  225. void song()
  226. {
  227. TH0=timer0h;
  228. TL0=timer0l;
  229. TR0=1;
  230. delay2(time);                       
  231. }
  232. void main()
  233.         {               
  234.               lcdrw=0;   
  235.                              init_ad();   
  236.                           init();
  237.                                   Low=Low*0.39;
  238.                                           High=High*0.39;
  239.                                     while(1)     
  240.            {
  241.                     keyscan();
  242.                                          start_ad();      
  243.                           delay(10);   
  244.                        read_ad();  
  245.                        delay(10);
  246.                                    result=result*0.39;
  247.                    display();
  248.                    delay(1000);
  249.                     if(result>50)
  250.                    {
  251.                                 D0=0;;
  252.                     }     
  253.                }}
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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