Comunicación serial RS232
Whats the problem?
Se necesita que un pic realice una conversión AD, teniendo como entrada un pot en el puerto RA0, luego enviar por puerto serial a otro pic que lo mostrara en una pantalla LCD 16x2 en una escala de 0 a 255.
Programa en assembler para MPLAB
- LIST P=16F877A
- INCLUDE < P16F877A.INC >
- ORG 0000H
- BSF STATUS,RP0
- CLRF TRISB
- BCF STATUS,RP0
- MOVLW B'10011001'
- MOVWF ADCON0
- MOVLW B'00000001'
- MOVWF PORTB
- INICIO
- MEDIR1
- CALL ANALOG
- MOVLW .102
- SUBWF ADRESH,W
- BTFSS STATUS,C
- GOTO MEDIR1
- BSF PORTB,3
- MEDIR2
- CALL ANALOG
- MOVLW .204
- SUBWF ADRESH,W
- BTFSS STATUS,C
- GOTO MEDIR2
- BCF PORTB,0
- RETARDOS
- MOVLW .250
- MOVWF 20h
- L1
- MOVLW .250
- MOVWF 21H
- L2
- MOVLW .20
- MOVWF 22H
- L3
- NOP
- DECFSZ 22H
- GOTO L3
- DECFSZ 21H
- GOTO L2
- DECFSZ 20H
- GOTO L1
- BCF PORTB,3
- BSF PORTB,1
- MEDIR3
- CALL ANALOG
- MOVLW .0
- SUBWF ADRESH,W
- BTFSS STATUS,Z
- GOTO MEDIR3
- BCF PORTB,1
- GOTO INICIO
- RET_20
- MOVLW .33
- MOVWF 23H
- DECFSZ 23H
- GOTO $-1
- RETURN
- ANALOG
- CALL RET_20
- BSF ADCON0,GO
- BTFSC ADCON0,GO
- GOTO $-1
- RETURN
- END
Simulación en proteus para probar el codigo .HEX generado por la compilación del programa en MPLAB.