发 帖  
张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件, 👉戳此立抢👈
[问答] 程序赋值有问题很难受,大佬们求帮助
249 程序
分享
  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. void been(void)
  26. {
  27.                  unsigned char k,i;
  28.                          int sszymmh[20];
  29.         code unsigned char FREQH()={0x00};
  30.         code unsigned char FREQL()={0x64};
  31.                  
  32.                  TMOD=1; //?CT0??????1
  33.                  EA=1;
  34.                  ET0=1;//IE=0x82 //CPU???,CT0???
  35.                                                  i=0;  
  36.                          while(i<35)
  37.                         {              
  38.                                          k=sszymmh[i]+7*sszymmh[i+1]-1;
  39.                                          timer0h=FREQH[k];
  40.                                          timer0l=FREQL[k];
  41.                                          time=sszymmh[i+2];
  42.                                          i=i+3;
  43.                                          song();
  44.         }
  45. }

  46. void delay(uint i)                //????
  47. {      
  48.            uchar j;
  49.            
  50.           while(i--)      
  51.           {               
  52.                for(j=0;j<115;j++)        
  53.                                   {
  54.                       }
  55.                                         ;
  56.            }
  57. }

  58. void init_ad()            //???AD
  59. {      
  60.            cs=0;
  61. }

  62. void start_ad()    //??AD
  63. {      
  64.                         cs=0;  
  65.                                 _nop_();     
  66.                         wr=0;     
  67.                                 _nop_();  
  68.                         rd=1;   
  69.                                 _nop_();
  70.                         wr=1;      
  71.                                 _nop_();      
  72.                                 _nop_();      
  73.                         cs=1;     
  74.                                 _nop_();  
  75.                                 _nop_();
  76. }

  77. void read_ad()           //  ?AD?????
  78. {     
  79.                 cs=0;   
  80.                      _nop_();  
  81.                 wr=1;      
  82.                      _nop_();
  83.                 wr=0;
  84.                      _nop_();                    
  85.                 rd=0;     
  86.                      _nop_();   
  87.                      _nop_();   
  88.                 result=P0;
  89.                      _nop_();   
  90.                      _nop_();        
  91.                                         rd=1;     
  92.                       _nop_();     
  93.                        cs=1;        
  94.                     _nop_();
  95. }  

  96. void write_com(uchar com)   //???????
  97. {  
  98.                         lcdrs=0;
  99.                                  P1=com;  
  100.                                    delay(5);
  101.                                  lcden=1;  
  102.                                   delay(5);
  103.                                   lcden=0;
  104. }

  105. void write_data(uchar result)    //???????
  106. {   
  107.                       lcdrs=1;  
  108.                           P1=result;
  109.                                  delay(5);  
  110.                                  lcden=1;   
  111.                                delay(5);      
  112.                  lcden=0;
  113. }

  114. void init()         //??????
  115. {      
  116.                    uchar num;
  117.                    lcden=0;  
  118.               write_com(0x38);
  119.                    write_com(0x0c);
  120.                    write_com(0x06);
  121.                    write_com(0x01);           //????   
  122.                            write_com(0x8a);          //??????      
  123. }

  124. void display()                     //?????
  125. {      
  126.         uint num, Low1,Low2,High1,High2;            
  127.                  uchar x,y;   
  128.                              x=result%100/10;     
  129.                              y=result%10;
  130.                                  Low1=Low%100/10;     
  131.                              Low2=Low%10;
  132.                                  High1=High%100/10;
  133.                                  High2=High%10;  
  134.                                     write_com(0x80);        //??????  
  135.                                      for(num=0;num<10;num++)
  136.                         {
  137.                                 write_data(table[num]);//??????          ????Humidity
  138.                         delay(5);
  139.                         }  
  140.                         write_com(0x8c);
  141.                         delay(5);
  142.                         write_data(table1[0]) ;                         //??%
  143.                      write_com(0x80+0x40);//?????????2?
  144.                                         for(num=0;num<3;num++)
  145.                         {
  146.                                 write_data(table2[num]);//??????           ?? ??Low
  147.                                                                 delay(5);
  148.                     }
  149.                         write_com(0x80+0x45);
  150.                 for(num=0;num<7;num++)
  151.                         {
  152.                                 write_data(table3[num]);//??????                 ?? ??High
  153.                                                                 delay(5);
  154.                         }
  155.                  write_com(0x80+0x43);       //?????? ?Low??     
  156.                              write_data(Low1+0x30);   
  157.                               delay(5);            
  158.                               write_data(Low2+0x30);
  159.                               delay(5);
  160.                                    write_com(0x80+0x4c);       //??????  High??
  161.                  write_data(High1+0x30);   
  162.                               delay(5);            
  163.                              write_data(High2+0x30);
  164.                              delay(5);
  165.                  write_data(table1[0]) ;                         //??%
  166.                      write_com(0x80+0x4e);//?????????2?
  167. }

  168. void keyscan()
  169. {
  170.    IF(s1==0)
  171.    {
  172.            delay(10);
  173.            if(s1==0)
  174.            {
  175.                  High++;
  176.                  if(High==99)
  177.                     High=98;
  178.                         while(!s1);
  179.                                    }
  180.    }
  181.    if(s2==0)
  182.    {
  183.            delay(10);
  184.            if(s2==0)
  185.            {
  186.                  High--;
  187.                  if(High==01)
  188.                     High=02;
  189.                         while(!s2);
  190.            }   
  191.    }
  192.    if(s3==0)
  193.    {
  194.            delay(10);
  195.              if(s3==0)
  196.                  {
  197.                      Low++;
  198.                                 while(!s3);
  199.                  }
  200.    }
  201.    if(s4==0)
  202.    {
  203.            delay(10);
  204.               if(s4==0)
  205.                   {
  206.                       Low--;
  207.                                   while(!s4);
  208.                                           }
  209.    }
  210. }        
  211. void delay2(unsigned char t)
  212.    {
  213.    unsigned char t1;
  214.    unsigned long t2;
  215.    for(t1=0;t1<t;t1++)
  216.    {
  217.     for(t2=0;t2<8000;t2++)
  218.              {
  219.              }
  220.            }
  221.         TR0=0;
  222. }
  223.          
  224. void t0int() interrupt 1
  225. {
  226. TR0=0;
  227. speaker=!speaker;
  228. TH0=timer0h;
  229. TL0=timer0l;
  230. TR0=1;
  231. }
  232. void song()
  233. {
  234. TH0=timer0h;
  235. TL0=timer0l;
  236. TR0=1;
  237. delay2(time);                       
  238. }
  239. void main()
  240.         {               
  241.            lcdrw=0;   
  242.            init_ad();   
  243.                  init();
  244.                  
  245.                  Low=Low*0.39;
  246.                  High=High*0.39;
  247.                  while(1)     
  248.            {
  249.                     keyscan();
  250.                     start_ad();      
  251.                      delay(10);   
  252.                     read_ad();  
  253.                     delay(10);
  254.                         
  255.                           result=result*0.39;
  256.                         
  257.                    display();
  258.                    delay(1000);
  259.                     if(result>50)
  260.                    {
  261.                                 D0=0;;
  262.                     }     
  263.                }}
复制代码

0
2019-5-15 17:28:41   评论 分享淘帖 邀请回答
3个回答
2019-5-15 17:49:02 3 评论

举报

3 条评论
符号用错了吧,怎么用圆括号呢
2019-5-15 20:13:27 1 评论

举报

1 条评论
问题是你的这个定义是定义的什么,code unsigned char FREQH()={0x00};,如果是数组的话,应该是FREQH[]吧
2019-5-16 23:36:59 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

我要提问
课程
    关闭

    站长推荐 上一条 /8 下一条

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