Вы находитесь на странице: 1из 2

define osc 20

DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE

LCD_DREG
LCD_DBIT
LCD_RSREG
LCD_RSBIT
LCD_EREG
LCD_EBIT
LCD_RWREG
LCD_RWBIT
LCD_BITS
LCD_LINES
LCD_COMMANDUS
LCD_DATAUS

TRISD = %00000000
TRISC = %00000000
TRISB = %11111111
low
PORTC.6
pause 1000

PORTD
0
PORTC
7
PORTC
5
PORTC
6
8
2
2000
50
'Set
'Set
'Set
'Set

'LCD data port


'LCD data starting bit 0 or 4
'LCD register select port
'LCD register select bit
'LCD enable port
'LCD enable bit
'LCD read/write port
'LCD read/write bit
'LCD bus size 4 or 8
'Number lines on LCD
'Command delay time in us
'Data delay time in us

port D as output
port C as output
port B as input
the R/W bit to low
'wait until the LCD initializes

SCAN:
LCDOUT $FE,1

'clear LCD display

IF PORTB.0=$0 AND PORTB.1=$0 AND PORTB.2=$0 AND PORTB.3=$0 AND PORTB.4=$0 AND
PORTB.5=$0 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "plz train the H
M"
IF PORTB.0=$0 AND PORTB.1=$1 AND PORTB.2=$1 AND PORTB.3=$0 AND PORTB.4=$0 AND
PORTB.5=$0 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "one"
IF PORTB.0=$0 AND PORTB.1=$0 AND PORTB.2=$0 AND PORTB.3=$1 AND PORTB.4=$0 AND
PORTB.5=$0 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "two"
IF PORTB.0=$0 AND PORTB.1=$0 AND PORTB.2=$0 AND PORTB.3=$0 AND PORTB.4=$1 AND
PORTB.5=$0 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "left"
IF PORTB.0=$1 AND PORTB.1=$1 AND PORTB.2=$0 AND PORTB.3=$0 AND PORTB.4=$1 AND
PORTB.5=$0 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "jump"
IF PORTB.0=$0 AND PORTB.1=$0 AND PORTB.2=$1 AND PORTB.3=$0 AND PORTB.4=$1 AND
PORTB.5=$0 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "gil"
IF PORTB.0=$0 AND PORTB.1=$1 AND PORTB.2=$1 AND PORTB.3=$0 AND PORTB.4=$1 AND
PORTB.5=$0 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "three"
IF PORTB.0=$0 AND PORTB.1=$0 AND PORTB.2=$0 AND PORTB.3=$1 AND PORTB.4=$1 AND
PORTB.5=$0 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "stop"
IF PORTB.0=$0 AND PORTB.1=$1 AND PORTB.2=$0 AND PORTB.3=$0 AND PORTB.4=$0 AND
PORTB.5=$1 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "text"
IF PORTB.0=$0 AND PORTB.1=$0 AND PORTB.2=$1 AND PORTB.3=$0 AND PORTB.4=$0 AND
PORTB.5=$1 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "point"
IF PORTB.0=$1 AND PORTB.1=$0 AND PORTB.2=$0 AND PORTB.3=$1 AND PORTB.4=$0 AND
PORTB.5=$1 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "socks"

IF PORTB.0=$0 AND PORTB.1=$0 AND PORTB.2=$0 AND PORTB.3=$1 AND PORTB.4=$1 AND
PORTB.5=$1 AND PORTB.6=$0 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "green"
IF PORTB.0=$1 AND PORTB.1=$0 AND PORTB.2=$1 AND PORTB.3=$0 AND PORTB.4=$1 AND
PORTB.5=$0 AND PORTB.6=$1 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "word too long"
IF PORTB.0=$0 AND PORTB.1=$1 AND PORTB.2=$1 AND PORTB.3=$0 AND PORTB.4=$0 AND
PORTB.5=$1 AND PORTB.6=$1 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "word too short"
IF PORTB.0=$1 AND PORTB.1=$1 AND PORTB.2=$1 AND PORTB.3=$0 AND PORTB.4=$1 AND
PORTB.5=$1 AND PORTB.6=$1 AND PORTB.7=$0 THEN LCDOUT $FE.$C0, "word no match"
pause 1000
d
GOTO SCAN
END

'delay for 1 second before scanning the next wor

Вам также может понравиться