ImageVerifierCode 换一换
格式:DOCX , 页数:48 ,大小:132.92KB ,
资源ID:19571062      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19571062.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片微型计算机原理与接口技术髙锋版课后答案全集Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片微型计算机原理与接口技术髙锋版课后答案全集Word格式.docx

1、 寄存器寻址。在指令中将指定寄存器的内容作为操作数。因此,指定了寄存器就能得到操作数。寄存器寻址方式中,用符号名称来表示寄存器。 INC R7 ;R7的内容为操作数,加1后再送回R7 寄存器间接寻址。在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才是操作数。可以看出,在寄存器寻址方式中,寄存器中存放的是操作数;而在寄存器间接寻址方式中,寄存器中存放的则是操作数的地址。 寄存器间接寻址须以寄存器符号名称的形式表示。为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址中,应在寄存器的名称前面加前缀“”。 ORL ARo; 当R0寄存器的内容是60H时,该指令功能是以RO寄存器的内容60H

2、为地址,将60H地址单元的内容与累加器A中的数相“或”,其结果仍存放在A中。 相对寻址。在指令中给出的操作数为程序转移的偏移量。相对寻址方式是为实现程序的相对转移而设立的,为相对转移指令所采用。 在相对转移指令中,给出地址偏移量(在80C51系列单片机的指令系统中,以“rel”表示,为8位带符号数),把PC的当前值加上偏移量就构成了程序转移的目的地址。而PC的当前值是指执行完转移指令后的PC值,即转移指令的PC值加上转移指令的字节数。转移的目的地址可用如下公式表示: 目的地址=(转移指令所在地址+转移指令字节数)+relSJMP 80H ;80H为程序转移的偏移量,即一128。当前PC值减去1

3、28后即为转移地址 变址寻址。以DPTR或PC作基址寄存器,累加器A作变址寄存器,以两者内容相加形成的16位程序存储器地址作为操作数地址。又称“基址寄存器+变址寄存器间接寻址”。变址寻址方式只能对程序存储器进行寻址。 MOVC A,A+DPTR ;功能是把DPTR和A的内容相加,所得到的程序存储器地址单元的内容送A 位寻址。80C51系列单片机有位处理功能,可以对数据位进行操作,因此,就有相应的位寻址方式。位寻址的寻址范围: 片内RAM中的位寻址区。可位寻址的特殊功能寄存器位。MOV c,80H ;功能是把位寻址区的80H位(即P00)状态送累加位C【35】访问特殊功能寄存器SFR,可使用哪些

4、寻址方式?【答】访问特殊功能寄存器SFR的惟一寻址方式是直接寻址方式。这时除了可以单元地址形式(如90H)给出外,还可以寄存器符号形式(如P1)给出。虽然特殊功能寄存器可以使用寄存器符号标志,但在指令代码中还是按地址进行编码的。【36】若访问外部RAM单元,可使用哪些寻址方式?【答】访问外部RAM单元的惟一寻址方式是寄存器间接寻址方式。片外RAM的64 KB单元,使用DPTR作为间址寄存器,其形式为DPTR,例如“MOVX A,DPTR”的功能是把DPTR指定的片外RAM单元的内容送累加器A。 片外RAM低256个单元,除了可使用DPTR作为间址寄存器外,也可使用:R0或R1作间址寄存器。例如

5、“MOVX A,R0即把R0指定的片外RAM单元的内容送累加器A。【37】若访问内部RAM单元,可使用哪些寻址方式?【答】片内RAM的低128单元可以使用寄存器间接寻址方式,但只能采用R0或R1为间址寄存器,其形式为Ri(i=0,1)。 片内RAM的低128单元可以使用直接寻址方式,在指令中直接以单元地址形式给出。 片内RAM的低128单元中的20H2FH有128个可寻址位,还可以使用位寻址方式,对这128个位的寻址使用直接位地址表示。【38】若访问程序存储器,可使用哪些寻址方式?【答】访问程序存储器可使用的寻址方式有立即寻址方式、变址寻址方式和相对寻址方式三种。立即寻址是指在指令中直接给出操

6、作数。变址寻址方式只能对程序存储器进行寻址,或者说这是专门针对程序存储器的寻址方式。相对寻址方式是为实现程序的相对转移而设立的。这三种寻址方式所得到的操作数或操作数地址都在程序存储器中。【39】MOV、MOVC、MO(指令有什么区别?分别用于哪些场合?为什么?【答】MOV指令用于对内部RAM的访问。MOVC指令用于对程序存储器的访问,从程序存储器中读取数据(如表格、常数等)。MOVX指令采用间接寻址方式访问外部数据存储器有Ri和DPTR两种间接寻址方式。执行MOVX指令时,在P37引脚上输出RD有效信号或在P36引脚上输出WR有效信号,可以用做外部数据存储器或IO的读写选通信号,与单片机扩展电

7、路有关。【310】说明“DA A”指令功能,并说明二一十进制调整的原理和方法。【答】“DA A”指令的功能是对两个BCD码的加法结果进行调整。两个压缩型BCD码按二进制数相加之后,必须经过该指令的调整才能得到压缩型BCD码的和数。“DA A”指令对两个BCD码的减法结果不能进行调整。 BCD码采用4位二进制数编码,并且只采用了其中的10个编码,即00001001,分别代表BCD码09,而10lO1111为无效码。当两个BCD码相加结果大于9时,说明已进入无效编码区;当两个BCD码相加结果有进位时,说明已跳过无效编码区。若结果进入或跳过无效编码区,则结果是错误的,相加结果均比正确结果小6(差6个

8、无效编码)。十进制调整的修正方法为:当累加器低4位大于9或半进位标志AC=1时,进行低4位加6修正;当累加器高4位大于9或进位标志CY=l时,进行高4位加6修正。【3一11】说明80C51单片机的布尔处理机的构造及功能。【答】80C51单片机内部有一个布尔(位)处理机,具有较强的布尔变量处理能力。布尔处理机实际上是一位微处理机,它包括硬件和软件。布尔处理机以进位标志CY作为位累加器,以80C51单片机内部RAM的20H2FH单元及部分特殊功能寄存器为位存储器,以80C51单片机的PO、P1、P2和P3为位IO。对位地址空间具有丰富的位操作指令,包括布尔传送指令、布尔状态控制指令、位逻辑操作指令

9、及位条件转移指令,为单片机的控制带来很大方便。【312】试分析以下程序段的执行结果。【答】结果如下:MOV SP,#60tt ;(SP)=60HNOV A,#88tt ;(A)=88HMOV B#0FFH ;(B)=FFHPUSH ACC ;(SP)=61H,(61H)=88HPUSH B ;(SP)=62H,(62H)=FFHPOP ACC ;(A)=FFH,(SP)=61HPOP B ;(B)=88H,(SP)=60H程序段的执行结果:累加器A和寄存器B的内容通过堆栈进行了交换。注意:80C51单片机的堆栈是按照先进后出的原则进行管理的。【3-1】已知(A)=7AH,(RO)=30H,(3

10、0H)=A5 H,(PSW)=80H。请填写各条指令单独执行后的结果。(1) XCH A,R0 ;(A)=30H,(R0):7AH(2) XCH A,30H ;(A)=A5H,(30H)=7AH,(PSW)=81H(3) XCH A,R0 ;(A)=R5H,(30H)=7AH,(PSW)=81H(4) XCHD A,R0 ;(A)=75H,(30H)=AAH,(PSW)=81H(5) SWAP A ;(A)=A7H(6) ADD A,R0 ;(A)=AAH,(PSW)=04H(7) ADD A,30H ;(A)=1FH,(PSW)=81H(8) ADD A,#30H ;(9) ADDC A,3

11、0H ;(A)=20H,(PSW)=01H(10) SUBB A,30H ;(A)=D4H,(PSW)=84H(11) SUBB A,#30H ;(A)=49H,(PSW)=01H【314】已知(30H)=40H,(40H)=10 H,(10H)=00H,(P1)=CAH,请写出执行以下程序段后有关单元的内容。 【答】有关单元的内容如下: MOV R0,#30H ;(RO)=30H MOV A,R0 ;(A)=40H MOV Rl,A ;(R1)=40H MOV B,R1 ;(B)=1OH MOV R1,P1 ;(40H)=CAH MOV A,RO ; MOV 10H,#20H ;(10H)=

12、20H MOV 30H,10H ;(30H)=20H 执行以上程序段后,有关单元的内容分别为:(30H)=20H,(40H)=CAH,(10H)=20H,(P1)=CAH。 【3-15】已知(R1)=20 H,(20 H)=AAH,请写出执行完下列程序段后A的内容。 【答】各指令的执行结果如下: MOV A,#55H ;(A)=55HANL A,#0FFH ;ORL 20H,A ;(20H)=FFHXRL A,R1 ;(A)=AAHCPL A ; 执行完程序段后,A的内容为5 5 H。【3-16】阅读下列程序,说明其功能。 【答】对程序注释如下: M0V A,R0 ;取数 RL A ;(A)2

13、 MOV R1,A(A)x 48 ADD A,R1 ;(A)X i0 MOV R0,A ;存数功能:将30 H中的数乘以10以后再存回30H中。条件:30 H中的数不能大于25,2510=250仍为一个字节。若30H中的数大于25,则应考虑进位。【317】已知两个十进制数分别在内部RAM中的40 H单元和50H单元开始存放(低位在前),其字节长度存放在内部RAM的30 H单元中。编程实现两个十进制数求和,求和结果存放在40 H开始的单元中。【答】程序如下: ORG 0000H SJMP MAIN ORG 0030H MAIN: MOV R0,#40H ;被加数首址又作两个十进制数和的首址 MO

14、V R1,#50H ;加数首址 MOV R2,30H ;字节长度 CLR C PP: MOV A,R1 ;取加数 ADDC A,R0 ;带进位加 DA A ;二一十进制数调整存和 INC R0 ;修正地址 INC R1 DJNZ R2,PP ;多字节循环加 AJMP $ END【318】编程实现把外部RAM中从8000 H开始的100个字节数据传送到 8100开始的单元中。MOV DPTR,#8000H ;字节数据源首地址 MOV R1,#100 ;字节数据计数器 MOV R2,#01H MOV R3,#00H MOVX A,DPTR ;读数据 MOV R4,A ;保存读出数据 MOV A,D

15、PL ;计算得到字节数据目的地址 ADD A,R3 MOV DPL,A MOV A,DPH ADDC A,R2 MOV DPH,A MOV A,R4 ;恢复读出数据 MOVX DPTR,A ;写数据至目的地址 CLR C ;恢复源数据地址 MOV A,DPL SUBB A,R3 SUBB A,R2 INC DPTR ;地址加1 DJNZ R1,PP ;是否传送完? SJMP $字节数据源地址和目的地址都在外部RAM中,地址指针都为DPTR,所以要注意DPTR地址指针的保护和恢复。地址的保护和恢复的方法有多种,如通过堆栈或寄存器。【3-20】读下列程序,请: 写出程序功能,并以图示意。 对源程序

16、加以注释。MOV DPTR,#TAB MOV R1,#06H LP: CLR A MOVC A,A+DPTR MOV P1,A LCALL DELAY O5 s 、INC DPTR DJNZ R1,LP AJMP MAIN TAB:DB 01H,03H,02H,06H,04H,05H DEL AY05 s: RET【答】 程序功能:将TAB表中的6个参数依次从P1口中输出(每次输出延时0.5 s),然后 重复输出。P1口输出波形如图3-1所示。这是步进电机三相六拍输出波形。图3-l Pl口输出波形 注释见源程序右边所述。MOV DPTR,#TAB ;P1输出参数表首地址 MOV R1,#06H

17、 ;P1输出参数有6个 L,P:查表输出 LCALL DELAY 05 s ;软件延时05 S INC DPTR DJNZ R1,LP ;输出参数已有6个 ? AJMP MAIN ;输出参数已有6个,则重复输出DB 01H,03H,02H,06H,04H,05H ;参数表 DELAY05 s: ;延时05 S子程序【321】读下列程序,然后 画出P IOP13引脚上的波形图,并标出电压V一时间t坐标。 START: MOV SP,#20H MOV 30H,#01H MOV P1,#01H MLP0: ACALT, D50ms M07 A,30H CJNE A,#08H,MLPI MOV A,#

18、01H MOV DPTR,#ITAB MLP2: MOV 30H,A SJMP Mr,p0 MLPl: INC A SJMP MLP2 ITAB:DB 0,1,2,4,8 DB 8,4,2,1 D50ms: 【答】 程序功能:P1OP13引脚上的波形图如图32所示。 图32 P1OP13引脚上的波形图 ACALL ,D50ms ;软件延时50 ms MOV A,30H CJNE A,#08H,MLPI ;判断表格中数据是否取完? MOV A,#01H ;取完,从表头开始取 MOV DPTR,#ITAB ;表格首地址MLP2:取表格中数据 SJMP MLP0 MLPI: INC A ;表格中数据

19、未取完,准备取下一个DB 0,1,2,4,8 ;表软件延时50 ms子程序第四章 【单片机的程序设计】 思考与练习题解析【41】简述下列基本概念:程序、程序设计、机器语言、汇编语言及高级语言。【答】各基本概念如下。程序:为计算某一算式或完成某一工作的若干指令的有序集合。程序设计:单片机的全部工作概括起来,就是执行程序的过程。为单片机准备这一程 序,即编制程序的工作过程。 机器语言:用二进制代码表示的指令系统称为“机器语言系统”,简称为“机器语言”。汇编语言:用英文字符来代替机器语言,这些英文字符称为“助记符。用这种助记符表示指令系统的语言称为“汇编语言”或“符号语言”。高级语言:参照数学语言而

20、设计的、近似于人们日常用语的语言。它是面向问题或者 面向过程的语言。这种语言不仅直观、易学、易懂,而且通用性强,易于移植到不同类型的机器中。【42】在单片机领域,目前最广泛使用的是哪几种语言?有哪些优越性?单片机能否直接执行这几种语言?【答】在单片机领域,目前最广泛使用的是汇编语言和高级语言。 汇编语言编写的程序效率高,占用存储空间小,运行速度快,而且能反映单片机的实际运行情况。但编程比使用高级语言困难,通用性差。单片机不能直接执行汇编语言程序,必须通过人工(或机器)汇编把汇编语言程序转换为机器语言程序。 高级语言不受具体机器的限制,而且使用了许多数学公式和习惯用语,从而简化了程序设计的过程,

21、通用性强,易于移植到不同类型的单片机中。 单片机不能直接识别和执行高级语言,需要将其转换为机器语言程序才能识别和执行。对于高级语言,这一转换工作通常称为“编译”或者“解释”。进行编译或者解释的专用程序称为“编译程序”或者“解释程序”。【43】什么是结构化程序设计?它包含哪些基本结构程序?【答】 程序设计有时可能是一件很复杂的工作,但往往有些程序结构是很典型的。采用结 构化程序编程时,规律性极强,简单清晰,易读写,具有调试方便、生成周期短、可靠性高等特点。 根据结构化程序设计的观点,功能复杂的程序结构一般采用三种基本控制结构,即顺序结构、分支结构和循环结构,再加上子程序结构及中断服务子程序结构,

22、共包含五种基本程序结构。【44】顺序结构程序的特点是什么?试用顺序结构编写三字节无符号数的加法程序段,最高字节的进位存入用户标志F0中。【答】顺序结构是按照逻辑操作顺序,从某一条指令开始逐条顺序执行,直至某一条指令为止。比如数据的传送与交换、简单的运算、查表等程序的设计。顺序结构是所有程序设计中 最基本、最单纯的程序结构形式,因而是一种最简单、应用最普遍的程序结构。在顺序结构程序中没有分支,也没有子程序,但它是组成复杂程序的基础和主干。三字节无符号数的加法程序段,最高字节的进位存人用户标志FO中。 假设加数存放在内存20H、21H和22H中,被加数存放在内存3OH、31H和32H中,和存放在内

23、存40H、41H和42H中。数据存放次序为低字节在前。 MOV A,3 0H ;取被加数低字节数 ADD A,20H ;求和 M07 40H,A ;和存入 MOV A,31H ADDC A,21H ;带进位求和 MOV 41H,A MOV A,32H ADDC A,22H ;带进位求和 MOV 42HA , MOV F0,C ;最高字节的进位存入用户标志F0中【45】80C51单片机有哪些查表指令?它们有何本质区别?请编写按序号i 值查找Di(1 6位长度)的方法。设值i存放在R7中,将查找到的数据存放于片内RAM的30H、31H单元中。请画出程序流程图,编写查表程序段,加上必要的伪指令,并对

24、源程序加以注释。【答】80c51有两种查表指令,即近程查表指令“MOVC A,A+PC”和远程查表指令 “MOVC A,AA+ DPTR 这两条指令的功能均是从程序存储器中读取数据(如表格、常数等),执行过程相同,其差别是基址不同,因此,适用范围也不同。 累加器A为变址寄存器,而PC、DPTR为基址寄存器。DPTR为基址寄存器时,允许数表存放在程序存储器的任意单元,称为“远程查表”,编程比较直观;而PC为基址寄存器时,数表只能放在该指令单元往下的256个单元中,称为“近程查表”。编程时需要计算累加器A中的值与数表首址的偏移量。 例如,按序号i值查找Di(1 6位长度)的源程序如下所示: ORG

25、 XXXXH MOV DPTR,#TABLE 指向表首址 MOV A,R7 ;取值iDi为二个字节 MOV R7,A ;i x 2查表获得Di的高字节 MOV 30HA MOV A,R7 INC A 指向表的下一个地址表获得Di的低字节 MOV 31H, A TABLE: Dw ;表(Dw为双字节,高字节在前) 查表程序流程图如图4-1所示。【46】根据运算结果给出的数据到指定的数据表中查找对应的数据字。运算结果给出的数据在片内RAM的40H单元中,给出的数据大小在000FH之间,数据表存放在20H开始的片内存储器中。查表所得数据字为双字节(高字节在后),高字节存于42H、低字节存于41H单元。其对应关系为:给出数据: 00 H 0 1 H 0 2 H 0DH 0EH 0FH对应数据:00 A0 H 7DC2 H FF09 H 3456H 89ABH 5678 H

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1