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

📄 pinsetform.cpp

📁 并口的EPP模式模拟IIC接口
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "PinSetForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TPinSet *PinSet;
//---------------------------------------------------------------------------
__fastcall TPinSet::TPinSet(TComponent* Owner)
        : TForm(Owner)
{
        uSCL=0x01;
        uSDI=0x02;
        uSDO=0x04;
        nSCL=0x01;
        nSDI=0x02;
        nSDO=0x04;
        EPP_Port_Addr->AddItem("0x378",this);
        Mode_SPP->Checked=TRUE;
        SetDataBit(uSDI, uSDO,uSCL);//BYTE nsdo, BYTE nscl);
}
//---------------------------------------------------------------------------
void TPinSet::OnGetSDI(BYTE sdi)
{
        uSDI=sdi;
        return;
}
//---------------------------------------------------------------------------
void TPinSet::OnGetSDO(BYTE sdo)
{
        uSDO=sdo;
        return;
}

//---------------------------------------------------------------------------
void TPinSet::OnGetSCL(BYTE scl)
{
        uSCL=scl;
        return;
}
//---------------------------------------------------------------------------
BYTE TPinSet::OnGetSDI(void)
{
        BYTE result;
        result=uSDI ;
        return result;
}
BYTE TPinSet::OnGetSDO(void)
{
        BYTE result;
        result=uSDO ;
        return result;
}
//---------------------------------------------------------------------------
BYTE TPinSet::OnGetSCL(void)
{
        BYTE result;
        result=uSCL;
        return result;
}
//---------------------------------------------------------------------------

void __fastcall TPinSet::CheckSCLBit(BYTE NO)
{
        //TODO: Add your source code here
        bool T=FALSE;
        if(NO>0X80)
        return;
        if(NO==0x00)
        {
                T=SDO_D0->Checked|SDI_D0->Checked;
                if(T)
                {
                        SCL_D0->Checked=FALSE;
                       // CheckBit(BYTE NO
                }
                else
                {
                        if(SCL_D0->Checked)
                        {
                                SCL_D1->Checked=FALSE;
                                SCL_D2->Checked=FALSE;
                                SCL_D3->Checked=FALSE;
                                SCL_D4->Checked=FALSE;
                                SCL_D5->Checked=FALSE;
                                SCL_D6->Checked=FALSE;
                                SCL_D7->Checked=FALSE;
                                nSCL=0x01;
                        }
                }
         }
         else if(NO==0x01)
         {
                T=SDO_D1->Checked|SDI_D1->Checked;
                if(T)
                {
                        SCL_D1->Checked=FALSE;
                }
                else
                {
                        if(SCL_D1->Checked)
                        {
                                SCL_D0->Checked=FALSE;
                                SCL_D2->Checked=FALSE;
                                SCL_D3->Checked=FALSE;
                                SCL_D4->Checked=FALSE;
                                SCL_D5->Checked=FALSE;
                                SCL_D6->Checked=FALSE;
                                SCL_D7->Checked=FALSE;
                                nSCL=0x02;
                        }
                }
         }
         else if(NO==0x02)
         {
                T=SDO_D2->Checked|SDI_D2->Checked;
                if(T)
                {
                        SCL_D2->Checked=FALSE;
                }
                else
                {
                        if(SCL_D2->Checked)
                        {
                                SCL_D0->Checked=FALSE;
                                SCL_D1->Checked=FALSE;
                                //       SCL_D2->Checked=TRUE;
                                SCL_D3->Checked=FALSE;
                                SCL_D4->Checked=FALSE;
                                SCL_D5->Checked=FALSE;
                                SCL_D6->Checked=FALSE;
                                SCL_D7->Checked=FALSE;
                                nSCL=0x04;
                        }
                }
         }
         else if(NO==0x03)
         {
                T=SDO_D3->Checked|SDI_D3->Checked;
                if(T)
                {
                        SCL_D3->Checked=FALSE;
                }
                else
                {
                        if(SCL_D3->Checked)
                        {
                                SCL_D0->Checked=FALSE;
                                SCL_D1->Checked=FALSE;
                                SCL_D2->Checked=FALSE;
                                //    SCL_D3->Checked=TRUE;
                                SCL_D4->Checked=FALSE;
                                SCL_D5->Checked=FALSE;
                                SCL_D6->Checked=FALSE;
                                SCL_D7->Checked=FALSE;
                                nSCL=0x08;
                        }
                }
         }
         else if(NO==0x04)
         {
                T= SDO_D4->Checked|SDI_D4->Checked;
                if(T)
                {
                        SCL_D4->Checked=FALSE;
                }
                else
                {
                        if(SCL_D4->Checked)
                        {
                                SCL_D0->Checked=FALSE;
                                SCL_D1->Checked=FALSE;
                                SCL_D2->Checked=FALSE;
                                SCL_D3->Checked=FALSE;
                                //    SCL_D4->Checked=TRUE;
                                SCL_D5->Checked=FALSE;
                                SCL_D6->Checked=FALSE;
                                SCL_D7->Checked=FALSE;
                                nSCL=0x10;
                        }
                }
         }
         else if(NO==0x05)
         {
                T=SDO_D5->Checked|SDI_D5->Checked;
                if(T)
                {
                        SCL_D5->Checked=FALSE;
                }
                else
                {
                        if(SCL_D5->Checked)
                        {
                                SCL_D0->Checked=FALSE;
                                SCL_D1->Checked=FALSE;
                                SCL_D2->Checked=FALSE;
                                SCL_D3->Checked=FALSE;
                                SCL_D4->Checked=FALSE;
                                //   SCL_D5->Checked=TRUE;
                                SCL_D6->Checked=FALSE;
                                SCL_D7->Checked=FALSE;
                                nSCL=0x20;
                        }
                }
         }
         else if(NO==0x06)
         {
                T=SDO_D6->Checked|SDI_D6->Checked;
                if(T)
                {
                        SCL_D6->Checked=FALSE;
                }
                else
                {
                        if(SCL_D6->Checked)
                        {
                                SCL_D0->Checked=FALSE;
                                SCL_D1->Checked=FALSE;
                                SCL_D2->Checked=FALSE;
                                SCL_D3->Checked=FALSE;
                                SCL_D4->Checked=FALSE;
                                SCL_D5->Checked=FALSE;
                                SCL_D7->Checked=FALSE;
                                nSCL=0x40;
                        }
                }
         }
         else if(NO==0x07)
         {
                T=SDO_D7->Checked|SDI_D7->Checked ;
                if(T)
                {
                        SCL_D7->Checked=FALSE;
                }
                else
                {
                        if(SCL_D7->Checked)
                        {
                                SCL_D0->Checked=FALSE;
                                SCL_D1->Checked=FALSE;
                                SCL_D2->Checked=FALSE;
                                SCL_D3->Checked=FALSE;
                                SCL_D4->Checked=FALSE;
                                SCL_D5->Checked=FALSE;
                                SCL_D6->Checked=FALSE;
                                //    SCL_D7->Checked=TRUE; //使用该语句将出现死循环
                                nSCL=0x80;
                        }
                }
         }
         while(T)
         {
                MessageBox(NULL,"Please select anoter bit",
                "Warning",MB_OK|MB_TOPMOST);
                T=FALSE;
                break;
        }
         return;


}

//---------------------------------------------------------------------------
void __fastcall TPinSet::SCL_D0Click(TObject *Sender)
{
        CheckSCLBit(0x00);
}
//---------------------------------------------------------------------------
void __fastcall TPinSet::SCL_D1Click(TObject *Sender)
{
         CheckSCLBit(0x01);
}
//---------------------------------------------------------------------------

void __fastcall TPinSet::SCL_D2Click(TObject *Sender)
{
        CheckSCLBit(0x02);
}
//---------------------------------------------------------------------------

void __fastcall TPinSet::SCL_D3Click(TObject *Sender)
{
        CheckSCLBit(0x03);        
}
//---------------------------------------------------------------------------

void __fastcall TPinSet::SCL_D4Click(TObject *Sender)
{
        CheckSCLBit(0x04);        
}
//---------------------------------------------------------------------------

void __fastcall TPinSet::SCL_D5Click(TObject *Sender)
{
        CheckSCLBit(0x05);
}
//---------------------------------------------------------------------------

void __fastcall TPinSet::SCL_D6Click(TObject *Sender)
{
        CheckSCLBit(0x06);        
}
//---------------------------------------------------------------------------

void __fastcall TPinSet::SCL_D7Click(TObject *Sender)
{
        CheckSCLBit(0x07);
}
//---------------------------------------------------------------------------



void __fastcall TPinSet::CheckSDIBit(BYTE NO)
{
        //TODO: Add your source code here
         bool T=FALSE;
         if(NO>0X80)
                return;
         if(NO==0x00)
         {
                T=SDO_D0->Checked|SCL_D0->Checked;
                if(T)
                {
                        SDI_D0->Checked=FALSE;
                }
                else
                {
                        if(SDI_D0->Checked)
                        {
                                SDI_D1->Checked=FALSE;
                                SDI_D2->Checked=FALSE;
                                SDI_D3->Checked=FALSE;
                                SDI_D4->Checked=FALSE;
                                SDI_D5->Checked=FALSE;
                                SDI_D6->Checked=FALSE;
                                SDI_D7->Checked=FALSE;
                                nSDI=0x01;
                        }
                }
         }
         else if(NO==0x01)
         {
                T=SDO_D1->Checked|SCL_D1->Checked;
                if(T)
                {
                        SDI_D1->Checked=FALSE;
                }
                else
                {
                        if(SDI_D1->Checked)
                        {
                                SDI_D0->Checked=FALSE;
                                SDI_D2->Checked=FALSE;
                                SDI_D3->Checked=FALSE;
                                SDI_D4->Checked=FALSE;
                                SDI_D5->Checked=FALSE;
                                SDI_D6->Checked=FALSE;
                                SDI_D7->Checked=FALSE;
                                nSDI=0x02;
                        }
                }
         }
         else if(NO==0x02)
         {
                T=SDO_D2->Checked|SCL_D2->Checked;
                if(T)
                {
                        SDI_D2->Checked=FALSE;
                }
                else
                {
                        if(SDI_D2->Checked)
                        {
                                SDI_D0->Checked=FALSE;
                                SDI_D1->Checked=FALSE;
                                SDI_D3->Checked=FALSE;
                                SDI_D4->Checked=FALSE;
                                SDI_D5->Checked=FALSE;
                                SDI_D6->Checked=FALSE;
                                SDI_D7->Checked=FALSE;
                                nSDI=0x04;
                        }
                }
         }
         else if(NO==0x03)
         {
                T=SDO_D3->Checked|SCL_D3->Checked;
                if(T)
                {
                        SDI_D3->Checked=FALSE;
                }
                else
                {
                        if(SDI_D3->Checked)
                        {
                                SDI_D0->Checked=FALSE;
                                SDI_D1->Checked=FALSE;
                                SDI_D2->Checked=FALSE;
                                SDI_D4->Checked=FALSE;
                                SDI_D5->Checked=FALSE;
                                SDI_D6->Checked=FALSE;
                                SDI_D7->Checked=FALSE;
                                nSDI=0x08;
                        }
                }
         }
         else if(NO==0x04)
         {
                T= SDO_D4->Checked|SCL_D4->Checked;
                if(T)
                {
                        SDI_D4->Checked=FALSE;
                }
                else
                {
                       if(SDI_D4->Checked)
                        {
                                SDI_D0->Checked=FALSE;
                                SDI_D1->Checked=FALSE;
                                SDI_D2->Checked=FALSE;
                                SDI_D3->Checked=FALSE;
                                SDI_D5->Checked=FALSE;
                                SDI_D6->Checked=FALSE;
                                SDI_D7->Checked=FALSE;
                                nSDI=0x10;
                        }
                }
         }
         else if(NO==0x05)
         {
                T=SDO_D5->Checked|SCL_D5->Checked;
                if(T)
                {
                        SDI_D5->Checked=FALSE;
                }
                else
                {
                        if(SDI_D5->Checked)
                        {
                                SDI_D0->Checked=FALSE;
                                SDI_D1->Checked=FALSE;
                                SDI_D2->Checked=FALSE;
                                SDI_D3->Checked=FALSE;
                                SDI_D4->Checked=FALSE;
                                SDI_D6->Checked=FALSE;
                                SDI_D7->Checked=FALSE;
                                nSDI=0x20;
                        }
                }

⌨️ 快捷键说明

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