Circuitos Digitales - codigo de pic para hacer un lcd digital

 
Vista:

codigo de pic para hacer un lcd digital

Publicado por juan (1 intervención) el 18/05/2011 17:58:38
Buenas programadores!!! tengo un trabajo pero no tengo ni idea como hacerlo, es programar en ensamblador para pic (cualquier pic) un lcd, estoy trabajando con circuitos digitales en un programa que se llama proteus, gracias a todos !!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Programación en ensamblador para LCD con PIC

Publicado por Alejandro (117 intervenciones) el 28/08/2023 22:01:27
Programar un LCD con un microcontrolador PIC en ensamblador es un proceso detallado y requiere un conocimiento sólido de la arquitectura del microcontrolador y del protocolo de comunicación con el LCD. Aquí te proporcionaré un ejemplo básico de cómo podrías comenzar a programar un LCD utilizando un PIC en ensamblador. Asegúrate de adaptar el código a tu microcontrolador específico y al pinout de tu LCD.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
; Configuración de registros y pines
    cblock 0x20
        contador
    endc
 
; Definir constantes para el LCD
LCD_PORT    EQU     PORTB
LCD_RS      EQU     RB0
LCD_RW      EQU     RB1
LCD_EN      EQU     RB2
 
; Definir comandos del LCD
CLEAR_DISPLAY   EQU     0x01
RETURN_HOME     EQU     0x02
DISPLAY_ON      EQU     0x0C
FUNCTION_SET    EQU     0x28
 
ORG 0x0000
    ; Inicialización
    BANKSEL TRISB
    CLRF TRISB
    BANKSEL LCD_PORT
    CLRF LCD_PORT
    BSF STATUS, RP0 ; Cambiar a Bank 1
    MOVLW 0x00
    MOVWF contador ; Inicializar contador
 
MAIN_LOOP:
    ; Configurar puertos para salida
    BSF STATUS, RP0 ; Cambiar a Bank 1
    BCF TRISB, LCD_EN
    BCF TRISB, LCD_RW
    BCF TRISB, LCD_RS
 
    ; Esperar un breve período de tiempo
    CALL DELAY
 
    ; Inicializar LCD
    CALL INIT_LCD
 
    ; Esperar un breve período de tiempo
    CALL DELAY
 
    ; Mostrar mensaje en el LCD
    CALL SEND_COMMAND, DISPLAY_ON
    CALL SEND_COMMAND, CLEAR_DISPLAY
    CALL SEND_COMMAND, RETURN_HOME
 
    MOVLW 'H'
    CALL SEND_DATA
    MOVLW 'o'
    CALL SEND_DATA
    MOVLW 'l'
    CALL SEND_DATA
    MOVLW 'a'
    CALL SEND_DATA
    MOVLW '!'
    CALL SEND_DATA
 
    ; Bucle infinito
    BRA MAIN_LOOP
 
; Subrutina para enviar comandos al LCD
SEND_COMMAND:
    BCF LCD_RS
    BCF LCD_RW
    MOVF contador, W
    MOVWF LCD_PORT
    BSF LCD_EN
    CALL DELAY
    BCF LCD_EN
    INCF contador, F
    RETURN
 
; Subrutina para enviar datos al LCD
SEND_DATA:
    BSF LCD_RS
    BCF LCD_RW
    MOVF contador, W
    MOVWF LCD_PORT
    BSF LCD_EN
    CALL DELAY
    BCF LCD_EN
    INCF contador, F
    RETURN
 
; Subrutina de inicialización del LCD
INIT_LCD:
    CALL SEND_COMMAND, FUNCTION_SET
    CALL SEND_COMMAND, DISPLAY_ON
    CALL SEND_COMMAND, CLEAR_DISPLAY
    RETURN
 
; Subrutina de retardo
DELAY:
    MOVLW D'100'
    MOVWF contador
DELAY_LOOP:
    DECFSZ contador, F
    BRA DELAY_LOOP
    RETURN
 
    END

Este es solo un ejemplo básico y es posible que necesites ajustar el código según las especificaciones del LCD que estás utilizando, el microcontrolador PIC y el pinout que estás utilizando en Proteus. Asegúrate de consultar las hojas de datos del PIC y el LCD para comprender cómo configurar los pines, el protocolo de comunicación y los comandos específicos.

Además, ten en cuenta que esta es una implementación simple y no cubre todas las funcionalidades avanzadas del control de un LCD. La programación en ensamblador puede ser complicada, especialmente para dispositivos como los microcontroladores PIC, por lo que se recomienda tener un buen conocimiento de la arquitectura del microcontrolador y las especificaciones del dispositivo que estás utilizando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar