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

  1. LIST P=16F877A
  2. INCLUDE < P16F877A.INC >
  3. ORG 0000H
  4. BSF STATUS,RP0
  5. CLRF TRISB
  6. BCF STATUS,RP0
  7. MOVLW B'10011001'
  8. MOVWF ADCON0
  9. MOVLW B'00000001'
  10. MOVWF PORTB
  11. INICIO
  12. MEDIR1
  13. CALL ANALOG
  14. MOVLW .102
  15. SUBWF ADRESH,W
  16. BTFSS STATUS,C
  17. GOTO MEDIR1
  18. BSF PORTB,3
  19. MEDIR2
  20. CALL ANALOG
  21. MOVLW .204
  22. SUBWF ADRESH,W
  23. BTFSS STATUS,C
  24. GOTO MEDIR2
  25. BCF PORTB,0
  26. RETARDOS
  27. MOVLW .250
  28. MOVWF 20h
  29. L1
  30. MOVLW .250
  31. MOVWF 21H
  32. L2
  33. MOVLW .20
  34. MOVWF 22H
  35. L3
  36. NOP
  37. DECFSZ 22H
  38. GOTO L3
  39. DECFSZ 21H
  40. GOTO L2
  41. DECFSZ 20H
  42. GOTO L1
  43. BCF PORTB,3
  44. BSF PORTB,1
  45. MEDIR3
  46. CALL ANALOG
  47. MOVLW .0
  48. SUBWF ADRESH,W
  49. BTFSS STATUS,Z
  50. GOTO MEDIR3
  51. BCF PORTB,1
  52. GOTO INICIO
  53. RET_20
  54. MOVLW .33
  55. MOVWF 23H
  56. DECFSZ 23H
  57. GOTO $-1
  58. RETURN
  59. ANALOG
  60. CALL RET_20
  61. BSF ADCON0,GO
  62. BTFSC ADCON0,GO
  63. GOTO $-1
  64. RETURN
  65. END

Simulación en proteus para probar el codigo .HEX generado por la compilación del programa en MPLAB.


Linksappsclose