¡Tengo el dgl0401 en funcionamiento, y es un pequeño dispositivo!
DGL-0401YG-4EH La fila inferior tiene 10 pines, la fila superior tiene 8 pines.
Mi invento de numeración tiene el pin 1 en la parte inferior izquierda y el pin 18 en la parte superior izquierda.
(Los pines 15 y 16 no están conectados ni interna ni externamente).
El PIC16lF1939 tiene un reloj de cristal conectado e inicializado, está configurado para funcionar a 8 MHz y usa el comando SLEEP. Sin SLEEP, el dispositivo utiliza aproximadamente 2,000 microAmps, con SLEEP el dispositivo promedia aproximadamente 40 microAmps con el cristal del reloj y mostrar siempre en ejecución.
Cableado
PIC pin: DGL pin:
37 1 Com0
38 2 Com1
4 17 Com2
19 18 Com3
22 s16 4
27 s17 5
28 s18 6
29 s19 7
30 s20 8
8 s21 9
9 s22 14
10 s23 13
3 s7 3
7 s5 10
17 s3 11
33 s0 12
Una vez inicializado, al escribir en la dirección LCDDATAn, Bitm "1" se activa, "0" se desactiva ...
Como se trata de una forma de onda tipo "A", los registros LCDDATA se pueden escribir en
Cualquier instante y escritura no tiene que registrarse de ninguna manera.
Para escribir "horas" y "minutos" en la pantalla, convierta cada uno de estos enteros binarios en dos bytes bcd.
Luego busque el patrón de segmento para cada número bcd y colóquelo en
Miles, cientos, decenas de unidades se registran.
Luego, una rutina larga lee estos registros y bit a bit carga los registros de sombra.
Luego, los registros ocultos se copian en los registros LCDDATA.
Todos los segmentos numéricos con "1" y "2" y algunos iconos:
;Bit> ;7 6 5 4 3 2 1 0
LCDDATA2 ;driptap sunshine 3c 3e 2c 2e 1c 1e
(com0)
LCDDATA5 ;"2" Xhairs 3d dp 2d colon 1d -
MinusSign(com1)
LCDDATA8 ;portcullis "1" 3b 3a 2b 2a 1b 1a
(com2)
LCDDATA11 ;tri_in_circle ^leftUpper 3g 3f 2g 2f 1g 1f (com3)
Segmentos de icono restantes:
;Bit> ;7 5 3 0
LCDDATA0 ;pipejoint noflame %
^rtupper (com0)
LCDDATA3 ;dropgraph exclamtri degreeC
+rtupper (com1)
LCDDATA6 ;(nc) (nc) -rtLower uAmps
blower (com2)
LCDDATA9 ;\/leftLower \/rtLower 4 "Bar"
flameon (com3)
Configuración del controlador LCD (consulte DS1574B páginas 329..362 para obtener información de la hoja de datos de PIC16 (L) F1939).
banksel PIE2
bcf PIE2, LCDIE
banksel PIR2
bcf PIR2, LCDIF
banksel LCDCON ;Bank15 (all the LCD registers are here)
;(Watch crystal source. LCDCON :=11000111 => LCDEN=on,
;Sleep on disabled,0,0,T1osc, 4 commons)
movlw b'00000111'
;0 LCDoff, 0 enabled in sleep, ? , unimpl , 01 Timer1 osc source, 11 mpx 1/4
movwf LCDCON
movlw b'00000101';default b'00000101' Set to type A waveform, WFT:=0, 1:6
; prescaler
movwf LCDPS ;pp332 affects frequency, can vary lower 4 bits somewhat
;(experiment) want 37 Hz for no flicker
movlw b'10101001';<7.0> bits 7,5,3,0 are used (for icons exclusively)
movwf LCDSE0 ;Segment Enable register0
movlw b'00000000';<15.8> none of these bits are used
movwf LCDSE1
movlw b'11111111';<23.16> all of these bits are used (for segments + some icons)
movwf LCDSE2
movlw b'00000000';Load initial display to "1 2 -1:2.3"
movwf LCDDATA0 ;Data Registers, write to these at the appropriate time
movlw b'00100110' ;;;;
movwf LCDDATA2 ; "1" "2" "-1:2.3" are initially loaded.
movlw b'00000000' ;
movwf LCDDATA3 ; a a a
movlw b'10111101' ; -- -- --
movwf LCDDATA5 ; f/g /b f/g /b f/ g /b
movlw b'00000000' ; - -- : -- --
movwf LCDDATA6 ; e/ /c e/ /c . e/ /c
movlw b'01111110' ; -- -- --
movwf LCDDATA8 ; d d d
movlw b'00000000' ;
movwf LCDDATA9 ; 1 2 3
movlw b'00101000' ;
movwf LCDDATA11 ; (symbol to segment assignments ^)
movlw b'10100000' ;default b'10100000'
;7:=1 Internal Ref enabled, 6:=0 LCD contrast powered by Vdd,
;5:=1 Disconnect power ladder during "B" wave
;<3..1>:=0 Port B3, B2, B1 pins are unassigned and free to use elsewhere, 0:=0
; (unimplemented)
movwf LCDREF
;pp333 Success!, so the external bias pins b1, b2, b3 can be released for other use.
movlw b'00000101' ;default b'00000101'
;<2..0>:=101 Resistor ladder is at 5/7th of maximum resistance, determined by experiment
movwf LCDCST ;pp334 varies the contrast, 000=>max contrast
;(experiment)
movlw b'10000100'
;default b'10000100' A gets 4 clocks, B (unpowered) gets 12 clocks
movwf LCDRL
;pp339..342 Resistor Ladder time on.(experiment established A:B:=4:12 clocks)
movlw b'10000111'
;1 LCDon , 0 enabled in sleep, 00 ?? , 01 T1osc source , 11 lmux :=1/4
movwf LCDCON
;The LCD display is now set up using waveform "A" and the LCDDATAx registers
;can be written at any instant.