Documente Academic
Documente Profesional
Documente Cultură
Nombre
INTERRUPCION EXTERNA R4
1k
LCD1
LM016L
RECEPTOR
U2
OSC1/CLKIN OSC2/CLKOUT 13 14 13 14 OSC1/CLKIN OSC2/CLKOUT
TRANSMISOR
U1
RS RW E
1 2 3
4 5 6
D0 D1 D2 D3 D4 D5 D6 D7
7 8 9 10 11 12 13 14
33 34 35 36 37 38 39 40
TECLADO 3X3
8 9 10 1 1
15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 19 20 21 22 27 28 29 30
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RE0/AN5/RD RC2/CCP1 RE1/AN6/WR RC3/SCK/SCL RE2/AN7/CS RC4/SDI/SDA RC5/SDO MCLR/Vpp/THV RC6/TX/CK RC7/RX/DT 8 9 10 15 16 17 18 23 24 25 26
RB0/INT RB1 RB2 RA0/AN0 RB3/PGM RA1/AN1 RB4 RA2/AN2/VREF-/CVREF RB5 RA3/AN3/VREF+ RB6/PGC RA4/T0CKI/C1OUT RB7/PGD RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT
R1
1k
R2
1k
R3
1k
: Jenny Paola Calvopia Osorio Estefania Monserrath Serna Villarreal : Quinto A Carrera
PIC16F877A
INTERRUPCION EXTERNA R4
1k
INTERRUPCION EXTERNA R4
1k
LCD1
LCD1
LM016L RECEPTOR
: Electrnica
LM016L
TRANSMISOR
U1
OSC1/CLKIN OSC2/CLKOUT 13 14 13 14 OSC1/CLKIN OSC2/CLKOUT
RECEPTOR
U233
TRANSMISOR
U1
13 14 OSC1/CLKIN OSC2/CLKOUT
U2
RS RW E D0 D1 D2 D3 D4 D5 D6 D7
VSS VDD VEE RS RW E
D0 D1 D2 D3 D4 D5 D6 D7
OSC1/CLKIN OSC2/CLKOUT
13 14
RA0/AN0
1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 3
1 2 3
4 5 6
7 8 9 10 11 12 13 14
33 34 35 36 37 38 39 40
2 3 4 5 6 7
2 3 4 5 6 7
2 3 4 5 6 7
33 34 35 36 37 38 39 40
TECLADO 3X3
Realizar una comunicacin serie entre dos PIC16F877A. Donde el transmisor consta de un teclado 3x3, y enva un dato por cada tecla. El receptor posee un LCD donde refleja el dato de la tecla enviada por el transmisor, adems consta de una interrupcin externa, que refleja el nombre de los autores.
1 RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT 15 16 17 18 23 24 25 26
15 16 17 18 23 24 25 26
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RE0/AN5/RD RC2/CCP1 RE1/AN6/WR RC3/SCK/SCL RE2/AN7/CS RC4/SDI/SDA RC5/SDO MCLR/Vpp/THV RC6/TX/CK RC7/RX/DT
RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI 15 RE0/AN5/RD RC1/T1OSI/CCP2 16 RE1/AN6/WR RC2/CCP1 17 RE2/AN7/CS RC3/SCK/SCL 18 RC4/SDI/SDA 23 MCLR/Vpp/THV RC5/SDO 24 RC6/TX/CK 25 RC7/RX/DT 26 RD0/PSP0 19 RD1/PSP1 20 RD2/PSP2 21 RD3/PSP3 22 RD4/PSP4 27 RD5/PSP5 28 RD6/PSP6 29 RD7/PSP7 30 19 20 21 22 27 28 29 30 RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A PIC16F877A
RA2/AN2/VREF-/CVREF 5 RA3/AN3/VREF+ 6 RB7/PGD RA4/T0CKI/C1OUT 7 15 RA5/AN4/SS/C2OUT 16 RC0/T1OSO/T1CKI 8 17 RC1/T1OSI/CCP2 RE0/AN5/RD 9 18 RC2/CCP1 RE1/AN6/WR 10 23 RC3/SCK/SCL RE2/AN7/CS 24 RC4/SDI/SDA 1 25 RC5/SDO MCLR/Vpp/THV 26 RC6/TX/CK RC7/RX/DT 19 20 RD0/PSP0 21 RD1/PSP1 22 RD2/PSP2 27 RD3/PSP3 28 RD4/PSP4 29 RD5/PSP5 30 RD6/PSP6 RD7/PSP7 R1 PIC16F877A
19 20 21 22 27 28 29 30
R3
1k 1k
R1
R2
R3
R2 PIC16F877A 1k
1k
1k
1k
TRANSMISOR
INCLUDE "modedefs.bas" portd=$FF A var portd.0 B var portd.1 C var portd.2 pc var portC portb=0 envio var byte Trisd=$FF Trisc=0 FILA_2: If A=1 then SEROUT portb.1,N2400,["4"] Goto FILA_2 Endif If B=1 then SEROUT portb.1,N2400,["5"] Goto FILA_2 Endif If C=1 then SEROUT portb.1,N2400,["6"] Goto FILA_2 Endif pauseUS 100 Pc=%00000100 FILA_3: If A=1 then SEROUT portb.1,N2400,["7"] Goto FILA_3 Endif If B=1 then SEROUT portb.1,N2400,["8"] Goto FILA_3 Endif If C=1 then SEROUT portb.1,N2400,["9"] Goto FILA_3 Endif Goto BARRIDO End
BARRIDO: pauseUS 100 Pc=%00000001 FILA_1: If A=1 then SEROUT portb.1,N2400,["1"] Goto FILA_1 Endif If b=1 then SEROUT portb.1,N2400,["2"] Goto FILA_1 endif If C=1 then SEROUT portb.1,N2400,["3"] Goto FILA_1 Endif pauseUS 100 Pc=%00000010
RECEPTOR
INCLUDE "modedefs.bas" DATO_RECIBIDO var byte DATO var byte DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 3 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 2 PAUSE 200 AUX var byte ON INTERRUPT GOTO INTERRUPCION INTCON=%10010000 PORTC=0 LCDOUT $FE,1,"RECIBIENDO...",$fe,$c0,"DATO=" INICIO: serin portb.1,N2400,DATO_RECIBIDO if DATO_RECIBIDO ="1" then dato=1 endif if DATO_RECIBIDO ="2" then dato=2 endif if DATO_RECIBIDO ="3" then dato=3 endif if DATO_RECIBIDO ="4" then dato=4 endif if DATO_RECIBIDO ="5" then dato=5 endif if DATO_RECIBIDO ="6" then dato=6 endif if DATO_RECIBIDO ="7" then dato=7 endif if DATO_RECIBIDO ="8" then dato=8 endif if DATO_RECIBIDO ="9" then dato=9 endif LCDOUT $FE,$c0,"DATO=",#DATO goto inicio
DISABLE INTERRUPT INTERRUPCION: AUX=DATO LCDOUT $FE,1,"INTERRUPCION..",$fe,$c0,"ESPERE XFAVOR.." pause 1000 LCDOUT $FE,1,"PAOLA CALVOPI~A",$fe,$c0,"ESTEFANIA SERNA" pause 1000 LCDOUT $FE,1,"EL DATO ANTERIOR...",$fe,$c0,"DATO=",#AUX pause 2000 LCDOUT $FE,1,"RECIBIENDO...",$fe,$c0,"DATO=" INTCON.1=0 clearwdt RESUME ENABLE INTERRUPT END