Você está na página 1de 20

PUERTO PARALELO ESCLAVO (PSP)

Bus bidireccional de 8 bits (puerto D) Tres seales de control


CS(RE2) , WR(RE1), RD(RE0)

Cuatro flags
IBF, OBF, IBOV, PSPIF (interrupcin).

PSP - Escritura

PSP - Lectura

HABILITACIN PSP FLAG DE INTERRUPCIN PORT E COMO ENTRADA RE0 A RE2 COMO E/S DIGITALES HABILITACIN PARTICULAR DE INTERRUPCIN

FLAGS INFORMATIVOS
6

#pragma config=0x3f71 //Cada vez que se recibe un dato, es mostrado #pragma chip PIC16f877 // en el puerto B. Cada vez que se lee un dato, #pragma interruptSaveCheck n //se enva el contenido del puerto A. #pragma origin 4 interrupt rut_tmr(void) { PSPIF=0; //borrado del flag if(IBF) PORTB=PORTD; //Se ha recibido un dato del exterior else PORTD=PORTA; //Del exterior se ley un dato } void main(void) { PSPMODE=1; //modo esclavo del puerto D TRISA=0xFF; //puerto A como ADCON1=0x06; //entradas digitales TRISB=0; //Puerto B como salida GIE=1;PEIE=1;PSPIE=1; //habilitacin de interrupciones PORTD=PORTA; //Primera escritura en el puerto while(1); } 7

USART
Universal Synchronous Asynchronous Receiver Transmitter

Comunicacin serie Sncrona:


Dos lineas: Datos y reloj Half duplex: Bidireccional no simultanea

Asncrona:
Dos lineas: TX(RC6), RX(RC7) Duplex: Bidireccional simultnea 1 bit de arranque, 8 o 9 bits de datos y 1 bit de stop.
8

MODO ASINCRONO

TRANSMISIN

10

11

12

RECEPCIN

13

14

15

16

#pragma config=0x3f71 //Recibiendo datos por el puerto serie y #pragma chip PIC16f877 //mostrndolos en el puerto B, enviando #pragma interruptSaveCheck n //los datos del puerto a por el puerto serie #pragma origin 4 interrupt rut_tmr(void) { if(TXIF) {TXIF=0; TXREG=PORTA;} //Se transmite if(RCIF) {RCIF=0; PORTB=RCREG;} //Se recibe } void main(void) { TRISA=0xFF; //puerto A como ADCON1=0x06; //entradas digitales TRISB=0; //Puerto B como salidas TRISC.6=0; //RC6/TX como salida TRISC.7=1; //RC7/RX como entrada TXSTA=0x24; //Configuracin del puerto serie RCSTA=0x90; SPBRG=0x0C; TXIE=1; RCIE=1; //Habilitacin de PEIE=1; GIE=1; //interrupciones while(1); 17 }

TAREAS PROPUESTAS
Se desea utilizar el microcontrolador 16F877 para realizar un sistema de adquisicin de datos analgicos de manera remota. El sistema contar con 8 entradas analgicas e intercambiar datos con el exterior mediante el puerto serie en modo asncrono (UART) a una velocidad de 12.000 baudios. El funcionamiento deber atenerse a las siguientes especificaciones: 1.- Diseo bsico El sistema est inicialmente a la espera de recibir ordenes por el puerto serie. A la recepcin de un octeto, pueden darse los siguientes casos: - Que el valor recibido est comprendido entre 00h y 07h: El sistema entender que se solicita una conversin del canal indicado en el octeto, por lo tanto se realizar una conversin y se enviar el resultado por el puerto serie (dos octetos). - Que el valor recibido no est comprendido entre 00h y 07h: No 18 se realizar ni conversin ni envo.

2.- Opcional Si el octeto recibido tiene el valor FFh, el CAD pasa a usar las referencias externas. Si el octeto recibido es EEh, el CAD pasa a utilizar como referencias el valor de la alimentacin. Si el octeto recibido tiene el valor DDh, el sitema entra en modo de bajo consumo. Se pide: Explicacin de la solucin adoptada y justificacin de recursos utilizados. Especificacin de conexiones Diagramas de flujo. Cdigo e inicializaciones necesarias. Nota: Los perifricos han de gestionarse por interrupcin

19

Se solicita conversin del canal 3

Cambio de las referencias para las siguientes conversiones

Orden para entrar en bajo consumo

Se solicita conversin del canal 6

RxD TxD

03

FF

06

DD 01 C5

02

4C

Valor convertido del canal 3

Valor convertido del canal 6

20

Você também pode gostar