(一)C#GDI绘制示波形图,连接串口读取传感器数据,针对51单片机。
(1)GDI绘图,及上位机串口读取介绍。
- 我对GDI不是很了解,简单介绍。
- 首先你可以确定一块画布,我的是在GroupBox控件里面的
Graphics graphics = groupBox2.CreateGraphics(); - 其次你要创建一支画笔
- Pen TablePen = new Pen(Color.FromArgb(0x00, 0x00, 0x00));Pen有很多种方法,这里我就光写了颜色。
- 接下来你就可以画了
- public void DrawLine(Pen pen, int x1, int y1, int x2, int y2);
public void DrawLine(Pen pen, float x1, float y1, float x2, float y2);
pen:
// System.Drawing.Pen,它确定线条的颜色、宽度和样式。
//
// x1:
// 第一个点的 x 坐标。
//
// y1:
// 第一个点的 y 坐标。
//
// x2:
// 第二个点的 x 坐标。
//
// y2:
// 第二个点的 y 坐标。
绘制:
graphics.DrawLine(颜色, x, y, x,y);//具体绘制成什么样子取决于你想要的图形还有单位格大小。
- 串口接受部分
- 分为两种接受,一种是字符,一种是16进制。
- serialPort1.ReadExisting()//字符串型接受,串口会自动处理不需要转换。
- byte[] data = new byte[serialPort1.BytesToRead]; //定义接受缓冲区域然后存放起来
serialPort1.Read(data, 0, data.Length);//读出数据
这是上位机的显示结果,具体的串口设置和文字转换内容不再介绍。
(2)下位机dht11(可用其他)串口介绍。
#include<reg52.h>
#include<dht11.h>
#include<chuankou.h>
void delay()
{
uint a;
a=50000;
while(a–);
}
void main()
{
uint i;
init_com();//串口初始化
while(1)
{
RH();//dtt11头文件
i=U8T_data_H;//读取温度值
xie_com(i);//写入串口
delay();
}
}
///功能:串口初始化,波特率9600,方式1,频率11.0592MHZ///
void init_com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
void xie_com(uchar i) //串口发送一字节
{
SBUF=i;
while(TI==0);
TI=0;
}
介绍的不是很详细,仅供大家参考,如果有需要下方留言。