Digital Electronics - The 8051 Microcontroller - Discussion

Discussion Forum : The 8051 Microcontroller - General Questions (Q.No. 11)
11.
The following program will receive data from port 1, determine whether bit 2 is high, and then send the number FFH to port 3:
READ: MOV A,P1
ANL A,#2H
CJNE A,#02H,READ
MOV P3,#FFH
True
False
Answer: Option
Explanation:
No answer description is available. Let's discuss.
Discussion:
16 comments Page 1 of 2.

Abhi said:   1 decade ago
1st : Copied to accumulator
2nd :ANDing operation
3rd : Compare jump if not equal
its always not equal
4th : Copied to port3 instruction

Manish gundev said:   1 decade ago
Thanks abhi.

Imtiyaz said:   1 decade ago
Contents of Port1 should be mentioned clearly, so that we can perform or take decision on CJNE instruction rite !

Yash said:   1 decade ago
@Imtiyaz, they have asked to check the 2nd lsb i.e 2nd bit right why you want to know the whole digit.

Khyati said:   1 decade ago
In the operand of CJNE, there is a address or data? please reply.

Ruben said:   1 decade ago
Line1. A = P1 'Read P1 then save in Acc.
Line2. A = A and 00000010 'And Operation.
Line3. If A <> 00000010 Goto Line1 'Compare.
Line4 Else P3 = #0ffh 'Send ffh to port 3.

Edison said:   1 decade ago
@Ruben its correct by masking all bits except 2nd bit and checking whether second bit is high or low and jumping actions are taken.

Mahesh said:   1 decade ago
Line 1: We will move the content of P1 to accumulator.

Line2: Why to AND with 2H please reply, they have asked to find whether second bit is high, so what's the necessary of adding here.

Mahesh said:   1 decade ago
But what is the necessary of adding it with 2H, please answer me?

Sathya said:   1 decade ago
In 0000 00010 the second bit is active high to know whether the second bit is active high adding with 02 that is 0000 0010 will help us to know because an and operation output is active high only if both the inputs are active high.


Post your comments here:

Your comments will be displayed after verification.