Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo convertir datos del puerto paralelo a datos del puerto serie usando el lenguaje C?

¿Cómo convertir datos del puerto paralelo a datos del puerto serie usando el lenguaje C?

La simulación del microcontrolador es similar a la estación maestra I2C, utilizando dos líneas de señal, una SDA y una SCL. Este método requiere que el periférico proporcione la señal de reloj SCL y proporcione la señal de inicio de comunicación I2C y el mecanismo de retroalimentación, lo que puede no satisfacer sus necesidades. .

Un método más simple es:

1 línea CS, control periférico, un flanco descendente, deja que el microcontrolador muestre el estado del puerto P1 (por supuesto, también puedes usar el nivel método para lograr una transmisión continua), esto lo define usted mismo. Sería mejor si está conectado a puertos de interrupción externos como INT0 e INT1. Las interrupciones se pueden usar para transmisión en tiempo real.

1 línea SDA.

1 línea SCL, línea de señal de reloj síncrono en serie

El proceso de implementación de la línea CS no se considera ahora: el modo de nivel se puede realizar mediante consulta de bucle e interrupción de flanco descendente. Considere únicamente el proceso de envío

sbit SCL = P2^1;

sbit SDA = P2^0;

void sendP1(void)

{

unsigned char p1;

unsigned char i;

P1 = 0xFF; //enviar todos los 1 antes de leer Oh, ¿por qué? Ya sabes

p1 = P1;

//El estado inicial de SCL es nivel alto 1, nivel alto primero

for(i=0; ilt; 8; i )

{

p1 lt; = 1;

SDA = CY; //La práctica ha demostrado que este método es simple y eficiente. sorpresas, PSW se puede reanudar incluso si se interrumpe, ¿verdad?

SCL = 0;

_nop_();

_nop_();

SCL = 1; > }

}