16F628 och LCD

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Malm
Inlägg: 215
Blev medlem: 22 februari 2004, 12:55:06
Ort: Borås

16F628 och LCD

Inlägg av Malm »

Har precis börjat med PIC:ar och skulle uppskatta lite hjälp med att kontrollera en vanlig LCD. Har knåpat ihop följande PICbasic-kod med hjälp av diverse källor. Jag vet däremot inte om den fungerar (troligtvis inte) och vill därför ha lite hjälp med korrigering.

Kod: Markera allt

@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT
' System Clock Options 
@ DEVICE pic16F628, WDT_ON
' Watchdog Timer
@ DEVICE pic16F628, PWRT_ON
' Power-On Timer
@ DEVICE pic16F628, MCLR_OFF
' Master Clear Options (Internal)
@ DEVICE pic16F628, BOD_ON
' Brown-Out Detect
@ DEVICE pic16F628, LVP_OFF
' Low-Voltage Programming
@ DEVICE pic16F628, CPD_OFF
' Data Memory Code Protect
' Set to CPD_OFF for Development Copy
' Set to CPD_ON for Release Copy
@ DEVICE pic16F628, PROTECT_OFF
' Program Code Protection
' Set to PROTECT_OFF for Development Copy
' Set to PROTECT_ON for Release Copy

' Define LCD pins
Define  LCD_DREG        PORTA
Define  LCD_DBIT        0
Define  LCD_RSREG       PORTA
Define  LCD_RSBIT       4
Define  LCD_EREG        PORTB
Define  LCD_EBIT        3
Define  LCD_BITS		4
Define  LCD_LINES		2
Define  LCD_COMMANDUS	2000
Define  LCD_DATAUS		50

' Pre-start 
Pause 500                      ' Wait for LCD to wake up 
LCDOut $FE, 1         'Initiate LCD by clearing display 

Pause 500            'Wait for LCD to initiate 

LCDOUT $FE,1,"Hej"
LCDOUT $FE,$C0,"Hej 2"

Är mycket tacksam för all hjälp!
Senast redigerad av Malm 7 december 2004, 13:58:22, redigerad totalt 2 gånger.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Provat koppla in och exekvera? Du kan ju inte be om hjälp innan du vet om du har ett problem :wink:

Följande hade inte skadat för att initiera LCDn

Kod: Markera allt

' - - - Pre-start - - -
Pause 500                      ' Wait for LCD to wake up
LCDOut $FE, 1			'Initiate LCD by clearing display

Pause 500				'Wait for LCD to initiate
Sen behöver du inte köra kommandona i en loop, det kommer bara resulera i att texten kommer flimra.
Malm
Inlägg: 215
Blev medlem: 22 februari 2004, 12:55:06
Ort: Borås

Inlägg av Malm »

Jo, det hade jag allt tänkt att göra, men jag ville bara försäkra mig om att jag inte eldade upp processorn eller något i den stilen ;)

Har ändrat koden i första inlägget, bättre nu? Behövs det inte något kommando som talar om att programmet ska avsluta om man inte kör en loop?
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

I PICBasic brukar man avsluta med END. Fast det är väldigt sällan man avslutar exekveringen i mjukvaran. Om du vill kan du ju sätta en slö loop (med mycket pause i).
Skriv svar