'****************************************************************
'*  Name    : MPC 23017 teszt                                         *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  PIC     : Pic 16F876                                        *
'*  Date    : 2025. 08. 28.                                     *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
    INCLUDE "modedefs.bas"
    include "c:\PBP\BLCD.BAS"

 
sDA VAR PORTC.4 ''zöld fehér    i2c adatvonal 
SCL VAR PORTC.3 ''zöld fehér i2c órajel vonal 
led var porta.0 'fehér led 
cim var word   'változó szó 
 i var byte
 j var byte

IO_DAT     var     byte    '
IODIRA con $00 ' Port A 
IOLATA con $0A ' Output 
IODIRB con $10 ' Port B 
IOLATB con $1A ' Output 

IOCONA	            con	$05			' I/O
IOCONSETA           con	%10111000	' IOCON register setting
GPIOA	            con	$09			' Általános célú I/O
IO_EXP0WR           con	    $4E		' MCP23017  Write
IO_EXP0RD           con	    $4F		' MCP23017  Read
IO_DAT_OLD          var     byte
Out_Dat             var     byte

'------------------------------------------------------------------
'KIMENET PROBA
ciklus1:
lcdout $FE,$1, "TEST MCP23017 " 
pause 100 

i2cwrite sda,scl,$40,[IODIRA,0]'  A KIMENET
i2cwrite sda,scl,$40,[IODIRb,0]'  B KIMENET
pause 100
'----------------------------------
for i=1 to 25  'vagy 255
i2cwrite sda,scl,$40,[iolata,i]    'A LEDEK = I
i2cwrite sda,scl,$40,[iolatb,i]    'B LEDEK = I
pause 50  'mennyi ideig világítson adott állapotban gyors-lassú
'LCDOUT $fe,$c0 ,DEC IO_dat," ",dec j," "
next i
pause 50
   
'goto CIKLUS1
'-----------------------------------

'***************************************
'BEMENET PROBA kezdet

i2cwrite sda,scl,$40,[IODIRA,255]'  A BEMENET
 pause 20
 i2cwrite sda,scl,$40,[IODIRb,0] '  B KIMENET
pause 200

CIKLUS2:
i2cread sda,scl,$4f,[IO_dat]    ' MI VAN AZ A-BAN
pause 50
 i2cread sda,scl,$4f,[io_dat]        ' MI VAN AZ A-BAN
pause 50
i2cwrite sda,scl,$40,[iolatb,j] ' B mutassa mi van az A-n
LCDOUT $FE,$c0,"az A bemeneten: ",DEC IO_dat
pause 100
goto ciklus2

end

