LCD kód nefunguje ...

K

kvrajasekar

Guest
Nazdar,

Som pomocou CDM16216B LCD na rozhraní s 16f72.But i
didnt dostať niečo na LCD.Please láskavou odpoveď mi môj kód je tu.list p = 16f72; PIC16f72 je cieľový procesor
INCLUDE "P16f72.INC"
;------------------------------------------------- -----------------------------------
; PORTA kontrolné bity__CONFIG _PWRTE_ON & _XT_OSC & _WDT_OFF; Konfiguráciu switchov
#
Define LCD_RS PORTA, 0; RA0 je RS línie LCD
#
Define LCD_E PORTA, 1; RA1 E je riadok LCD
; RC0-RC3 sú D4-D7 LCD
Temp EQU 0x20
delay1 EQU 0x21

org 0x00
goto start;------------------------------------------------- -----------------------------------
začať
BSF STATUS, RP0; Bank1
errorlevel 1, -302;
Don't varoval ma o bankový 1

movlw b'00000000 '; definovanie vstupných a výstupných pinů
movwf TRIS; Zápis do registra TRIS
movlw b'00000000 '; definovanie vstupných a výstupných pinů
movwf TRISB; TRISB Zápisnica do registra 1-input ,0-výstupné
movlw b'00000000 '
movwf smietke
movlw b'10000110 '; TMR0, prescaler-128
movwf OPTION_REG
movlw 0x07
movwf ADCON1
BCF STATUS, RP0; Bank0
clrf PORTA, potraviny, portb pôvodne nastavený na nízku
clrf PORTB
clrf PORTCcall lcd_init
BSF PORTA, 5; bzučiak
call delay_0.5s
BCF PORTA, 5

call disp_main
movlw 0xC1
call disp_cmd
btfsc PORTB, 4; UPS RDY
call disp_upslcd_init

movlw 0x28; 4 bit, 2 Line, 5x7 font
call disp_cmd
volajte okamžite
; Movlw 0x10; displej posun vypnutie
; Hovoru disp_cmd
; Hovoru oneskorenie
movlw 0x0E; inkrementační kurzora
call disp_cmd
volajte okamžite
movlw 0x01; Vymazať Ukáž RAM
call disp_cmd
volajte okamžite, poznámka, môže trvať až 4,1 msecs

movlw 0x06; presuňte kurzor na začiatok
call disp_cmd
volajte okamžite
; Movlw 0x0C; kurzor na displeji sa
; Hovoru disp_cmd
; Hovoru oneskorenie
návrat
oneskorenie
movlw d'236 '; 2.5ms oneskorenie
movwf TMR0
loop1 btfss INTCON, 2
goto loop1
clrf INTCON, je-li dôjsť k pretečeniu, jasné INTCON
návrat
d
;------------------------------------------------- -----------------------------------
; Ukáž príkaz pre 4 bit LCD

disp_cmd; Poslať Pokyn k LCD
movwf Temp; Uložiť dočasný Hodnota
swapf Temp, w; Poslať na vysokej Nybble
BCF LCD_RS; RS = 0
call nibbleout
movf Temp, w; Poslať Nízke Nybble
BCF LCD_RS
call nibbleout
návrat
;------------------------------------------------- -----------------------------------
; Zasielanie ASCII znaku na LCD
disp_write
; Addlw'0 '; Poslať NBR ako ASCII znak; Poslať znakov na LCD
movwf Temp; Uložiť dočasný Hodnota
swapf Temp, w; vysokého Nybble
BSF LCD_RS, RS = 1
call nibbleout
movf Temp, w; Poslať Nízke Nybble
BSF LCD_RS
call nibbleout
návrat
;------------------------------------------------- -----------------------------------
; Zasielanie dolnej a hornej ohlodávat
nibbleout; Poslať ohlodávat na LCD
movwf PORTC
BSF LCD_E
volajte okamžite
BCF LCD_E
nop
nop
návrat

disp_mainmovlw 'M'; výstup 'main'
call disp_write
movlw 'A'
call disp_write
movlw 'I'
call disp_write
movlw 'N'
call disp_write

movlw''
call disp_write
movlw 'N'
call disp_write
movlw 'O'
call disp_write
movlw 'R'
call disp_write

návrat

koniec

 
Videli ste tme lcd znakov ak nie, prosím skontrolovať kabeláž.
a pokiaľ váš správca vaších lcd přehřívá zastaviť dodávky energie, pretože môže poškodiť váš lcd.

 
Ďakujem za odpoveď.

I
didnt dostať ľubovoľné znaky ako uvádza (tmavé znaky), iba je podsvietenia ON (je hľadať svetlé).

dám vám pin pripojenie, čo som urobil, som sa používa 2.5ms bezodkladne odoslať command.will toto oneskorenie je dostatočné, alebo sú aj k zvýšeniu delay.and Naopak napätie je dostatočné?

Prosím, odpovedzte mi.

1 - GND
2 - - 5 V
Naopak 3 - 3
v.4-reset (RA0)
5 - GND
6 - Umožniť (RA1)
7,8,9,10 - bez spojenia
11,12,13,14 - data (RC0-RC3)
15 - GND

 
Nazdar,
1.Vyskúšajte a upravte LCD napätia (kontrast) pomocou hrniec.,
Což je veľmi časté problém.
2.Skontrolujte začatí časovač starostlivo znova.
3.Kam ísť na kód od:

"Call disp_ups"

Pozdravy,
Laktronics

 
2.5ms nestačí, skúste kód lcd initilalization času (cca 100ms) a potom pls či elektroinštalácie nie je reverznej
Mám na mysli niektoré LCD sú od 14.ground na 1 a tak ďalej ...
ale väčšina z nich má podsvietenia na 15 a 16

 
Ďakujeme za vašu bodov.

aj sa bude meniť omeškania a kontrast LCD, potom vám back.Is, že je potrebné volať lcd inicializačnej keď niekedy chcete zobraziť nový znak? alebo môžem len zavolať na displeji RAM adresu?

Môžem použiť prerušenie pre LCD rutina.Mám pochybnosti pomocou interrrupt pre LCD rutiny,
pretože to trvá dlho, než sa z prerušenia loop.correct mi, jestli jsem špatně?

 
hai,

ak používate pic série potom u nás môže překladače plne rozvinutý mikroE softvér v troch 1.využitím základných jazykových 2.pomocou python 3.c pomocou programu (odporúčané) stiahnutiu na webových stránkach mikroC softvér cez vyhľadávanie google.com

 
Nazdar,
Dlhé oneskorenia sú potrebné len pre počiatočné poweron kompenzácie a za prvých niekoľko príkazov pre init.Podľa jednej z používateľských príručiek, väčšina príkazov vyžadovať iba 40usec.bezodkladne po init.Iba dva príkazy CLR Displej a Návrat Domov trvá 1,64 ms.Povoľte pulzná šírka je pod jednu micro sec.and meškanie trvanie cyklu pre dva byte zaťaženie je len jeden úsekoch.Je lepšie odkázať na užívateľský manuál vášho displeja a trime oneskorením, ako je požadované.
Init je požadované iba raz na Poweron.

Pozdravy,
Laktronics

 
Keď som sa používa 8 bitov, moje číslo je správne, ale moje 4 bit kód nefunguje.

Použil som príkaz pre 4 bitové rozhranie,

movlw 0x28
call disp_cmd

je akýkoľvek príkaz je potrebné ešte predtým, ako tento príkaz? Prosím, pomôžte mi.

 

Welcome to EDABoard.com

Sponsor

Back
Top