PPI 8255 INTEL
A PC AB DB Registri ALUF B C D E H L SP Z80
ADCPPI AdressBus DataBus PORT A PORT B FD00H=reg.contr. FD01H=dato conv. CH0 CH1 CH2 CH3 FE03H=reg.contr. FE00H=portA FE01H=portB RAM 6000H
Z80 ADC PPI AdressBus DataBus PORT A PORT B FD00H=reg.contr. FD01H=dato conv. CH0 CH1 CH2 CH3 (FE03H)=reg.contr. (FE00H)=portA_in (FE01H)=portB_out CH= potenziometri PORT A = Interruttori PORT B = LEDS
A=90H C=03HB=FEH SP=6060H PC=6000H Z80PPI H Reg.contr FE03H. AB DB org 6000H iniPPI ld bc, 0fe03H ld a, 90H out ( c ),a ret Inizializzo la PPI : stabilisco che PORTA è INPUT e PORTB è OUTPUT IN OUT
A=….. C=00HB=FEH SP=6060H PC=6010H Z80PPI 8255 XX PORT A FE00H. AB DB org 6010H read ld bc, 0fe00H in a, ( c ) ret Leggo sul PORT A della PPI e porto il dato nellAccumulatore
A=YY C=01HB=FEH Z80PPI 8255 ……. PORT B FE01H. AB DB org 6020H write ld bc, 0fe01H out ( c ),a ret Scrivo su PPI nel PORT B il dato contenuto nell Accumulatore A=YY C=01HB=FEH SP=6060H PC=6020H
A=….. C=00HB=FEH Z80PPI 8255 XX PORT A FE00H. AB DB Z80PPI 8255 ……. PORT B FE01H. AB DB A=XX C=01HB=FEH Org 5e00H main ld sp, 6060H call iniPPI Ripcall read call write jp rip
SUB. DI DELAY D=D-1 D=0? E=E-1 E=0? D=8 E = 70 A = 255 A=A-1 RET A=0? Sub. che permette di avere un attesa di circa 0.25sec se clock della CPU è 8MHz t=14*T*n1*n2*n3