¿Cómo convertir datos del puerto paralelo a datos del puerto serie usando el lenguaje C?
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; > }
}