Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Diagrama de Flujos PDF
Diagrama de Flujos PDF
C2
C1
3
F1 A
1 2 3
F2 B
4 5 6
C2
F3 C
7 8 9
22pF
F4 D
0 #
X1 U1
CRYSTAL
C3 13 33
OSC1/CLKIN RB0/INT C1
14 34
OSC2/CLKOUT RB1 C2
35
RB2 C3
22pF 2 36
S0 RA0/AN0 RB3/PGM
3 37
S1 RA1/AN1 RB4 F1
4 38
RA2/AN2/VREF-/CVREF RB5 F2
5 39
RA3/AN3/VREF+ RB6/PGC F3
6 40
VCC RA4/T0CKI/C1OUT RB7/PGD F4 LCD2
7
RA5/AN4/SS/C2OUT LM016L
15
C1 RC0/T1OSO/T1CKI
8 16
Ena RE0/AN5/RD RC1/T1OSI/CCP2
9 17
RS RE1/AN6/WR RC2/CCP1
10 18
RE2/AN7/CS RC3/SCK/SCL
1uF 23
R2 1
RC4/SDI/SDA
24
MCLR/Vpp/THV RC5/SDO
10k 25
RC6/TX/CK
26
S1
S0
RC7/RX/DT
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
19
RD0/PSP0 D0
20
VCC RD1/PSP1 D1 VCC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
21
RD2/PSP2 D2
22
DSW2 R6 RD3/PSP3
27
D3
OFF ON RD4/PSP4 D4
4 1 220 28
RD5/PSP5 D5 RS
3 2 29
R14
D0
D1
D2
D3
D4
D5
D6
D7
RD6/PSP6 D6 Ena
30
RD7/PSP7 D7
DIPSW_2 220
PIC16F877A
Diagrama de Flujos
INICIO
DATO_1 AH
DATO_2 H
INI_PUERTOS
INI_LCD
Como primer punto debemos indicar que vamos a realizar ya sea suma resta multiplicación o
división esto se lo realiza con ayuda de un dipsiwch mediante la siguiente tabla
A B Operación
0 0 Suma
0 1 Resta
1 0 Multiplicación
1 1 División
Iniciamos con la detección de las teclas se ingresará unidades y decenas y que mediante la
combinación asignada con anterioridad procedemos a ver qué operación realizara
A B
DECT_TECLA DECT_TECLA
NO NO
PRESS_TECLA PRESS_TECLA
Si Si
A TECLA B TECLA
DECT_TECLA DECT_TECLA
NO NO
PRESS_TECLA PRESS_TECLA
SI SI
A A*10+TECLA B B*10+TECLA
PRINT_A PRINT_B
B R
R
LEER_PUERTO_A
Si SI SI SI
RESUL= AUX=DATO_1
DATO_1+DATO_2 NO
DATO_1<DATO_2 RESUL=0 SI
DATO_2==0 PRINT_EROR
PRINT_C SI
RESUL= NO
RESUL+DATO_2 REST
RESTA CON SIGNO
REST AUX=DATO_1
RESUL=0
AUX=AUX-1
RESUL=
DATO_1-DATO_2
AUX=AUX-DATO_2
NO
AUX==0 RESUL=RESUL+1
PRINT_C
SI
NO
REST PRINT_C AUX<DATO_2
REST SI
PRINT_C
REST
DECT_TECLA
NO PRESS_TECLA
NUMEROS
SI
CLEAR_LCD
initABCD
STATUS ← 00H
STATUS(RP0) ← 1
W ← 06H
ADCON1 ← W
W ← 00H
TRISA ← W
STATUS ← 00H
PORTB ← 00H
STATUS(RP0) ← 1
W ← F0H
TRISB ← W
OPTION_REG(7) ←1
STATUS ← 00H
PORTD ← 00H
STATUS(RP0) ← 1
W ← 00H
TRISD ← W
STATUS ← 00H
STATUS(RP0) ← 1
TRISE(0) ← 0
TRISE(1) ← 0
STATUS(RP0) ← 0
Fin
INITLCD se encarga de configurar al LCD para recibir los datos que se envíe. Aquí se
muestra como se lo configura y las diferentes subrutinas empleadas
W ComandoLCD BorradoLCD
espera20ms cont1 W RE1
PORTD W
RE RE1 W H
PORTD W
W H W RE0
PORTD W cont2 W
Espera1ms ComandoLCD
Espera1ms
espera20ms FIN
cont2=cont-1 R0
RE0
W H
PORTD W Espera1ms
NO
Z=1 FIN
FIN
Espera1ms
SI
W H
PORTD W cont1=cont-1
W FH
PORTD W
RE0
RE NO
Z=1
Fin
SI
FIN
TESTEAR
DETECTA_TECLA
PORTB 00F
TESTEAR
W W xor 00H
NO NO
RB7 = 1 RB7 = 1
NO
Z=0 SI SI
SI NO NO
RB6 = 1 RB6 = 1
CODIGO
SI SI
TECLA W
NO NO
RB5 = 1 RB5 = 1
TESTEAR W FFH
TECLA W
SI SI
W W xor 00H
NO NO
RB4 = 1 RB4 = 1
NO
Z=1
SI SI
FIN
Fin Fin Fin
CODIGO
Espera20ms
NO NO NO
W 0DH RB7 = 1 W 00H RB7 = 1 W 0EH RB7 = 1 W M
Cont2 W
SI SI SI SI
NO NO NO cont2 cont2 - 1
W 07H RB6 = 1 W 08H RB6 = 1 W 09H RB6 = 1
SI SI SI NO
Z=1
NO NO NO
W 04H RB5 = 1 W 05H RB5 = 1 W 06H RB5 = 1
SI
SI SI cont1 cont1 - 1
SI
NO NO
W 01H RB4 = 1 W 02H NO RB4 = 1 W 03H RB4 = 1 NO
Z=1
SI
SI
Fin W <- 00H
Fin
W DIG1
DIVIDENDO
DIG1
W
DIVISOR
DIVISION
W RESIDUO
CONVUN W
W COCIENTE
DIVIDENDO W
W
DIVISOR W
DIVISION
W RESIDUO
CONVDE W
W DIG2
W W xor 00H
SI
Z=0
SI
W COCIENTE
DIG1 W
W COCIENTE
CONVCE W
Fin