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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

各位師傅給小弟看看這個程序,什么用Keil uVision4軟件不能通過,到底那一部岀問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:17109 發表于 2017-11-24 15:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. sbit key1=P3^6;                //按鍵1定義
  5. sbit key2=P3^5;                //按鍵2定義
  6. sbit key3=P3^4;                //按鍵3定義
  7. sbit key4=P3^3;                //按鍵4定義
  8. sbit led1=P1^3;                //led1端口
  9. sbit led2=P1^2;                //led2端口
  10. sbit led3=P1^1;                //led3端口
  11. sbit led4=P1^0;                //led4端口

  12. /********按鍵掃描程序*************/
  13. void key_scan()
  14. {
  15.         static bit key1_sign,key2_sign,key3_sign,key4_sign;//靜態位變量按鍵自鎖標志
  16.         static uint count1,count2,count3,count4;//靜態計數變量  
  17.                 uint bzw1=1,bzw2=1,bzw3=1,bzw4=1;//設置標志位。                     

  18.         if(key1==0)                                                        //檢測按鍵1按下
  19.         {
  20.                 if(key1_sign==0)
  21.                 {
  22.                         count1++;                                        //消抖計數1自+1
  23.                         if(count1>=1000)                        //按主循環周期100~2000調整
  24.                         {
  25.                                 key1_sign=1;                                           //按鍵1自鎖標志置1
  26.                                                                 if(bzw1==1)                       
  27.                                         led1=0;led2=led3=led4=1;                         //led1取反  
  28.                                                                 else
  29.                                                                         led1=led2=led3=led4=1;                              
  30.                         }
  31.                 }
  32.                                 bzw1++;
  33.                                 if(bzw1>3)
  34.                                         bzw1=1;

  35.         }
  36.         else                                                                //按鍵1抬起
  37.         {
  38.                 key1_sign=0;                                         //按鍵1自鎖標志清0
  39.                 count1=0;                                                //消抖計數1清0
  40.         }

  41.         if(key2==0)        //檢測按鍵1按下
  42.         {
  43.                 if(key2_sign==0)
  44.                 {
  45.                         count2++;                                        //消抖計數2自+1
  46.                         if(count2>=1000)                        //按主循環周期100~2000調整
  47.                         {
  48.                                 key2_sign=1;                        //按鍵2自鎖標志置1
  49.                                                                 if(bzw2==1)
  50.                                         led2=0;led1=led3=led4=1;                         //led2取反  
  51.                                                                 else
  52.                                                                         led1=led2=led3=led4=1;                              
  53.                         }
  54.                 }
  55.                                 bzw2++;
  56.                                 if(bzw2>3)
  57.                                         bzw2=1;
  58.         }
  59.         else                                                                //按鍵2抬起
  60.         {
  61.                 key2_sign=0;                                        //按鍵2自鎖標志清0
  62.                 count2=0;                                                //消抖計數2清0
  63.         }

  64.         if(key3==0)                                                        //檢測按鍵1按下
  65.         {
  66.                 if(key3_sign==0)
  67.                 {
  68.                         count3++;                                        //消抖計數1自+1
  69.                         if(count3>=1000)                        //按主循環周期100~2000調整
  70.                         {
  71.                                 key3_sign=1;                        //按鍵3自鎖標志置1
  72.                                                                 if(bzw3==1)
  73.                                         led3=0;led1=led2=led4=1;                         //led3取反
  74.                                                                 else
  75.                                                                         led1=led2=led3=led4=1;                       
  76.                         }
  77.                 }
  78.                                 bzw3++;
  79.                                 if(bzw3>3)
  80.                                         bzw3=1;
  81.         }
  82.         else                                                                //按鍵3抬起
  83.         {
  84.                 key3_sign=0;                                        //按鍵3自鎖標志清0
  85.                 count3=0;                                                //消抖計數3清0
  86.         }

  87.         if(key4==0)                                                        //檢測按鍵1按下
  88.         {
  89.                 if(key4_sign==0)
  90.                 {
  91.                         count4++;                                        //消抖計數4自+1
  92.                         if(count4>=1000)                        //按主循環周期100~2000調整
  93.                         {
  94.                                 key4_sign=1;                        //按鍵4自鎖標志置1
  95.                                                                 if(bzw4==1)
  96.                                                led4=0;led1=led2=led3=1;                         //led4取反
  97.                                                                 else
  98.                                                                         led1=led2=led3=led4=1;                       
  99.                         }                  
  100.                 }
  101.                                 bzw4++;
  102.                                 if(bzw4>3)
  103.                                         bzw4=1;
  104.         }
  105.         else                                                                //按鍵4抬起
  106.         {
  107.                 key4_sign=0;                                        //按鍵4自鎖標志清0
  108.                 count4=0;                                                //消抖計數4清0
  109.         }
  110. }
  111. /************主程序************/
  112. void main()
  113. {
  114.         while(1)
  115.         {
  116.                 key_scan();                                                //按鍵掃描程序
  117.         }
  118. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:190832 發表于 2017-11-24 19:23 | 只看該作者
if(bzw1==1)                       
                                        led1=0;led2=led3=led4=1;                         //led1取反  
                                                                else
                                                                        led1=led2=led3=led4=1;      
這根本就不對,這要包括在大括號里面的,你好好學學C語言行嗎???
回復

使用道具 舉報

板凳
ID:150565 發表于 2017-11-24 19:55 | 只看該作者
你的程序寫得很亂,而且排版不易觀察
回復

使用道具 舉報

地板
ID:17109 發表于 2017-11-24 23:59 來自手機 | 只看該作者
hange_v 發表于 2017-11-24 19:23
if(bzw1==1)                       
                                        led1=0;led2=led3=led4=1 ...

師博你好:修改粘貼上傳看看好嗎?謝謝
回復

使用道具 舉報

5#
ID:155507 發表于 2017-11-25 08:46 | 只看該作者
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int

  4. sbit key1=P3^6;                //按鍵1定義
  5. sbit key2=P3^5;                //按鍵2定義
  6. sbit key3=P3^4;                //按鍵3定義
  7. sbit key4=P3^3;                //按鍵4定義
  8. sbit led1=P1^3;                //led1端口
  9. sbit led2=P1^2;                //led2端口
  10. sbit led3=P1^1;                //led3端口
  11. sbit led4=P1^0;                //led4端口

  12. /********按鍵掃描程序*************/
  13. void key_scan()
  14. {
  15.         static bit key1_sign,key2_sign,key3_sign,key4_sign;        //靜態位變量按鍵自鎖標志
  16.         static uint count1,count2,count3,count4;        //靜態計數變量  
  17.         uint bzw1=1,bzw2=1,bzw3=1,bzw4=1;                  //設置標志位。                     

  18.         if(key1==0)                                                        //檢測按鍵1按下
  19.         {
  20.                 if(key1_sign==0)
  21.                 {
  22.                         count1++;                            //消抖計數1自+1
  23.                         if(count1>=1000)                     //按主循環周期100~2000調整
  24.                         {
  25.                                 key1_sign=1;                                           //按鍵1自鎖標志置1
  26.                                 if(bzw1==1)
  27.                                 {
  28.                                         led1=0;led2=led3=led4=1;       //led1取反  
  29.                                 }
  30.                                 else
  31.                                 {
  32.                                         led1=led2=led3=led4=1;  
  33.                                 }
  34.                                                             
  35.                         }
  36.                 }
  37.                 bzw1++;
  38.                 if(bzw1>3)
  39.                 bzw1=1;

  40.         }
  41.         else                                                                //按鍵1抬起
  42.         {
  43.                 key1_sign=0;                                         //按鍵1自鎖標志清0
  44.                 count1=0;                                                //消抖計數1清0
  45.         }

  46.         if(key2==0)        //檢測按鍵1按下
  47.         {
  48.                 if(key2_sign==0)
  49.                 {
  50.                         count2++;                                        //消抖計數2自+1
  51.                         if(count2>=1000)                        //按主循環周期100~2000調整
  52.                         {
  53.                                 key2_sign=1;                        //按鍵2自鎖標志置1
  54.                                 if(bzw2==1)
  55.                                 {
  56.                                         led2=0;led1=led3=led4=1;   
  57.                                 }
  58.                                          //led2取反  
  59.                                 else
  60.                                 {
  61.                                         led1=led2=led3=led4=1;  
  62.                                 }
  63.                                                             
  64.                         }
  65.                 }
  66.                 bzw2++;
  67.                 if(bzw2>3)
  68.                 bzw2=1;
  69.         }
  70.         else                                                                //按鍵2抬起
  71.         {
  72.                 key2_sign=0;                        //按鍵2自鎖標志清0
  73.                 count2=0;                           //消抖計數2清0
  74.         }

  75.         if(key3==0)                                                        //檢測按鍵1按下
  76.         {
  77.                 if(key3_sign==0)
  78.                 {
  79.                         count3++;                         //消抖計數1自+1
  80.                         if(count3>=1000)                 //按主循環周期100~2000調整
  81.                         {
  82.                                 key3_sign=1;                 //按鍵3自鎖標志置1
  83.                                 if(bzw3==1)
  84.                                 {
  85.                                         led3=0;led1=led2=led4=1;   
  86.                                 }
  87.                                       //led3取反
  88.                                 else
  89.                                 {
  90.                                         led1=led2=led3=led4=1;
  91.                                 }
  92.                                                       
  93.                         }
  94.                 }
  95.                 bzw3++;
  96.                 if(bzw3>3)
  97.                 bzw3=1;
  98.         }
  99.         else                                                                //按鍵3抬起
  100.         {
  101.                 key3_sign=0;                       //按鍵3自鎖標志清0
  102.                 count3=0;                         //消抖計數3清0
  103.         }

  104.         if(key4==0)                                                        //檢測按鍵1按下
  105.         {
  106.                 if(key4_sign==0)
  107.                 {
  108.                         count4++;                   //消抖計數4自+1
  109.                         if(count4>=1000)            //按主循環周期100~2000調整
  110.                         {
  111.                                 key4_sign=1;            //按鍵4自鎖標志置1
  112.                                 if(bzw4==1)
  113.                                 {
  114.                                         led4=0;led1=led2=led3=1;         //led4取反
  115.                                 }
  116.                                
  117.                                 else
  118.                                 {
  119.                                         led1=led2=led3=led4=1;   
  120.                                 }
  121.                                                     
  122.                         }                  
  123.                 }
  124.                 bzw4++;
  125.                 if(bzw4>3)
  126.                 bzw4=1;
  127.         }
  128.         else                                                                //按鍵4抬起
  129.         {
  130.                 key4_sign=0;           //按鍵4自鎖標志清0
  131.                 count4=0;              //消抖計數4清0
  132.         }
  133. }
  134. /************主程序************/
  135. void main()
  136. {
  137.         while(1)
  138.         {
  139.                 key_scan();          //按鍵掃描程序
  140.         }
  141. }


復制代碼
回復

使用道具 舉報

6#
ID:190832 發表于 2017-11-25 13:22 | 只看該作者

可以,如果if下面只有一條語句可以不用大括號,否則就得用
回復

使用道具 舉報

7#
ID:17109 發表于 2017-11-25 20:15 | 只看該作者

這程能能通過Keil uVision4軟件   我以為這語句加入就是在這鍵按兩下就能夠   關led  原來也是不能關led的      師傅你好能修改成按兩下就能夠   關led嗎  
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 嫩草视频入口 | 亚洲欧美在线一区 | 久久精品av | 免费看黄色国产 | 一区二区三区高清 | 亚欧洲精品在线视频免费观看 | 中文字幕视频一区 | 国产一区二区精品在线 | 国产精品久久精品 | 亚洲视频第一页 | 狠狠操婷婷 | 做a网站 | 国产亚洲日本精品 | 精品久久久久久久久久 | 久久一区| 日日干夜夜草 | 一区二区三区免费观看 | 久夜精品 | 国产精品毛片久久久久久久 | 在线视频久久 | 久久久久久久久久久久久91 | 国产在线观看一区二区 | 久久99精品久久久久蜜桃tv | 中文字幕免费在线 | a在线观看免费 | 免费在线一区二区三区 | 国产亚洲一区在线 | 国产精品综合 | 国产一区二区精品在线观看 | 日韩在线大片 | 国产精品高清一区二区三区 | 91精品国产91久久久久久丝袜 | 色就干 | 97精品国产97久久久久久免费 | 亚洲一区 中文字幕 | 91免费入口 | 日本不卡在线视频 | 日韩一区二区三区av | 欧美成人aaa级毛片在线视频 | 一区二区三区视频在线观看 | 成人免费观看男女羞羞视频 |