c#程序:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SendData(sendtxt.Text);
}
private void SendData(string data)
{
byte[] senddata=new byte[1];
//senddata[0] = Convert.ToByte(data,2);
senddata= Encoding.Default.GetBytes(data);
serialPort1.Write(senddata,0,1);
}
private void Form1_Load(object sender, EventArgs e)
{
SetComConfig();
}
private void SetComConfig()
{
serialPort1.PortName = "COM2";
serialPort1.BaudRate = 4800;
serialPort1.Open();
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
ReceivedData();
}
private void ReceivedData()
{
byte[] sbufdata=new byte[1];
serialPort1.Read(sbufdata,0,1);
receive.Invoke((EventHandler)delegate{
//receive.Text = Convert.ToString(sbufdata[0],2);
receive.Text = Encoding.Default.GetString(sbufdata);
});
}
}
}
单片机程序:
-
#include
-
#include
-
#include
-
-
sbit LS138A = P2^2;
-
sbit LS138B = P2^3;
-
sbit LS138C = P2^4;
-
-
unsigned char ch;
-
bit read_flag= 0 ;
-
-
unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
-
void delay(unsigned int i);
-
void init_serialcom( void )
-
-
{
-
-
SCON = 0x50 ;
-
-
-
-
TMOD |= 0x20 ;
-
-
-
-
PCON |= 0x80 ;
-
-
TH1 = 0xF3;
-
-
IE |= 0x90 ;
-
-
TR1 = 1 ;
-
-
TI=1;
-
-
-
-
}
-
-
-
-
-
-
void send_char_com( unsigned char ch)
-
-
{
-
SBUF=ch;
-
while (TI== 0);
-
TI= 0 ;
-
-
}
-
-
-
-
-
-
void serial () interrupt 4 using 3
-
-
{
-
if (RI)
-
{
-
-
RI = 0 ;
-
-
ch=SBUF;
-
-
read_flag= 1 ;
-
-
}
-
-
}
-
-
-
-
main()
-
-
{
-
int LedNumVal = 0;
-
unsigned char LedOut[3];
-
int i = 0;
-
-
init_serialcom();
-
-
while ( 1 )
-
{
-
-
if (read_flag)
-
-
{
-
-
read_flag= 0 ;
-
send_char_com(ch);
-
LedNumVal = ch;
-
}
-
-
LedOut[0]=Disp_Tab[LedNumVal / 100];
-
LedOut[1]=Disp_Tab[(LedNumVal / 10) % 10];
-
LedOut[2]=Disp_Tab[LedNumVal % 10]|0x80;
-
-
-
for( i=0; i<3; i++)
-
{
-
P0 = LedOut[i];
-
-
switch(i)
-
{
-
case 0:LS138A=0; LS138B=0; LS138C=0; break;
-
case 1:LS138A=1; LS138B=0; LS138C=0; break;
-
case 2:LS138A=0; LS138B=1; LS138C=0; break;
-
}
-
delay(100);
-
}
-
}
-
}
-
-
void delay(unsigned int i)
-
{
-
char j;
-
for(i; i > 0; i--)
-
for(j = 200; j > 0; j--);
-
}
or