LCD (16x2) na 4 bite na PIC16F72 pri montaži-lcd ne deluje

N

navneet_2040

Guest
jaz sem poskušal teči svoj lcd (16x2) na 4 bite na PIC16F72 pri montaži.
ampak jaz sem ne dobi kakršne koli prikazati na LCD.
i am uporabo portb nižje 4 bite za pošiljanje podatkov o višjih 4 bits of lcd,
prosim dajte mi kodo.

 
ste initialized ur LCD pravilno?
initializing v 4 bit, ni lahka naloga
nekako pogledati za naslednjo povezavo
http://www.sonsivri.com/forum/index.php?topic=6525.0
in download lcdbusy.zip
to vam lahko pomaga

 
;************************************************* *********************
; Ta datoteka je osnovna koda predlogo za montažo kodo energije *
; Na PIC16F72 PICmicro.Ta datoteka vsebuje osnovna koda *
; Temelje za nadgradnjo.*
; *
; Če prekine se ne uporabljajo vse kode predstavil med ORG *
; Se lahko odstrani 0x004 direktive in etikete glavni.Poleg tega je *
; Spremenljivka nalog za "w_temp" in "status_temp" lahko *
; Je treba odstraniti.*
; *
; Preberite MPASM Uporabniški priročnik za dodatne informacije o *
, Značilnosti monter (dokument DS33014).*
; *
, Glejte ustrezne podatke PICmicro list za dodatne *
; Informacije o določenih navodil.*
; *
;************************************************* *********************
; *
; Ime datoteke: lcd.asm *
; Datum: 9-12-08 *
; File Version: *
; *
; Avtor: Navneet Kumar *
; Podjetje: *
; *
; *
;************************************************* *********************
; *
; Files obvezna: *
; *
; *
; *
;************************************************* *********************
; *
; Opombe: *
; *
; *
; *
; *
;************************************************* *********************Seznam p = 16f72; seznamu direktive opredeliti procesor
# include <p16f72.inc>; procesor posebne spremenljivke opredelitve

__CONFIG _CP_OFF & _WDTEN_OFF & _BODEN_OFF & _PWRTEN_ON & _RC_OSC

, "Se direktiva __CONFIG" se uporablja za vključitev podatkov v konfiguraciji. ASM datoteki.
; So lables naslednje direktive, ki se nahajajo v ustreznih. Inc datoteko.
; Glejte ustrezne lista za dodatne informacije o konfiguraciji besedo.;***** VARIABLE OPREDELITVE
w_temp EQU 0x20; spremenljivka se uporablja za shranjevanje kontekstu
w_temp1 EQU 0xA0; rezerve bank1 ekvivalent w_temp
status_temp EQU 0x21; spremenljivka se uporablja za shranjevanje kontekstu;************************************************* *********************
ORG 0x000; procesor reset vektor

goto glavni, pojdite na začetku programaORG 0x004; Pobeg Vektor lokacija

movwf w_temp; shranite off trenutne W register vsebine
movf STATUS, w; premakniti status registra v registru W
BCF STATUS, RP0; zagotoviti datoteke register bančnih nastaviti na 0.
movwf status_temp; razen sveže vsebine STATUS registra; ISR code more iti tukaj ali pa se nahaja kot klic Subrutina drugjeBCF STATUS, RP0; zagotoviti datoteke register bančnih nastaviti na 0.
movf status_temp, w; priklicati kopija STATUS registra
movwf STATUS, ponovno pre-isr STATUS register vsebine
swapf w_temp, f
swapf w_temp, w, obnovite predhodno ISR W register vsebine
retfie; vrnitvi iz prekinitev
glavni

; Preostalih code goes here, glavna koda je od tukaj, 16x2 lcdBSF STATUS, RP0; izberemo bank1 postaviti vrednosti v registrih TRIS
movlw 0x00
movwf TRISB, določitev portb kot proizvodnja, b0, da b3 so povezani z lcd podatkov zatiči D4-D7
movlw 0x00
movwf TRISC, določitev portc kot proizvodnja
; RS je na PORtC, 6
; SL je na PORTC, 7
; R / W pin je na tleh, tudi jaz sem ne uporabljatestart:
BCF STATUS, RP0; pridemo v bank0 spetmovlw 0x28; 28 se želimo poslati lcd pin za 4 košček inicializacijo
movwf 0x23; 0x23 je pomnilnik mesto, ki jih uporabljamo za shranjevanje podatkov
klic Command1; podatki o 0x23 pošlje lcd kot ukaz

klic zamudo; pravimo zamudo

movlw 0x01; 01 se želimo poslati lcd
movwf 0x23, 0x23 je pomnilnik mesto, ki jih uporabljamo za shranjevanje podatkov
klic Command1; podatki o 0x23 pošlje lcd kot ukaz

klic zamudo

movlw 0x0c; 0C se želimo poslati lcd
movwf 0x23, 0x23 je pomnilnik mesto, ki jih uporabljamo za shranjevanje podatkov
klic Command1; podatki o 0x23 pošlje lcd kot ukaz

klic zamudo

movlw 0x80; 80 želimo poslati lcd, kot vhodna naslov
movwf 0x23, 0x23 je pomnilnik mesto, ki jih uporabljamo za shranjevanje podatkov
klic Command1; podatki o 0x23 pošlje lcd kot ukaz

klic zamudo

movlw # ""; znak je želimo poslati lcd pin za 4 košček inicializacijo
movwf 0x23, 0x23 je pomnilnik mesto, ki jih uporabljamo za shranjevanje podatkov
klic data1; pravimo data1 sedaj, ker smo pošiljanje podatkov zdaj lcd

klic zamudo

movlw # "B", je znak B želimo poslati lcd pin za 4 košček inicializacijo
movwf 0x23, 0x23 je pomnilnik mesto, ki jih uporabljamo za shranjevanje podatkov
klic data1; pravimo data1 sedaj, ker smo pošiljanje podatkov zdaj lcd

klic zamudozanko:; neskončne zanke, ko pridejo sem lcd morajo pokazati, AB znakov na zaslonu
goto zankaCommand1:
movlw 0x02; 2 se upošteva 0x33 pomnilniku mesto za nasprotno, da gre za 2-krat
movwf 0x33

movf PORTB, w, razen do vsebine portb do w
andlw 0xf0; masko zgornje 4 bite kot mi uporabite nižjo 4 nastavke za pošiljanje podatkov o lcd
movwf 0x24, shranite to vrednost v pomnilnik mesto 0x24s1:
movf 0x23, w; sedaj dal vrednost v 0x23 do w
andlw 0xf0; shranite višji 4 bits, dana v w, podatki v 0x23 še vedno ostaja nespremenjena
movwf 0x29, dal je v spomin na lokaciji 0x29
swapf 0x29, w, swap, in daj v w
iorwf 0x24, w, zdaj ali pa z zgornjo višjih bitov bomo shranili v portb
movwf PORTB; dal, da na portb, zato nižji 4 bitov portb imajo višjo Košček podatkov
BCF PORTC, 6; RS je odobrila, ki kaže, da je ukaz
BSF PORTC, 7; EN nastavljena
klic zamudo
klic zamudo
BCF PORTC, 7; EN počiščeno
klic zamudo
swapf 0x23, F, zdaj smo dobili nižjo Košček podatkov
decf 0x33, F; Število je povečanega
btfss STATUS, Z; preverimo count
goto s1; smo spet na s1 in pošljite spodnji Košček podatkov o portb kot smo za višje Košček
donosdata1:
movlw 0x02; enako kot Command1, tukaj je RS določi visoke, druga logika je enaka kot Command1
movwf 0x33

movf PORTB, w
andlw 0xf0
movwf 0x24
g1:
movf 0x23, w
andlw 0xf0
movwf 0x29
swapf 0x29, w
iorwf 0x24, w
movwf PORTB
BSF PORTC, 6
BSF PORTC, 7
klic zamudo
klic zamudo
BCF PORTC, 7
klic zamudo
swapf 0x23, F
decf 0x33, F
btfss STATUS, Z
goto g1
donos

zamudo:, ta zamuda je dovolj, da zahteva lcd

movlw 0x0d
movwf 0x21

tukaj:
decf 0x21, F
btfss STATUS, Z
goto here1
goto end1
here1:
movlw 0x0f
movwf 0x20
go1:
decf 0x20, F
btfss STATUS, Z
goto go1
goto here
end1: nop
donos
END
Last edited by navneet_2040 on 09 Dec 2008 7:08, edited 1 v času celotnega

 
Hi Navneet,
Razumevanje nekoga drugega koda je trd kot obravnavi drugih misli.Vaša koda nima pripomb in drugi ni všeč, da vlagajo veliko svojega dragocenega časa, da razumejo svojo kodo in vam pomaga.

Nekaj delovnih mest Vaš post je enako delovno mesto_On je tudi z vašo isto težavo, vendar glej jasnost svojega kodiranja.Obstaja nekaj predlogov, ki tam, pa še nobene potrditve o tem, ali je rešil njegov problem.Te pripombe veljajo tudi za vaš primer.Zato prosim, poglejte na nižjem delovnem mestu in zelo verjetno boste lahko pomagali sami.

Post reference je:
ftopic335738.html

S spoštovanjem,
Laktronics

 
imate pravico .. da je moja koda je težko razumeti, za druge, kot jaz niso dale nobenih pripomb ..tudi jaz bom vključiti čim več pripomb je mogoče, tako da oseba, ki se glasi, da bo razumel to enostavno ...bom post novo kodo kmalu ..mimo.

 
u rekel, da z uporabo ur lcd na 4 bit mode.ok enkrat see lcd ukaz 0x28.tj 0x28 je določiti lcd v 4 bitnem načinu tako najprej pošlje Košček zgornji in nato spodnji Košček.
0x28 = 0 0 1 0 1 0 0 0
bit mesta so 7 6 5 4 3 2 1 0 ur, v mikrokrmilniška podatkov bits r b3 do B0.Prva pravica tako premik ur Košček 4-krat višja in ga pošljite na lcd in pošiljanje nižje Košček brez preložitve

 
Hy,
u kdaj kaj narediti, da je napačna.
lahko uporabite samo 4 vrstice lcd z mikrokrmilniška za pošiljanje podatkov, kakor tudi ukaz.
Če želite določiti data / ukaz se izvede s pin RS za LCD.
tukaj dam ua vzorec oznake za to.

Hvala.
Oprostite, toda morate prijavo na ogled te priloge

 

Welcome to EDABoard.com

Sponsor

Back
Top