parallel ports
DESCRIPTION
Parallel Ports. Dr. Iyad Jafar. Outline. Why Do We Need Parallel Ports? Hardware Realization of Parallel Ports Interfacing to Parallel Ports The PIC 16F84A Parallel Ports . Why Do We Need Parallel Ports?. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/1.jpg)
Dr. Iyad Jafar
Parallel Ports
![Page 2: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/2.jpg)
Outline
Why Do We Need Parallel Ports?Hardware Realization of Parallel PortsInterfacing to Parallel PortsThe PIC 16F84A Parallel Ports
2
![Page 3: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/3.jpg)
Why Do We Need Parallel Ports?
Almost any microcontroller needs to transfer digital data from/to external devices and for different purposesDirect user interface – switches, LEDs, keypads, displays
Input measurement - from sensors, possibly through ADC
Output control information – control motors and actuators
Bulk data transfer – to other systems/subsystems
Transfer could be serial or parallel !3
![Page 4: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/4.jpg)
Hardware Realization of Parallel PortsOutput Parallel Port
4
![Page 5: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/5.jpg)
Hardware Realization of Parallel PortsInput Parallel Port
5
![Page 6: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/6.jpg)
Hardware Realization of Parallel PortsBidirectional Parallel Port
6
![Page 7: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/7.jpg)
The PIC 16F84 Parallel PortsPORT B
8-bit general-purpose bidirectional digital portPin RB0 is multiplexed with the external interrupt INT and has Schmitt trigger interface Data from/to this port is stored in PORTB register (0x06)Pins can be configured for input or output by setting or clearing corresponding bits in the TRISB register (0x86)Pins RB4 – RB7 have a useful ‘interrupt on change’ facility
7
![Page 8: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/8.jpg)
The PIC 16F84 Parallel PortsPORT B
8
Configurable pull-up resistors using RBPU bit in the
OPTION register
Latches input data whenever the port is
read
Multiplexed input
![Page 9: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/9.jpg)
The PIC 16F84 Parallel PortsPORT B
9
Lathes data on port read
Holds previous latched data
Compares previous and present port
input values
Clearing the RBIF bit ?
![Page 10: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/10.jpg)
The PIC 16F84 Parallel PortsPORT A
5-bit general-purpose bidirectional digital portPin RA4 is multiplexed and can be used as the clock for the TIMER 0 module Data from/to this port is stored in PORTA register (0x05)Pins can be configured for input or output by setting or clearing corresponding bits in the TRISA register (0x85)
10
![Page 11: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/11.jpg)
The PIC 16F84 Parallel PortsPORT A
11
![Page 12: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/12.jpg)
The PIC 16F84 Parallel PortsExample – configuring port B such that pins 0 to 2 are inputs, pins 3 to 4 outputs, and pins 5 to 7 are inputs
bcf STATUS, RP0; select bank0clrf PORTB ; clear port B latchesbsf STATUS , RP0 ; select bank1movlw 0xE7movwf TRISB ; PORTB<7:5> input, ; PORTB<4:3> output; PORTB<2:0> input
12
![Page 13: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/13.jpg)
Example on Using I/O PortsExample – on external interrupt (rising edge ON RB0), start flashing a LED connected to RB1 every 1 ms. If another interrupt occurs, stop flashing, and so on …
assume 4MHz clock.Requirements: 1)Configure RB0 as input and RB1 as output 2)Enable external interrupt (INTE) and global interrupts (GIE)3)Write a 1 ms delay routine 4)Keep track of the current status of flashing (on/off)
13
![Page 14: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/14.jpg)
Example on Using I/O Ports#include P16F84A.INCFLASH EQU 0X20 ; STORE THE STATE OF FLASHINGCOUNT EQU 0X21 ; COUNTER FOR DELAY LOOP
ORG 0X0000GOTO START ORG 0X0004GOTO ISR
; ---------------------------------- MAIN PROGRAM -----------------------------------------------START CLRF FLASH ; CLEAR FLASHING STATUS
BSF STATUS,RP0 ; SELECT BANK 1MOVLW B'00000001' ; CONFIGURE RB0 AS INPUT AND RB1 AS OUPUTMOVWF TRISBBSF OPTION_REG, INTEDG ; SELECT RISING EDGE FOR EXTERNAL INTERRUPT BSF INTCON , INTE ; ENABLE EXTERNAL INTERRUPT BSF INTCON , GIE ; ENABLE GLOBAL INTERRUPTBCF STATUS,RP0 ; SELECT BANK 0CLRF PORTB ; CLEAR PORTB
WAIT BTFSS FLASH , 0 ; IF BIT 0 OF FLASH IS CLEAR THEN NO FLASHING GOTO WAIT ; WAIT UNTIL BIT 0 IS SET MOVLW B'00000010' XORWF PORTB , 1 ; COMPLEMENT RB1 TO FLASHCALL DEL_1MSGOTO WAIT
14
![Page 15: Parallel Ports](https://reader033.vdocuments.mx/reader033/viewer/2022061612/5681600d550346895dcf0c1d/html5/thumbnails/15.jpg)
Example on Using I/O Ports; ---------------- DELAY ROUTINE ------------------------DEL_1MS NOP
MOVLW D'142'MOVWF COUNT
LOOP NOPNOPNOPNOPDECFSZ COUNT , 1 GOTO LOOPRETURN ; DELAY = (2+1+1+1+(4+1+2)*141+(4+2+2)*4/4MHz
= 1ms
; --------------- INTERRUPT SERVICE ROUTINE ---------------ISR XORWF FLASH , 1 ; COMPLEMENT THE STATUS
BCF INTCON , INTF ; CLEAR THE INTF FLAG RETFIE
END
15