久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1388|回復: 6
打印 上一主題 下一主題
收起左側

請問單片機P1_1,P1_2,P1_3仿真無法按下的原因是什么?

[復制鏈接]
跳轉到指定樓層
樓主

單片機源程序如下:

  1.     #include "main.h"
  2.     #include "lcd1602.h"
  3.     #include "key.h"
  4.     #include "motor_zhiliu.h"


  5.    
  6.     uchar key_num = 0;                                                                                       
  7.     uchar flag_display = 0;                                                                        
  8.     uint time_num = 0;                                                                                       
  9.     char display_buf[16];                                                                                
  10.     bit flag_mode = 0;                                                                                       
  11.     extern bit flag_direction;                                                        
  12.     extern uchar pwm_num;                                                                                
  13.     uchar flag_speed = 0;                                                                                


  14.    
  15.     void Delay_function(uint x);                                                
  16.     void Key_function(void);                                                               
  17.     void Display_function(void);                                                
  18.     void Manage_function(void);                                                        
  19.     uchar Simulation_Keyboard_Scan(void);

  20.    
  21.     void main()
  22.     {
  23.             Lcd1602_Init();                                                                                    
  24.             Delay_function(50);                                                                          
  25.             lcd1602_clean();                                                                           
  26.             Delay_function(50);                                                                          
  27.             Timer0_Init();                                                                                                
  28.             Delay_function(50);                                                                          
  29.            
  30.             while(1)
  31.             {
  32.                     Key_function();                                                                                 
  33.                     Display_function();                                                                        
  34.                     Manage_function();                                                                        

  35.                     Delay_function(10);                                                                        
  36.                     time_num++;                                                                                            
  37.                     if(time_num == 5000)
  38.                     {
  39.                             time_num = 0;
  40.                     }
  41.             }
  42.     }

  43.    
  44.     void Delay_function(uint x)
  45.     {
  46.             uint m,n;
  47.             for(m=x;m>0;m--)
  48.             for(n=110;n>0;n--);
  49.     }

  50.    
  51.     uchar Simulation_Keyboard_Scan(void)
  52.     {
  53.         uchar key_value = 0;
  54.       
  55.         
  56.         key_value = ~P1 & 0x0F;
  57.       
  58.         
  59.         
  60.       
  61.         return key_value;
  62.     }


  63.     void Key_function(void)
  64.     {
  65.         #ifdef SIMULATION
  66.             key_num = Simulation_Keyboard_Scan();
  67.         #else
  68.             key_num = Chiclet_Keyboard_Scan(0);  
  69.         #endif
  70.         if(key_num != 0)  
  71.         {
  72.             switch(key_num)
  73.             {
  74.                 case 1:  
  75.                     flag_direction = ~flag_direction;
  76.                     break;

  77.                 case 2:  
  78.                     if(flag_speed < 3)
  79.                         flag_speed++;
  80.                     flag_mode = 1;
  81.                     break;

  82.                 case 3:  
  83.                     if(flag_speed > 0)
  84.                         flag_speed--;
  85.                     flag_mode = 1;
  86.                     break;
  87.                
  88.                 case 4:  
  89.                     flag_speed = 0;
  90.                     flag_mode = 1;
  91.                     break;

  92.                 default:
  93.                     break;
  94.             }
  95.         }
  96.     }


  97.    
  98.     void Display_function(void)
  99.     {
  100.             if(flag_direction == 0)                                                               
  101.                     lcd1602_display_str(2, 0, "D:Right");
  102.             else
  103.                     lcd1602_display_str(2, 0, "D:Lift ");
  104.            
  105.             switch(flag_speed)                                                                                
  106.             {
  107.                     case 0:
  108.                             lcd1602_display_str(2, 9, "S:Stop");
  109.                     break;
  110.                   
  111.                     case 1:
  112.                             lcd1602_display_str(2, 9, "S:Low ");
  113.                     break;
  114.                   
  115.                     case 2:
  116.                             lcd1602_display_str(2, 9, "S:Mid ");
  117.                     break;
  118.                   
  119.                     case 3:
  120.                             lcd1602_display_str(2, 9, "S:High");
  121.                     break;
  122.                   
  123.                     default:
  124.                     break;
  125.             }
  126.     }

  127.    
  128.     void Manage_function(void)
  129.     {
  130.         if(flag_mode == 0)
  131.         {
  132.             flag_speed = 1;
  133.         }
  134.         else
  135.         {
  136.             switch(key_num)
  137.             {
  138.                 case 1:  
  139.                     flag_direction = ~flag_direction;
  140.                     break;

  141.                 case 2:  
  142.                     if(flag_speed < 3)
  143.                         flag_speed++;
  144.                     flag_mode = 1;
  145.                     break;

  146.                 case 3:  
  147.                     if(flag_speed > 0)
  148.                         flag_speed--;
  149.                     flag_mode = 1;
  150.                     break;
  151.                
  152.                 case 4:  
  153.                     flag_speed = 0;
  154.                     flag_mode = 1;
  155.                     break;

  156.                 default:
  157.                     break;
  158.             }
  159.         }      
  160.     }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1104657 發表于 2024-1-12 17:57 | 只看該作者
不懂怎么上傳代碼就亂碼了
回復

使用道具 舉報

板凳
ID:69038 發表于 2024-1-13 08:59 | 只看該作者
你沒按到開關的點上當然按對不下了。
回復

使用道具 舉報

地板
ID:44037 發表于 2024-1-13 12:07 | 只看該作者
單片機P1_1,P1_2,P1_3仿真無法按下的原因是 按鍵處有"<TEXT>"  將其移開就正常了

無標題.jpg (78.04 KB, 下載次數: 84)

無標題.jpg
回復

使用道具 舉報

5#
ID:1104657 發表于 2024-1-13 13:40 | 只看該作者
zhuls 發表于 2024-1-13 08:59
你沒按到開關的點上當然按對不下了。

不是這個原因,就算對準了開關,仍然無法按下P1_1,P1_2,P1_3,并且會顯示“測量時必須停止仿真”字樣
回復

使用道具 舉報

6#
ID:1104657 發表于 2024-1-13 16:21 | 只看該作者
我知道原因了!!!是仿真的四個按鍵靠太近了!!!!!
回復

使用道具 舉報

7#
ID:1104657 發表于 2024-1-14 14:28 | 只看該作者
by64214 發表于 2024-1-13 12:07
單片機P1_1,P1_2,P1_3仿真無法按下的原因是 按鍵處有""  將其移開就正常了

原來如此哈哈哈哈哈哈,好咧謝謝大佬!!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品乱码一二三区的特点 | 午夜寂寞影院在线观看 | 国产日韩在线观看一区 | 欧美激情欧美激情在线五月 | 成人超碰 | 久久国产精品91 | 国产乱码久久久 | 午夜视频网 | 国产亚洲精品久久久久动 | 久久久国产精品视频 | 天天爱av | 精品视频一区二区 | 亚洲精品视频一区 | 欧洲一区二区三区 | 欧美精品在线一区二区三区 | 欧美一区二区免费视频 | 免费一区二区三区 | 91综合在线视频 | 精品国产乱码久久久久久影片 | 亚洲精品天堂 | 亚洲成人三级 | 成人精品视频99在线观看免费 | 一级a性色生活片久久毛片 一级特黄a大片 | 欧美啊v在线观看 | 中国av在线免费观看 | 亚洲一区二区三区免费在线观看 | 欧美一级黄色片 | 欧美日韩一区二区在线 | av网站在线免费观看 | 国产精品免费看 | 综合自拍 | 999久久久久久久久 国产欧美在线观看 | 欧美视频网 | 国产福利在线免费观看 | 国产三级精品视频 | 免费在线观看av网址 | 国产乱人伦精品一区二区 | 国产中文字幕亚洲 | 久久久久亚洲视频 | 久久精品男人的天堂 | 久草新在线 |