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

📄 microprodlg.cpp

📁 模拟了tec2000的所有功能
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	temp+="0101:中断向量高位到内部总线";
	temp+="\r\n";
	temp+="0110:中断向量低位到内部总线";
	temp+="\r\n";
	temp+="0111:无操作";
	m_ctrlMicroShow.SetWindowText(temp);
	
}

void CMicroProDlg::OnDropdownCombo54() 
{
	m_ctrlMicroShow.Clear();
	CString temp;
	temp+="0000:复位";
	temp+="\r\n";
    temp+="0001:条件转PL子程序";
	temp+="\r\n";
    temp+="0010:跳转MAP";
	temp+="\r\n";
    temp+="0011:条件跳转PL";
	temp+="\r\n";
    temp+="0100:压入/条件装入计数器";
	temp+="\r\n";
    temp+="0101:条件转P/PL子程序";
	temp+="\r\n";
    temp+="0110:条件跳转向量";
	temp+="\r\n";
    temp+="0111:条件跳转P/PL";
	temp+="\r\n";
    temp+="1000:R!=0,重复本条指令";
	temp+="\r\n";
    temp+="1001:R!=0,重复本条指令";
	temp+="\r\n";
    temp+="1010:条件返回";
	temp+="\r\n";
    temp+="1011:条件跳转PL和弹出";
	temp+="\r\n";
    temp+="1100:装入计数器和连续";
	temp+="\r\n";
	temp+="1101:测试循环结束";
	temp+="\r\n";
	temp+="1110:连续";
	temp+="\r\n";
	temp+="1111:R!=0,重复本条指令三路分支";
	m_ctrlMicroShow.SetWindowText(temp);
	
}

void CMicroProDlg::OnDropdownCombo55() 
{
	m_ctrlMicroShow.Clear();
	CString temp;
	temp="0000:必转";
	temp+="\r\n";
	temp+="0010:/INT=0时,转";
	temp+="\r\n";
	temp+="0100:RC JRNC JRZ JRNZ条件不成立时,转";
	temp+="\r\n";
	temp+="0101:JRS、JRNS条件不成立时,转";
	temp+="\r\n";
	temp+="0110:IRH2=0时,转";
	temp+="\r\n";
	temp+="0111:IRHO=1时,转";
	m_ctrlMicroShow.SetWindowText(temp);	
	
}

void CMicroProDlg::OnDropdownCombo56() 
{
	m_ctrlMicroShow.Clear();
	CString temp;
	temp="0000:内存写信号,低电平有效";
	temp+="\r\n";
	temp+="0001:内存读信号,低电平有效";
	temp+="\r\n";
	temp+="0010:I/O写信号,低电平有效";
	temp+="\r\n";
	temp+="0011:I/O读信号,低电平有效";
	temp+="\r\n";
	temp+="0100:无读写操作";
	temp+="\r\n";
	temp+="0101:无读写操作";
	temp+="\r\n";
	temp+="0110:无读写操作";
	temp+="\r\n";
	temp+="0111:无读写操作";
	m_ctrlMicroShow.SetWindowText(temp);
	
}

void CMicroProDlg::OnDropdownCombo57() 
{
	m_ctrlMicroShow.Clear();
	CString temp;
	temp="000:数据来源A和Q";
	temp+="\r\n";
	temp+="001:数据来源A和B";
	temp+="\r\n";
	temp+="010:数据来源0和Q";
	temp+="\r\n";
	temp+="011:数据来源0和B";
	temp+="\r\n";
	temp+="100:数据来源0和A";
	temp+="\r\n";
	temp+="101:数据来源D和A";
	temp+="\r\n";
	temp+="110:数据来源D和Q";
	temp+="\r\n";
	temp+="111:数据来源D和0";
	m_ctrlMicroShow.SetWindowText(temp);
	
}

void CMicroProDlg::OnDropdownCombo58() 
{
	m_ctrlMicroShow.Clear();
	CString temp;
	temp="0:A3~A0所指定的A口";
	temp+="\r\n";
    temp+="1:IRL7-IR4所指定的A口";
	m_ctrlMicroShow.SetWindowText(temp);	
	
}

void CMicroProDlg::OnDropdownCombo59() 
{
	m_ctrlMicroShow.Clear();
	CString temp;
	temp="000:寄存器不存储、Q结果选F、Y输出选择F";
	temp+="\r\n";
	temp+="001:寄存器不存储、Q结果无、Y输出选择F";
	temp+="\r\n";
	temp+="010:寄存器结果F->B、Q结果无、Y输出选择A";
	temp+="\r\n";
	temp+="011:寄存器结果F->B、Q结果无、Y输出选择F";
	temp+="\r\n";
	temp+="100:寄存器结果F/2->B、Q结果Q/2->Q、Y输出选择F";
	temp+="\r\n";
	temp+="101:寄存器结果F/2->B、Q结果无、Y输出选择F";
	temp+="\r\n";
	temp+="110:寄存器结果2*F->B、Q结果2*Q->Q、Y输出选择F";
	temp+="\r\n";
	temp+="111:寄存器结果2*F->B、Q结果无、Y输出选择F";
	m_ctrlMicroShow.SetWindowText(temp);
	
}*/

BOOL CMicroProDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(pMsg->message==WM_KEYDOWN){
		if(pMsg->wParam==VK_RETURN)
			return TRUE;
		if(pMsg->wParam==VK_ESCAPE)
			return TRUE;
	}
	return CDialog::PreTranslateMessage(pMsg);
}


void CMicroProDlg::OnDropdownClno1() 
{
	m_ctrlMicroShow.Clear();
    CString temp;
	temp="1:双操作数单字指令,指令格式:OP DR SR";
	temp+="\r\n";
	temp+="3:无操作数指令,指令格式:OP";
	temp+="\r\n";
	temp+="5:单操作数单字转移指令,指令格式:OP ADDR";
	temp+="\r\n";
	temp+="6:单操作数双字转移指令,指令格式:OP ADDR";
	temp+="\r\n";
	temp+="21:单操作数单字指令,指令格式:OP BYTE";
	temp+="\r\n";
	temp+="22:单操作数单字指令,指令格式:OP SR";
	temp+="\r\n";
	temp+="23:单操作数单字指令,指令格式:OP DR";
	temp+="\r\n";
	temp+="41:双操作数双字指令,指令格式:OP DR DATA";
	temp+="\r\n";
	temp+="42:双操作数双字指令,指令格式:OP DR DATA[SR]";
	m_ctrlMicroShow.SetWindowText(temp);
	
}
/*
void CMicroProDlg::OnDropdownClno2() 
{
		m_ctrlMicroShow.Clear();
    CString temp;
	temp="1:双操作数单字指令,指令格式:OP DR SR";
	temp+="\r\n";
	temp+="3:无操作数指令,指令格式:OP";
	temp+="\r\n";
	temp+="5:单操作数单字转移指令,指令格式:OP ADDR";
	temp+="\r\n";
	temp+="6:单操作数双字转移指令,指令格式:OP ADDR";
	temp+="\r\n";
	temp+="21:单操作数单字指令,指令格式:OP BYTE";
	temp+="\r\n";
	temp+="22:单操作数单字指令,指令格式:OP SR";
	temp+="\r\n";
	temp+="23:单操作数单字指令,指令格式:OP DR";
	temp+="\r\n";
	temp+="41:双操作数双字指令,指令格式:OP DR DATA";
	temp+="\r\n";
	temp+="42:双操作数双字指令,指令格式:OP DR DATA[SR]";
	m_ctrlMicroShow.SetWindowText(temp);
	
}

void CMicroProDlg::OnDropdownClno3() 
{
		m_ctrlMicroShow.Clear();
    CString temp;
	temp="1:双操作数单字指令,指令格式:OP DR SR";
	temp+="\r\n";
	temp+="3:无操作数指令,指令格式:OP";
	temp+="\r\n";
	temp+="5:单操作数单字转移指令,指令格式:OP ADDR";
	temp+="\r\n";
	temp+="6:单操作数双字转移指令,指令格式:OP ADDR";
	temp+="\r\n";
	temp+="21:单操作数单字指令,指令格式:OP BYTE";
	temp+="\r\n";
	temp+="22:单操作数单字指令,指令格式:OP SR";
	temp+="\r\n";
	temp+="23:单操作数单字指令,指令格式:OP DR";
	temp+="\r\n";
	temp+="41:双操作数双字指令,指令格式:OP DR DATA";
	temp+="\r\n";
	temp+="42:双操作数双字指令,指令格式:OP DR DATA[SR]";
	m_ctrlMicroShow.SetWindowText(temp);
	
}

void CMicroProDlg::OnDropdownClno4() 
{
		m_ctrlMicroShow.Clear();
    CString temp;
	temp="1:双操作数单字指令,指令格式:OP DR SR";
	temp+="\r\n";
	temp+="3:无操作数指令,指令格式:OP";
	temp+="\r\n";
	temp+="5:单操作数单字转移指令,指令格式:OP ADDR";
	temp+="\r\n";
	temp+="6:单操作数双字转移指令,指令格式:OP ADDR";
	temp+="\r\n";
	temp+="21:单操作数单字指令,指令格式:OP BYTE";
	temp+="\r\n";
	temp+="22:单操作数单字指令,指令格式:OP SR";
	temp+="\r\n";
	temp+="23:单操作数单字指令,指令格式:OP DR";
	temp+="\r\n";
	temp+="41:双操作数双字指令,指令格式:OP DR DATA";
	temp+="\r\n";
	temp+="42:双操作数双字指令,指令格式:OP DR DATA[SR]";
	m_ctrlMicroShow.SetWindowText(temp);
}

void CMicroProDlg::OnDropdownClno5() 
{
		m_ctrlMicroShow.Clear();
    CString temp;
	temp="1:双操作数单字指令,指令格式:OP DR SR";
	temp+="\r\n";
	temp+="3:无操作数指令,指令格式:OP";
	temp+="\r\n";
	temp+="5:单操作数单字转移指令,指令格式:OP ADDR";
	temp+="\r\n";
	temp+="6:单操作数双字转移指令,指令格式:OP ADDR";
	temp+="\r\n";
	temp+="21:单操作数单字指令,指令格式:OP BYTE";
	temp+="\r\n";
	temp+="22:单操作数单字指令,指令格式:OP SR";
	temp+="\r\n";
	temp+="23:单操作数单字指令,指令格式:OP DR";
	temp+="\r\n";
	temp+="41:双操作数双字指令,指令格式:OP DR DATA";
	temp+="\r\n";
	temp+="42:双操作数双字指令,指令格式:OP DR DATA[SR]";
	m_ctrlMicroShow.SetWindowText(temp);
}*/

void CMicroProDlg::OnCont1() 
{
	this->UpdateData(TRUE);
	int sign1=Check1();
	if(m_strHch1==""||m_strClNo1==""||!sign1)
        AfxMessageBox("没有完整的输入,请出新输入!"); 
	else{
	cont1=1;
	this->UpdateData(TRUE);
	char temp[10];
    strcpy(temp,m_strEdit1_2);
	if(temp[1]=='f'||temp[1]=='F'){
		temp[0]+=1;
		temp[1]='0';
	}
	else
		temp[1]+=1;
	if(temp[1]>'9'&&temp[1]<'A'){
		temp[1]+=7;
	}
	if(temp[0]>'f'){
		AfxMessageBox("入口地址输入错误!");
		return ;
	}
	m_strEdit2_2=temp;
    this->UpdateData(FALSE);
	}
}

void CMicroProDlg::OnCont2() 
{
	this->UpdateData(TRUE);
	int sign1=Check1();
	int sign2=Check2();
	if(m_strHch1==""||m_strClNo1=="")
        AfxMessageBox("没有完整的输入,请出新输入!"); 
	else if(!sign1||!sign2){
		AfxMessageBox("没有完整的输入,请出新输入!"); 
	}
	else if(cont1==0){
		AfxMessageBox("没有完整的输入,请出新输入!"); 
	}
	else{
	cont2=1;
	this->UpdateData(TRUE);
	char temp[10];
    strcpy(temp,m_strEdit2_2);
	if(temp[1]=='f'||temp[1]=='F'){
		temp[0]+=1;
		temp[1]='0';
	}
	else
		temp[1]+=1;
	if(temp[1]>'9'&&temp[1]<'A'){
		temp[1]+=7;
	}
	if(temp[0]>'f'){
		AfxMessageBox("入口地址输入错误!");
		return ;
	}
	m_strEdit3_2=temp;
    this->UpdateData(FALSE);
	}
	
}

void CMicroProDlg::OnCont3() 
{
	this->UpdateData(TRUE);
	this->UpdateData(TRUE);	
	int sign1=Check1();
	int sign2=Check2();
	int sign3=Check3();
	if(m_strHch1==""||m_strClNo1=="")
        AfxMessageBox("没有完整的输入,请出新输入!"); 
	else if(!sign1||!sign2||!sign3){
		AfxMessageBox("没有完整的输入,请出新输入!"); 
	}
	else if(cont2==0)
		AfxMessageBox("没有完整的输入,请出新输入!"); 
	else{
	cont3=1;
	this->UpdateData(TRUE);
	char temp[10];
    strcpy(temp,m_strEdit3_2);
	if(temp[1]=='f'||temp[1]=='F'){
		temp[0]+=1;
		temp[1]='0';
	}
	else
		temp[1]+=1;
	if(temp[1]>'9'&&temp[1]<'A'){
		temp[1]+=7;
	}
	if(temp[0]>'f'){
		AfxMessageBox("入口地址输入错误!");
		return ;
	}
	m_strEdit4_2=temp;
    this->UpdateData(FALSE);
	}
	// TODO: Add your control notification handler code here
	
}
/*
void CMicroProDlg::OnCont4() 
{
	this->UpdateData(TRUE);
	int sign1=Check1();
	int sign2=Check2();
	int sign3=Check3();
	int sign4=Check4();
	if(m_strHch1==""||m_strClNo1=="")
        AfxMessageBox("没有完整的输入,请出新输入!"); 
	else if(!sign1||!sign2||!sign3||!sign4){
		AfxMessageBox("没有完整的输入,请出新输入!"); 
	}
	else if(cont3==0)
		AfxMessageBox("没有完整的输入,请出新输入!"); 
	else{
	cont4=1;
	this->UpdateData(TRUE);
	char temp[10];
    strcpy(temp,m_strEdit4_2);
	if(temp[1]=='f'||temp[1]=='F'){
		temp[0]+=1;
		temp[1]='0';
	}
	else
		temp[1]+=1;
	if(temp[1]>'9'&&temp[1]<'A'){
		temp[1]+=7;
	}
	if(temp[0]>'f'){
		AfxMessageBox("入口地址输入错误!");
		return ;
	}
	m_strEdit5_2=temp;
    this->UpdateData(FALSE);
	}
	// TODO: Add your control notification handler code here
	
}
*/
int CMicroProDlg::Check1(){
	if(m_strEdit1_1==""||m_strEdit1_2==""||m_strEdit1_3==""||m_strCombo1_4==""||m_strCombo1_5==""||m_strCombo1_6==""||m_strCombo1_7==""||m_strCombo1_8==""||m_strCombo1_9==""||m_strCombo1_10==""||m_strCombo1_11==""||m_strCombo1_12==""||m_strCombo1_13==""||m_strCombo1_14==""||m_strCombo1_15==""||m_strCombo1_16==""||m_strCombo1_17==""||m_strCombo1_18==""){
		return 0;
	}
	else
		return 1;
}

int CMicroProDlg::Check2(){
	if(m_strEdit2_2==""||m_strEdit2_3==""||m_strCombo2_4==""||m_strCombo2_5==""||m_strCombo2_6==""||m_strCombo2_7==""||m_strCombo2_8==""||m_strCombo2_9==""||m_strCombo2_10==""||m_strCombo2_11==""||m_strCombo2_12==""||m_strCombo2_13==""||m_strCombo2_14==""||m_strCombo2_15==""||m_strCombo2_16==""||m_strCombo2_17==""||m_strCombo2_18==""){
		return 0;
	}
	else
		return 1;
}

int CMicroProDlg::Check3(){
	if(m_strEdit3_2==""||m_strEdit3_3==""||m_strCombo3_4==""||m_strCombo3_5==""||m_strCombo3_6==""||m_strCombo3_7==""||m_strCombo3_8==""||m_strCombo3_9==""||m_strCombo3_10==""||m_strCombo3_11==""||m_strCombo3_12==""||m_strCombo3_13==""||m_strCombo3_14==""||m_strCombo3_15==""||m_strCombo3_16==""||m_strCombo3_17==""||m_strCombo3_18==""){
		return 0;
	}
	else
		return 1;
}

int CMicroProDlg::Check4(){
	if(m_strEdit4_2==""||m_strEdit4_3==""||m_strCombo4_4==""||m_strCombo4_5==""||m_strCombo4_6==""||m_strCombo4_7==""||m_strCombo4_8==""||m_strCombo4_9==""||m_strCombo4_10==""||m_strCombo4_11==""||m_strCombo4_12==""||m_strCombo4_13==""||m_strCombo4_14==""||m_strCombo4_15==""||m_strCombo4_16==""||m_strCombo4_17==""||m_strCombo4_18==""){
		return 0;
	}
	else
		return 1;
}



void CMicroProDlg::GetData1(CString &temp){

	    temp=m_strEdit1_1;
    	temp+=" ";
	//	temp1.Format("%x",m_strEdi

⌨️ 快捷键说明

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