Quantcast
Channel: MEL PICBASIC Forum
Viewing all articles
Browse latest Browse all 4745

Trying to emulate shift register

$
0
0
I am trying to emulate a shift register.
This is the code I have so far:

Code:

DEFINE OSC 8                      ' 8 MHz. oscillator
CMCON = 7                        ' 16F628, all digital
TRISA = %11111100                ' PORTA.0 and PORTA.1 are outputs
TRISB = 0                        ' PORTB = Output

ClockPin    var    PORTA.2      ' Clock and Data line
DataPin    Var    PORTA.3

wvar        Var    Byte          ' Variable
WVar = 0                          ' Initialize to '0'

MainLoop:
  While ClockPin = 0 : wend      ' Wait for clock to go '1'
  wvar = wvar << 1                ' Shift value in wvar 1 Bit left
  if DataPin = 1 then            ' Dataline = '1'
    wvar = wvar || 1              ' Increase value
  else                            ' Dataline = '0'
    wvar = wvar && 254            ' Last bit is zero
  endif 
  PORTB = wvar                    ' Set PORTB to wvar
  while ClockPin = 1 : wend      ' Wait for clock to go '0'
  goto MainLoop                  ' Loop for ever

Is there an easier way to implement a shift register function?

Viewing all articles
Browse latest Browse all 4745

Trending Articles