单片机指令与程序阅读题
《单片机》读程序题题库答案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(总分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.执行中断返回指令,从堆栈弹出地址送给()。
单片机试题及答案
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分)
单片机考试试题(附有答案)
湖南工程学院试卷用纸 ____至_ _学年第____学期 专业班级________ 姓名_______ 学号_____ 共__2_页 第__1__页(装 订 线 内 不 准 答 题)命题教师__ ______审核________________________湖南工程学院试卷用纸 专业班级____________ 姓名______________ 学号______ 共__2_页 第__2__页(装 订 线 内 不 准 答 题)2、分析如下给定子程序的功能,以及入口参数和出口参数,并将片内RAM20H~29H 的一段区域清零。
(10分)ZO :CLR ALOOP : MOV @R0,A ; INC R0DJNZ R7,LOOP RET 3、某系统通过P1口控制着一个共阴极接法的LED 显示器,试编程使得在LED 显示器上显示下图所示字符。
(10分)4、利用T1定时中断,从P1.1输出一个周期为1S 的方波。
(14分)六、完成下图MCS-51片外存储器扩展线路的连接,并指出各存储器芯片的地址范围(没用到的地址线设“0”)。
(8分)≥3731D 1Q ~ ~ 8D 8QG OEP0.0~ P0.7ALEP2.0 P2.1 P2.2 P2.3 P2.4P2.5 P2.6 P2.7MCS-51PSENWRRDA0 D0 ~ ~ A7 D7 A8 A9 A10A11 A12 2764CE OEA0 D0 ~ ~ A7 D7 A8 A9 A10 6116(Ⅱ) CE WE OEA0 D0 ~ ~ A7 D7 A8 A9 A10 6116(Ⅰ) CE WE OEA Y3B Y2E Y1 Y074LS139湖南工程学院试卷参考答案及评分标准专业班级_ _ 命题老师_ _ _至__ _学年第____学期(装 订 线 内 不 准 答 题)(装 订 线 内 不 准 答 题)湖南工程学院试卷用纸 专业班级____________ 姓名______________ 学号______ 共__3__页 第__3_页(装 订 线 内 不 准 答 题)五、编程设计题( 每小题15分, 共45分)1、设计一串行通信接收程序,将接收的16个数据存入片内50H ~5FH 中,串行口为方式1,波特率为1200bps ,SMOD=0,fosc =6MHz 。
51单片机练习题 附解答
第一、二章单片机概述与结构一、填空题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.已知[X]原=0001111,则[X]反=11100000。
()2.十进制数89化成二进制数为10001001。
()3.8位二进制数补码的大小范围是-127~+127。
()4.MCS—51的产品8051与8031的区别是:8031片内无ROM。
()5.8051的程序状态字寄存器PSW是一个8位的专用寄存器,用于存程序运行中的各种状态信息。
()6. MCS—51指令:MOVX A,@DPTR ;表示将DPTR指示的地址单元中的内容传送至A中。
()7.已知:A=1FH,(30H)=83H,执行 ANL A,30H 后,结果:A=03H,(30H)=83H,P=0。
()8.指令LCALL addr16能在64K字节范围内调用子程序。
()9.MCS—51单片机的两个定时器的均有两种工作方式,即定时和计数工作方式。
()10.对于8031单片机而言,在外部扩展EPROM时,EA引脚应接地。
()二、选择题1.将二进制数(1101001)2转换成对应的八进制数是。
A.141 B.151 C.131 D. 121 2.单片机中的程序计数器PC用来。
A.存放指令 B.存放正在执行的指令地址C.存放下一条指令地址 D.存放上一条指令地址3.访问外部存贮器或其它接口芯片时,作数据线和低8位地址线的是。
A.P0口 B。
P1口 C。
P2口 D。
P0口和 P2口4.MCS—51的串行数据缓冲器SBUF用于。
A.存放运算中间结果 B.存放待发送或已接收到的数据 C.暂存数据和地址D.存放待调试的程序5.8051的程序计数器PC为16位计数器,其寻址范围是。
A.8K B.16K C.32K D.64K6.MCS—51汇编语言指令格式中,唯一不可缺少的部分是。
A.标号 B.操作码 C.操作数 D.注释7.MCS—51寻址方式中,操作数Ri加前缀“@”号的寻址方式是。
A.寄存器间接寻址 B.寄存器寻址C.基址加变址寻址 D.立即寻址8.MCS—51指令MOV R0,#20H中的20H是指。
单片机习题(指令与编程及答案)
单片机练习二一.单项选择题1. ORG 0003HLJMP 2000HORG 000BHLJMP 3000H当CPU响应外部中断0后,PC的值是( B )。
A.0003HB. 2000HC. 000BHD. 3000H3. MCS-51的相对转移指令的最大负跳距离为( B )。
A.2KBB. 128BC.127BD. 256B4. 以下运算中对溢出标志0V没有影响或不受影响的运算是( A )。
A.逻辑运算B. 符号数加减运算C. 比较数据大小运算D. 除法运算5. 产生PSEN信号的指令是( C )。
A . MOVX A ,@DPTR B. MOVX @DPTR, AC. MOVC A , @A+PCD. MOVX A, @A+DPTR6. MOVX A , @DPTR指令中的源操作数的寻址方式是( B )。
A.寄存器寻址B.寄存器间接寻址C.直接寻址D.立即寻址7. 将MCS-51的工作寄存器置成3区的指令是( B )。
A. MOV PSW , #13HB.MOV PSW , #18HC. SETB PSW.4 ,CLR PSW.3D.SETB PSW.3 ,CLR PSW.48. 指令AJMP的跳转范围是( C )。
A .256B B.1KB C.2KB D.64KB9. 6264芯片是( B )。
A.E2PROMB.RAM C .Flash ROM D .EPROM10. 下面那条指令产生WR信号( D )。
A.MOVX A , @DPTRB.MOVC A , @A+DPTRC.MOVC A , @A+PCD.MOVX @DPTR , A11. 执行LCALL 4000H指令时,MCS-51所完成的操作是( D )。
A.保护PCB.保护现场C.4000H →PCD.PC+3入栈,4000H → PC12. 下列指令中可能改变Cy的有(C )。
A.INC AB.CPL AC. RLC AD.MOV A , #data13.假定设置堆栈指针SP的值为36H,在执行指令PUSH 20H后,SP的值为( B )。
单片机程序分析题练习B2
1程序如下: MOV SP , #13H MOV 33H , #7FH MOV 44H , #0ABH PUSH 33H PUSH 44H POP 33H POP44H程序执行后,(33H ) =0ABh, (44H ) =7Fh2.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后, A 中的结果是什么?设(60H ) =35H , (A ) =19H , ( R0) =30H , (30H ) =0FH 。
(1) MOV A , #48H ;寻址方式:(A ) =48H(2) ADD A , 60H;寻址方式: (A ) =4DH(3) ANLA , @R0;寻址方式:(A ) =10H3 •阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能? MOV R1 , #30H ; ( R1) =30HMOV A , #64H ;( A ) =64HADD A , #47H ; ( A )=ABH,(CY ) =0 (AC ) = 0DA A; (A) =31H,(CY ) =1 (AC )=MOV@R1 , A ; ( R1 )=30H,(30H ) = 31H此程序段完成的功能4.设(A)=38H,R0=28H,(28H)=18H, 执行下列程序后, (A ) =0 ORL A , #27H ANL A , 28H XCHD A , @R0 CPL A6.已知(RO ) =20H, (20H ) =10H, (P0) =30H, (R2) =20H,执行如下程序段后 (40H ) =15H MOV @R0 , #11H (20H)=11H MOV A , R2A=20HSETBCADDC A, 20H (A)= 82H(CY)= 0 RLC A (A)=04H(CY)=1 MULAB(A)=08H(B)=00H5.设(A)=38H,(20H)=49H,PSW=00H,(B)=02H, (AC)= 1 (P)= 1(OV)=0填写以下中间结果。
单片机考试常见试题程序分析题
单片机考试常见试题程序分析题work Information Technology Company.2020YEAR程序分析及编程1.设(A)=04H,(CY)=1, 写出下列各条指令的结果。
RL A; (A)= 08HRR A; (A)= 02HRLC A; (A)= 09HRRC A; (A)= 82H2设(A)=7AH,(R0)=30H,(30H)=A5H,(CY)=1, 写出下列各条指令的结果。
MOV A ,R0 (A)=30H (R0)=30HXCH A, R0 (A)=30H (R0)=30HXCHD A,@R0 (A)=A5H (R0)=30H(30H)=30HADD A,#30H (A)=D5H (CY)=1ADDC A,30H (A)=06H (CY)=1SUBB A,#30H (A)=D5H (CY)=14.已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。
下述程序执行后:请问:A=(),SP=(),(51H)=(),(52H)=(),PC=()。
POP DPHPOP DPLMOV DPTR,#4000HRL AMOV B,AMOVC A,@A+DPTRPUSH AMOV A,BINC AMOVC A,@A+DPTRPUSH ARETORG 4000HDB10H,80H,30H,50H,30H,50H答:(A)=50H , (SP)=50H , (51H)=30H , (52H)=50H , (PC)=5030H5.假定A=83H,(R0)=17H,(17H)=34H,执行以下指令后,A的内容为()。
:ANL A,#17HORL 17H,AXRL A,@R0CPL A答:0CBH6.如果DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,则执行下列指令后则:DPH=(),DPL=(),SP=():POP DPHPOP DPLPOP SP答:DPH=3CH , DPL=5FH , SP=4FH7.假定,SP=60H,A=30H,B=70H,执行下列指令后,SP的内容为(),61H单元的内容为(),62H单元的内容为()。
单片机练习题
练习题一、计算机中数的表示方法(一)、选择题1.十进制数126 其对应的十六进制可表示为()。
⑴8 F ⑵8 E ⑶F E ⑷7 E2.16位二进制无符号整数表示成十六进制数的范围()。
⑴1~FFFFH ⑵0~65536H ⑶0~FFFFH ⑷0~111H3.-3 的补码是()。
⑴10000011 ⑵11111100 ⑶11111110 ⑷111111014.如某数X用二进制补码表示为[X]补=10000101B,则X的十进制数为()。
⑴133 ⑵–123 ⑶–133 ⑷+1225.已知某数的BCD码为0111 0101 0100 0010 则其表示的十进制数值为()。
⑴7542H ⑵7542 ⑶75.42H ⑷75.426.在计算机中“A” 是用()来表示的。
⑴BCD 码⑵二一一十进制编码⑶余三码⑷ASC I I 码7.数制及编码的转换中,10100101B= ()H;(01010111)BCD = ()D。
⑴204D ⑵A5H ⑶57D ⑷01011000B ⑸41H(二)、填空题1.十进制数29的二进制表示为。
2.将无符号二进制数1101101B转换为十进制数,其值为。
3.完成不同数制间的转换:00100110B = D ;10011010B = H;(01110111)BCD = D;28 = BCD ;符号D的ASCII码是。
4.213= B= H。
5.十进制数5923的BCD码为。
6.十进制数–93的8位补码表示为。
7.求某数的补码为84H,该数的十进制数为。
8.计算机中最常用的字符信息编码是。
9.计算机中常用的码制有原码,反码和。
(三)、简答题1.8位微机所表示的无符号数、带符号数、BCD码的范围分别是多少?2.01001001B分别被看作补码、无符号数、BCD码时,它所表示的十进制数是什么?二、80C51系列单片机中的存储器(一)、选择题1.单片机应用程序一般存放在()。
⑴RAM ⑵ROM ⑶寄存器⑷CPU2.为了使10H~17H作工作寄存器使用RS1,RS0的取值为()。
第02章单片机指令系统与汇编语言程序设计习题解答
第02章单⽚机指令系统与汇编语⾔程序设计习题解答第02章单⽚机指令系统与汇编语⾔程序设计习题解答⼀、填空题1. MCS-51单⽚机指令系统中有 111 条指令。
2. MCS-51单⽚机指令中,Rn表⽰ R0、R1、R2、R3、R4、R5、R6、R7中的⼀个。
3. MCS-51单⽚机指令中,@表⽰间接寻址。
4. MCS-51单⽚机指令中,$表⽰当前指令的⾸地址。
5. MCS-51单⽚机寻址⽅式有⽴即数、直接地址、寄存器、寄存器间接、变址、相对、位寻址等七种寻址⽅式。
6. 指令MOVC A, @A+PC的功能是将A的内容与PC当前值相加作为程序存储器地址,再将该地址单元的内容传送到A 。
7. 指令JBC CY, LOOP是 3 字节、 2 个机器周期指令。
8. 指令DA A的功能是对A中当前值进⾏⼗进制调整。
9. 调⽤⼦程序时,将PC当前值保存到堆栈。
10. MCS-51单⽚机堆栈操作的基本原则是先进后出。
⼆、简答题1. MCS-51单⽚机指令⼀般由哪⼏个部分组成?各部分的功能是什么?答:MCS-51单⽚机指令⼀般由标号、操作码助记符、操作数、注释四部分组成。
标号是⼀条指令的标志,是可选字段,与操作码之间⽤“:”隔开;设置标号的⽬的是为了⽅便调⽤或转移。
标号的选择应遵从下列规定:标号由1~8个字母或数字组成,也可以使⽤⼀个下划线符号“_”。
第⼀个字符必须是字母。
指令助记符或系统中保留使⽤的字符串不能作为标号。
标号后⾯需要有⼀个冒号。
⼀条语句可以有标号,也可以没有标号,取决于程序中其它语句是否需要访问这条语句。
操作码规定指令的功能,是⼀条指令的必备字段,如果没有操作码,就不能成为指令。
它与操作数之间⽤“空格”隔开。
操作数是指令操作的对象。
分为⽬的操作数和源操作数两类,它们之间⽤“,”分隔。
操作数是可选字段。
⼀条指令可以有0、1、2、3个操作数。
注释是对指令功能的说明解释。
以“;”开始。
2. 程序中,伪指令ORG和END的作⽤是什么?答:ORG⽤于定义汇编语⾔源程序或数据块存储的起始地址。
单片机练习题(含答案)
1.单片机还可称为(微控制器)。
2. 单片机与普通计算机的不同之处在于其将(CPU)、(存储器)、和(I/O接口电路)三部分集成于一块芯片上。
3. MCS-51系列单片机芯片间主要差别是什么?主要差别在于片内是否带有程序存储器4. 在家用电器中使用单片机应属于微计算机的(B)A)辅助设计应用(B)测量、控制应用(C)数值计算应用(D)数据处理应用5. MCS-51单片机的引脚EA接高电平和接低电平时各有何种功能?接高电平,则使用片内程序存储器,否则使用片外程序存储器。
6. 什么是机器周期?一个机器周期的时序是如何来划分的?如果采用12MHz晶振,一个机器周期为多长时间?1个机器周期等于12个时钟振荡周期,而时钟振荡周期即晶振频率的倒数。
如果采用12MHz晶振,一个机器周期为1us。
7.存储器的空间里,有5个单元是特殊的,这5个单元对应MCS-51单片机5个中断源的中断入口地址,请写出这些单元的地址以及对应的中断源。
8.(B)区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端。
错(C)在MCS-51中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1。
对(D)PC可以看成是程序存储器的地址指针。
对9. 8051 单片机复位后,R4所对应的存储单元的地址为(04H),因上电时PSW=(00H)。
这时当前的工作寄存器区是(0)组工作寄存器区。
10.判断以下有关PC和DPTR的结论是否正确?(A) DPTR是可以访问的,而PC不能访问。
对(B) 它们都是16位的寄存器。
对(C) 它们都具有加“1”的功能。
错(D) DPTR可以分为2个8位的寄存器使用,但PC不能。
对11.内部RAM中,哪些单元可作为工作寄存器区,哪些单元可以进行位寻址?写出其地址范围。
答:字节地址为00H-1FH的单元可以作为工作寄存器区;字节地址为20H-2FH的单元可以进行位寻址。
12.使用8031单片机时,需将EA引脚接(低)电平,因为其片内无(程序)存储器。
MCS—51单片机指令系统及程序设计基础题目
MCS—51单片机指令系统及程序设计基础题目一、判断题()1.MCS—51单片机的指令格式中操作码与操作数之间必须用“,”分隔。
()2.MCS—51指令:MOV A,#40H ;表示将立即数40H传送至A中。
()3.MCS—51指令:MOV A,@R0 ;表示将R0指示的地址单元中的内容传送至A中。
()4.MCS—51指令:MOVX A,@DPTR ;表示将DPTR指示的地址单元中的内容传送至A中。
()5.MCS—51的数据传送指令是把源操作数传送到目的操作数,指令执行后,源操作数改变,目的操作数修改为源操作数。
()6.MCS—51指令中,MOVX为片外RAM传送指令。
()7.MCS—51指令中,MOVC为ROM传送指令。
()8.将37H单元的内容传送至A的指令是:MOV A,#37H。
()9.MCS—51指令中,16位立即数传送指令是:MOV DPTR,#data16。
()10.MCS—51单片机,CPU对片外RAM的访问只能用寄存器间接寻址的方式,且仅有4 条指令。
()11.如JC rel发生跳转时,目标地址为当前指令地址加上偏移量。
()12.对于8051单片机,当CPU对内部程序存储器寻址超过4K时,系统会自动在外部程序存储器中寻址。
()13.指令MUL AB执行前(A)=F0H,(B)=05H,执行后(A)=FH5,(B)=00H。
()14.已知:DPTR=11FFH 执行INC DPTR后,结果:DPTR=1200H。
()15.已知:A=11H B=04H,执行指令DIV AB后,其结果:A=04H,B=1 CY=OV=0。
()16.已知:A=1FH,(30H)=83H,执行ANL A,30H 后,结果:A=03H (30H)=83H P=0。
()17.无条件转移指令LJMP addr16称长转移指令,允许转移的目标地址在128KB空间范围内。
()18.MCS—51指令系统中,执行指令FGO bit F0 ,表示凡用到F0位的指令中均可用FGO来代替。
单片机原理与应用试题五及答案
单片机原理与应用试题五及答案一、填空题(每空1分,共10分)1.单片机内有组成微机的主要功能部件、和。
2.堆栈的特性是,8051的堆栈一般开辟在,其堆栈指针是。
3.RS232C是总线标准。
4.8255是接口。
5.MCS-51有一个全双工的步串行口,有种工作方式。
二、简述题(每题5分,共25分)1.单片机的特性主要有哪些?2.8031、8051、8751有何异同?3.MCS-51的位存储区在哪里?寻址范围是多少?4.8051的定时器/计数器有几个?是多少位的?有几种工作方式?其工作原理如何?5.8051有哪几个中断源?哪些是内部中断源?哪些是外部中断源?三、判断题(20分)1.判断以下各条指令是否正确(LL1和PROC为标号)(10分)(1)MOVX @R0,B(2)MOV A,30H(3)MOVX A,30H(4)ADDC A,R7(5)SUB A,R2(6)ANL #99H ,36H(7)MOV C,ACC.0(8)ORL P1.0,P3.1(9)JBC P0,LL1(10)ACALL PROC2.判断以下说法是否正确,不正确予以改正。
(10分)(1)单片机是面向数据处理的。
(2)定时器与计数器的工作原理均是对输入脉冲进行计数。
(3)由于MCS-51的串行口的数据发送和接收缓冲器都是SBUF,所以其串行口不能同时发送和接收数据,即不是全双工的串行口。
(4)END表示指令执行到此结束。
(5)ADC0809是8位逐次逼近式模/数转换接口。
四、阅读程序(20分)1.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么?(5分)设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。
(1)MOV A,#48H;寻址方式:(A)=(2)ADD A,60H;寻址方式:(A)=(3)ANL A,@R0;寻址方式:(A)=2.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?(15分)MOV R1,#30H;(R1)=MOV A,#64H;(A)=ADD A,#47H;(A)= ,(CY)= ,(AC)=DA A;(A)= ,(CY)= ,(AC)=MOV@R1,A;(R1)= ,(30H)=此程序段完成的功能:五、计算(画图)题(10分)若8051的晶振频率f osc为6MHz,定时器/计数器T0工作在工作方式1,要求产生10ms定时,写出定时器的方式控制字和计数初值(分别写出TH0与TL0值)。
单片机原理练习题
单⽚机原理练习题单⽚机原理练习题⼀、填空题1.单⽚机与普通微型计算机的不同之处在于其将、、和3部分集成于⼀块芯⽚上。
2.MCS-51 对⽚内RAM ,⽚外RAM 和⽚内、外ROM 访问时分别⽤指令______、______、_____ 来区分。
3.MCS-51 ⽚外扩展存储器时,ROM 的最⼤容量为______,RAM 的最⼤容量为______。
4.P0~P3 ⼝在作输⼊⼝使⽤时,应先向⼝锁存器写⼊______ 。
5.P0 ⼝在作输出⼝使⽤时,必须外接_______。
6.8051 中断源共5 个,它们分别是_______ 、_______ 、______、______、______ 。
7.中断服务程序的返回指令是_____,⼦程序的返回指令是_____。
8.TMOD 中M1 、M0 的⽤途是_____ ,C/T=1 时为⽅式______。
9.已知:(A )=E7H ,CY=1 。
问执⾏指令SUBB A ,#70H 后,(A)=___ 、CY=__ 、AC=___ 、OV=__ 、P=___ 。
10.为确保CPU 读键的准确性,消除按键抖动可⽤____________ 和___________两种办法解决。
11.单⽚机的键盘结构有两种,分别是_____ 和_______ 。
12.LED 显⽰器按内部发光⼆极管的公共点连接⽅法不同,有________ 和________ 之分。
LED 显⽰有________ 和_______ 两种⽅式。
13.8051 四组⼯作寄存器区的地址范围分别是_______ 、________ 、________和________。
如果当前要使⽤ 1 区的话,那么PSW 中的RS1 和RS0 应分别设置为_____和______ 。
14.MCS — 51 单⽚机外扩存储器时,P0 ⼝⽤作__________________ ,P2 ⼝⽤作_________ 。
15.8051 中断源共 5 个,它们分别是_________ 、_______ 、__________、____________、__________ 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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则指令的第二字节应为。