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

標(biāo)題: 想看看自己的單片機(jī)程序哪里錯(cuò)了,求大神指教 [打印本頁(yè)]

作者: 我能騙你嗎    時(shí)間: 2023-1-27 19:12
標(biāo)題: 想看看自己的單片機(jī)程序哪里錯(cuò)了,求大神指教
程序
#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)
{

作者: Hephaestus    時(shí)間: 2023-1-27 21:33
#define 那一行不可以加;
作者: angmall    時(shí)間: 2023-1-27 22:13
語(yǔ)焉不詳、去頭掐尾也是愛(ài)莫能助的了。。。

代碼只有片段,這樣沒(méi)法完整去找問(wèn)題

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

作者: 我能騙你嗎    時(shí)間: 2023-1-28 12:27
angmall 發(fā)表于 2023-1-27 22:13
語(yǔ)焉不詳、去頭掐尾也是愛(ài)莫能助的了。。。

代碼只有片段,這樣沒(méi)法完整去找問(wèn)題

#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;
                       
                       
                }
        }

作者: 我能騙你嗎    時(shí)間: 2023-1-28 12:31
angmall 發(fā)表于 2023-1-27 22:13
語(yǔ)焉不詳、去頭掐尾也是愛(ài)莫能助的了。。。

代碼只有片段,這樣沒(méi)法完整去找問(wèn)題

哥我又發(fā)了一個(gè)完整的請(qǐng)您幫看一下唄,拜托了
作者: angmall    時(shí)間: 2023-1-28 13:39
我能騙你嗎 發(fā)表于 2023-1-28 12:31
哥我又發(fā)了一個(gè)完整的請(qǐng)您幫看一下唄,拜托了

給你改了,對(duì)比一下就知道哪里錯(cuò)了。




  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.                
復(fù)制代碼

作者: wulin    時(shí)間: 2023-1-28 14:56
我能騙你嗎 發(fā)表于 2023-1-28 12:27
#include    "reg51.h"

sbit KEY1=P3^1;

要看你想達(dá)到什么目的
作者: 65465416541654    時(shí)間: 2023-1-28 15:54
u16是int一般 u8是char
作者: 65465416541654    時(shí)間: 2023-1-28 16:05
第20行那里     if(key=1&&(KEY1==0||KEY2==0||KEY3==0))

是不是應(yīng)該是key==1
作者: 我能騙你嗎    時(shí)間: 2023-1-28 17:18
angmall 發(fā)表于 2023-1-28 13:39
給你改了,對(duì)比一下就知道哪里錯(cuò)了。

謝謝哥,這個(gè)主函數(shù)我沒(méi)太理解,能不能幫忙講一下
作者: 我能騙你嗎    時(shí)間: 2023-1-28 17:22
65465416541654 發(fā)表于 2023-1-28 15:54
u16是int一般 u8是char

為啥那兄弟
作者: 65465416541654    時(shí)間: 2023-1-29 09:38
這個(gè)不影響 主要是20行那里if(key=1&&(KEY1==0||KEY2==0||KEY3==0))      key==1  不是key=1   一個(gè)等于號(hào)是賦值 不是判斷
作者: yxtao    時(shí)間: 2023-1-29 10:46
if(key=1&&(KEY1==0||KEY2==0||KEY3==0))  &&前面應(yīng)該是key==1
    {
        delay_10us(1000);
        key=0;
          if(KEY1==0)
                return  KEY1_PRESS;  
作者: yxtao    時(shí)間: 2023-1-29 11:14
key_scan函數(shù)里的delay_10us(1000);應(yīng)該換到main函數(shù)的循環(huán)里,否則按下按鍵1后,因?yàn)閗ey值一直為KEY1_PRESS,所以函數(shù)會(huì)一直執(zhí)行if (key==KEY1_PRESS)    LED1=!LED1;




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久99精品视频 | 国产乱精品一区二区三区 | 伊人网一区 | 成人一区av偷拍 | 精品国产一区二区三区成人影院 | 亚洲精品不卡 | 一区二区三区四区在线播放 | 超碰成人免费 | 久草.com | 成人久久久 | 免费观看毛片 | 国产成人精品a视频 | 国产精品国产 | 青青草一区二区 | 欧洲亚洲精品久久久久 | 超碰在线免费公开 | 国产中文视频 | 成人网在线 | 久久精品国产一区二区电影 | 久久久亚洲精品视频 | 韩三级在线观看 | 一区二区三区免费在线观看 | 精品国产一区二区久久 | 啪啪免费网站 | 久久av在线播放 | 久久这里有精品 | 成人免费xxxxx在线视频 | 国产一区二区三区在线视频 | 日韩精品一区二区三区视频播放 | 亚洲精品久久久蜜桃 | 一区二区在线 | 成人亚洲精品久久久久软件 | 国产精品久久久亚洲 | 国产精品日韩 | 在线观看一区 | 欧美精品成人一区二区三区四区 | 超碰在线影院 | 久久久国产精品入口麻豆 | 中文字幕 欧美 日韩 | 亚洲精品国产区 | 一区二区三区国产好的精 |