⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcutools.cpp

📁 MCUTool.exe 源代码 !!!超级单片机开发工具!!! 单片机开发过程中用到的多功能工具
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                    }
                  if(fCustom){
                    mLEDCode->Text = "LED16Codec:\t\t; Character Encode";     // Character
                    for (i=1;i<vleLEDCodec->RowCount;i++){
                        s = vleLEDCodec->Keys[i];
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0],3)+ postfix + "\t\t; "+ s + " LSB");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s + " MSB");
                    }

                    mLEDCode->Lines->Add(" ");
                  }else{
                    mLEDCode->Text = "LED16Char:\t\t; Character Encode";     // Character
                    for (i=0;i<26;i++){
                        s.printf("%c",'A'+i);
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0],3)+ postfix + "\t\t; "+ s + " LSB");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s + " MSB");
                    }

                    mLEDCode->Lines->Add(" ");
                    mLEDCode->Lines->Add("LED16Num:\t\t; Number Encode");      // Number
                    for (i=26;i<42;i++){
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0],3)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " LSB");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " MSB");
                    }
                  }
                } else {
                  if(fCustom){
                    mLEDCode->Text = "const unsigned char LED16Char[]={\t\t// Character Encode";  // Character
                    for (i=1;i<vleLEDCodec->RowCount;i++){
                        s = vleLEDCodec->Keys[i];
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0],2)+ (",\t\t// ")+ s + " LSB");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1],2)+ (i==vleLEDCodec->RowCount-1?"\t\t// ":",\t\t// ")+ s + " MSB");
                    }
                    mLEDCode->Lines->Add("};");
                  }else{
                    mLEDCode->Text = "const unsigned char LED16Char[]={\t\t// Character Encode";   // Character
                    for (i=0;i<26;i++){
                        s.printf("%c",'A'+i);
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0],2)+ (",\t\t// ")+ s + " LSB");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1],2)+ (i==25?"\t\t// ":",\t\t// ")+ s + " MSB");
                    }
                    mLEDCode->Lines->Add("};");

                    mLEDCode->Lines->Add(" ");
                    mLEDCode->Lines->Add("const unsigned char LED16Num[]={\t\t// Number Encode");      // Number
                    for (i=26;i<42;i++){
                        s.printf("%c",'A'+i);
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0],2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " LSB");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1],2)+ (i==41?"\t\t// ":",\t\t// ")+ s.IntToHex(i-26,1) + " MSB");
                    }
                    mLEDCode->Lines->Add("};");
                  }
                }
            }

        }
        if(rbLED14->Checked){
            try{
            patA = (1<<edLED14A->Text.ToInt());
            patB = (1<<edLED14B->Text.ToInt());
            patC = (1<<edLED14C->Text.ToInt());
            patD = (1<<edLED14D->Text.ToInt());
            patE = (1<<edLED14E->Text.ToInt());
            patF = (1<<edLED14F->Text.ToInt());
            patG1 = (1<<edLED14G1->Text.ToInt());
            patG2 = (1<<edLED14G2->Text.ToInt());
            patH = (1<<edLED14H->Text.ToInt());
            patJ = (1<<edLED14J->Text.ToInt());
            patK = (1<<edLED14K->Text.ToInt());
            patL = (1<<edLED14L->Text.ToInt());
            patM = (1<<edLED14M->Text.ToInt());
            patN = (1<<edLED14N->Text.ToInt());
            }
            catch(EConvertError &E)
            {
                        Application->MessageBox("Please input bit information correctly!","Error",MB_OK | MB_ICONERROR);
                        return;
            }

            if(vleLEDCodec->RowCount > 0 || !vleLEDCodec->Cells[1][1].IsEmpty()){
                for(i=1;i<vleLEDCodec->RowCount ;i++){
                        if(vleLEDCodec->Cells[1][i].IsEmpty()){
                                led[i].wd = 0;
                                continue;
                        }
                        try{
                                pat = vleLEDCodec->Cells[1][i].ToInt();
                        }catch(...){
                                pat = 0;
                        }
                        led[i].wd =  (patA   & ((pat & (1<<0))?0xffff:0x0000))
                                     |(patB  & ((pat & (1<<1))?0xffff:0x0000))
                                     |(patC  & ((pat & (1<<2))?0xffff:0x0000))
                                     |(patD  & ((pat & (1<<3))?0xffff:0x0000))
                                     |(patE  & ((pat & (1<<4))?0xffff:0x0000))
                                     |(patF  & ((pat & (1<<5))?0xffff:0x0000))
                                     |(patG1 & ((pat & (1<<6))?0xffff:0x0000))
                                     |(patG2 & ((pat & (1<<7))?0xffff:0x0000))
                                     |(patH  & ((pat & (1<<8))?0xffff:0x0000))
                                     |(patJ  & ((pat & (1<<9))?0xffff:0x0000))
                                     |(patK  & ((pat & (1<<10))?0xffff:0x0000))
                                     |(patL  & ((pat & (1<<11))?0xffff:0x0000))
                                     |(patM  & ((pat & (1<<12))?0xffff:0x0000))
                                     |(patN  & ((pat & (1<<13))?0xffff:0x0000));
                        fCustom = true;
                }
            }else{
                led[0].wd = patA|patB|patC|patE|patF|patG1|patG2;        //A
                led[1].wd = patF|patE|patG1|patG2|patC|patD;             //B
                led[2].wd = patA|patD|patE|patF;                         //C
                led[3].wd = patA|patB|patC|patD|patM|patJ;               //D
                led[4].wd = patA|patD|patE|patF|patG1|patG2;             //E
                led[5].wd = patA|patE|patF|patG1|patG2;                  //F
                led[6].wd = patA|patC|patD|patE|patF|patG2;              //G
                led[7].wd = patB|patC|patE|patF|patG1|patG2;             //H
                led[8].wd = patA|patD|patM|patJ;                         //I
                led[9].wd = patB|patC|patD;                              //J
                led[10].wd = patG1|patE|patF|patK|patL;                  //K
                led[11].wd = patD|patE|patF;                             //L
                led[12].wd = patB|patC|patE|patF|patH|patK;              //M
                led[13].wd = patB|patC|patE|patF|patH|patL;              //N
                led[14].wd = patA|patB|patC|patD|patE|patF;              //O
                led[15].wd = patA|patB|patE|patF|patG1|patG2;            //P
                led[16].wd = patA|patB|patC|patD|patE|patF|patL;         //Q
                led[17].wd = patA|patB|patE|patF|patG1|patG2|patL;       //R
                led[18].wd = patA|patC|patD|patF|patG1|patG2;            //S
                led[19].wd = patA|patM|patJ;                             //T
                led[20].wd = patB|patC|patD|patE|patF;                   //U
                led[21].wd = patE|patF|patN|patK;                        //V
                led[22].wd = patB|patC|patE|patF|patL|patN;              //W
                led[23].wd = patH|patK|patL|patN;                        //X
                led[24].wd = patB|patC|patD|patF|patG1|patG2;            //Y
                led[25].wd = patA|patK|patN|patD;                        //Z

                led[26].wd = patA|patB|patC|patD|patE|patF;                      //0
                led[27].wd = patB|patC;                                          //1
                led[28].wd = patA|patB|patD|patE|patG1|patG2;                    //2
                led[29].wd = patA|patB|patC|patD|patG1|patG2;                    //3
                led[30].wd = patB|patC|patF|patG1|patG2;                         //4
                led[31].wd = patA|patC|patD|patF|patG1|patG2;                    //5
                led[32].wd = patA|patC|patD|patE|patF|patG1|patG2;               //6
                led[33].wd = patA|patB|patC;                                     //7
                led[34].wd = patA|patB|patC|patD|patE|patF|patG1|patG2;          //8
                led[35].wd = patA|patB|patC|patD|patF|patG1|patG2;               //9
                led[36].wd = patA|patB|patC|patE|patF|patG1|patG2;               //A
                led[37].wd = patF|patE|patG1|patG2|patC|patD;                    //B
                led[38].wd = patA|patD|patE|patF;                                //C
                led[39].wd = patA|patB|patC|patD|patM|patJ;                      //D
                led[40].wd = patA|patD|patE|patF|patG1|patG2;                    //E
                led[41].wd = patA|patE|patF|patG1|patG2;                         //F
            }

            if(cbLEDReverse->Checked){
                if(fCustom){
                        for (i=1;i<vleLEDCodec->RowCount;i++){
                                led[i].wd ^= 0xffff;
                        }
                }else{
                        for (i=0;i<42;i++){
                                led[i].wd ^= 0xffff;
                        }
                }
            }

            if(rb4Bits->Checked){
                if(rbASM->Checked ){
                    if(rbPre->Checked){
                        prefix = edHex->Text.Trim();
                    }else{
                        postfix = edHex->Text.Trim();
                    }
                  if(fCustom){
                    mLEDCode->Text = "LED14Codec:\t\t; Character Encode";     // Character
                    for (i=1;i<vleLEDCodec->RowCount;i++){
                        s = vleLEDCodec->Keys[i];
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0] & 0x0f,2)+ postfix + "\t\t; "+ s + " LSB");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[0]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s + " ...");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1] & 0x0f,2)+ postfix + "\t\t; "+ s + " ...");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s + " MSB");
                    }
                  }else{
                    mLEDCode->Text = "LED14Char:\t\t; Character Encode";     // Character
                    for (i=0;i<26;i++){
                        s.printf("%c",'A'+i);
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0] & 0x0f,2)+ postfix + "\t\t; "+ s + " LSB");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[0]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s + " ...");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1] & 0x0f,2)+ postfix + "\t\t; "+ s + " ...");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s + " MSB");
                    }
                    mLEDCode->Lines->Add(" ");
                    mLEDCode->Lines->Add("LED14Num:\t\t; Number Encode");      // Number
                    for (i=26;i<42;i++){
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0] & 0x0f,2)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " LSB");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[0]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " ...");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1] & 0x0f,2)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " ...");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " MSB");
                    }
                  }
                } else {
                  if(fCustom){
                    mLEDCode->Text = "const unsigned char LED14Char[]={\t\t// Character Encode";  // Character
                    for (i=1;i<vleLEDCodec->RowCount;i++){
                        s = vleLEDCodec->Keys[i];
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0] & 0x0f,2)+ (",\t\t// ")+ s + " LSB");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[0]>>4) & 0x0f,2)+ (",\t\t// ")+ s + " ...");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1] & 0x0f,2)+ (",\t\t// ")+ s + " ...");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ (i==vleLEDCodec->RowCount-1?"\t\t// ":",\t\t// ")+ s + " MSB");
                    }
                    mLEDCode->Lines->Add("};");
                  }else{
                    mLEDCode->Text = "const unsigned char LED14Char[]={\t\t// Character Encode";  // Character
                    for (i=0;i<26;i++){
                        s.printf("%c",'A'+i);
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0] & 0x0f,2)+ (",\t\t// ")+ s + " LSB");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[0]>>4) & 0x0f,2)+ (",\t\t// ")+ s + " ...");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1] & 0x0f,2)+ (",\t\t// ")+ s + " ...");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ (i==25?"\t\t// ":",\t\t// ")+ s + " MSB");
                    }
                    mLEDCode->Lines->Add("};");

                    mLEDCode->Lines->Add(" ");
                    mLEDCode->Lines->Add("const unsigned char LED14Num[]={\t\t// Number Encode");   // Number
                    for (i=26;i<42;i++){
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[0] & 0x0f,2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " LSB");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[0]>>4) & 0x0f,2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " ...");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex(led[i].ar[1] & 0x0f,2)+ (",\t\t// ")+ s.IntToHex(i-26,1) + " ...");
                        mLEDCode->Lines->Add("\t0x" + s.IntToHex((led[i].ar[1]>>4) & 0x0f,2)+ (i==41?"\t\t// ":",\t\t// ")+ s.IntToHex(i-26,1) + " MSB");
                    }
                    mLEDCode->Lines->Add("};");
                  }
                }
            } else {
                if(rbASM->Checked ){
                    if(rbPre->Checked){
                        prefix = edHex->Text.Trim();
                    }else{
                        postfix = edHex->Text.Trim();
                    }
                  if(fCustom){
                    mLEDCode->Text = "LED14Char:\t\t; Character Encode";     // Character
                    for (i=1;i<vleLEDCodec->RowCount;i++){
                        s = vleLEDCodec->Keys[i];
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0],3)+ postfix + "\t\t; "+ s + " LSB");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s + " MSB");
                    }
                  }else{
                    mLEDCode->Text = "LED14Char:\t\t; Character Encode";     // Character
                    for (i=0;i<26;i++){
                        s.printf("%c",'A'+i);
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0],3)+ postfix + "\t\t; "+ s + " LSB");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s + " MSB");
                    }

                    mLEDCode->Lines->Add(" ");
                    mLEDCode->Lines->Add("LED14Num:\t\t; Number Encode");      // Number
                    for (i=26;i<42;i++){
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[0],3)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " LSB");
                        mLEDCode->Lines->Add("\t"+edLEDDB->Text.Trim()+"\t" + prefix + s.IntToHex(led[i].ar[1],3)+ postfix + "\t\t; "+ s.IntToHex(i-26,1) + " MSB");
                    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -