Используй 8051, как правильно передать сигнал и проверить его в замазке - PullRequest
0 голосов
/ 29 апреля 2019

Я использовал программное обеспечение KEIL для программирования микросхемы AT89C51ED2 и использовал порт USB для просмотра данных, передаваемых PUTTY.Но в PUTTY я не могу получить точную информацию.

Код выглядит нормально, COM-порт также настроен успешно, проблем с подключением схемы не было, но есть проблема вотображение замазки.

В замазке, согласно ASCII.введите должен получить б.но здесь есть q, b - r, d - t, а GPRMC - w \ SM {

У UART есть проблема?или таймер?или другой ......

Ниже приведен код и изображения

#include<reg51.h>
char uart_data;
/**
 * FUNCTION_PURPOSE: This file set up uart in mode 1 (8 bits uart) with
 * timer 1 in mode 2 (8 bits auto reload timer).
 * FUNCTION_INPUTS: void
 * FUNCTION_OUTPUTS: void
 */
void main (void)
{
PCON=0;
SCON = 0x50; /* uart in mode 1 (8 bit), REN=1 */
TMOD =  0x20 ; /* Timer 1 in mode 2 */
TH1 = 0xFD; /* 9600 Bds at 11.059MHz */
TL1 = TH1; /* 9600 Bds at 11.059MHz */
ES = 1; // Enable serial interrupt
EA = 1; /* Enable global interrupt */
TR1 = 1; /* Timer 1 run */
while(1); /* endless */
}
/**
 * FUNCTION_PURPOSE: serial interrupt, echo received data.
 * FUNCTION_INPUTS: P3.0(RXD) serial input
 * FUNCTION_OUTPUTS: P3.1(TXD) serial output
 */
void serial_IT(void) interrupt 4
{
if (RI == 1)
{ /* if reception occur */
 RI = 0; /* clear reception flag for next reception */
 uart_data = SBUF; /* Read receive data */
 SBUF = uart_data; /* Send back same data on uart*/
}
else TI = 0; /* if emission occur */
} /* clear emission flag for next emission*/

PUTTY

PUTTY

PUTTY

...