Design a circuit to detect when 3 and only 3 bits are set
out of 8 bits.(eg. o0101100)

Answer Posted / gautam bhattacharya

Step 1: Store the 8 bit value in a accumulator

Step 2: Store 0x1 in a register0, initialize two counter
with 0 i.e. store zero in a reg1 and reg2.

LOOP:
Step 3: Check if AND operation between the value in
register0 and accumulator is set i.e. 1
if yes, increment reg1 and reg2
If no, increment only reg2

step 4: Left shift the value of register0 by 1
step 5: if ( reg2 >=8), exit LOOP
if ( reg1 >= 3), show that 3 bit is set
Else Go To LOOP



MOV XAR1, #Data
MOV XAR0, #0
MOV XAR2, #0

Loop:
TBIT *XAR1, #Count
BF Loop1, NTC
INR *XAR0

Loop1:
INR *XAR2
MOV AL, *XAR1
CMP AL, #0x03
BF Loop3, EQ

MOV AL, *XAR2
CMP AL, #0x80
BF Loop, NEQ

Loop3:
EXIT

Is This Answer Correct ?    0 Yes 3 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Explain the differences between analytical and computational modeling?

440


What buses are used for communication in embedded system?

441


what is embedded system in a computer system?

468


Tell me why do we need virtual device drivers when we have physical device drivers?

514


How to reduce interrupt latency?

507






Tell me why is it better to use multi-threading polling then single threading model?

467


Explain the software analysis process, such as code analysis, code metrics, and system risk analysis or software reliability.

473


Tell me what happens when recursive functions are declared inline?

444


What kinds of problems can you hit with locking model? And a lockless model?

436


What is your experience with technical documentation?

560


What is return type of isr?

435


What is the significance of watchdog timer in embedded systems?

425


Can we use printf inside isr?

475


How are variables mapped across to the various memories by the c compiler?

626


What is the purpose of a watchdog timer?

447