¿Cómo enviar una cadena al asistente de depuración del puerto serie usando un microcontrolador 51? Me gustaría ver un programa que lo explique más claro, gracias.
Los códigos ASCII también se expresan en hexadecimal en los microcontroladores. Solo los caracteres que se muestran después de la decodificación son caracteres. Si envía un carácter al azar, el asistente de depuración del puerto serie selecciona la visualización de caracteres y se pueden mostrar los caracteres recibidos (tal vez tengamos caracteres desconocidos). El envío de una cadena se envía hasta el final del envío. El microcontrolador 51 tiene su propio puerto serie P3.1, pero el envío de un byte generará una interrupción de byte (también se puede juzgar por el método TI). para juzgar si el envío se completó, comience a enviar después de la respuesta de interrupción, SBUF = 0Xxx, se enviará automáticamente de forma continua, además el juicio puede controlar la cadena de envío, el asistente de depuración del puerto serie selecciona la visualización de caracteres y recibe un carácter (tal vez sea algo no reconocemos) caracteres). Agregue juicio para controlar el número de bytes enviados
Inicialización del puerto serie:
void uart_init()
{ <. /p>
TMOD. =0x20;//Temporizador 1, modo 2
SCON=0x50;//Modo de comunicación del puerto serie 1
TH1=0xfd;//Baudios tasa 9600
TL1=0xfd;
botón=0;
retraso(1);
TI=0; el indicador de interrupción de envío
RI=0 //Borrar el bit del indicador de interrupción de recepción
TR1=1 //Iniciar el temporizador 1
EA=1; //Habilitar interrupción global
ES=1; //Iniciar interrupción en serie
}
}
void main() p>
{ P1=0xff;
uart_init()
mientras(1)
{
} p>
// Programa de interrupción en serie
void commIntProc() interrupción 4
{
if(TI)
{
TI = 0;
if(sendPosi < sendCount) //Determina si el envío se completó
{
sendPosi++; /Enviar una vez y el contador aumenta en uno
SBUF = sendBuf[sendPosi];//Empezar a enviar
}