Sorry voor het vreemd omschreven onderwerp maar ga het proberen uit te leggen.

Met de Pic16f877 stuur ik een BCD code(4 bits) naar de 16 kanaals multiplexer (cd4067)

dit zijn de eerste 4 bits van PORTC
met de laatste 4 bits worden relais aangestuurd

nu wil ik de CD4067 zo aansturen


LeesIngangen:

 For Tel=0 To 15    'Totaal 16 Ingangen
   PORTC = Tel
 DelayMS 2
   If ADIn 0 < 50 Then  'Hyterese is 100
     Invar=0 
   Else If ADIn 0 > 150 Then  
     Invar=1
 End If
   LoadBit IngangenTot , Tel , Invar 'Loadbit WORD , index , waarde 1 of 0
Next

dit werkt perfect maar als dit in komt dan zullen de laatste 4 bits uitgangen nul worden.

Is dit te voor komen
door een byte te delen
net zoals bijv. 1 WORD in lowbyte en highbyte

Hans

Binaire maskers gebruiken.
Lownibble = Variabele AND &b00001111

Weet niet of de syntax klopt voor Picbasic:


PORTC = (PORTC AND %11110000) OR TEL

Heren Hartelijk dank

Het werkt


PORTC = (PORTC & %11110000) | TEL

Hans