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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2571|回復(fù): 34
打印 上一主題 下一主題
收起左側(cè)

C語言如何將多個(gè)位變量轉(zhuǎn)換成一個(gè)變量來存儲(chǔ)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:34149 發(fā)表于 2024-1-17 12:19 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
平時(shí)利用多個(gè)按鍵,往往都是一個(gè)按鍵一個(gè)位變量表示,在單片機(jī)C語言中要么是0,要么是1,就好像按鍵一樣,
程序中為了判斷狀態(tài),要寫很多語句,特別是多個(gè)按鍵的情況,占用很多程序空間。
為了計(jì)算方便,利用存儲(chǔ)空間,有沒有什么好辦法把他們集中在一起組成一個(gè)單字節(jié)的,判斷這個(gè)數(shù)值的內(nèi)容,就能方便的
判斷出多個(gè)位變量的狀態(tài)。
比如有6個(gè)獨(dú)立按鍵,占用了分散的不同的IO口,每個(gè)按鍵都要用到短按、長按、組合等控制功能,如果每個(gè)按鍵都寫一次
這樣子的判斷,那么將有6個(gè)這樣子的似乎重復(fù)的語句,各種變量,大量占據(jù)存儲(chǔ)空間。

想請教各位老師,如何利用程序強(qiáng)大的運(yùn)算功能,高效利用程序儲(chǔ)存空間,
有什么好的算法使這6個(gè)位變量通過哪種方法組合成一個(gè)單字節(jié)的變量。


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

使用道具 舉報(bào)

沙發(fā)
ID:895440 發(fā)表于 2024-1-17 14:46 | 只看該作者
用bit類型
一個(gè)bit變量只占一位
回復(fù)

使用道具 舉報(bào)

板凳
ID:458247 發(fā)表于 2024-1-17 14:48 | 只看該作者
支持位帶操作的單片機(jī)可以用結(jié)構(gòu)體位域?qū)懛?/td>
回復(fù)

使用道具 舉報(bào)

地板
ID:883242 發(fā)表于 2024-1-17 16:08 | 只看該作者
不同平臺(tái)做法完全不一樣。

不支持位操作的單片機(jī)以及編譯器,只能用“位域”來實(shí)現(xiàn),具體使用方法自己搜。

支持位操作的單片機(jī)及編譯器查手冊,以Keil C51為例,定義字節(jié)變量的時(shí)候加上bdata屬性,然后用sbit定義就行了。

  1. unsigned char bdata datum;
  2. sbit bd0=datum^0;
  3. sbit bd1=datum^1;
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

5#
ID:883242 發(fā)表于 2024-1-17 19:44 | 只看該作者
支持bit-band的ARM比如cortex-m3可以這么寫,不過不建議,bit-band訪問1位需要32位地址,如果不是特殊功能寄存器,只是通用內(nèi)存,這生意太不劃算了。
  1. #define DEVICE_REG0 ((volatile unsigned long *) (0x40000000))
  2. #define DEVICE_REG0_BIT0 ((volatile unsigned long *) (0x42000000))
  3. #define DEVICE_REG0_BIT1 ((volatile unsigned long *) (0x42000004))
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

6#
ID:34149 發(fā)表于 2024-1-17 22:23 | 只看該作者
總共6個(gè)按鍵位變量,我把它合在一起了,成了一個(gè)字節(jié),只是想讓它在后面的判斷和調(diào)用方便。沒想到還有點(diǎn)難處理。有了返回值,判斷起來就方便多了,組合判斷非常有優(yōu)勢。
unsigned char KeyScan(unsigned char KeyFlag)
{
        static unsigned char da=0xff;
        if(KeyFlag==1)
        {
                if(key1==0)da &= 0xfe;else da |= 0x01;
                if(key2==0)da &= 0xfd;else da |= 0x02;
                if(key3==0)da &= 0xfb;else da |= 0x04;
                if(key4==0)da &= 0xf7;else da |= 0x08;
                if(key5==0)da &= 0xef;else da |= 0x16;
                if(key6==0)da &= 0xdf;else da |= 0x32;
         }
         return da;
}
回復(fù)

使用道具 舉報(bào)

7#
ID:883242 發(fā)表于 2024-1-18 01:43 | 只看該作者
dyx811 發(fā)表于 2024-1-17 22:23
總共6個(gè)按鍵位變量,我把它合在一起了,成了一個(gè)字節(jié),只是想讓它在后面的判斷和調(diào)用方便。沒想到還有點(diǎn)難 ...

你這代碼轉(zhuǎn)換成機(jī)器碼,執(zhí)行效率跟我在地板發(fā)的代碼差了十萬八千里,好好學(xué)習(xí)吧。
回復(fù)

使用道具 舉報(bào)

8#
ID:213173 發(fā)表于 2024-1-18 08:26 | 只看該作者
dyx811 發(fā)表于 2024-1-17 22:23
總共6個(gè)按鍵位變量,我把它合在一起了,成了一個(gè)字節(jié),只是想讓它在后面的判斷和調(diào)用方便。沒想到還有點(diǎn)難 ...

假設(shè)6個(gè)按鍵分別接P2.3、2.4,P1.1~1.4
#define KeyFlag P2<<1&0x30|P1>>1&0x0f

unsigned char KeyScan(unsigned char da)
{
        switch(da)
        {
                case 0x3e: da=1; break;
                case 0x3d: da=2; break;
                case 0x3b: da=3; break;
                case 0x37: da=4; break;
                case 0x2f: da=5; break;
                case 0x1f: da=6; break;
                default:   da=0; break;
        }       
        return da;
}
回復(fù)

使用道具 舉報(bào)

9#
ID:1073939 發(fā)表于 2024-1-18 08:40 | 只看該作者
dyx811 發(fā)表于 2024-1-17 22:23
總共6個(gè)按鍵位變量,我把它合在一起了,成了一個(gè)字節(jié),只是想讓它在后面的判斷和調(diào)用方便。沒想到還有點(diǎn)難 ...

你這段代碼可優(yōu)化。節(jié)省一個(gè)全局變量,代碼也可簡短些。

  1. unsigned char KeyScan(unsigned char KeyFlag)
  2. {
  3.         unsigned char da=0xff;
  4.         if(KeyFlag==1)
  5.         {
  6.                 if(key1==0)da &= 0xfe;
  7.                 if(key2==0)da &= 0xfd;
  8.                 if(key3==0)da &= 0xfb;
  9.                 if(key4==0)da &= 0xf7;
  10.                 if(key5==0)da &= 0xef;
  11.                 if(key6==0)da &= 0xdf;
  12.          }
  13.          return da;
  14. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

10#
ID:458247 發(fā)表于 2024-1-18 08:57 | 只看該作者
wulin 發(fā)表于 2024-1-18 08:26
假設(shè)6個(gè)按鍵分別接P2.3、2.4,P1.1~1.4
#define KeyFlag P21&0x0f

typedef struct
{
    unsigned int key1 : 1;
    unsigned int key2 : 1;
    unsigned int key3 : 1;
    unsigned int key4 : 1;
    unsigned int key5 : 1;
    unsigned int key6 : 1;
}TsMAIN_h_KeyValueStatType;

typedef union
{
    TsMAIN_h_KeyValueStatType keyStat;
    unsigned char             keyValue;
}TuMAIN_h_KeyValueUnionType;

TuMAIN_h_KeyValueUnionType SsMAIN_h_KeyValue;

unsigned char GetKeyValue( unsigned char KeyFlag )
{
    if( 1== KeyFlag )
    {
        SsMAIN_h_KeyValue.keyStat.key1 = (!key1) ? 0 : 1;
        SsMAIN_h_KeyValue.keyStat.key2 = (!key2) ? 0 : 1;
        SsMAIN_h_KeyValue.keyStat.key3 = (!key3) ? 0 : 1;
        SsMAIN_h_KeyValue.keyStat.key4 = (!key4) ? 0 : 1;
        SsMAIN_h_KeyValue.keyStat.key5 = (!key5) ? 0 : 1;
        SsMAIN_h_KeyValue.keyStat.key6 = (!key6) ? 0 : 1;
    }
}
回復(fù)

使用道具 舉報(bào)

11#
ID:458247 發(fā)表于 2024-1-18 09:19 | 只看該作者
yzw846562238 發(fā)表于 2024-1-18 08:57
typedef struct
{
    unsigned int key1 : 1;

return SsMAIN_h_KeyValue.KeyValue;
回復(fù)

使用道具 舉報(bào)

12#
ID:883242 發(fā)表于 2024-1-18 14:28 | 只看該作者
yzw846562238 發(fā)表于 2024-1-18 08:57
typedef struct
{
    unsigned int key1 : 1;

這算是個(gè)通用的做法,在有特殊位尋址功能的平臺(tái)上,比如51的效率就非常差勁了。

加強(qiáng)知識(shí)的學(xué)習(xí)吧。
回復(fù)

使用道具 舉報(bào)

13#
ID:485350 發(fā)表于 2024-1-18 15:34 | 只看該作者
void Key_Scan()                //按鍵檢測 1ms調(diào)用
{
        u8 i;
        u8 Loop_Bit = 0x01;
    u8 Key = 0;
       
        if(KEY1_IO == 0)
        {
                Key |= KEY_BIG;
    }
   
    if(KEY2_IO == 0)
        {
                Key |= KEY_SMALL;
    }
   
        for(i = 0; i < KEYNUM; i++)
        {
                if((Key_Lock & Loop_Bit) == 0)                                                        //唯一按鍵
                {
                        if(Key & Loop_Bit)
                        {
                                if(++Key_Count[i] >= 50)                        //消抖50ms
                                {
                                        Key_Count[i] = 0;
                                        Key_Down |= Loop_Bit;        //按鍵觸發(fā)
                                        Key_Lock |= Loop_Bit;                        //按鍵鎖住         
                                }
                        }
                        else
                        {
                                Key_Count[i] = 0;
                        }
                }
                else
                {
                        if((Key & Loop_Bit) == 0)
                        {
                                if(++Key_Count[i] >= 40)                        //消抖50ms
                                {
                                        Key_Count[i] = 0;
                                        Key_Lock &= ~Loop_Bit;                        //按鍵鎖解除
                                        Key_Up |= Loop_Bit;
                                }
                        }
                        else
                        {
                                Key_Count[i] = 0;
                        }
                }
                Loop_Bit <<= 1;
        }
}
回復(fù)

使用道具 舉報(bào)

14#
ID:34149 發(fā)表于 2024-1-18 17:22 | 只看該作者
ydatou 發(fā)表于 2024-1-18 08:40
你這段代碼可優(yōu)化。節(jié)省一個(gè)全局變量,代碼也可簡短些。

利用了靜態(tài)變量可以不用每次都初始化da,這樣子不能做多鍵同時(shí)按下的準(zhǔn)確判斷。
回復(fù)

使用道具 舉報(bào)

15#
ID:34149 發(fā)表于 2024-1-18 17:35 | 只看該作者
yzw846562238 發(fā)表于 2024-1-18 09:19
return SsMAIN_h_KeyValue.KeyValue;

差點(diǎn)以為結(jié)構(gòu)體可以自動(dòng)返回呢,不過這種寫法看的頭暈。變量名字好長好長。但是非常的新穎!
現(xiàn)在就去驗(yàn)證該語句對空間占用,機(jī)器周期耗費(fèi)情況。
回復(fù)

使用道具 舉報(bào)

16#
ID:34149 發(fā)表于 2024-1-18 17:57 | 只看該作者
wulin 發(fā)表于 2024-1-18 08:26
假設(shè)6個(gè)按鍵分別接P2.3、2.4,P1.1~1.4
#define KeyFlag P21&0x0f

這個(gè)還沒有看得懂。同時(shí)按住兩個(gè)按鍵返回值是如何變化的呢 ?
回復(fù)

使用道具 舉報(bào)

17#
ID:34149 發(fā)表于 2024-1-18 18:02 | 只看該作者
Hephaestus 發(fā)表于 2024-1-18 01:43
你這代碼轉(zhuǎn)換成機(jī)器碼,執(zhí)行效率跟我在地板發(fā)的代碼差了十萬八千里,好好學(xué)習(xí)吧。

一定好好學(xué)習(xí)。主要是高級(jí)點(diǎn)的單片機(jī)還沒有咋個(gè)會(huì)呢。你發(fā)的代碼是帶指針的嗎?一時(shí)半會(huì)還理解不透。

事實(shí)上,我是想把一堆的位變量,(我舉的例子是6個(gè),來自于不同的地方),放在一個(gè)字節(jié)里面,用8位分別代表其中各位的狀態(tài),方便后期僅對該字節(jié)的判斷就知道哪些位有效,哪些組合滿足要求,同時(shí)還有濾波,長按的判斷等等。主要目的是不用分別對每個(gè)位變量判斷短按長按等等。
回復(fù)

使用道具 舉報(bào)

18#
ID:34149 發(fā)表于 2024-1-18 19:53 | 只看該作者
18680365301 發(fā)表于 2024-1-18 15:34
void Key_Scan()                //按鍵檢測 1ms調(diào)用
{
        u8 i;

這是咋玩的啊,開頭幾句就卡殼了
回復(fù)

使用道具 舉報(bào)

19#
ID:883242 發(fā)表于 2024-1-18 22:27 | 只看該作者
dyx811 發(fā)表于 2024-1-18 18:02
一定好好學(xué)習(xí)。主要是高級(jí)點(diǎn)的單片機(jī)還沒有咋個(gè)會(huì)呢。你發(fā)的代碼是帶指針的嗎?一時(shí)半會(huì)還理解不透。

...

8051內(nèi)存地址20h~27h這8個(gè)字節(jié)每位都是可以直接訪問的,具體使用方法參加我在地板位的代碼。
回復(fù)

使用道具 舉報(bào)

20#
ID:624769 發(fā)表于 2024-1-18 23:05 | 只看該作者
dyx811 發(fā)表于 2024-1-17 22:23
總共6個(gè)按鍵位變量,我把它合在一起了,成了一個(gè)字節(jié),只是想讓它在后面的判斷和調(diào)用方便。沒想到還有點(diǎn)難 ...

sbit Temp1 = ACC^0;
sbit Temp2 = ACC^1;
sbit Temp3 = ACC^2;
sbit Temp4 = ACC^3;
sbit Temp5 = ACC^4;
sbit Temp6 = ACC^5;

unsigned char KeyScan(unsigned char KeyFlag)
{
        ACC = 0xff;
        if(KeyFlag==1)
        {
                Temp1 = key1;
                Temp2 = key2;
                Temp3 = key3;
                Temp4 = key4;
                Temp5 = key5;
                Temp6 = key6;
         }
         return ACC;
}
回復(fù)

使用道具 舉報(bào)

21#
ID:883242 發(fā)表于 2024-1-18 23:59 | 只看該作者
188610329 發(fā)表于 2024-1-18 23:05
sbit Temp1 = ACC^0;
sbit Temp2 = ACC^1;
sbit Temp3 = ACC^2;

你的代碼太想當(dāng)然了。

        ACC = 0xff;
        if(KeyFlag==1)
后面這一句執(zhí)行的時(shí)候,前面那一句的結(jié)果已經(jīng)被破壞掉了。
回復(fù)

使用道具 舉報(bào)

22#
ID:1073939 發(fā)表于 2024-1-19 14:29 | 只看該作者
dyx811 發(fā)表于 2024-1-18 17:22
利用了靜態(tài)變量可以不用每次都初始化da,這樣子不能做多鍵同時(shí)按下的準(zhǔn)確判斷。

請仔細(xì)分析下我給你的優(yōu)化代碼。
1:因?yàn)橛羞@變量的初始換,才省了你代碼中的一堆else。
2:臨時(shí)變量和全局變量相比,代碼空間更小,執(zhí)行速度更快。計(jì)算越復(fù)雜,用臨時(shí)變量優(yōu)化效果越明顯。你就是一定要使用全局變量,也應(yīng)該先用臨時(shí)變量獲得計(jì)算結(jié)果,之后賦值給全局變量。
3.靜態(tài)變量是全局變量的一種,但限制了使用范圍。從你的代碼看,使用靜態(tài)變量無意義。
回復(fù)

使用道具 舉報(bào)

23#
ID:34149 發(fā)表于 2024-1-19 15:33 | 只看該作者
ydatou 發(fā)表于 2024-1-19 14:29
請仔細(xì)分析下我給你的優(yōu)化代碼。
1:因?yàn)橛羞@變量的初始換,才省了你代碼中的一堆else。
2:臨時(shí)變量和 ...

謝謝指點(diǎn),突然恍然大悟了!!我居然把把&運(yùn)算算錯(cuò)了。。。光想著怎么復(fù)原該Bit位了。
這樣子確實(shí)精簡了好多代碼。非常感謝。
回復(fù)

使用道具 舉報(bào)

24#
ID:883242 發(fā)表于 2024-1-19 16:23 | 只看該作者
dyx811 發(fā)表于 2024-1-19 15:33
謝謝指點(diǎn),突然恍然大悟了!!我居然把把&運(yùn)算算錯(cuò)了。。。光想著怎么復(fù)原該Bit位了。
這樣子確實(shí)精簡了 ...

都不對。

代碼是否被簡化,以c語言的簡潔程度來判斷是錯(cuò)誤的。

只有匯編碼,也就單片機(jī)執(zhí)行的機(jī)器碼,變簡潔了,才是真的優(yōu)化。

你們搞的都是假優(yōu)化。

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
dzbj + 5 贊一個(gè)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

25#
ID:1073939 發(fā)表于 2024-1-19 16:36 | 只看該作者
ydatou 發(fā)表于 2024-1-19 14:29
請仔細(xì)分析下我給你的優(yōu)化代碼。
1:因?yàn)橛羞@變量的初始換,才省了你代碼中的一堆else。
2:臨時(shí)變量和 ...

再看了下樓主代碼,當(dāng)KeyFlag 不為1時(shí),要返回上一次的key值,這確實(shí)需要一個(gè)全局變量,我給的優(yōu)化代碼沒做到這點(diǎn)。
修改如下
  1. unsigned char KeyScan(unsigned char KeyFlag)
  2. {
  3.         static unsigned char old=0xff;
  4.         if (KeyFlag == 1)
  5.         {
  6.                 unsigned char da = 0xff;
  7.                 if (key1 == 0)
  8.                         da &= 0xfe;
  9.                 if (key2 == 0)
  10.                         da &= 0xfd;
  11.                 if (key3 == 0)
  12.                         da &= 0xfb;
  13.                 if (key4 == 0)
  14.                         da &= 0xf7;
  15.                 if (key5 == 0)
  16.                         da &= 0xef;
  17.                 if (key6 == 0)
  18.                         da &= 0xdf;
  19.                 old=da;
  20.         }
  21.         return old;
  22. }
復(fù)制代碼


假如是使用51MCU,使用位變量更好,如下
  1. unsigned char bdata gKey = 0xff;
  2. sbit bKey1 = gKey ^ 0;
  3. sbit bKey2 = gKey ^ 1;
  4. sbit bKey3 = gKey ^ 2;
  5. sbit bKey4 = gKey ^ 3;
  6. sbit bKey5 = gKey ^ 4;
  7. sbit bKey6 = gKey ^ 5;
  8. unsigned char KeyScan(unsigned char KeyFlag)
  9. {
  10.         if (KeyFlag == 1)
  11.         {
  12.                 bKey1 = key1;
  13.                 bKey2 = key2;
  14.                 bKey3 = key3;
  15.                 bKey4 = key4;
  16.                 bKey5 = key5;
  17.                 bKey6 = key6;
  18.         }
  19.         return gKey;
  20. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

26#
ID:34149 發(fā)表于 2024-1-20 21:22 | 只看該作者
ydatou 發(fā)表于 2024-1-19 16:36
再看了下樓主代碼,當(dāng)KeyFlag 不為1時(shí),要返回上一次的key值,這確實(shí)需要一個(gè)全局變量,我給的優(yōu)化代碼沒 ...

bdta太好用了!不光完全實(shí)現(xiàn)了一堆位變量的整合,經(jīng)過實(shí)驗(yàn),不光實(shí)現(xiàn)了既定要求,程序上還節(jié)省了大量空間。
我采用了  ydatou 大哥的編程思路,簡單,高效!
在此,感謝各位大佬們的熱心幫助!
期望大家在單片機(jī)領(lǐng)域有更深的造詣,在編程道路上技術(shù)越來越精湛!
祝愿各位在龍年   {“龍騰虎躍!心想事成!”}

回復(fù)

使用道具 舉報(bào)

27#
ID:883242 發(fā)表于 2024-1-20 21:38 | 只看該作者
dyx811 發(fā)表于 2024-1-20 21:22
bdta太好用了!不光完全實(shí)現(xiàn)了一堆位變量的整合,經(jīng)過實(shí)驗(yàn),不光實(shí)現(xiàn)了既定要求,程序上還節(jié)省了大量空間 ...

我早就告訴你了你不看。
回復(fù)

使用道具 舉報(bào)

28#
ID:196791 發(fā)表于 2024-1-21 00:34 來自手機(jī) | 只看該作者
學(xué)習(xí)各大佬的編程思路,深受啟發(fā)
回復(fù)

使用道具 舉報(bào)

29#
ID:1101997 發(fā)表于 2024-1-21 08:31 | 只看該作者
我們追求效率肯定是沒有錯(cuò)的。對于現(xiàn)在的處理器來說,內(nèi)存空間和運(yùn)行速度基本上都是能滿足一般運(yùn)行要求的,對于項(xiàng)目來說,可靠健壯的代碼和清晰明了的結(jié)構(gòu),是當(dāng)前需要重點(diǎn)關(guān)注的。
回復(fù)

使用道具 舉報(bào)

30#
ID:1101997 發(fā)表于 2024-1-21 08:34 | 只看該作者
我們追求效率肯定是沒有錯(cuò)的。
對于現(xiàn)在的處理器來說,內(nèi)存空間和運(yùn)行速度基本上都是能滿足一般運(yùn)行要求的,對于項(xiàng)目來說,可靠健壯的代碼和清晰明了的文件架構(gòu),也許我們需要更重點(diǎn)關(guān)注的。

回復(fù)

使用道具 舉報(bào)

31#
ID:420836 發(fā)表于 2024-1-21 09:06 | 只看該作者
一個(gè)字節(jié)由 8 位組成。 字節(jié)的按位操作廣泛用于數(shù)字變量,例如開關(guān)狀態(tài)、標(biāo)志和數(shù)字輸出。
回復(fù)

使用道具 舉報(bào)

32#
ID:883242 發(fā)表于 2024-1-21 12:31 | 只看該作者
TTQ001 發(fā)表于 2024-1-21 09:06
一個(gè)字節(jié)由 8 位組成。 字節(jié)的按位操作廣泛用于數(shù)字變量,例如開關(guān)狀態(tài)、標(biāo)志和數(shù)字輸出。

字節(jié)的概念多了去了,早年計(jì)算機(jī)一個(gè)字節(jié)6、7、8位的都有,TI C2000系列DSP一個(gè)字節(jié)16位,不存在8位操作,你還是見識(shí)的太少了。
回復(fù)

使用道具 舉報(bào)

33#
ID:34149 發(fā)表于 2024-1-21 18:12 | 只看該作者
Hephaestus 發(fā)表于 2024-1-20 21:38
我早就告訴你了你不看。

我看了,當(dāng)時(shí)沒有想到能這么用。主要看來還是學(xué)習(xí)少了!
以后定向大佬們學(xué)習(xí)!請受小弟一拜!!!!
回復(fù)

使用道具 舉報(bào)

34#
ID:849913 發(fā)表于 2024-2-9 22:58 | 只看該作者
可以 用一個(gè)8位的io端口啊 用6位 寫程序時(shí)判斷io端口的狀態(tài) 如P1=0xc0 就是“”11000000“” 就是一起按了6個(gè)按鍵
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩国产一区二区三区 | 欧美国产精品一区二区 | 国产成人精品一区二区三区在线 | 日本在线免费视频 | 四虎影院在线观看免费视频 | 99精品网 | 国产精品久久久久久久久久免费 | 精品国产乱码久久久久久丨区2区 | 欧美日韩电影一区 | 日本aⅴ中文字幕 | 免费能直接在线观看黄的视频 | 精品国产色 | 亚洲精品一区二区在线观看 | 午夜欧美 | 久久一区二区av | 欧美一级在线观看 | 国产sm主人调教女m视频 | 91一区二区 | 国产高清亚洲 | 可以在线看的黄色网址 | 亚洲一区二区不卡在线观看 | 国产在线一区二区 | 日韩在线一区二区 | av黄色在线 | 99re视频在线观看 | 中文一区 | 免费在线观看av网址 | 能看的av网站 | 日韩国产在线 | 日韩精品免费 | 免费观看一级特黄欧美大片 | 欧美国产日韩一区二区三区 | 国产精品视频播放 | 日韩一区二区在线播放 | 欧美国产精品 | 综合久久久 | 亚洲欧美日韩精品久久亚洲区 | 日韩一区中文字幕 | 美女露尿口视频 | 久久精品久久久久久 | 久久久久久久久久久久久九 |