kode kontroll

S

simonwai999

Guest
hei

Code:

listen p = 16F690

# include <p16F690.inc>

__config (_WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)# define E PORTC, 0; Definer Aktiver funksjonen på bit 0 av PORTC

# define RW PORTC, 1; Definer R / W funksjonen bit 1 av PORTC

# define RS PORTC, 2; Definer Registrer Utvalg funksjon på litt 2 av PORTCtemp EQU 0x20; Temp registrere deg for å holde data blir sendt til skjerm

indre EQU 0x21; Loop counter for Delay Rutinemessig

;************************************************* ***************************org 0x000

NOP;************************************************* ********************************BANKSEL TRISB

clrf TRISB; Sett PORTB som utganger

clrf TRISC; Sett PORTC som utgangerBANKSEL PORTB

bSF E; Initialiser Aktiver å Logic Høy Stat

BCF RW; Initialiser RW å Logic Low (Write)Ring InitDisp; Put skjerm i 4-biters modusmovlw 0x28; Send Entry Mode Set kommandoen for 4-bits modus

Ring LCDCommand og 2-linjers display
movlw 0x0E; Send kommandoen til å slå på skjermen og markøren

Ring LCDCommand
movlw 0x06; Send Entry Mode Set-kommandoen til å øke adresse

Ring LCDCommand; etter én og flytte markøren til høyre
movlw 0x80; Send Set DDRAM Address til adresse 0x00

Ring LCDCommand
movlw 'A'; Send en 'Character A' til den vises på første linje

Ring LCDDatamovlw 0xC0; Send Set DDRAM Address til adresse 0x40

Ring LCDCommandmovlw 'B'; Send en 'Character B' til vises på andre linje

Ring LCDDataSelf:

goto Self; Loop på plass; ************************************************* **

; * Slik initialiserer display, sender vi en 8-bit *

; * For å vise å sette det inn i 4-biters modus. *

; ************************************************* **

InitDisp:

BANKSEL PORTB

movlw 0x02; Funksjon satt for 4-bits grensesnitt

movwf PORTB; Flytt-kommandoen til LSB's of PORTB

BCF RS; Clear RS (indikerer kommando)

BCF E; Strobe Aktiver

bSF E

Ring Delay; Tillat vise til prosessen kommando

return; tilbake til innringeren; ************************************************* **

; * Hvis du vil sende kommandoen til skjermen, laste data inn *

; * W_REG og ringe LCDCommand *

; ************************************************* **

LCDCommand:

BCF RS; Clear RS linje for kommando

goto SendToLCD; ************************************************* **

; * For å sende data til skjermen, laste data inn *

; * W_REG og ringe LCDData *

; ************************************************* **

LCDData:

bSF RS; Set RS linje for data; ************************************************* **

; * Universell subroutine å sende en byte til LCD, *

; * Passert i gjennom W_REG. *

; ************************************************* **

SendToLCD:

movwf temp; Lagre våre data i temp register

swapf temp, W; Bytt nybbles og plassere resultatet i W

movwf PORTB; Flytt øvre nybble av data i LSB's of PORTB

BCF E; Strobe Aktiver

bSF E

movf temp, W; Hent våre opprinnelige dataene byte i W

movwf PORTB; Flytt til PORTB, i hovedsak plassere lavere nybble

; I LSB's of PORTB

BCF E; Stobe Aktiver

bSF E

Ring Delay; Gi vise tid til å behandle kommando eller data

return; tilbake til innringeren; ************************************************* *****

; * Opprette en forsinkelse å tillate Display å behandle kommandoen *

; ************************************************* *****Delay:

clrf indre

DLoop:

nop

nop

decfsz indre

goto DLoop

returnEND
 
Hei,
Ja, du har rett, burde det fungere.Men normalt så jeg vet Enable signalet er et har puls, men programmet bruker et-ve puls.Det kan ingen rolle om kontrolleren bruker bare kanter for lasting.
Hilsen,
Laktronics

 
hei takk
buddy
men i hvilken del u kan se den bruker-ve?
Jeg finner ikke dette
skål

 
Hei,
Du kan se på de to linjekode steder under 'strobe aktivere' kommentar.Det er en BitClear (BCF) E etterfulgt av BitSet (bSF) E. Også den første delstaten bit E er satt av en bSF E. Men som jeg allerede har nevnt, kan det ikke være viktig.

Hilsen,
Laktronics

 
hei
very cool svar på spørsmålet mitt
buddy du er så flink til elektronikk
Jeg antar jeg må studere hardere for å komme til ditt nivå en dag
takk så mye en gang for forklaringer og alle
hilsen

 

Welcome to EDABoard.com

Sponsor

Back
Top