找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 4159|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)C程序,高手幫忙檢查一下那里出了問(wèn)題,調(diào)試很長(zhǎng)時(shí)間都沒(méi)檢查出來(lái)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:51565 發(fā)表于 2013-7-15 18:33 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
大家?guī)兔z查一下那里出了問(wèn)題,調(diào)試很長(zhǎng)時(shí)間都沒(méi)檢查出來(lái):
以下是源碼:
/*---------------------------------------------*/
/*   簡(jiǎn)單計(jì)算器數(shù)碼管顯示,用于兩個(gè)整數(shù)的加減乘除,其中兩個(gè)數(shù)及其結(jié)果都不能超過(guò)8位數(shù),否則顯示“-ERROR-”*/
/*芯片:STC89C52RC  */
/*---------------------------------------------*/
#include<reg52.h>//頭包含
#include<intrins.h>//頭文件包含,_crol_()函數(shù)移位函數(shù),類(lèi)似C語(yǔ)言中"<<"操作符
#define unit unsigned int//宏定義
#define uchar unsigned char
//硬件:
sbit wela=P2^7;//LED位選
sbit dula=P2^6;//LED段選
uchar stack[8];uchar top;//用于存放待顯示數(shù)字的棧
long int num1,num2,reasult;
uchar key=255,i,opsignal,error;
uchar code table[]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數(shù)碼管數(shù)字顯示十六進(jìn)制編碼
uchar code errorCode[]={0xbf,0x86,0x88,0x88,0xc0,0x88,0xbf};//"ERROR"英文字母編碼
uchar lenth(long int n);//計(jì)算數(shù)字的位數(shù)用于將待顯示數(shù)存進(jìn)stack[]中
long int power(uchar n);//冪函數(shù)10的n次方
void delayms(unit ms);延時(shí)函數(shù)
void display(uchar mode);顯示函數(shù)
uchar keyscan();鍵盤(pán)掃描函數(shù)返回按鍵鍵值0~15,矩陣按鍵
//主函數(shù)
void main()
{
        while(1)
        {
                key=keyscan();
                if(key<10)
                {
                        stack[top]=key;                       
                        top++;               
                }
                else if(key>11)
            {
                        for(i=0;i<top;i++)num1=num1+stack[i]*power(top-i-1);
                        if(key==12)opsignal=1;
                         else if(key==13)opsignal=2;
                         else if(key==14)opsignal=3;
                         else if(key==15)opsignal=4;
                        top=0;
                        error=0;
                }
                else if(key==10){top=0;error=0;}
                else if(key==11)
                {

                        for(i=0;i<top;i++)num2=num2+stack[i]*power(top-i-1);
                        switch(opsignal)
                                {
                                        case 1:reasult=num1+num2;break;
                                        case 2:reasult=num1-num2;break;
                                        case 3:reasult=num1*num2;break;
                                        case 4:reasult=num1/num2;break;
                                }
                }
                for(i=0;i<top;i++)reasult=reasult+stack[i]*power(top-i-1);
                if(top>8)error=1;
                display(reasult);
               
        }
}
//
uchar lenth(long int n)
{
        uchar i,l;
        for(i=0;i<8;i++)if(n/power(i)==0){l=i;break;}
        return l;
}
//
long int power(uchar n)
{
        uchar i;
        long int p=1;
        for(i=0;i<n;i++)p=p*10;
        return p;

}
//延時(shí)函數(shù)(毫秒)
void delayms(unit ms)
{
        uchar i,j;
        for(i=0;i<ms;i++)
                for(j=0;j<110;j++);
}
//數(shù)碼管動(dòng)態(tài)掃描
void display(long int number)//
{

        uchar i,l,aa=0x01;
        l=lenth(number);
        for(i=0;i<l;i++)
        {
                stack[i]=number/power(l-i-1);
                number=number%power(l-i-1);
        }
        if(error==0)
        {
                for(i=0;i<l;i++)       
                {
                        wela=1;
                        P0=aa;
                        wela=0;
                        aa=_crol_(aa,1);
                        dula=1;
                        P0=table[stack[i]];
                        dula=0;
                        P0=0xff;
                        delayms(10);
                }       
        }
        else if(error==1)
        {
                aa=0x01;
                for(i=0;i<7;i++)
                {
                        wela=1;
                        P0=aa;
                        wela=0;
                        aa=_crol_(aa,1);
                        dula=1;
                        P0=errorCode[i];
                        dula=0;
                        P0=0xff;
                        delayms(10);
                }       
        }
}
//掃描函數(shù)(I/O)并返回按鍵
uchar keyscan()
{
        uchar key=255,temp;
        P3=0xfe;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0x7e:key=15;break;//"/"除
                                case 0xbe:key=14;break;//"*"乘
                                case 0xde:key=13;break;//"-"減
                                case 0xee:key=12;break;//"+"加
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
        P3=0xfd;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xed:key=11;break;//"="
                                case 0xdd:key=10;break;//"CLR"
                                case 0xbd:key=9;break;
                                case 0x7d:key=8;break;
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
        P3=0xfb;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xeb:key=7;break;
                                case 0xdb:key=6;break;
                                case 0xbb:key=5;break;
                                case 0x7b:key=4;break;
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
        P3=0xf7;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xe7:key=3;break;
                                case 0xd7:key=2;break;
                                case 0xb7:key=1;break;
                                case 0x77:key=0;break;
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
return key;
}



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

使用道具 舉報(bào)

沙發(fā)
ID:7485 發(fā)表于 2013-7-16 07:40 | 只看該作者
什么問(wèn)題?
針對(duì)性的找問(wèn)題會(huì)快捷些。如果盲目的找,整個(gè)程序分析一遍,睡會(huì)有這功夫和耐心?
回復(fù)

使用道具 舉報(bào)

板凳
ID:51565 發(fā)表于 2013-7-16 11:26 | 只看該作者
ahshmj 發(fā)表于 2013-7-16 07:40
什么問(wèn)題?
針對(duì)性的找問(wèn)題會(huì)快捷些。如果盲目的找,整個(gè)程序分析一遍,睡會(huì)有這功夫和耐心?

我檢查了很多遍,程序的過(guò)程貌似沒(méi)問(wèn)題,函數(shù)都沒(méi)問(wèn)題,是不是出現(xiàn)了數(shù)組溢出,或是軟件驅(qū)動(dòng)硬件時(shí)方式不當(dāng)。麻煩幫忙仔細(xì)查看主函數(shù)。謝謝!
回復(fù)

使用道具 舉報(bào)

地板
ID:7485 發(fā)表于 2013-7-16 19:13 | 只看該作者
你到底感覺(jué)哪兒不對(duì)?直觀(guān)的敘述。
回復(fù)

使用道具 舉報(bào)

5#
ID:7485 發(fā)表于 2013-7-16 19:35 | 只看該作者
大家?guī)兔z查一下那里出了問(wèn)題,調(diào)試很長(zhǎng)時(shí)間都沒(méi)檢查出來(lái):
以下是源碼:
/*---------------------------------------------*/
/*   簡(jiǎn)單計(jì)算器數(shù)碼管顯示,用于兩個(gè)整數(shù)的加減乘除,其中兩個(gè)數(shù)及其結(jié)果都不能超過(guò)8位數(shù),否則顯示“-ERROR-”*/
/*芯片:STC89C52RC  */
/*---------------------------------------------*/
#include<reg52.h>//頭包含
#include<intrins.h>//頭文件包含,_crol_()函數(shù)移位函數(shù),類(lèi)似C語(yǔ)言中"<<"操作符
#define unit unsigned int//宏定義
#define uchar unsigned char
//硬件:
sbit wela=P2^7;//LED位選
sbit dula=P2^6;//LED段選
uchar stack[8];uchar top;//用于存放待顯示數(shù)字的棧    紅色的分號(hào)改成半角字符(西文標(biāo)點(diǎn))
long int num1,num2,reasult;
uchar key=255,i,opsignal,error;
uchar code table[]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數(shù)碼管數(shù)字顯示十六進(jìn)制編碼
uchar code errorCode[]={0xbf,0x86,0x88,0x88,0xc0,0x88,0xbf};//"ERROR"英文字母編碼
uchar lenth(long int n);//計(jì)算數(shù)字的位數(shù)用于將待顯示數(shù)存進(jìn)stack[]中
long int power(uchar n);//冪函數(shù)10的n次方
void delayms(unit ms);延時(shí)函數(shù)                                  //加上注釋符號(hào),下面2行同
void display(uchar mode);顯示函數(shù)
uchar keyscan();鍵盤(pán)掃描函數(shù)返回按鍵鍵值0~15,矩陣按鍵
//主函數(shù)
void main()
{
        while(1)
        {
                key=keyscan();
                if(key<10)
                {
                        stack[top]=key;                       
                        top++;               
                }
                else if(key>11)
            {
                        for(i=0;i<top;i++)num1=num1+stack*power(top-i-1);
                        if(key==12)opsignal=1;
                         else if(key==13)opsignal=2;
                         else if(key==14)opsignal=3;
                         else if(key==15)opsignal=4;
                        top=0;
                        error=0;
                }
                else if(key==10){top=0;error=0;}
                else if(key==11)
                {

                        for(i=0;i<top;i++)num2=num2+stack*power(top-i-1);
                        switch(opsignal)
                                {
                                        case 1:reasult=num1+num2;break;
                                        case 2:reasult=num1-num2;break;
                                        case 3:reasult=num1*num2;break;
                                        case 4:reasult=num1/num2;break;
                                }
                }
                for(i=0;i<top;i++)reasult=reasult+stack*power(top-i-1);
                if(top>8)error=1;
                display(reasult);
               
        }
}
//
uchar lenth(long int n)
{
        uchar i,l;
        for(i=0;i<8;i++)if(n/power(i)==0){l=i;break;}
        return l;
}
//
long int power(uchar n)
{
        uchar i;
        long int p=1;
        for(i=0;i<n;i++)p=p*10;
        return p;

}
//延時(shí)函數(shù)(毫秒)
void delayms(unit ms)
{
        uchar i,j;
        for(i=0;i<ms;i++)
                for(j=0;j<110;j++);
}
//數(shù)碼管動(dòng)態(tài)掃描
void display(long int number)//  這里的參數(shù)類(lèi)型和前面聲明中的不一致
{

        uchar i,l,aa=0x01;
        l=lenth(number);
        for(i=0;i<l;i++)
        {
                stack=number/power(l-i-1);
                number=number%power(l-i-1);
        }
        if(error==0)
        {
                for(i=0;i<l;i++)       
                {
                        wela=1;
                        P0=aa;
                        wela=0;
                        aa=_crol_(aa,1);
                        dula=1;
                        P0=table[stack];
                        dula=0;
                        P0=0xff;
                        delayms(10);
                }       
        }
        else if(error==1)
        {
                aa=0x01;
                for(i=0;i<7;i++)
                {
                        wela=1;
                        P0=aa;
                        wela=0;
                        aa=_crol_(aa,1);
                        dula=1;
                        P0=errorCode;
                        dula=0;
                        P0=0xff;
                        delayms(10);
                }       
        }
}
//掃描函數(shù)(I/O)并返回按鍵
uchar keyscan()
{
        uchar key=255,temp;
        P3=0xfe;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0x7e:key=15;break;//"/"除
                                case 0xbe:key=14;break;//"*"乘
                                case 0xde:key=13;break;//"-"減
                                case 0xee:key=12;break;//"+"加
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
        P3=0xfd;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xed:key=11;break;//"="
                                case 0xdd:key=10;break;//"CLR"
                                case 0xbd:key=9;break;
                                case 0x7d:key=8;break;
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
        P3=0xfb;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xeb:key=7;break;
                                case 0xdb:key=6;break;
                                case 0xbb:key=5;break;
                                case 0x7b:key=4;break;
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
        P3=0xf7;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xe7:key=3;break;
                                case 0xd7:key=2;break;
                                case 0xb7:key=1;break;
                                case 0x77:key=0;break;
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
return key;
}


改過(guò)后應(yīng)如下:     (void display(uchar number 參數(shù)類(lèi)型的問(wèn)題自己斟酌這樣是否合適)
/*   簡(jiǎn)單計(jì)算器數(shù)碼管顯示,用于兩個(gè)整數(shù)的加減乘除,其中兩個(gè)數(shù)及其結(jié)果都不能超過(guò)8位數(shù),否則顯示"-ERROR-"*/
/*芯片:STC89C52RC  */
/*---------------------------------------------*/
#include<reg52.h>//頭包含
#include<intrins.h>//頭文件包含,_crol_()函數(shù)移位函數(shù),類(lèi)似C語(yǔ)言中"<<"操作符
#define unit unsigned int//宏定義
#define uchar unsigned char
//硬件:
sbit wela=P2^7;//LED位選
sbit dula=P2^6;//LED段選
uchar stack[8];
uchar top;//用于存放待顯示數(shù)字的棧
long int num1,num2,reasult;
uchar key=255,i,opsignal,error;
uchar code table[]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數(shù)碼管數(shù)字顯示十六進(jìn)制編碼
uchar code errorCode[]={0xbf,0x86,0x88,0x88,0xc0,0x88,0xbf};//"ERROR"英文字母編碼
uchar lenth(long int n);//計(jì)算數(shù)字的位數(shù)用于將待顯示數(shù)存進(jìn)stack[]中
long int power(uchar n);//冪函數(shù)10的n次方
void delayms(unit ms);//延時(shí)函數(shù)
void display(uchar number);//顯示函數(shù)
uchar keyscan();//鍵盤(pán)掃描函數(shù)返回按鍵鍵值0~15,矩陣按鍵
//主函數(shù)
void main()
{
        while(1)
        {
                key=keyscan();
                if(key<10)
                {
                        stack[top]=key;                        
                        top++;               
                }
                else if(key>11)
            {
                        for(i=0;i<top;i++)num1=num1+stack*power(top-i-1);
                        if(key==12)opsignal=1;
                         else if(key==13)opsignal=2;
                         else if(key==14)opsignal=3;
                         else if(key==15)opsignal=4;
                        top=0;
                        error=0;
                }
                else if(key==10){top=0;error=0;}
                else if(key==11)
                {

                        for(i=0;i<top;i++)num2=num2+stack*power(top-i-1);
                        switch(opsignal)
                                {
                                        case 1:reasult=num1+num2;break;
                                        case 2:reasult=num1-num2;break;
                                        case 3:reasult=num1*num2;break;
                                        case 4:reasult=num1/num2;break;
                                }
                }
                for(i=0;i<top;i++)reasult=reasult+stack*power(top-i-1);
                if(top>8)error=1;
                display(reasult);
               
        }
}
//
uchar lenth(long int n)
{
        uchar i,l;
        for(i=0;i<8;i++)if(n/power(i)==0){l=i;break;}
        return l;
}
//
long int power(uchar n)
{
        uchar i;
        long int p=1;
        for(i=0;i<n;i++)p=p*10;
        return p;

}
//延時(shí)函數(shù)(毫秒)
void delayms(unit ms)
{
        uchar i,j;
        for(i=0;i<ms;i++)
                for(j=0;j<110;j++);
}
//數(shù)碼管動(dòng)態(tài)掃描
//void display(long int number)//
void display(uchar number)
{

        uchar i,l,aa=0x01;
        l=lenth(number);
        for(i=0;i<l;i++)
        {
                stack=number/power(l-i-1);
                number=number%power(l-i-1);
        }
        if(error==0)
        {
                for(i=0;i<l;i++)        
                {
                        wela=1;
                        P0=aa;
                        wela=0;
                        aa=_crol_(aa,1);
                        dula=1;
                        P0=table[stack];
                        dula=0;
                        P0=0xff;
                        delayms(10);
                }        
        }
        else if(error==1)
        {
                aa=0x01;
                for(i=0;i<7;i++)
                {
                        wela=1;
                        P0=aa;
                        wela=0;
                        aa=_crol_(aa,1);
                        dula=1;
                        P0=errorCode;
                        dula=0;
                        P0=0xff;
                        delayms(10);
                }        
        }
}
//掃描函數(shù)(I/O)并返回按鍵
uchar keyscan()
{
        uchar key=255,temp;
        P3=0xfe;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0x7e:key=15;break;//"/"除
                                case 0xbe:key=14;break;//"*"乘
                                case 0xde:key=13;break;//"-"減
                                case 0xee:key=12;break;//"+"加
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
        P3=0xfd;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xed:key=11;break;//"="
                                case 0xdd:key=10;break;//"CLR"
                                case 0xbd:key=9;break;
                                case 0x7d:key=8;break;
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
        P3=0xfb;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xeb:key=7;break;
                                case 0xdb:key=6;break;
                                case 0xbb:key=5;break;
                                case 0x7b:key=4;break;
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
        P3=0xf7;
        temp=P3;
        temp=temp&0xf0;
        if(temp!=0xf0)
        {
                delayms(10);
                temp=P3;
                temp=temp&0xf0;               
                if(temp!=0xf0)
                {
                        temp=P3;
                        switch(temp)
                        {
                                case 0xe7:key=3;break;
                                case 0xd7:key=2;break;
                                case 0xb7:key=1;break;
                                case 0x77:key=0;break;
                        }               
                        while(temp!=0xf0)
                        {
                                temp=P3;
                                temp=temp&0xf0;
                        }
                }
        }
return key;
}
回復(fù)

使用道具 舉報(bào)

6#
ID:51565 發(fā)表于 2013-7-21 12:07 來(lái)自觸屏版 | 只看該作者
首先謝謝你有耐心地把這么亂的代碼看完,謝謝。但是問(wèn)題仍然沒(méi)有解決,可能是我沒(méi)有把問(wèn)題表述清楚。問(wèn)題是這樣的:程序能通過(guò)編譯并運(yùn)行,所以你所指出來(lái)的錯(cuò)誤應(yīng)該都是發(fā)表貼子的時(shí)候不小心的錯(cuò)誤。問(wèn)題是在keil中完成編譯并生成hex文件下載到單片機(jī)后,我按下按鍵輸入第一個(gè)數(shù),沒(méi)問(wèn)題,可按下加號(hào)的時(shí)候數(shù)碼管卻現(xiàn)顯示上個(gè)數(shù)字的最后一個(gè)數(shù)字,而且再接著按其他按鍵的時(shí)候仍然顯示這個(gè)數(shù)字,當(dāng)我按下等號(hào)的時(shí)候竟然有時(shí)顯示一串奇怪的數(shù)字有時(shí)直接顯示error。郁悶啊,檢查好長(zhǎng)時(shí)間了都沒(méi)有頭緒。我是一名高中畢業(yè)生,暑假在家自學(xué)單片機(jī),還剛剛起步,想好好的學(xué)好在大學(xué)里能夠?qū)W得更深,同時(shí)學(xué)習(xí)單片機(jī)也是我個(gè)人的愛(ài)好。本想著要自己開(kāi)發(fā)出一個(gè)簡(jiǎn)單的計(jì)算器,沒(méi)想到卻碰到這個(gè)麻煩。唉,杯具啊,想也是基礎(chǔ)不扎實(shí)造成的。想請(qǐng)高手幫忙解決,拜托了啊!
回復(fù)

使用道具 舉報(bào)

7#
ID:51894 發(fā)表于 2013-7-21 15:02 | 只看該作者
根據(jù)樓主你的問(wèn)題描述應(yīng)該是位選和段選的關(guān)系沒(méi)有處理好 你再看看動(dòng)態(tài)數(shù)碼管的一些資料應(yīng)該對(duì)你有幫助
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表