#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define uint unsigned int
void delay(uint k)
{
while(k--);
}
{
while(k--);
}
uchar rec;//接受到的數(shù)據(jù)
sbit q1=P1^0; //輸出點(diǎn)
sbit q2=P1^1; //輸出點(diǎn)
sbit q3=P1^2; //輸出點(diǎn)
sbit q4=P1^3; //輸出點(diǎn)
sbit fk=P1^4; //反饋點(diǎn)
sbit j1=P2^4; //反饋發(fā)光指示
sbit q2=P1^1; //輸出點(diǎn)
sbit q3=P1^2; //輸出點(diǎn)
sbit q4=P1^3; //輸出點(diǎn)
sbit fk=P1^4; //反饋點(diǎn)
sbit j1=P2^4; //反饋發(fā)光指示
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; //自動(dòng)重裝載
TH1=TL1=253;
TR1=1;
REN=1;
}
{
SM2=0;
SM1=1;
SM0=0;
TMOD|=0x20; //自動(dòng)重裝載
TH1=TL1=253;
TR1=1;
REN=1;
}
void str_init() //串口中斷初始化
{
EA=1;
ES=1;
{
EA=1;
ES=1;
}
void str_send(uchar u) //串口發(fā)送函數(shù)
{
bit es;
es=ES; //保存現(xiàn)場(chǎng)
ES=0;
SBUF=u;
while(TI==0);
TI=0;
ES=es;
}
{
bit es;
es=ES; //保存現(xiàn)場(chǎng)
ES=0;
SBUF=u;
while(TI==0);
TI=0;
ES=es;
}
void str_event() interrupt 4
{
if(RI)
{
rec=SBUF;
RI=0;
}
else
{
;
}
}
{
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單片機(jī)端口全部源碼可以
從這里 http://www.zg4o1577.cn/f/51vbcs.rar 下載.
從這里 http://www.zg4o1577.cn/f/51vbcs.rar 下載.
//---------- VB代碼--------------------------------------------------------
Private Sub Command1_Click()
On Error GoTo errline:
MSComm1.Output = "1"
Shape1.FillColor = vbGreen
Exit Sub
Shape1.FillColor = vbGreen
Exit Sub
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
Private Sub Command10_Click()
On Error GoTo errline:
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
Timer2.Enabled = False
Timer3.Enabled = False
Text3.Text = "串口已關(guān)"
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
Private Sub Command11_Click()
On Error GoTo errline
On Error GoTo errline
If Text1.Text < 0 Then
Text1.Text = 0
End If
Timer1.Enabled = True
errline:
If Err.Number = 13 Then
MsgBox ("輸入出錯(cuò)")
Text1.Text = 0
End If
Text1.Text = 0
End If
Timer1.Enabled = True
errline:
If Err.Number = 13 Then
MsgBox ("輸入出錯(cuò)")
Text1.Text = 0
End If
End Sub
Private Sub Command12_Click()
Text1.Text = 0
Timer1.Enabled = False
Text1.Text = 0
Timer1.Enabled = False
End Sub
Private Sub Command2_Click()
On Error GoTo errline:
On Error GoTo errline:
MSComm1.Output = "5"
Shape1.FillColor = vbRed
Exit Sub
Shape1.FillColor = vbRed
Exit Sub
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
Private Sub Command3_Click()
On Error GoTo errline:
MSComm1.Output = "2"
Shape2.FillColor = vbGreen
Exit Sub
Shape2.FillColor = vbGreen
Exit Sub
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
Private Sub Command4_Click()
On Error GoTo errline:
MSComm1.Output = "6"
Shape2.FillColor = vbRed
Exit Sub
Shape2.FillColor = vbRed
Exit Sub
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
Private Sub Command5_Click()
On Error GoTo errline:
MSComm1.Output = "3"
Shape3.FillColor = vbGreen
Exit Sub
Shape3.FillColor = vbGreen
Exit Sub
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
Private Sub Command6_Click()
On Error GoTo errline:
MSComm1.Output = "7"
Shape3.FillColor = vbRed
Exit Sub
Shape3.FillColor = vbRed
Exit Sub
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
Private Sub Command7_Click()
On Error GoTo errline:
MSComm1.Output = "4"
Shape4.FillColor = vbGreen
Exit Sub
Shape4.FillColor = vbGreen
Exit Sub
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
Private Sub Command8_Click()
On Error GoTo errline:
MSComm1.Output = "8"
Shape4.FillColor = vbRed
Exit Sub
Shape4.FillColor = vbRed
Exit Sub
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
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
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeText
MSComm1.InputLen = 0
MSComm1.PortOpen = True
Timer2.Enabled = True
Timer3.Enabled = True
Text3.Text = "串口已開(kāi)"
Exit Sub
errline:
If Err.Number = 8013 Then
Text3.Text = "串口已開(kāi)"
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 = "輸入錯(cuò)誤"
End If
Err.Clear
On Error GoTo errline:
errline:
If Err.Number = 13 Then
Text1.Text = "輸入錯(cuò)誤"
End If
Err.Clear
End Sub
Private Sub Timer1_Timer()
On Error GoTo errline
If Text1.Text < 0 Then
Text1.Text = 0
End If
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
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 = "串口已關(guān)"
End If
Err.Clear
Text1.Text = Text1.Text - 1
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
Private Sub Timer2_Timer()
On Error GoTo errline
On Error GoTo errline
If MSComm1.Input = "9" Then
Text2.Text = "有反饋"
End If
If MSComm1.Input = "a" Then
Text2.Text = "無(wú)反饋"
End If
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
Text2.Text = "有反饋"
End If
If MSComm1.Input = "a" Then
Text2.Text = "無(wú)反饋"
End If
errline:
If Err.Number = 8018 Then
Text3.Text = "串口已關(guān)"
End If
Err.Clear
End Sub
Private Sub Timer3_Timer()
If Shape4.FillColor = vbGreen And Text2.Text = "有反饋" Then
Text4.Text = "運(yùn)行"
End If
If Shape4.FillColor = vbGreen And Text2.Text = "無(wú)反饋" Then
Text4.Text = "故障"
End If
If Shape4.FillColor = vbRed And Text2.Text = "無(wú)反饋" Then
Text4.Text = "停止"
End If
If Shape4.FillColor = vbGreen And Text2.Text = "有反饋" Then
Text4.Text = "運(yùn)行"
End If
If Shape4.FillColor = vbGreen And Text2.Text = "無(wú)反饋" Then
Text4.Text = "故障"
End If
If Shape4.FillColor = vbRed And Text2.Text = "無(wú)反饋" Then
Text4.Text = "停止"
End If
End Sub
Private Sub Timer4_Timer()
Timer4.Enabled = False
Timer4.Enabled = False
End Sub