单片机指令与程序阅读题

合集下载

《单片机》读程序题题库答案1

《单片机》读程序题题库答案1

四、阅读下列程序,注释并填写指令执行后的结果(每题10分)1、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART:MOV R0,#20H ;#20H->R0 (R0)=20HMOV R1,#30H ; #30H->R1 (R1)=30HMOV A,R0 ;(R0)->A (A)=20HADD A,#36H ;(A)+#36H->A (A)=56HMOV P1,A ;(A)->P1 (P1)=56HINC R0 ;(R0)+1->R0 (R0)=21HINC R1 ;(R1)+1->R0 (R1)=31HANL A,R1 ;(A)&(R1)->A (A)=10HSWAP A ;累加器A的高低4位交换 (A)=01HPUSH ACC ;累加器A内容压栈MOV P1,A ;(A)->P1 (P1)=01HPOP B ;堆栈内容出栈到B寄存器 (B)=01HMOV R0,A ;(A)->R0 (R0)=01HMOV DPTR,#2200H ;#2200H->DPTR (DPTR)=2200HSETB C ;1->Cy (Cy)=1ADDC A,#0 ;(A)+0+(Cy)->A (A)=02HMOVX @DPTR,A ;(A)->(DPTR) (2200H)=02HEND(R0)= 01H (R1)= 31H (P1)= 01H(B)= 01H (2200H)= 02H2、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART:MOV SP,#50H ;#50H->SP (SP)=50H第1页共57页MOV R2,#10H ;#10H->R2 (R2)=10HMOV DPTR,#3000H ;#3000H->DPTR (DPTR)=3000HCRL A ;0->A (A)=0LOOP: MOVX @DPTR,A ;(A)->(DPTR)INC DPTR ;(DPTR)+1->DPTRDJNZ R2,LOOP ;(R2)-1->R2 若(R2)不等于零则转移到LOOP处INC DPH ;(DPH)+1->DPH (DPH)=31H (R2)=00H (DPL)=10H INC DPH ;(DPH)+1->DPH (DPH)=32HMOV 20H,#36H ;#36H->(20H) (20H)=36HSETB 00H ;位地址00H置1 20H.0=1 (20H)=37HMOV A,20H ;(20H)->A (A)=37HMOVX @DPTR,A ;(A)->(DPTR) (DPTR)=3210H (3210H)=37HINC A ;(A)+1->A (A)=38HINC A ;(A)+1->A (A)=39HPUSH ACC ;累加器A内容压栈 (SP)=51HXCH A,R2 ;累加器A的内容与R2内容互换 (A)=00H (R2)=39H POP DPH ;堆栈内容弹到DPH (DPH)=39HADD A,#55H ;(A)+#55H->A (A)=55HPUSH ACC ;累加器A内容压栈END(A)= 55H (R2)= 39H (20H)= 37H (DPTR)= 3910H (SP)= 51H3、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART:MOV R0,#30H ;#30H->R0 (R0)=30HMOV A,#12H ;#12H->A (A)=12HSETB C ;(Cy)=1ADDC A,R0 ;(A)+(R0)+Cy->A (A)=43HMOV @R0,A ;(A)->(R0) (30H)=43H第2页共57页SWAP A ;累加器A高低4位交换 (A)=34HINC A ;(A)+1->A (A)=35HMOV DPTR,#2000H ;#2000H->DPTR (DPTR)=2000HINC DPH ;(DPH)+1->DPH (DPH)=21HMOV P1,A ;(A)->P1 (P1)=35HINC A ;(A)+1->A (A)=36HMOVX @DPTR,A ;(A)->(DPTR) (2100H)=36HXCH A,R0 ; (A) R0 (A)=30H (R0)=36HRL A ;累加器A内容循环左移 (A)=60HPUSH ACC ;累加器A的内容入栈RL A ;累加器A内容循环左移 (A)=0C0HPOP ACC ;堆栈内容弹出到累加器A (A)=60HEND(A)= 60H (R0)= 36H (DPTR)= 2100H(P1)= 35H (30H)= 43H4、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#50H ;#50H->SP (SP)=50HMOV DPTR,#3000H ;#3000H->DPTR (DPTR)=3000HMOV R0,#20H ;#20H->R0 (R0)=20HMOV A,#23H ;#23H->A (A)=23HMOV R2,#0FH ;#0FH->R2 (R2)=0FHSETB 01H ;置位20H.1 (20H.1)=1SETB C ;置位Cy (Cy)=1ADDC A,@R0 ;(A)+((R0))+Cy->A (A)=26HINC R0 ;(R0)+1->R0 (R0)=21HMOV @R0,A ;(A)->((R0)) (21H)=26HLOOP: DJNZ R2, LOOP ;(R2)-1->R2 若R2内容不等于零则转移 SWAP A ;累加器A内容的高低4位交换 (A)=62H PUSH ACC ;累加器A内容入栈INC DPH ;(DPH)+1->DPH (DPH)=31HMOVX @DPTR,A ;(A)->(DPTR) (3100H)=62H第3页共57页POP B ;堆栈内容弹出到B (B)=62HRR A ;累加器A内容循环右移 (A)=31HADD A,B ;(A)+(B)->A (A)=93HMOV P1,A ;(A)->P1 (P1)=93HEND(21H)= 26H (R2)= 00H (A)= 93H (B)= 62H (3100H)= 62H5、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV DPTR,#1000H ;#1000H->DPTR (DPTR)=1000HMOV A,#13H ;#13H->A (A)=13HMOV R0,#20H ;#20H->R0 (R0)=20HSETB C ;1->Cy (Cy)=1MOV @R0,A ;(A)->((R0)) (20H)=13HRLC A ;累加器A的内容带进位循环左移 (A)=27HXCH A,@R0 ;累加器A的内容与20H单元的内容互换 (A)=13H (20H)=27H PUSH ACC ;累加器A的内容入栈POP DPL ;堆栈内容弹出到DPL (DPL)=13HMOVX @DPTR,A ;(A)->(DPTR) (1013H)=13HDEC A ;(A)-1->A (A)=12HPUSH DPH ;DPH内容压栈POP B ;堆栈内容弹出到B (B)=10HADD A,B ;(A)+(B)->A (A)=22HMOV P1,A ;(A)->P1 (P1)=22HCLR A ;累加器A内容清零ADD A,B ;(A)+(B)->A (A)=10HEND(P1)= 22H (B)= 10H (20H)= 27H (DPTR)= 1013H (R0)= 20H6、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART:MOV SP,#50H ;#50H->SP (SP)=50HMOV R0,#20H ;#20H->R0 (R0)=20H第4页共57页MOV R2,#10H ;#10H->R2 (R2)=10HMOV A,#24H ;#24H->A (A)=24HLOOP: MOV @R0,A ;(A)->((R0))INC R0 ;(R0)+1->R0DJNZ R2,LOOP ;(R2)-1->R2 若R2内容不等于0则跳转到LOOP处SETB 00H ;1->位地址为00H的位 (20H.0)=1 (20H)=25HSETB C ;1->Cy (Cy)=1ADDC A,#00H ;(A)+00H+(Cy)->A (A)=25HSWAP A ;累加器A内容高低四位互换 (A)=52HPUSH ACC ;累加器A内容压栈POP DPH ;堆栈内容弹出到DPH (DPH)=52HPUSH ACC ;累加器A内容压栈POP B ;堆栈内容弹出到B (B)=52HMOV A,R2 ;(R2)->A (A)=00HMOV DPL,A ;(A)->DPL (DPL)=00HMOV A,B ; (B)->A (A)=52HPUSH ACC ;累加器A内容压栈 (SP)=51HEND(A)= 52H (R2)= 00H (20H)= 25H (DPTR)= 5200H (SP)= 51H7、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV DPTR,#2100H ;#2100H->DPTR (DPTR)=2100HCLR A ;0->A (A)=00HMOV R1,#30H ;#30H->R1 (R1)=30HSETB C ;1->Cy (Cy)=1ADDC A,R1 ;(A)+(R1)+Cy->A (A)=31HMOV @R1,A ;(A)->((R1)) (30H)=31HPUSH ACC ;累加器A的内容压栈POP DPL ;堆栈内容弹出到DPL (DPL)=31HRR A ;累加器A的内容循环右移 (A)=98HMOV R0,A ;(A)->R0 (R0)=98HORL A,#24H ;(A) or 24H->A (A)=0BCHMOV P1,A ;(A)->P1 (P1)=0BCH第5页共57页SWAP A ;累加器A的内容高低四位交换 (A)=0CBHMOV DPH,A ;(A)->DPH (DPH)=0CBHMOV B,#02H ;#02H->B (B)=02HADD A,B ;(A)+(B)->A (A)=0CDHCLR ACC.3 ;0->ACC.3 (A)=0C5HSWAP A ;累加器A的内容高低四位交换 (A)=5CHEND(A)= 5CH (R0)= 98H (DPTR)= 0CB31H (P1)= 0BCH (30H)= 31H8、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#50H ;#50H->SP (SP)=50HMOV R3,#10H ;#10H->R3 (R3)=10HCLR A ;累加器A内容清零 (A)=00HMOV R0,#20H ;#20H->R0 (R0)=20HLOOP: MOV @R0,A ;(A)->((R0)) (20H)=00HINC R0 ;(R0)+1->R0 (20H)=01HDJNZ R3,LOOP ;(R3)-1->R3 若R3不等于零则跳转到LOOP处SETB 00H ;1->位地址00H位 (20H.0)=1 (20H)=01HSETB C ;1->Cy (Cy)=1SUBB A,#00H ;(A)-00H-Cy->A (A)=0FFHMOV DPL,A ;(A)->DPL (DPL)=0FFHPUSH ACC ;累加器A的内容压栈MOV A,R3 ;(R3)->A (A)=00HMOV DPH,A ;(A)->DPH (DPH)=00HPOP ACC ;堆栈内容弹出到A (A)=0FFHMOVX @DPTR,A ;(A)->(DPTR) (00FFH)=0FFHANL A,#55H ;(A) and 55H->A (A)=55HPUSH ACC ;累加器A的内容压栈 (SP)=51HCLR A ;累加器A内容清零 (A)=00HEND(A)= 00H (R3)= 00H (20H)= 01H (DPTR)= 00FFH (SP)= 51H第6页共57页9、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV R0,#30H ;#30H->R0 (R0)=30HMOV R1,#20H ; #20H->R1 (R1)=20HMOV A,R0 ;(R0)->A (A)=30HADD A,#37H ;(A)+#36H->A (A)=67HMOV P1,A ;(A)->P1 (P1)=67HINC R0 ;(R0)+1->R0 (R0)=31HINC R1 ;(R1)+1->R0 (R1)=21HANL A,R1 ;(A)&(R1)->A (A)=21HSWAP A ;累加器A的高低4位交换 (A)=12HPUSH ACC ;累加器A内容压栈MOV P1,A ;(A)->P1 (P1)=12HSWAP A ;累加器A的高低4位交换 (A)=21HPOP B ;堆栈内容出栈到B寄存器 (B)=12HMOV R0,A ;(A)->R0 (R0)=21HMOV DPTR,#2200H ;#2200H->DPTR (DPTR)=2200HSETB C ;1->Cy (Cy)=1ADDC A,B ;(A)+(B)+(Cy)->A (A)=34HMOVX @DPTR,A ;(A)->(DPTR) (2200H)=34HEND(R0)= 21H (R1)= 21H (P1)= 12H (B)= 12H (2200H)= 34H10、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#50H ;#50H->SP (SP)=50HMOV R2,#20H ;#20H->R2 (R2)=20HMOV DPTR,#3000H ;#3000H->DPTR (DPTR)=3000HCLR A ;0->A (A)=0LOOP: MOVX @DPTR,A ;(A)->(DPTR)INC DPTR ;(DPTR)+1->DPTRDJNZ R2,LOOP;(R2)-1->R2 若(R2)不等于零则转移到LOOP处INC DPH ;(DPH)+1->DPH (DPH)=31H (R2)=00H (DPL)=20H第7页共57页INC DPH ;(DPH)+1->DPH (DPH)=32HMOV 20H,#38H ;#36H->(20H) (20H)=38HSETB 01H ;位地址01H置1 20H.1=1 (20H)=3AHMOV A,20H ;(20H)->A (A)=3AHMOVX @DPTR,A ;(A)->(DPTR) (DPTR)=3220H (3220H)=3AHINC A ;(A)+1->A (A)=3BHINC A ;(A)+1->A (A)=3CHPUSH ACC ;累加器A内容压栈XCH A,R2 ;累加器A的内容与R2内容互换 (A)=00H (R2)=3CH POP DPH ;堆栈内容弹到DPH (DPH)=3CHADD A,#55H ;(A)+#55H->A (A)=55HPUSH ACC ;累加器A内容压栈,(SP)=51HEND(A)= 55H (R2)= 3CH (20H)= 3AH (DPTR)= 3C20H (SP)= 51H11、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV R0,#20H ;#20H->R0 (R0)=20HMOV A,#31H ;#31H->A (A)=31HSETB C ;(Cy)=1ADDC A,R0 ;(A)+(R0)+Cy->A (A)=52HMOV @R0,A ;(A)->(R0) (20H)=52HSWAP A ;累加器A高低4位交换 (A)=25HDEC A ;(A)-1->A (A)=24HMOV DPTR,#2000H ;#2000H->DPTR (DPTR)=2000HINC DPH ;(DPH)+1->DPH (DPH)=21HDEC DPL ;(DPL)-1->DPL (DPL)=0FFHMOV P1,A ;(A)->P1 (P1)=24HINC A ;(A)+1->A (A)=25HMOVX @DPTR,A ;(A)->(DPTR) (21FFH)=25HXCH A,R0 ; (A) R0 (A)=20H (R0)=25HRL A ;累加器A内容循环左移 (A)=40HPUSH ACC ;累加器A的内容入栈RL A ;累加器A内容循环左移 (A)=80H第8页共57页POP ACC ;堆栈内容弹出到累加器A (A)=40HEND(A)= 40H (R0)= 25H (DPTR)= 21FFH (P1)= 24H (20H)= 52H12、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#50H ;#50H->SP (SP)=50HMOV DPTR,#2000H ;#3000H->DPTR (DPTR)=2000HMOV 20H,#06H ;#06H->20H (20H)=06HMOV R0,#20H ;#20H->R0 (R0)=20HMOV A,#35H ;#35H->A (A)=35HMOV R2,#10H ;#10H->R2 (R2)=10HSETB 00H ;置位20H.0 (20H.0)=1 (20H)=07HSETB C ;置位Cy (Cy)=1ADDC A,@R0 ;(A)+((R0))+Cy->A (A)=3DHINC R0 ;(R0)+1->R0 (R0)=21HMOV @R0,A ;(A)->((R0)) (21H)=3DHLOOP: DJNZ R2, LOOP ;(R2)-1->R2 若R2内容不等于零则转移SWAP A ;累加器A内容的高低4位交换 (A)=0D3HPUSH ACC ;累加器A内容入栈INC DPH ;(DPH)+1->DPH (DPH)=21HMOVX @DPTR,A ;(A)->(DPTR) (2100H)=0D3HPOP B ;堆栈内容弹出到B (B)=0D3HRR A ;累加器A内容循环右移 (A)=0E9HADD A,B ;(A)+(B)->A (A)=0BCHMOV P1,A ;(A)->P1 (P1)=0BCHEND(21H)= 3DH (R2)= 00H (A)= 0BCH (B)= 0D3H (2100H)= 0D3H13、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV DPTR,#2000H ;#2000H->DPTR (DPTR)=2000HMOV A,#36H ;#36H->A (A)=36H第9页共57页MOV R0,#30H ;#30H->R0 (R0)=30HSETB C ;1->Cy (Cy)=1MOV @R0,A ;(A)->((R0)) (30H)=36HRLC A ;累加器A的内容带进位循环左移 (A)=6DHXCH A,@R0 ;累加器A的内容与20H单元的内容互换 (A)=36H (30H)=6DH PUSH ACC ;累加器A的内容入栈POP DPL ;堆栈内容弹出到DPL (DPL)=36HMOVX @DPTR,A ;(A)->(DPTR) (2036H)=36HDEC A ;(A)-1->A (A)=35HPUSH DPH ;DPH内容压栈POP B ;堆栈内容弹出到B (B)=20HADD A,B ;(A)+(B)->A (A)=55HMOV P1,A ;(A)->P1 (P1)=55HCLR A ;累加器A内容清零ADD A,B ;(A)+(B)->A (A)=20HEND(P1)= 55H (B)= 20H (30H)= 6DH (DPTR)= 2036H (R0)= 30H14、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#60H ;#60H->SP (SP)=60HMOV R0,#20H ;#20H->R0 (R0)=20HMOV R2,#10H ;#10H->R2 (R2)=10HMOV A,#24H ;#24H->A (A)=24HLOOP: MOV @R0,A ;(A)->((R0))INC R0 ;(R0)+1->R0DJNZ R2,LOOP ;(R2)-1->R2 若R2内容不等于0则跳转到LOOP处SETB 01H ;1->位地址为01H的位 (20H.1)=1 (20H)=26HSETB C ;1->Cy (Cy)=1ADDC A,20H ;(A)+(20H)+(Cy)->A (A)=4BHSWAP A ;累加器A内容高低四位互换 (A)=0B4HPUSH ACC ;累加器A内容压栈POP DPH ;堆栈内容弹出到DPH (DPH)=0B4HPUSH ACC ;累加器A内容压栈第10页共57页POP B ;堆栈内容弹出到B (B)=0B4HMOV A,R2 ;(R2)->A (A)=00HMOV DPL,A ;(A)->DPL (DPL)=00HADD A,B ;(A)+(B)->A (A)=0B4HPUSH ACC ;累加器A内容压栈 (SP)=61HEND(A)= 0B4H (R0)= 30H (20H)= 26H (DPTR)= 0B400H (SP)= 61H15、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV DPTR,#1100H ;#1100H->DPTR (DPTR)=1100HCLR A ;0->A (A)=00HMOV R1,#20H ;#20H->R1 (R1)=20HSETB C ;1->Cy (Cy)=1ADDC A,R1 ;(A)+(R1)+Cy->A (A)=21HMOV @R1,A ;(A)->((R1)) (20H)=21HINC A ;(A)+1->A (A)=22HINC A ;(A)+1->A (A)=23HPUSH ACC ;累加器A的内容压栈POP DPL ;堆栈内容弹出到DPL (DPL)=23HRR A ;累加器A的内容循环右移 (A)=91HMOV R0,A ;(A)->R0 (R0)=91HORL A,#24H ;(A) or #24H->A (A)=0B5HMOV P1,A ;(A)->P1 (P1)=0B5HSWAP A ;累加器A的内容高低四位交换 (A)=5BHMOV DPH,A ;(A)->DPH (DPH)=5BHMOV B,#02H ;#02H->B (B)=02HADD A,B ;(A)+(B)->A (A)=5DHCLR ACC.4 ;0->ACC.4 (A)=4DHSWAP A ;累加器A的内容高低四位交换 (A)=0D4HEND(A)= D4H (R0)= 91H (DPTR)= 5B23H (P1)= 0B5H (20H)= 21H第11页共57页16、 ORG 0LJMP START ;跳转到(PC)=0030H处ORG 30HSTART: MOV SP,#60H ;#60H->SP (SP)=60HMOV R3,#20H ;#20H->R3 (R3)=20HMOV A,#20H ;#20H->A (A)=20HMOV R0,#20H ;#20H->R0 (R0)=20HLOOP: MOV @R0,A ;(A)->((R0))INC R0 ;(R0)+1->R0DJNZ R3,LOOP ;(R3)-1->R3 若R3不等于零则跳转到LOOP处SETB 02H ;1->位地址02H位 (20H.2)=1 (20H)=24HSETB C ;1->Cy (Cy)=1SUBB A,20H ;(A)-(20H)-Cy->A (A)=0FBHMOV DPL,A ;(A)->DPL (DPL)=0FBHPUSH ACC ;累加器A的内容压栈MOV A,R3 ;(R3)->A (A)=00HMOV DPH,A ;(A)->DPH (DPH)=00HPOP ACC ;堆栈内容弹出到A (A)=0FBHMOVX @DPTR,A ;(A)->(DPTR) (00FBH)=0FBHANL A,#55H ;(A) and 55H->A (A)=51HPUSH ACC ;累加器A的内容压栈 (SP)=61HSWAP A ;累加器A内容高低4位交换 (A)=15HEND(A)= 15H (R3)= 00H (20H)= 24H (DPTR)= 00FBH (SP)= 61H17、O RG 0MOV R2,#8 ;#8->R2 (R2)=8HMOV R0,#30H ;#30H->R0 (R0)=30HCLR A ; #0->A (A)=0CPL A ; 累加器A的内容取反,(A)=0FFHLOOP: MOV @R0,A ; (A)-> (R0) (30H)~(37H)=0FFHINC R0 ; (R0)+1->R0DJNZ R2,LOOP ; (R2)-1 -> R2 , (R2)≠0则转移到LOOP处MOV B,R2 ; (R2) ->B (B)=(R2)=0INC B ; (B)+1 ->B (B)=1第12页共57页M OV A,R0 ; (R0) ->A (A)=(R0)=38HC LR C ; 0 -> Cy Cy=0ADDC A,B ; (A)+(B)+Cy -> A (A)=39HMOV R0,A ; (A) ->R0 (R0)=(A)=39HR LC A ; 累加器A的内容带进位左移,(A)=72HMOV DPTR,#1234H ; #1234H ->DPTR (DPTR)=1234HM OVX @DPTR,A ; (A) ->(DPTR) (1234H)=72HSWAP A ;累加器A的内容高低4位交换,(A)=27HPUSH ACC ; 累加器内容入栈POP DPH ; 堆栈内容弹出到DPH (DPH)=27HE ND(R0)= 39H (A)= 27H(33H)= 0FFH (DPTR)= 2734H (1234H)= 72H评分办法:指令注释占5分,对于程序段注释部分写对的学生可酌情给1-4分;程序段执行结果每空1分,共5分。

单片机编程题

单片机编程题

1.阅读下列程序,并要求:1)说明程序的功能;2)写出涉及的寄存器及片内RAM单元(如图所示)的最后结果。

MOV R0,#40HMOV A,@R0INC R0ADD A,@R0INC R0MOV @R0,ACLR AADDC A,#00HINC R0MOV @R0,ASJMP $功能:结果:22、利用定时器T0产生定时脉冲。

每隔2ms产生宽度为2个机器周期的正脉冲,由P1.0输出此定时序列脉冲信号(设时钟频率为6MHZ)。

解:首先求出定时器T0初值。

由于时钟频率为6MHZ,所以,机器周期为2µs。

因为:t=(213-T0初值)⨯机器周期所以,当t=2ms时,则:(213-T0初值)⨯ 2⨯10-6=2⨯10-3解得:T0初值=7096=11011101 11000B,其中将高8位11011101 B=DDH赋给TH0,低5位11000B=18H赋给TL0。

方法一:采用查询工作方式,编程如下:ORG 0000HAJMP MAINORG 0100HMAIN: CLR P1.0MOV TMOD , #00H ;设定T0的工作方式MOV TH0 , #0DDH ;给定时器T0送初值MOV TL0 , #18HSETB TR0 ;启动T0工作LOOP: JNB TF0 , $ ;$为当前指令指针地址CLR TF0SETB P1.0 ;产生2µs正脉冲CLR P1.0MOV TH0 , #0DDH ;重装载TH0和TL0MOV TL0 , #18HSJMP LOOPEND方法二:采用中断工作方式,编程如下:ORG 0000HAJMP MAINORG 000BHAJMP T0INTORG 0100HMAIN: CLR P1.0MOV TH0 , #0DDH ;给定时器T0送初值MOV TL0 , #18HMOV IE , #82H ;允许T0中断SETB TR0 ;启动T0SJMP $中断服务程序:ORG 0300HT0INT: SETB P1.0CLR P1.0MOV TH0 , #0DDH ;重装载TH0和TL0MOV TL0 , #18HRETI23、单片机包含哪些主要的逻辑部件?一个8位CUP,片内RAM,片内ROM,四个P口,两个定时/计数器,5个中断源的中断系统,UART,片内振荡器。

单片机复习试卷库试卷

单片机复习试卷库试卷

试卷库试卷一题号一二三四五六七八九十总分累分人签名题分30 10 10 20 16 14 100得分考生注意事项:1、本试卷共 6 页,请查看试卷中是否有缺页或破损。

如有立即举手报告以便更换。

2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。

一、填空题(每空1分,共30分)得分评阅人1、AT89S51单片机主要硬件资源有:8位的CPU、256字节内部RAM、4K 字节的内部ROM、 2 个16 位的定时/计数器、5 个中断源的中断系统、一个全双工的串行口以及看门狗。

2、已知11011011B是一个补码,则其真值为_-37__D;如果01011001B为BCD数,则其转换为十六进制数为3B H。

3、采用ADD指令将十六进制数92H、73H相加后,Cy位为 1 。

4、当程序状态字PSW为(10001001)时,当前工作寄存器组是____1__组,对应的工作寄存器R6的地址是____0E___H。

5、AT89S51单片机外部复位电路有上电自动复位和按钮手动复位两种,单片机复位后其SP的内容为__07_H,P0的内容为0FF H,PC的内容为0000 H。

6、AT89S51单片机扩展程序存储器使用一片具有地址线13根,数据线8根的EPROM,其程序存储器容量为_8_KB,外部程序存储器的读选通信号由单片机PSEN引脚输出。

7、AT89S51单片机中,如CPU能响应外部中断INT1和定时器T1的中断,则对应的中断入口地址分别为0013H 和001BH 。

8、指出以下指令中源操作数的寻址方式MOVC A,@A+DPTR;变址寻址MOV A,@R1;寄存器间接寻址MOV 20H,A;寄存器寻址9、AT89S51单片机三总线包括地址总线、数据总线和控制总线。

10、单片机有两种低功耗方式,即待机(或空闲)方式和掉电(或停机)方式。

11、单片机的时序定时单位包括时钟(或震荡)周期、机器周期和指令周期。

12、ADC0809是_______8___位的模/数转换器。

单片机习题及参考答案

单片机习题及参考答案

习题及参考答案一、填空题1、指令格式是由操作码和操作数所组成,也可能仅由操作码组成。

2、若用传送指令访问MCS-51的程序存储器,它的操作码助记符应为MOVC 。

3、若用传送指令访问MCS-51的片内数据存储器,它的操作码助记符应为MOV 。

4、若访问MCS-51的片外数据存储器,它的操作码助记符应为MOVX 。

5、累加器(A)=80H,执行完指令ADD A,#83H后,进位位C= 1 。

6、执行ANL A,#0FH指令后,累加器A的高4位= 0000 。

7、JZ rel的操作码地址为1000H,rel=20H,它的转移目的地址为1022H 。

8、JBC 00H,rel 操作码的地址为2000H,rel=70H,它的转移目的地址为2073H 。

9、累加器(A)=7EH,(20H)= #04H,MCS-51执行完ADD A,20H指令后PSW.0= 0 。

10、MOV PSW,#10H是将MCS-51的工作寄存器置为第 2 组。

11、指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H 入栈,37B0H →PC。

12、MOVX A,@DPTR源操作数寻址方式为寄存器间接寻址。

13、ORL A,#0F0H是将A的高4位置1,而低4位保持不变。

14、SJMP rel的指令操作码地址为0050H,rel=65H,那么它的转移目标地址为 00B7H 。

15、设DPTR=2000H,(A)=80H,则MOVC A,@A+DPTR的操作数的实际地址为2080H 。

16、MOV C,20H源寻址方式为位寻址。

17、在直接寻址方式中,只能使用8 位二进制数作为直接地址,因此其寻址对象只限于片内RAM 。

18、在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的地址。

19、在变址寻址方式中,以 A 作变址寄存器,以PC 或DPTR 作基址寄存器。

20、假定累加器A中的内容为30H,执行指令1000H:MOVC A,@A+PC后,把程序存储器1031H 单元的内容送入累加器A中。

单片机练习试题附答案及解析

单片机练习试题附答案及解析

第一、二章单片机概述与结构一、填空题1.单片机复位后,SP、PC和I/O口的内容分别为07H\000H\FFH 。

2.单片机有四个工作寄存器区,由PSW状态字中的RS1和RS0两位的状态来决定。

单片机复位后,若执行SETB RS0指令,此时只能使用 1 区的工作寄存器,地址范围是08H---0FH 。

3.51单片机驱动能力最强的并行端口为P0端口。

4.51单片机PC的长度为16位,SP的长度为___8____位,DPTR的长度为_16__位。

5.访问51单片机程序存储器地址空间、片内数据存储器地址、片外数据存储器地址的指令分别为__movc_____,MOV和_movx______。

6.若A中的内容为63H,那么P标志位的值为1 。

7.当扩展外部存储器或I/O口时,P2口用作高八位地址总线。

8.51单片机内部RAM区有 4 个工作寄存器区。

9.51单片机内部RAM区有128 个位地址。

10.外部中断1()的中断入口地址为0013 ;定时器1的中断入口地址为001B 。

11.51单片机有 4 个并行I/O口,P0~P3是准双向口,所以由输出转输入时必须先写入 1 。

12.51单片机的堆栈建立在内部RAM 内开辟的区域。

二、选择题1.访问片外部数据存储器时,不起作用的信号是(C)。

A./RD B./WE C./PSEN D.ALE2.51单片机P0口用作输出时,应外接(A )。

A.上拉电阻B.二极管C.三极管D.下拉电阻3.进位标志CY在( C )中。

A.累加器B.算逻运算部件ALU C.程序状态字寄存器PSW D.DPTR4.堆栈数据的进出原则是(D )。

A.先进先出B.进入不出C.后进后出D.先进后出5.51单片机系统中,若晶振频率为6MHz,一个机器周期等于(D )μs。

A.1.5 B.3 C.1 D.26.在家用电器中使用单片机应属于微计算机的( B )。

A.辅助设计应用B.测量、控制应用C.数值计算应用D.数据处理应用7.PC的值是(C )。

微型计算机原理与接口技术-1_真题(含答案与解析)-交互

微型计算机原理与接口技术-1_真题(含答案与解析)-交互

微型计算机原理与接口技术-1(总分100, 做题时间90分钟)一、单项选择题在每小题列出的四个备选项中只有一个选项是符合题目要求的。

1.变量的指针是( )SSS_SINGLE_SELA 变量的首地址B 变量的值C 变量的名D 变量的一个标志分值: 1答案:A[解析] 指针的概念。

2.以下集成块型号中,不属于MCS-51系列单片机型号的是( )SSS_SINGLE_SELA 8094BHB 83C452C 80C32D 8051AH分值: 1答案:A[解析] 要熟记单片机型号。

3.已知char ch='B';则以下表达式的值是( ) ch=(ch>='A'&&ch <='Z')?(ch+32):ch;SSS_SINGLE_SELA AB aC bD Z分值: 1答案:C[解析] 条件表达式。

4.下列选项中,合法的C语言关键字是( )SSS_SINGLE_SELA defaultC integerD VAR分值: 1答案:A[解析] C语言关键字。

5.控制串行口工作方式的寄存器是( )SSS_SINGLE_SELA TCONB PCONC SCOND TMOD分值: 1答案:C[解析] 注意不同接口的工作方式寄存器。

6.若设串行控制寄存器SCON=40H,则串行口的工作方式是( ) SSS_SINGLE_SELA 方式0B 方式1C 方式2D 方式3分值: 1答案:B[解析] 串行口的工作方式。

7.地址指针DPTR是( )SSS_SINGLE_SELA 4位的专用寄存器B 8位的专用寄存器C 16位的专用寄存器D 32位的专用寄存器分值: 1答案:C[解析] 注意专用寄存器的位数。

8.在扩展系统中,能够提供地址信号的高8位的端口是( )SSS_SINGLE_SELB P1口C P2口D P3口分值: 1答案:C[解析] P2口是系统扩展口。

9.MCS-51外部中断1固定对应的中断入口地址为( )SSS_SINGLE_SELA 0003HB 000BHC 0013HD 001BH分值: 1答案:C[解析] MCS-51外部中断1入口地址固定。

单片机试卷及答案分析

单片机试卷及答案分析

A卷一、填空题(本题共20分,每空1分)1.8051单片机片片内有程序存储器_________字节, 片内有数据存储器________字节。

2.MCS-51单片机片内有个中断源,其中个外部中断源。

3.MCS-51单片机片内RAM中位寻址区是从地址到的一块存储区域。

4.MCS-51单片机片内DPTR寄存器是一个位寄存器。

5.DA指令的作用是 _____________。

6.MCS-51单片机片内有______个16位定时/计数器, 它们具有_________种工作方式。

7.ADC0809是__________通道8位______________________。

DAC0832是______位D/A转换器。

8.假定(SP)=60H,(ACC)=30H,(B)=70H,执行下列指令:PUSH ACCPUSH B后,SP的内容为 62H ____,61H单元的内容为 30H ___,62H单元的内容为 70H 。

9.MCS-51单片机工作寄存器组共分为 __组寄存器,每组有个单元。

10.为扩展存储器而构造系统总线,应以P0口的8位口线作为线,以P2口的口线作为。

二、单项选择题(本题共10分,每小题1分)1.下列运算对OV没有影响或不受OV影响的的运算是()。

(A)逻辑运算(B)加减运算(C)乘法运算(D)除法运算2.在寄存器间接寻址方式中,寄存器中存放的是()。

(A)操作数(B)操作数地址(C)转移地址(D)地址偏移量3.如在系统中只扩展一片2764,除应使用P0口的8条口线外,至少还应使用P2口的口线()(A)2条(B)3条(C)4条(D)5条4.寻址空间为外部程序存储器所用的指令是()。

(A)MOVX (B)MOV (C)MOVC (D)ADDC5.PC的值是()。

(A)当前指令前一条指令的首地址 (B)当前正在执行指令的首地址(C)下一条指令的首地址 (D)控制器中指令寄存器的地址 6.执行中断返回指令,从堆栈弹出地址送给()。

单片机试题及答案

单片机试题及答案
5、指令LCALL 37B0H,首地址在2000H,所完成的操作是 入栈, 送入PC。
6、MCS-51有 中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP 加以选择。
7、汇编语言有 和 两类基本指令。
8、在变址寻址方式中,以A作为变址寄存器,以 或 作基址寄存器。
二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题1.分,共10分)
1、C 2、B 3、D 4、C 5、C 6、C 7、B 8、C 9、A 10、C
三、简答题 (每题5分,共20分)
1、MCS-51单片机内部包括哪些主要逻辑功能部件?
答:MCS-51单片机主要由下列部件组成:
AG2:JBC TF1,AG3
SJMP AG2
AG3:MOV TH1,#OD8H
MOV TL1,#0E0H
DJNZ R7,AG2
RR A
SJMP AG1
B
一、 一、 填空题(每空1分,共20分)
1、计算机的系统总线有地址总线、控制总线和 。
2、通常、单片机上电复位时PC= ,SP= ;而工作寄存器则缺省采用第 组,这组寄存器的地址范围是从 。
二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题1分,共10分)
1、在CPU内部,反映程序运行状态或反映运算结果的一些特征寄存器是( )
(A)PC (B)PSW (C)A (D)SP
2、要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是( )
六、MCS-51单片机P1端口上,经驱动器接有8只发光二极管,fosc=6MHZ,试编写程序,使这8只发光管每隔2秒循环发光。(20分)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四指令与程序阅读题1、已知内部RAM中(A)=35H,(R0)=6FH,(P1)=0FCH,(P)=0C0H,分别写出下列各指令单独执行后的结果。

(1)、MOV R0,A(2)、MOV @R0,A(3)、MOV A,#90H(4)、MOV 80H,#81H(5)、PUSH A(6)、SW AP A(7)、XCH A,R02、已知片内RAM中(A)=02H,(R1)=7FH,(DPTR)=2FFCH,(7FH)=70H;片外RAM(2FFEH)=11H;片外ROM(2FFEH)=64H;分别写出下列指令单独执行后的结果。

(1)、MOV A,@R1(2)、MOVX @DPTR,A(3)、MOVC A,@A+DPTR3、说明下列程序的功能MOV R0,#DATAMOV A,@R0RL AMOV R1,ARL ARL AADD A,R1MOV @R0,A4、已知(A)=83H,(R0)=17H,(17H0=34H,写出执行下列的程序后A中的内容为多少?ANL A,#17HORL 17H,AXRL A,@R0CPL A5、写出下列程序的功能ORG 4000HSTRA T:MOV R0,#30HMOV DPTR,#2000HMOV R7,32LOOP:MOV A,@R0MOVX @DPTRINC R0INC DPTRDJNZ R7,LOOPEND6、写出下列程序段的功能LOOP:MOV 28H,R0MOV 29H,R7CLR F0DEC R7LOOP1:MOV A,@R0MOV 2BH,AINC R0MOV 2AH,@R0CLR CSUBB A,@R0JC LOOP2MOV @R0,2AHINC R0SETB F0LOOP2:DJNZ R7,LOOP1MOV R7,29HMOV R0,28HJB F0,LOOP7、写出下列程序段的功能LOOP:MOV A,@R0INC R0LOOP1:MOV 2AH,@R0CJNE A,2AH,LOOP2LOOP2:JNC LOOP3MOV A,@R0LOOP3:INCDJNZ R7,LOOP18、设系统的晶振为6MHz,则以下程序段的功能是什么?MOV R5,#256LOOP:MOV R4,#256LOOP1:NOPNOPNOPDJNZ R4,LOOP1DJNZ R5,LOOP9、若(40H)=33H,(41H)=56H,(50)H=78H,(51H)=9AH,则执行下列程序段后,40H、41H中的内容是多少?STRAT:CLR CMOV R0,#41HMOV R1,#51LOOP:MOV A,@R0ADD A,@R1MOV @R0,ADEC R0DEC R1MOV A,@R0ADDC A,@R1MOV @R0,A10、若R0中的数据为有符号数98H,则执行以下子程序后R1中的内容是多少?STRART:CJNE R0,#00H,LOOPMOV R1,#00HSJMP LOOP1LOOP1:JC LOOP2MOV R1,#01HSJMP LOOP3LOOP2:MOV R1,#0FFHLOOP3:RET11、若内部RAM单元(40H)=45H,(41H)=76H,则执行发下子程序后,(50H)中的内容是多少?STRAT:MOV R1,#40HMOV A,@R1ANL A,#0FHSW AP AINC R1XCH A,@R1ANL A,#0FHORL A,@R1MOV 50H,ARET12、写出以程序的功能START:MOV R2,#0FFHMOV R0,#4FHLOOP:INC R0INC R2CJNE @R0,#0DH,LOOPRET13、若内部RAM存储单元HEX的内容为0AH,则执行以下子程序后HEX的内容为多少?ORG 4000HSTART:MOV A,HEXANL,#0FHADD A,#3MOVC A,@A+PCMOV HEX,ATAB:DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39HDB ‘ABCDEF’14、写出以下子程序的功能SATRAT:MOV A,R2MOV B,R3MUL ABMOV R5,AMOV R6,BMOV A,R2MOV B,R4MUL ABADD AMR6MOV A,BADDC A,#00HMOV R7,ARET15、若从P1口输入的数据为34H,则执行以下程序后,从P1.0输出的的是多少?ORG 4000HSTART:MOV A,#0FFHMOV P1,AMOV A,P1SETB CSJMP OUTNEXT:MOV C,ACC.1ANL C,/ ACC.2JC OUTMOV C,ACC.2ANL C,/ ACC.1JC OUTMOV C,ACC.4CPL CANL C,/ ACC.5ANL C,/ ACC.6ANL C,ACC.7OUT:MOV P1.0,CEND16、写出以下程序段的功能START:MOV R0,30HMOV R1,#40HMOV R2,#2FHCLR CLOOP:MOV A,@R0ADDC A,@R1DA AMOV @R0,AINC R0INC R1DJNZ R2,LOOPCLR AMOV A.0,CMOV @R0,A17、若(R5R4)=1234H,则执行以下程序段后(R5R4)=?MOV A,R5CPL AADD A,#1MOV R5,AMOV A,R4CPL AADDC A,#0MOV R4,A18、以下程序段是实现某个分段函数,阅读程序后写出该函数MOV A,31HCJNE A,#10,LOOPLOOP:ADD A,30HMOV 32H,ASJMP END1LOOP:JNC LOOPCLR CMOV A,30HSUBB A,31HMOV 32H,AEND1:……19、写出以下各指令的功能并阅读当程序执行完后,R0中的内容是什么?MOV R0,#0A7HXCH A,R0SWAP AXCH A,R020、已知:(A)=0C9H,(B)=8DH,C=1则独立执行(1)、ADDC A,B(2)、SUBB A,B后(A)=?C=?21、设(SP)=32H,片内RAM的30H、31H、32H单元内容分别为20H,23H、01H,则执行下列程序段后,(SP)=?(DPH)=?(DPL)=?(A)=?POP DPHPOP DPLPOP A22、写出以下子程序段的功能EXCH:MOV R0,#30HMOV R1,#40HMOV R2,#04HLOOP:XCH A,@R0XCH A,@R1XCH A,@R0INC R0INC R1DJNZ R2,LOOPRET23、执行下程序后,(SP)= ,(A)= ,(B)= 。

MOV SP,#40HMOV A,#30HLCALL 0500HADD A,#10HMOV B,AL:SJMP LORG 0500HMOV DPTR,#0009HPUSH DPLPUSH DPHRET24、若(R3R2)=3456H,则执行以下程序后(R3R2)= 。

MOV A,R2CPL AADD A,#01HMOV R2,AMOV A,R3CPL AADDC A,#0MOV R3,A25、23、若(A)=11H,(DPTR)=02F1H则执行以下程序后A的内容是。

MOVC A,@A+DPTR0302H:DB‘1234’26、已知A=7AH,R0=30H,(30H)=A5H,PSW=80H部单独执行以下指令后各寄存器的内容是多少?1、XCH A,R0 A= R0= (30H,7AH)2、XCH A,30H A= (30H)= (A5H,7AH)3、XCH A,@R0 A= (30H)= (A5H,7AH)4、XCHD A,@R0 A= (30H)= (AAH,75H)5、SW AP A A= (A7H)6、ADD A,R0 A= C= O= (AAH,0,0)7、ADD A,30H A= C= O= (1FH,1,0)8、ADD A,#30H A= C= O= (AAH,0,1)9、ADDC A,30H A= C= O= (20H,1,0)10、SUBB A,30H A= C= O= (D4H,1,0)11、SUBB A,#30H A= C= O= (49H,0,0)27、设A=83H,R0=17H,(`7H)=34H,则执行以下程序后,A= 。

ANL A,#17HORL 17H,AXRL A,@R0CPL A28、已知A=0C9H ,B=8DH ,CY=1执行指令ADDC A ,B 结果如何?执行指令SUBB A ,B 结果如何?29、依次执行以下指令后,A 中的结果是多少?MOV 30H ,#0A4HMOV A ,#0D6HMOV R0,#30HMOV R2,#47HANL A ,R2ORL A ,@R0SWAP ACPL AXRL A ,#0FFHORL A ,30H30、试说明指令CJNE @R1,#7AH ,10H 的作用。

若本条指令地址为50,((R1))=12H ,其转移的地址是多少?有如下图和程序,则执行程序的结果是什么?LP :MOV P1,#81HLCALL DELAYMOV P1,#42HLCALL DELAYMOV P1,#24HLCALL DELAYMOV P1,#18HLCALL DELAYMOV P1,#24HLCALL DELAYMOV P1,#42HLCALL DELAYSJMP LPDELAY :MOV R6,#0FAHL1:MOV R7,#0FAHL2:DJNZ R7,L2DJNZ R6,L1RET+5V31、假定外部数据存储器2000H中的内容80H,执行以下指令后,(A)= 。

MOV P2,#20HMOV R1,#00HMOVX A,@R132、假定A 中的内容为30H,则执行指令:1000H:MOVC A,@A+PC后,把程序存储器单元的内容送入A 中。

33、假定(SP)=60H,(A)=30H,(B)=70H,则执行指令:PUSH APUSH B后,(SP)= ,(61H)= ,(62H)= 。

34、假定(SP)=62H,(61)=30H,(62)=70H,则执行指令:POP DPHPOP DPL后,(SP)= ,(DPTR)= 。

35、假定已把PSW的内容入栈,再执行以下指令:MOV R0,SPORL @R0,#38HPOP PSW实现的功能是。

36、假设ADDR11=0110011,则执行以下指令:4000H:LJMP ADDR11后,(PC)= 。

37、若LOOP的标号值为0100H,LOOP1的标号值为0123H,则执行指令:LOOP:SJMP LOOP1则指令的第二字节应为。

相关文档
最新文档