《单片机原理及应用》思考题与习题参考答案 下载本文

ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#1000H MOV A,#22H MOVX @DPTR,A MOV DPTR,#1030H MOV A,#33H MOVX @DPTR,A MOV DPTR,#1000H MOV R2,#31H MOV R0,#30H LOOP: 2.21解:

ORG 0000H LJMP MAIN ORG 0100H

MAIN: MOV DPTR,#2040H MOV R2,#50 CLR 7FH DEC R2 LS: MOVX A,@DPTR MOV 20H,A INC DPTR MOVX A,@DPTR MOV 21H,A MOV A,20H

2.22解: ORG 0000H LJMP MAIN ORG 0030H MAIN: LCALL SUBONE AJMP $

; SUBONE use dptr,a,30h,31h SUBONE: MOV DPTR,#2000H LOOP: MOVX A,@DPTR XRL A,#41H

MOVX

A,@DPTR

MOV @R0,A INC DPTR INC R0

DJNZ R2,LOOP MOV DPTR,#1000H MOV A,#00 MOV R2,#31H LOOP1: MOVX @DPTR,A INC DPTR DJNZ R2,LOOP1 SJMP $

END

CJNE A,21H,LOOP LOOP: JNC LOOP1 MOV A,20H MOVX @DPTR,A DEC DPTR MOV A,21H MOVX @DPTR,A INC DPTR SETB 7FH LOOP1: DJNZ R2,LS JB 7FH,MAIN SJMP $ END

JNZ TT MOV A,30H MOV DPTR,#20A0H MOVX @DPTR,A MOV DPTR,#20A1H MOV A,31H MOVX @DPTR,A RET TT: INC DPTR MOV 30H,DPH

MOV

31H,DPL

MOV A,31H CJNE A,@00H,LOOP 2.23解:

ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R2,#20 MOV R1,#30H MOV DPTR,#2000H TT: MOVX A,@DPTR CLR C SUBB A,#30H SWAP A MOV 41H,A INC DPTR MOVX A,@DPTR CLR C SUBB A,#30H MOV @R1,A 2.24解:

ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV DPTR,#2400H MOV A,#07H MOVX @DPTR,A MOV DPTR,@2450H MOV A,#06H MOVX @DPTR,A MOV 30H,#24H MOV 31H,#00H MOV 32H,#25H MOV 33H,#00H

2.25解:

ORG 0000H LJMP MAIN ORG 0030H

MAIN: MOV DPTR,#2030H MOV A,#03H MOVX @DPTR,A MOV DPTR,#2031H

RET END

MOV A,41H XCHD A,@R1 MOV @R1,A INC R1 INC DPTR DJNZ R2,TT

MOV DPTR,#3000H MOV R1,#30H

MOV R2,#0AH TT1: MOV A,@R1

MOVX @DPTR,A INC R1 INC DPTR

DJNZ R2,TT1 SJMP $ END

MOV R2,#51H LOOP: MOV DPH,30H MOV DPL,31H MOVX A,@DPTR MOV DPH,32H MOV DPL,33H MOVX @DPTR,A INC 31H INC 33H DJNZ R2,LOOP AJMP $ END

MOV A,#05H

MOVX @DPTR,A MOV DPTR,#2030H MOVX A,@DPTR LCALL SQR MOV R1,A

MOV DPTR,#2031H

SQR:

TAB: MOVX A,@DPTR LCALL SQR ADD A,R1

MOV DPTR,#2040H MOVX @DPTR,A AJMP $ INC A

MOVC A,@A+PC RET

DB 0,1,4,9,16,25 DB 36,49,64,81,100 DB 121,144,169,196,225 END

第3章

3.1解:

当CPU正在处理某件事情的时候,外部发生的某一事件请求CPU迅速去处理, CPU暂时中止当前的工作,转去处理所发生的事件,处理完该事件以后,再回到原来被中止的地方,继续原来的工作。这种过程为中断,实现这种服务的部件称为中断系统。

功能:①实时处理,能对外界异步发生的事件作出及时的处理。②完全消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率。③实现实时控制。 3.2解:

中断优先级是CPU响应中断的先后顺序。中断优先处理的原则是: (1)先响应优先级高的中断请求,再响应优先级低的中断请求。

(2)如果一个中断请求己被响应,同级的其他中断请求将被禁止。

(3)如果同级的多个中断请求同时出现,CPU则按单片机内部的自然优先级顺序响应各中断请求。

单片机内部自然优先级顺序(由高到低)为:

外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断。 3.3解:

(1)80C51有以下中断源:

① ① 外部中断0(

)请求,低电平有效。

② ② 外部中断1()请求,低电平有效。 ③ ③ T0:定时器/计数器0溢出中断请求。 ④ ④ T1:定时器/计数器1溢出中断请求。 ⑤ ⑤ TI/RI:串行接口中断请求。

(2)通过对特殊功能寄存器TCON、SCON、IE、IP的各位进行置位或复位等操作,可实现对各种中断的控制功能。 3.4解:

中断系统的初始化步骤如下: (1)开相应中断源的中断允许; (2)设定所用中断源的中断优先级;

(3)若为外部中断,则应规定中断触发方式(低电平或负边沿触发)。 3.5解:

单片机一旦响应中断请求, 就由硬件完成以下功能:

 (1) 根据响应的中断源的中断优先级, 使相应的优先级状态触发器置1;

(2) 执行硬件中断服务子程序调用, 并把当前程序计数器PC的内容压入堆栈,保护断点,寻找中断源; 

(3) 清除相应的中断请求标志位(串行口中断请求标志RI和TI除外); 

(4) 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。

(5)中断返回,程序返回断点处继续执行。 3.6解:

(1)由中断源提出中断请求,由中断控制允许控制决定是否响应中断,如果允许响应中断,则CPU按设定好的优先级的顺序响应中断。如果是同一优先级的中断,则按单片机内部的自然优先级顺序(外部中断0→定时器0中断→外部中断l→定时器1中断→串行接口中断)响应中断。

CPU响应中断请求后,就立即转入执行中断服务程序。保护断点、寻找中断源、中断处理、中断返回,程序返回断点处继续执行。

(2)由中断允许寄存器IE控制开放和禁止中断。欲开放某一中断,则应先开放总中断允许(EA置1),然后开放相应中断的中断允许(相应位置1);若要要禁止中断,则EA置O