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
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