找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

光立方的資料

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1148664 發(fā)表于 2025-4-30 16:53 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
這是我自己上大學(xué)收集到的光立方的程序的資料,兄弟們可以看看。

這是主函數(shù)中的代碼
/*---------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
* 上升沿電子科技
Build target 'Target 1'
compiling main.c...
linking...
Program Size: data=111.7 xdata=1017 code=55161
creating hex file from "最新app光立方源程序"...
"最新app光立方源程序" - 0 Error(s), 0 Warning(s).
------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------*/

#include "STC12C5A.H"  //包含單片機的頭文件使用KEIL必須添加進來否則編譯不了
#include "intrins.h"   //包含NOP延時頭文件
#include "main.h"       //主程序頭文件
#include "shuju.h"     //包含字模數(shù)據(jù)數(shù)組
#include "flash.h"      //動畫部分程序
#include "hongwai.h"    //紅外部分程序
#include "key.h"        //按鍵部分程序
#include "pinpu.h"      //音樂頻譜部分程序
#include "jiance.h"     //開機檢測模式程序
#include "moshi.h"      //模式控制程序         



/*定義變量@*/
uchar xdata display[8][8];
uchar data msd=0;
uint ld=700;
uchar data key2=0,key3=0;
uchar data xsdsq=0;
uchar data sj_read_flag=0;  
uchar data read_flag=0;     //電腦上位機讀標記
uchar data cnt=0;
uchar data cot=0;
uchar data cd=0,layerr=0,saom=0;
uint liangdu = 400;          //亮度
uint donghua_shudu=500;   //動畫速度調(diào)節(jié)
int date=0;         //串口2數(shù)據(jù)
bit busy = 0; //串口判斷標記
uchar data moshi=0; // 模式
bit start3 = 0; //旋轉(zhuǎn)字母模式標記
bit key1=0;
uchar data abc_falg=0;       //旋轉(zhuǎn)字母標記
bit start1=1;//頻譜選擇標記
uchar data ping=2;        //頻譜選擇標記
uchar data dong=2;        //動畫選擇標記
uchar data gai=2;// 選擇標記
uchar data gaizi=2;//選擇標記
bit start2=1;//        動畫選擇標記
uchar data pingpu=0;        //選擇哪個頻譜動畫
uchar data donghua1=0; //選擇哪個脫機動畫
bit start_shuju=0; //wifi接收數(shù)據(jù)開始標記
bit abcd=0;//旋轉(zhuǎn)字母
bit moshi_falg=0;
uchar data dhms_falg=0;
uchar data ppms_falg=0;
uchar data sjms_falg=0;
uchar data dnms_falg=0;
uchar data gzms_falg=0;
uchar data ldjian_falg=0;
uchar data ldjia_falg=0;
uchar data sdjia_falg=0;
uchar data sdjian_falg=0;
uchar data gzdh3_falg=0;
uchar gzdh3=0;
bit gaizi1_flag=1; //開機檢測有沒有保存過內(nèi)容
bit gaizi2_flag=1;
bit gaizi3_flag=1;
bit gaizi4_flag=1;
uchar gaizi_geshu1=0;        //改字的字數(shù)
uchar gaizi_geshu2=0;
uchar gaizi_geshu3=0;
uchar jcount=0; //收到字母的個數(shù)
bit kaiji_flag=0;//
bit gaizhiflag=0;
uchar gzms_falg1=0;
uchar gzms_falg2=0;
uchar gzms_falg3=0;
uchar gzms_falg4=0;
uchar gzms_falg5=0;




/*##########################################################################################*/
//************************************上升沿電子科技************************************
//函數(shù)名稱:void init();
//功    能:定義IO口功能
//出口參數(shù):無
//編 寫 人:上升沿電子科技
//編寫日期:2015-08-1
//修改歷史:V1.0
//************************************上升沿電子科技************************************
void init()
{
        P4SW=0xff;                //定義P4口為I/O口
        P0M1=0x00;                                   
        P0M0=0xff;                //定義P0為強上拉輸出.
         P1M1=0x01;
        P1M0=0xfe;                //定義P1為強上拉輸出.   P1.0作為AD此時不能作為強上蠟
        P2M1=0x00;
        P2M0=0xff;                //定義P2為強上拉輸出.
        P3M1=0x00;
        P3M0=0xf8;                //定義P3為強上拉輸出.
        P4M1=0x00;
        P4M0=0xff;                //定義P4為強上拉輸出.         
}
/********************* AD初始化************************/
void ADC0_Init (void)
{
        uchar i;
    P1ASF = 0x01;                   //Open 8 channels ADC function
    ADC_RES = 0;                    //Clear previous result        清零ADC的8位數(shù)據(jù)
        AUXR1 &=0xFB;                   //1111,1011, 令 ADRJ=0 (10位A/D轉(zhuǎn)換結(jié)果的高8位放在ADC_RES寄存器, 低2位放在ADC_RESL寄存器)
    ADC_CONTR = ADC_POWER | ADC_SPEEDLL;//配置ADC寄存器  
        for(i=0;i<24;i++)
        {
                _nop_();        
        }

}

/*##########################################################################################*/
//************************************上升沿電子科技************************************
//函數(shù)名稱:void sinter()
//功    能:中斷初始化
//出口參數(shù):無
//編 寫 人:上升沿電子科技
//編寫日期:2015-08-1
//修改歷史:V1.0
//************************************上升沿電子科技************************************
void sinter()
{
        TCON=0x01;
        TH0=0x10;
        TL0=0x00;
        IPH = 0xfc;                  
        ET0 = 1;
        TR0 = 1;        
}
/********************* 串口初始化************************/
void init_uart(void)
{
         PCON |= 0x80;
         SCON = 0x50;
         AUXR |= 0x40;
         AUXR &= 0xFE;
         TMOD &= 0x0F;
         TMOD |= 0x20;                                          
         TL1 = 0xE8;
         TH1 = 0xE8;
         ET1 = 0;
         TR1 = 1;
         ES=1;
         EA=1;
}

/*##########################################################################################*/
//************************************上升沿電子科技************************************
//函數(shù)名稱:void delayus(unsigned int yanshi);
//功    能:根據(jù)yanshi值的大小進行延時等待操作,1默認為2uS
//入口參數(shù):yanshi的值,范圍0-65535
//出口參數(shù):無
//編 寫 人:上升沿電子科技
//編寫日期:2015-08-1
//修改歷史:V1.0
//************************************上升沿電子科技************************************
void delayus(unsigned int yanshi)
{
        unsigned int wmys;                 //定義延時循環(huán)控制變量
        for(wmys=0;wmys<=yanshi;wmys++);        //根據(jù)延時參數(shù)進行空循環(huán)操作,達到延時功能
}
void delay10us(void)   //誤差 -0.026765046296us STC 1T 22.1184Mhz
{
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=2;a>0;a--);           //默認的速度為5,變速1-5-25-125
}
void delay5us(void)   //誤差 -0.026765046296us STC 1T 22.1184Mhz
{
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=5;a>0;a--);           //默認的速度為5,變速1-5-25-125
}
void delay(uint ihk)
{   
        if(key3==2){return;}
        else
    {                                                                                             
            while(ihk--)
                {
                         delay5us();   //12t的mcu 注釋這個延時即可
                        if(dong == 1){return;} if(gai == 1){return;}if(gaizhiflag==1){return;}
                }
        }
}

void delays(int t)
{
        int i;
        while(t--)
                for(i=0;i<700;i++);
}


/*##########################################################################################*/
//************************************上升沿電子科技************************************
//函數(shù)名稱:void hansao(unsigned char hs);
//功    能:根據(jù)入口參數(shù)hs的值,進行判斷選擇哪一行,選通1-8行的選通
//入口參數(shù):hs的值,范圍0-7
//出口參數(shù):無
//編 寫 人:上升沿電子科技
//************************************上升沿電子科技************************************
void hansao(unsigned char hs)     
{
        if(hs<8)                          //判斷hs的值是否在行掃描的值范圍內(nèi),不在范圍內(nèi)不執(zhí)行任何操作
        {
                if(M_EN == 0)
                {
                        if(hs==7)                  //選通第1行
                        {
                                
                            P2=0Xfe;
                                delayus(liangdu);
                                P2 = 0xff;          //消影
                                return;
                        }
                        if(hs==6)                  //選通第2行
                        {
                             P2=0Xfd;
                                 delayus(liangdu);
                             P2 = 0xff;               
                                 return;
                        }
                        if(hs==5)                  //選通第3行
                        {
                                P2=0Xfb;
                                delayus(liangdu);
                                P2 = 0xff;        
                                return;
                        }
                        if(hs==4)                  //選通第4行
                        {
                            P2=0Xf7;
                                delayus(liangdu);
                                P2 = 0xff;        
                                  return;
                        }
                        if(hs==3)                  //選通第5行
                        {
                                P2=0Xef;
                                delayus(liangdu);
                                P2 = 0xff;                                                        
                                return;
                        }
                        if(hs==2)                  //選通第6行
                        {
                                P2=0Xdf;
                                delayus(liangdu);
                                P2 = 0xff;        
                                return;
                        }
                        if(hs==1)                  //選通第7行
                        {
                                P2=0Xbf;
                                delayus(liangdu);
                                P2 = 0xff;        
                                return;
                        }
                        if(hs==0)                  //選通第8行
                        {
                                P2=0X7f;
                                delayus(liangdu);
                                P2 = 0xff;        
                                return;
                        }
                }
        }
}
//************************************595芯片驅(qū)動程序1 頻譜模式和后面動畫模式************************************
void sendbyte(unsigned int num1,unsigned int num2,unsigned int num3,unsigned int num4)
{   
    unsigned char c;         
    for(c=0;c<8;c++)                        
   {
      CLK=0;                                 
      M_LR_DS0=num1&0x80;                        
          M_LG_DS0=num2&0x80;                        
          M_HR_DS0=num3&0x80;                        
          M_HG_DS0=num4&0x80;                        
      CLK=1;                                 
          num1<<=1;               
      num2<<=1;               
      num3<<=1;               
      num4<<=1;                        
    }
}
//************************************595芯片驅(qū)動程序2  //前面動畫************************************
void sendbyte1(unsigned int num1,unsigned int num2,unsigned int num3,unsigned int num4)
{
    unsigned char c;
    for(c=0;c<8;c++)
    {
                CLK=0;         //模擬時鐘控制端口
                M_LR_DS0=num1&0x01;           //模擬數(shù)據(jù)發(fā)送端口
                M_LG_DS0=num2&0x01;
                M_HR_DS0=num3&0x01;
                M_HG_DS0=num4&0x01;
                CLK=1;
                num1>>=1;
                num2>>=1;
                num3>>=1;
                num4>>=1;
    }
}
//************************************595芯片驅(qū)動程序3 上位機控制部分***********************************
void sendbyteck(unsigned int num1,unsigned int num2,unsigned int num3,unsigned int num4)
{
    unsigned char c;
    for(c=0;c<8;c++)
           {
                CLK=0;
                M_LR_DS0=num1&0x01;
                M_LG_DS0=num2&0x01;
                M_HR_DS0=num3&0x01;            
                M_HG_DS0=num4&0x01;
                CLK=1;
                num1>>=1;
                num2>>=1;
                num3>>=1;
                num4>>=1;
    }
}

void fvb()                //電腦上位機數(shù)據(jù)處理
{
        if(read_flag)
        {
                read_flag=0;
                for(saom=0;saom<8;saom++)
                {
                        displayck[saom+0]=((shuzu8X8[saom*8]>>7)&0x01)+(((shuzu8X8[saom*8+1]>>7)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>7)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>7)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>7)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>7)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>7)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>7)&0x01)<<7);        
                        displayck[saom+8]=((shuzu8X8[saom*8]>>6)&0x01)+(((shuzu8X8[saom*8+1]>>6)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>6)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>6)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>6)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>6)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>6)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>6)&0x01)<<7);        
                        displayck[saom+16]=((shuzu8X8[saom*8]>>5)&0x01)+(((shuzu8X8[saom*8+1]>>5)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>5)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>5)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>5)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>5)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>5)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>5)&0x01)<<7);        
                        displayck[saom+24]=((shuzu8X8[saom*8]>>4)&0x01)+(((shuzu8X8[saom*8+1]>>4)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>4)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>4)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>4)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>4)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>4)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>4)&0x01)<<7);        
                        displayck[saom+32]=((shuzu8X8[saom*8]>>3)&0x01)+(((shuzu8X8[saom*8+1]>>3)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>3)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>3)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>3)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>3)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>3)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>3)&0x01)<<7);        
                        displayck[saom+40]=((shuzu8X8[saom*8]>>2)&0x01)+(((shuzu8X8[saom*8+1]>>2)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>2)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>2)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>2)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>2)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>2)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>2)&0x01)<<7);        
                        displayck[saom+48]=((shuzu8X8[saom*8]>>1)&0x01)+(((shuzu8X8[saom*8+1]>>1)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>1)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>1)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>1)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>1)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>1)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>1)&0x01)<<7);        
                        displayck[saom+56]=((shuzu8X8[saom*8]>>0)&0x01)+(((shuzu8X8[saom*8+1]>>0)&0x01)<<1)+(((shuzu8X8[saom*8+2]>>0)&0x01)<<2)+(((shuzu8X8[saom*8+3]>>0)&0x01)<<3)+(((shuzu8X8[saom*8+4]>>0)&0x01)<<4)+(((shuzu8X8[saom*8+5]>>0)&0x01)<<5)+(((shuzu8X8[saom*8+6]>>0)&0x01)<<6)+(((shuzu8X8[saom*8+7]>>0)&0x01)<<7);        
                }
        }
        for(layerr=0;layerr<8;layerr++)
        {               
                key_baihei_scan();  
                hansao(layerr);
                sendbyteck(~displayck[layerr*8+0],~displayck[layerr*8+2],~displayck[layerr*8+4],~displayck[layerr*8+5]);
                sendbyteck(~displayck[layerr*8+3],~displayck[layerr*8+1],~displayck[layerr*8+6],~displayck[layerr*8+7]);
                SUO=0;                //模擬鎖存信號端口              
                _nop_();
                SUO=1;         
                  M_EN=0;        
                hansao(layerr);                              
                delayus(ld);            
                M_EN=1;                                
                if(key2==1||key2==2||key2==4||key2==5)
                {
                        break;
                }            
        }
}
void zhen(uchar *a,uchar v)         //前面動畫數(shù)據(jù)處理
{
         char layer;
         while(v--)
         {        
                  for(layer=0;layer<8;layer++)
                  {
                                 if(xsdsq==1){;}
                                else
                                {
                                        key_baihei_scan();
                                        if(msd==2||msd==6)
                                        {
                                                if(key2==1||key2==3||key2==5||key2==4)  
                                                {
                                                        key3=1;        
                                                        M_EN=1;                                 
                                                        break;
                                                }
                                        }
                                        if(msd==4)
                                        {
                                                if(key2==1||key2==3||key2==5||key2==2)  
                                                {
                                                        key3=1;        
                                                        M_EN=1;                  
                                                        break;
                                                }
                                        }
                                }        
                                sendbyte1(~a[layer*8+7],~a[layer*8+5],~a[layer*8+3],~a[layer*8+2]);
                                sendbyte1(~a[layer*8+4],~a[layer*8+6],~a[layer*8+1],~a[layer*8+0]);
                                SUO=0;                              
                                _nop_();
                                SUO=1;
                                M_EN=0;        
                                hansao(7-layer);                     
                                delayus(donghua_shudu);                    
                                M_EN=1;                        
                                if(dong == 1){ break;}         
                                if(abcd == 1){break;}
                                if(gai == 1){break;}
                  }
                  delays(2);                  
         }
}

void W_side(uchar *tab,char num,char v)
{
        uchar a[64]={0};
        int i,j;
        for(j=0;j<num;j++)
        {
                for(i=0;i<8;i++)
                        a[i*8+7]=tab[j*8+i];        
                if(key3==1){break;}
                else{zhen(a,v);}
                delay(50);
        }
}

/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  主函數(shù)  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
void main()
{
        unsigned char p=0,k=0,l=0;          //定義
        init();        
        start_shuju = 1;
        IDelay(100);
        IRInit();
        ADC0_Init();
        clear(0);
        PWM_LED();//開啟PWM呼吸燈功能
    moshi = 0;
        key2 = 0;
        ping=2;        
        dong=2;
        gai=2;
        gaizi=0;
        pingpu = 0;
        donghua1 = 0;
        start1 = 1;
        start2 = 1;
        turn_on(10);
        H_scan(10); // 左向右掃描檢測
        V_scan(10); //下向上掃描檢測
        W_scan(10); //前向后掃描檢測
        PWM_POW=0;  //打開電源指示燈
        sinter();
        TR0=0;           //關(guān)閉定時器顯示掃描         相當于關(guān)閉頻譜模式顯示和后面部分動畫顯示        
        while(1)        //開機檢測模式
        {
                H_scan(40); // 左向右掃描檢測   
                V_scan(40); //下向上掃描檢測
                W_scan(40); //前向后掃描檢測
                if(key1 == 1)
                {
                        msd=2;
                        break;        
                }
                if(key2==3||key2==1||key2==4||key2==5||key2==2)
                {
                        if(key2==3)
                        {
                                msd=3;break;
                        }
                        else
                        {
                                if(key2==1)
                                {
                                        msd=1;break;
                                }
                                if(key2==4)
                                {
                                        msd=4;
                                        break;        
                                }
                                if(key2==5)
                                {
                                        msd=5;
                                        break;        
                                }
                                if(key2==2)
                                {
                                        msd=2;
                                        break;        
                                }
                        }
                }
        }
        delay(10); //如果是前面動畫和上機模式需要延時下
        while(1)  /*play list*/
        {      
                kaiji_flag = 1; //開機后  
                yinyue_moshi();//音樂頻譜模式
                donghua_moshi();//動畫模式
                shangweiji_moshi();        //上位機模式
                xiugaidonghua_moshi(); //顯示文字動畫                  
        }
}

/************************************串口中斷1************************************/
void serial (void) interrupt 4 using 1
{
        uchar tempbuff;ES=0;
        if(RI)
        {
                RI=0;tempbuff=SBUF;
                switch(cnt)
                {
                        case 0:if(tempbuff==0xf2)cnt=1;else {cnt=0;}break;
                        case 1:shuzu8X8[cd++]=tempbuff;
                        if(cd==64)
                        {
                                cnt=0;
                                cd=0;
                                read_flag=1;
                        }
                        else
                        {
                                break;
                        }
                        default:break;
                }
        }
        ES=1;
}
/************************************定時中斷1************************************/
void print1() interrupt 1
{
        static uchar layert=0;
        TR0 = 0;
        ET0= 0;

        if(msd==1)          //頻譜模式
        {               
                         sendbyte(~display[layert][0],~display[layert][2],~display[layert][4],~display[layert][5]);
                         sendbyte(~display[layert][3],~display[layert][1],~display[layert][6],~display[layert][7]);
                         SUO=0;
                         _nop_();
                         SUO=1;
                         M_EN=0;
                         hansao(7-layert);         
                         delayus(ld);
                         M_EN=1;                                 
                  if (layert<7)
                       layert++;
                  else
                       layert=0;
                    key_baihei_scan();         
                        if(msd==1)
                        {
                                if(key2==2||key2==3||key2==4||key2==5)
                                {
                                        key3=2;        
                                        return;                        
                                }        
                        }                           
                         TH0=0xef;
                 TL0=0x00;
        }
        if(msd==2)         //后部分動畫
        {                       
                         sendbyte(~display[layert][0],~display[layert][2],~display[layert][4],~display[layert][5]);
                         sendbyte(~display[layert][3],~display[layert][1],~display[layert][6],~display[layert][7]);
        
                         SUO=0;
                         _nop_();
                         SUO=1;
                         M_EN=0;
                         hansao(layert);
                         delayus(donghua_shudu);
                         M_EN=1;                                 
                  if (layert<7)
                       layert++;
                  else
                       layert=0;        
                     key_baihei_scan();
                        if(msd==2)
                        {
                                if(key2==1||key2==3||key2==4||key2==5)
                                {
                                        key3=2;
                                        return;                        
                                }        
                        }  
                         TH0=0xef;
                 TL0=0x00;
        }
        if(msd==4)         //文字動畫部分
        {                       
                         sendbyte(~display[layert][0],~display[layert][2],~display[layert][4],~display[layert][5]);
                         sendbyte(~display[layert][3],~display[layert][1],~display[layert][6],~display[layert][7]);
        
                         SUO=0;
                         _nop_();
                         SUO=1;
                         M_EN=0;
                         hansao(layert);
                         delayus(donghua_shudu);
                         M_EN=1;                                 
                  if (layert<7)
                       layert++;
                  else
                       layert=0;        
                     key_baihei_scan();
                        if(msd==4)
                        {
                                if(key2==1||key2==3||key2==2||key2==5)
                                {
                                        key3=2;
                                        return;                        
                                }        
                        }  
                        
                         TH0=0xef;
                 TL0=0x00;
        }
        TR0 = 1;
        ET0 = 1;         
}

void shudu_jia() //速度加
{
        if(key2==2 || key2==4)
        {
                if(donghua_shudu>500 && donghua_shudu<=1500)
                {
                        donghua_shudu = donghua_shudu-200;
                }
                else if(donghua_shudu>100 && donghua_shudu<=500)
                {
                        donghua_shudu = donghua_shudu-100;
                }
                else if(donghua_shudu>30 && donghua_shudu<=100)
                {
                        donghua_shudu = donghua_shudu-40;
                }
                else if(donghua_shudu>0 && donghua_shudu<=30)
                {
                        donghua_shudu = donghua_shudu-10;               
                }
                if(donghua_shudu<=0 || donghua_shudu> 2000)
                {
                        donghua_shudu=1;
                }                        
        }               
}
void shudu_jian() //速度減
{
        if(key2==2 || key2==4)
        {
                if(donghua_shudu>0 && donghua_shudu<=30)
                {
                  donghua_shudu = donghua_shudu+10;
                }
                else if(donghua_shudu>30 && donghua_shudu<=100)
                {
                  donghua_shudu = donghua_shudu+40;
                }
                else if(donghua_shudu>100 && donghua_shudu<=500)
                {
                  donghua_shudu = donghua_shudu+100;
                }
                else if(donghua_shudu>500 && donghua_shudu<1500)
                {
                  donghua_shudu = donghua_shudu+200;
                }
                if(donghua_shudu >= 1500)
                {
                        donghua_shudu = 1500;                 
                }        
        }                        
}


光立方綜合功能源程序.7z

173.67 KB, 下載次數(shù): 0, 下載積分: 黑幣 -5

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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