Red de conocimiento informático - Material del sitio web - ¿Cómo leer la señal de CA emitida por el microcontrolador usando un programa VB (puerto serie) y usar esta señal para dibujar un gráfico de curva?

¿Cómo leer la señal de CA emitida por el microcontrolador usando un programa VB (puerto serie) y usar esta señal para dibujar un gráfico de curva?

Recibir primero

Buffer = MSComm1.Input 'Recibir datos binarios

Arr(0) = AscB(Buffer) 'Guardarlos en una matriz binaria

Receive_Count_Byte = Recibir_Count_Byte 1

'Defina la variable de datos como DataFromCom.

DataFromCom = Arr(0) 'Datos recibidos

'Procesa la señal según el microcontrolador para obtener los datos correspondientes

......< / p>

La curva en tiempo real refleja estos datos. Abra la versión china de VB6.0, cree un nuevo proyecto y formulario, modifique las propiedades del formulario, cambie "Alto" a: 8000 y cambie "Ancho" para colocar un control PictureBox en el formulario. Luego redefina algunas propiedades básicas del control PictureBox, seleccione el control PictureBox en VB y modifique algunos parámetros de propiedad directamente en su cuadro de propiedades. "Nombre" cambió a Imagen. "AutoRedraw" cambió a: Verdadero. "BackColor" se cambia a: amp H00004000amp (color de fondo verde oscuro). "Altura" se cambia a: 5000. "Ancho" se cambia a: 8000.

Luego necesitas redefinir el sistema de coordenadas del control PictureBox. El sistema de coordenadas predeterminado del marco de la imagen comienza desde la esquina superior izquierda, lo que no cumple con nuestros requisitos de dibujo lineal. El propósito de modificar el sistema de coordenadas es hacer que la curva comience desde el lado medio izquierdo del marco de la imagen. Modifique el sistema de coordenadas del cuadro de imagen Aquí definimos un proceso PicScale (), el código es el siguiente:

Private Sub PicScale(picX As PictureBox)

picX.Scale (. 0, PicX.ScaleHeight) -(picX.ScaleWidth, -PicX.ScaleHeight)

End Sub

Cuando se muestra una curva general en tiempo real, hay una línea de base en el medio de la pantalla. Esto también debe dibujarse aquí. Se implementa una línea base usando un proceso PicMidleLine(). El código es el siguiente:

picX.Line (0, 0)-(picX.ScaleWidth, 0). ), vbGreen 'Dibuja la línea media

End Sub

Para dibujar una curva en tiempo real, la configuración del eje de coordenadas es muy importante. Aquí, establezca el eje X como el tiempo. eje y el eje Y como eje de datos. Correspondiente a (TimeCount, DataFromCom) Si simplemente dibuja un punto en el marco de la imagen cuando cambia TimeCount, solo necesita llamar a la función de dibujo de píxeles punto (x, y) en VB, donde x, y son las coordenadas del dibujo. punto . Lo que se dibuja de esta forma es una serie de puntos discontinuos. Lo que queremos es una curva continua en tiempo real, por lo que necesitamos llamar a la función de dibujo lineal línea(x1, y1)-(x2, y2) en VB, donde (x1, y1) (x2, y2) es la línea a Se dibujarán las coordenadas de los puntos inicial y final.

Siempre que los datos leídos desde el puerto serie la última vez (definidos aquí como la variable DataFromComLast) correspondan a los datos leídos desde el puerto serie ahora (DataFromCom) y TimeCount, llame a la línea (x1, y1)-(x2, y2) función para obtener la Se dibuja una curva en tiempo real en el marco de la imagen. Escríbalo como un proceso como el siguiente código:

Private Sub DrawRealLine(picX As PictureBox, TimeCountX As Integer, DataFromComX As Integer, DataFromComLastX As Integer)

If TimeCountX - 1 gt; 0 Entonces

picX.Line (TimeCountX - 1, DataFromComLastX)-(TimeCountX, DataFromComX), vbWhite

End If

End Sub

Con tres procesos, puede dibujar una curva en tiempo real en el marco de la imagen.