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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

想看看自己的單片機程序哪里錯了,求大神指教

[復制鏈接]
跳轉到指定樓層
樓主
ID:1061638 發(fā)表于 2023-1-27 19:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
程序
#include    "reg51.h"

sbit KEY1=P3^1;
sbit KEY2=P3^0;
sbit KEY3=P3^3;
typedef unsigned char u16;
typedef  unsigned int  u8;
sbit LED1=P2^0;

#define KEY1_PRESS  1;
#define KEY2_PRESS  2;
#define KEY3_PRESS  3;
#define KEY1_UNPRESS  0;
void delay_10us(u8 ten_us)
{
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:883242 發(fā)表于 2023-1-27 21:33 | 只看該作者
#define 那一行不可以加;
回復

使用道具 舉報

板凳
ID:155507 發(fā)表于 2023-1-27 22:13 | 只看該作者
語焉不詳、去頭掐尾也是愛莫能助的了。。。

代碼只有片段,這樣沒法完整去找問題

尋求解決問題的正確方式:
問題背景描述
問題現(xiàn)象
為解決問題做了哪些嘗試?有啥效果?
回復

使用道具 舉報

地板
ID:1061638 發(fā)表于 2023-1-28 12:27 | 只看該作者
angmall 發(fā)表于 2023-1-27 22:13
語焉不詳、去頭掐尾也是愛莫能助的了。。。

代碼只有片段,這樣沒法完整去找問題

#include    "reg51.h"

sbit KEY1=P3^1;
sbit KEY2=P3^0;
sbit KEY3=P3^2;
typedef unsigned char u16;
typedef  unsigned int  u8;
sbit LED1=P2^0;

#define KEY1_PRESS  1;
#define KEY2_PRESS  2;
#define KEY3_PRESS  3;
#define KEY_UNPRESS  0;
void delay_10us(u8 ten_us)
{
        while(ten_us--);
       
}
u16 key_scan(u16  mode)
{
     static  u16 key=1;
           if(mode)key=1;
       
        if(key=1&&(KEY1==0||KEY2==0||KEY3==0))
  {
                delay_10us(1000);
        key=0;
  if(KEY1==0)
                return  KEY1_PRESS;
   else if(KEY2==0)
                 return KEY2_PRESS;
         else if(KEY3==0)
         return  KEY3_PRESS;
         
}
else if(KEY1==1&&KEY2==1&&KEY3==1)
{
         key=1;
       
}
return KEY_UNPRESS;

               
        }



void main()
{
        u16 key=0;
       
        while(1)
        {
               
         key=key_scan(0);
               
                if (key==KEY1_PRESS)
                LED1=!LED1;
                       
                       
                }
        }
回復

使用道具 舉報

5#
ID:1061638 發(fā)表于 2023-1-28 12:31 | 只看該作者
angmall 發(fā)表于 2023-1-27 22:13
語焉不詳、去頭掐尾也是愛莫能助的了。。。

代碼只有片段,這樣沒法完整去找問題

哥我又發(fā)了一個完整的請您幫看一下唄,拜托了
回復

使用道具 舉報

6#
ID:155507 發(fā)表于 2023-1-28 13:39 | 只看該作者
我能騙你嗎 發(fā)表于 2023-1-28 12:31
哥我又發(fā)了一個完整的請您幫看一下唄,拜托了

給你改了,對比一下就知道哪里錯了。




  1. #include "reg51.h"

  2. sbit KEY1=P3^1;
  3. sbit KEY2=P3^0;
  4. sbit KEY3=P3^2;
  5. typedef unsigned char u16;
  6. typedef  unsigned int  u8;
  7. sbit LED1=P2^0;

  8. #define KEY1_PRESS   1  //; <----#define 那一行不可以加;
  9. #define KEY2_PRESS   2  //; <----#define 那一行不可以加;
  10. #define KEY3_PRESS   3  //; <----#define 那一行不可以加;
  11. #define KEY_UNPRESS  0  //; <----#define 那一行不可以加;
  12. void delay_10us(u8 ten_us)
  13. {
  14.     while(ten_us--);
  15.       
  16. }
  17. u16 key_scan(u16  mode)
  18. {
  19.     static  u16 key=1;
  20.     if(mode)key=1;
  21.       
  22.     if(key=1&&(KEY1==0||KEY2==0||KEY3==0))
  23.     {
  24.         delay_10us(1000);
  25.         key=0;
  26.           if(KEY1==0)
  27.                 return  KEY1_PRESS;
  28.           else if(KEY2==0)
  29.                  return KEY2_PRESS;
  30.       else if(KEY3==0)
  31.          return  KEY3_PRESS;
  32.          
  33.         }
  34.         else if(KEY1==1&&KEY2==1&&KEY3==1)
  35.         {
  36.                          key=1;
  37.       
  38.         }
  39.         return KEY_UNPRESS;

  40.                
  41. }



  42. void main()
  43. {
  44.     u16 key=0;
  45.    
  46.     while(1)
  47.     {
  48.            
  49.        key=key_scan(0);
  50.            
  51.         if (key==KEY1_PRESS)
  52.         LED1=!LED1;
  53.                
  54.                
  55.     }
  56. }
  57.                
復制代碼
回復

使用道具 舉報

7#
ID:213173 發(fā)表于 2023-1-28 14:56 | 只看該作者
我能騙你嗎 發(fā)表于 2023-1-28 12:27
#include    "reg51.h"

sbit KEY1=P3^1;

要看你想達到什么目的
回復

使用道具 舉報

8#
ID:723161 發(fā)表于 2023-1-28 15:54 | 只看該作者
u16是int一般 u8是char
回復

使用道具 舉報

9#
ID:723161 發(fā)表于 2023-1-28 16:05 | 只看該作者
第20行那里     if(key=1&&(KEY1==0||KEY2==0||KEY3==0))

是不是應該是key==1
回復

使用道具 舉報

10#
ID:1061638 發(fā)表于 2023-1-28 17:18 | 只看該作者
angmall 發(fā)表于 2023-1-28 13:39
給你改了,對比一下就知道哪里錯了。

謝謝哥,這個主函數(shù)我沒太理解,能不能幫忙講一下
回復

使用道具 舉報

11#
ID:1061638 發(fā)表于 2023-1-28 17:22 | 只看該作者

為啥那兄弟
回復

使用道具 舉報

12#
ID:723161 發(fā)表于 2023-1-29 09:38 | 只看該作者
這個不影響 主要是20行那里if(key=1&&(KEY1==0||KEY2==0||KEY3==0))      key==1  不是key=1   一個等于號是賦值 不是判斷
回復

使用道具 舉報

13#
ID:596109 發(fā)表于 2023-1-29 10:46 | 只看該作者
if(key=1&&(KEY1==0||KEY2==0||KEY3==0))  &&前面應該是key==1
    {
        delay_10us(1000);
        key=0;
          if(KEY1==0)
                return  KEY1_PRESS;  
回復

使用道具 舉報

14#
ID:596109 發(fā)表于 2023-1-29 11:14 | 只看該作者
key_scan函數(shù)里的delay_10us(1000);應該換到main函數(shù)的循環(huán)里,否則按下按鍵1后,因為key值一直為KEY1_PRESS,所以函數(shù)會一直執(zhí)行if (key==KEY1_PRESS)    LED1=!LED1;
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成年免费大片黄在线观看岛国 | 亚洲精品一 | 美女视频网站久久 | 日本韩国欧美在线观看 | 精品一区二区三区在线视频 | 色秀网站| 91九色在线观看 | 欧美日韩一区二区在线观看 | 九九久久国产精品 | 成年人免费网站 | 日韩国产精品一区二区三区 | 成人免费看片网 | 日韩三极 | 成人综合一区二区 | 亚洲国产欧美在线人成 | 玖玖爱365 | 99视频在线免费观看 | 一区二区三区免费网站 | 国产丝袜一区二区三区免费视频 | 精品二区 | 国产欧美在线播放 | 精品日韩在线 | 亚洲欧美精品久久 | 国产精品久久久久久婷婷天堂 | 亚洲国产91 | 青娱乐国产 | 成人在线精品视频 | 亚洲免费视频播放 | 欧美一区二区在线播放 | 成人一区在线观看 | 久久福利电影 | 中国免费黄色片 | av色站 | 久久久999国产精品 中文字幕在线精品 | 国产在线一 | 国产视频观看 | 99久久婷婷国产综合精品首页 | av一区在线 | 91在线精品秘密一区二区 | 色爱综合网 | 日韩欧美国产精品一区二区 |