资讯详情

51和VB数字量简易测试

//51代码 #include <reg52.h> #define uchar unsigned char #define uint unsigned int void delay(uint k) { while(k--); } uchar rec;//接受到的数据 sbit q1=P1^0; //输出点 sbit q2=P1^1; //输出点 sbit q3=P1^2; //输出点 sbit q4=P1^3; //输出点 sbit fk=P1^4; //反馈点 sbit j1=P2^4;//反馈发光指示 void light() { if(rec=='1')q1=0; else if(rec=='2')q2=0; else if(rec=='3')q3=0; else if(rec=='4')q4=0; else if(rec=='5')q1=1; else if(rec=='6')q2=1; else if(rec=='7')q3=1; else if(rec=='8')q4=1; } void serial_init() //串口初始化 { SM2=0; SM1=1; SM0=0; TMOD|=0x20; //自动重装载 TH1= =253; TR1=1; REN=1; } void str_init()//串口中断初始化 { EA=1; ES=1; } void str_send(uchar u) //串口发送函数 { bit es; es=ES; //保存现场 ES=0; SBUF=u; while( ==0); TI=0; ES=es; } void str_event() interrupt 4 { if(RI) { rec=SBUF; RI=0; } else { ; } } void main() { serial_init(); str_init(); fk=0; while(1) { if(fk==1) //正常 { str_send('9'); j1=0; delay(400); } if(fk==0) { str_send('a'); //故障 j1=1; delay(400); } light(); } } 51单片机端口全部源码可以 从这里 http://www.ruidan.com/f/51vbcs.rar下载. //---------- VB代码-------------------------------------------------------- Private Sub Command1_Click() On Error GoTo errline: MSComm1.Output = "1" Shape1.FillColor = vbGreen Exit Sub errline: If Err.Number = 8018 Then Text3.Text = "串口已关" End If Err.Clear End Sub Private Sub Command10_Click() On Error GoTo errline: MSComm1.Output = "5" MSComm1.Output = "6" MSComm1.Output = "7" MSComm1.Output = "8" Shape1.FillColor = vbRed Shape2.FillColor = vbRed Shape3.FillColor = vbRed Shape4.FillColor = vbRed MSComm1.PortOpen = False Timer2.Enabled = False Timer3.Enabled = False Text3.Text = "串口已关" errline: If Err.Number = 8018 Then Text3.Text = "串口已关" End If Err.Clear End Sub Private Sub Command11_Click() On Error GoTo errline If Text1.Text < 0 Then Text1.Text = 0 End If Timer1.Enabled = True errline: If Err.Number = 13 Then MsgBox ("输入出错") Text1.Text = 0 End If End Sub Private Sub Command12_Click() Text1.Text = 0 Timer1.Enabled = False End Sub Private Sub Command2_Click() On Error GoTo errline: MSComm1.Output = "5" Shape1.FillColor = vbRed Exit Sub errline: If Err.Number = 8018 Then Text3.Text = "串口已关" End If Err.Clear End Sub Private Sub Command3_Click() On Error GoTo errline: MSComm1.Output = "2" Shape2.FillColor = vbGreen Exit Sub errline: If Err.Number = 8018 Then Text3.Text = "串口已关" End If Err.Clear End Sub Private Sub Command4_Click() On Error GoTo errline: MSComm1.Output = "6" Shape2.FillColor = vbRed Exit Sub errline: If Err.Number = 8018 Then Text3.Text = "串口已关" End If Err.Clear End Sub Private Sub Command5_Click() On Error GoTo errline: MSComm1.Output = "3" Shape3.FillColor = vbGreen Exit Sub errline: If Err.Number = 8018 Then Text3.Text = "串口已关" End If Err.Clear End Sub Private Sub Command6_Click() On Error GoTo errline: MSComm1.Output = "7" Shape3.FillColor = vbRed Exit Sub errline: If Err.Number = 8018 Then Text3.Text = "串口已关" End If Err.Clear End Sub Private Sub Command7_Click() On Error GoTo errline: MSComm1.Output = "4" Shape4.FillColor = vbGreen Exit Sub errline: If Err.Number = 8018 Then Text3.Text = "串口已关" End If Err.Clear End Sub Private Sub Command8_Click() On Error GoTo errline: MSComm1.Output = "8" Shape4.FillColor = vbRed Exit Sub errline: If Err.Number = 8018 Then Text3.Text = "串口已关" End If Err.Clear End Sub Private Sub Command9_Click() On Error GoTo errline: MSComm1.CommPort = 6 MSComm1.Settings = "9600,n,8,1" MSComm1.InputMode = comInputModeText MSComm1.InputLen = 0 MSComm1.PortOpen = True Timer2.Enabled = True Timer3.Enabled = True Text3.Text = "串口已开" Exit Sub errline: If Err.Number = 8013 Then Text3.Text = "串口已开" End If Err.Clear End Sub Private Sub Form_Load() End Sub Private Sub Text1_Change() On Error GoTo errline: errline: If Err.Number = 13 Then Text1.Text = "输入错误" End If Err.Clear End Sub Private Sub Timer1_Timer() On Error GoTo errline If Text1.Text < 0 Then Text1.Text = 0 End If If Text1.Text = 0 Then MSComm1.Output = "5" MSComm1.Output = "6" MSComm1.Output = "7" MSComm1.Output = "8" Shape1.FillColor = vbRed Shape2.FillColor = vbRed Shape3.FillColor = vbRed Shape4.FillColor = vbRed Timer1.Enabled = False Exit Sub End If Text1.Text = Text1.Text - 1 errline: If Err.Number = 8018 Then Text3.Text = "串口已关" End If Err.Clear End Sub Private Sub Timer2_Timer() On Error GoTo errline If MSComm1.Input = "9" Then Text2.Text = "有反馈" End If If MSComm1.Input = "a" Then Text2.Text = "无反馈" End If errline: If Err.Number = 8018 Then Text3.Text = "串口已关" End If Err.Clear End Sub Private Sub Timer3_Timer() If Shape4.FillColor = vbGreen And Text2.Text = "有反馈" Then Text4.Text = "运行" End If If Shape4.FillColor = vbGreen And Text2.Text = "无反馈" Then Text4.Text = "故障" End If If Shape4.FillColor = vbRed And Text2.Text = "无反馈" Then Text4.Text = "停止" End If End Sub Private Sub Timer4_Timer() Timer4.Enabled = False End Sub -电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台