单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案_第1页
单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案_第2页
单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案_第3页
单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案_第4页
单片机原理及应用技术苏家建曹柏荣汪志锋课后习题参考答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理及应用技术课后习题参考答案第三章 MCS-51 指令系统3-1MCS-51 指令系统有哪几种寻址方式?按功能分类有哪几种指令?3-2 设 A=0FH,R0=30H,片内 RAM 的(30H)=0AH,(31H)=0BH,(32H)=0CH,下歹 U程序段运行后的结果?MOVA,R0;A=0AHMOVR0,32H;(30H)=0CHMOV32H,A;(32H)=0AHMOVR0,#31H;R0=31HMOVA,R0;A=(31H)=0BH3-3(1)R0 的内容传送到 R1MOVA,R0MOVR1,A(2)内部 RAM20H 单元的内容传送到 AMOVA,20H(3)外部 RAM30H

2、 单元的内容传送到 R0MOVR1,#30HMOVXA,R1MOVR0,A外部 RAM30H 单元的内容传送到内部 RAM20H 单元MOVR1,#30HMOVXA,R1MOV20H,A(5)外部 RAM1000H 单元的内容传送到内部 RAM20H 单元MOVDPTR,#1000HMOVXA,DPTRMOV20H,A(6)程序存储器 ROM2000H 单元的内容传送到 R1MOVDPTR,#2000HCLRAMOVCA,A+DPTRMOVR1,ARAM2000H 单元的内容传送到内部 RAM20H 单元MOVDPTR,#2000HMOVXA,DPTRMOV20H,A(8)RAM2000H 单

3、元的内容传送到外部 RAM30H 单元MOVDPTR,#2000HMOVXA,DPTRMOVR0,#30HMOVXR0,ARAM2000H 单元的内容传送到外部 RAM1000H 单元MOVDPTR,#2000HMOVXA,DPTRMOVDPTR,#1000HMOVXDPTR,A3-4 设内部 RAM30H=5AH,5AH=40H,40H=00H,P1=7FH,下面程序执行后的结果如何?MOVR0,#30H;R0=30HMOVA,R0;A=(30H)=5AHMOVR1,A;R1=5AHMOVR1,P1;(5AH)=7FHMOVA,P1;A=7FHMOV40H,#20H;(40H)=20HMOV

4、30H,40H;(30H)=00H3-5 编程,将内部 RAM20H-2FH 共 16 个连续单元清零ORG0100HMOVR0,#20HMOVR2,#16LOOP:MOVR0,#00HINCR0DJNZR2,LOOPEND3-6 编程,求出内部 RAM20H 单元中的数据含“1”的个数,并将结果存入 21H 单元中ORG0100HMOV21H,#0MOVR2,#8MOVA,20HCLRCLOOP:RLCAJCCOUNTDJNZR2,LOOPSJMPSTOPCOUNT:INC21HDJNZR2,LOOPSTOP:SJMP$END3-7 编程,找出内部 RAM30H-50H 单元中出现 FFH

5、的次数,并将结果存入 51H 单元中ORG0100HMOV51H,#0MOVR0,#30HMOVR2,#20HLOOP:MOVA,R0CJNEA,#0FFH,AGAININC51HAGAIN:INCR0DJNZR2,LOOPSJMP$ENDi03-8 编程,计算2i,并将结果存入内部的 30H 单元ORG0100HMOV30H,#0MOV31H,#0;i 的初值MOVR0,#30HMOVR2,#11MOVA,31HLOOP:INC31HADDA,R0MOVR0,AMOVA,31HRLADJNZR2,LOOPSJMP$END3-9已知片内 RAM(30H)=38H,(38H)=40H,(40H)

6、=48H,(48H)=90H.说明下列指令源操作数的寻址方式,及指令执行的结果MOVA,40H;A=48H 直接寻址MOVR0,A;R0=48H 寄存器寻址MOVP1,#0F0H;P1=0F0H 直接寻址MOVR0,30H;(48H)=38H 寄存器间接寻址MOVDPTR,#3848H;DPTR=3848H 直接寻址MOV40H,38H;(40H)=(38H)=40H 直接寻址MOVR0,30H;R0=(30H)=38H 寄存器寻址MOVP0,R0;P0=38H 直接寻址MOV18H,#30H;(18H)=30H 直接寻址MOVA,R0;A=(38H)=40H 直接寻址MOVP2,P1;P2=

7、0F0H 直接寻址3-10 设 R0=32H,A=48H,片内 RAM(32H)=80H,(40H)=08H.求指令运行的结果MOVA,R0;A=(32H)=80HMOVR0,40H;(32H)=(40H)=08HMOV40H,A;(40H)=80HMOVR0,#35H;R0=35H3-11 设 A=83H,R0=17H,片内 RAM(17H)=34H,求指令运行的结果ANLA,#17H;A=03HORLA,17H;(17H)=(37HXRLA,R0;A=37HCPLA;A=C8H3-12 编程实现片内 RAM20H-2FH 与 30H-3FH 中数据的对换ORG0100HMOVR0,#20H

8、MOVR1,#40HMOVR2,#0FHLOOP:MOVA,R0MOVR1,AINCR0INCR1DJNZR2,LOOPMOVR0,#30HMOVR1,#20HMOVR2,#0FHLOOP1:MOVA,R0MOVR1,AINCR0INCR1DJNZR2,LOOP1MOVR0,#30HMOVR1,#40HMOVR2,#0FHLOOP1:MOVA,R1MOVR0,AINCR0INCR1DJNZR2,LOOP1SJMP$END3-13A=34H,(30H)=4FH,ADDA,30H 执行后的结果A=83H,PSW=41H3-14SP=25H,PC=2345H,(24H)=12H,(25H)=34H,

9、(26)=56H,执行 RET 后 SP=PC=SP=23H,PC=3412H3-15SP=25H,PC=2345H标号LABEL所在的地址3456H,执行LCALLLABEL后SP=PC=,堆栈中的数据有何变化?SP=27H(26H)=48H(27H)=23HPC=3456H第四章程序设计基础4-1 片内 RAM30H 单元开始存放着一组用补码表示的有符号数,数目存于 20H 单元。编程统计出正数,0,负数的数目,分别存到 21H,22H,23H 单元。ORG0100HMOV21H,#0MOV22H,#0MOV23H,#0MOVR0,#30HLOOP:MOVA,R0CJNEA,#0,PDIN

10、C22HSJMPDONEPD:JB,FUINC21HSJMPDONEFU:INC23HDONE:INCR0DJNZ20H,LOOPSJMP$END4-2 片内 RAM20H-2FH.凡是满足奇偶校验的数据(1 的个数为偶数)的数转存到片外 8000H 开始的数据区ORG0100HMOVR0,#20HMOVDPTR,#8000HMOVR2,#0FHLOOP:MOVA,R0JB,DONEMOVXDPTR,AINCDPTRDONE:INCR0DJNZR2,LOOPSJMP$END4-3 编程,把外部 RAM1000H-10FFH 的数据传送到 2000H 开始的区域ORG0100HMOVR3,#10

11、HMOVR4,#20HMOVDPL,#00HMOVR2,#0LOOP:MOVDPH,R3MOVXA,DPTRMOVDPH,R4MOVXDPTR,AINCDPLDJNZR2,LOOPSJMP$END4-4 片内 RAM30H 单元开始存放着一组无符号数,其数目在 21H 单元中。编程将其中最小的数存入 21HORG0100HMOVR0,#30HMOVR2,21HMOVA,30HLOOP:CJNEA,R0,PDSJMPDONEPD:JNCDONEMOV22H,R0XCHA,22HDONE:INCR0DJNZR2,LOOPMOV21H,ASJMP$END4-5 编程实现片内 RAM30H 单元开始的

12、 16 个数按顺序颠倒过来ORG0100HMOVR0,#30HMOVR1,#40HMOVR2,#0FHLOOP:MOVA,R0MOVR1,AINCR0INCR1DJNZR2,LOOPMOVR2,#0FHMOVR0,#40HMOVR1,#3FHLOOP1:MOVA,R0MOVR1,AINCR0DECR1DJNZR2,LOOP1SJMP$END4-6 编程实现片内 RAM30H 单元开始的 16 个数,存有最小数值的所在单元的内容改为0FFHORG0100HMOVR0,#30HMOVR2,#16MOVA,30HMOV22H,#022H 存放找到的 16 个数中的最小值MOV23H,#0;存放最小数

13、值的地址放到 23HLOOP:CJNEA,R0,PDSJMPDONEPD:JNCDONEMOV22H,R0MOV23H,R0XCHA,22HDONE:INCR0DJNZR2,LOOPMOVR0,23HMOVR0,#0FFHSJMP$END4-7 编程实现=ORG0100HMOVC,ANLC,/MOV20H,CMOVC,ANLC,/ORLC,20HANLC,MOV,CEND4-8 编程统计片内 RAM30H 单元开始的 16 个数,有多少数大于 40,小于 80,将结果存入 40H 单元中ORG0100HMOVR0,#30HMOVR2,#16MOV40H,#0LOOP:MOVA,R0CJNEA,

14、#40,PDSJMPDONEPD:JNCPD2SJMPDONEPD2:CJNEA,#80,PD3SJMPDONEPD3:JCCOUNTSJMPDONECOUNT:INC40HDONE:INCR0DJNZR2,LOOPSJMP$END第六章中断系统6-1 定时器 T0 和 T1 各有几种工作方式?请简述。答:四种。工#T0T1最大计数模值初值加载方式最大计数模值初值加载方式方式 0213人工加载213人工加载方式 12 伯人工加载2 伯人工加载方式 228自动加载28自动加载(常用于串口通信波特率发生器)方式 328TH0、TL0 被分成两个相互独立的 8 位计数器;TL0 既可做定时器也可做计

15、数器;TH0 可做内部定时器。人工加载初值8 位计数,无中断产生,自动加载初值,用于/、需要中断的场合6-2 已知单片机系统时钟频率 fosc=12MHz,若要求定时值分别为、1ms、10ms,定时器T0 工作在方式 0,方式 1 和方式 3 时,定时器对应的初值各为多少?定时时间工作方式 0 初值 工作方式 1 初值 工作方式 2 初值 工作方式 3 初值FC1CHFF9CH9CH9CH1msE018HFC18H10msD8F0H6-3 定时器/计数器 T0 已预置为 156,工作于方式 2 计数, 现 T0 引脚上输入周期为 1ms 的脉冲,问:(1)此时 T0 的实际用途是?(2)在什么

16、情况下,T0 溢出?答:(1)计数器(2)T0 可记录 100 个外部脉冲,即从开始启动工作,经过 100ms 开始溢出。6-4 设系统时钟为 6MHz,利用 T0 和产生连续矩形波, 高电平宽度为 50us,低电平宽度为 300uso解: 因为系统时钟为 6MHz,则一个计数脉冲为 2us 若 T0 工作于方式 1,则输出高电平 T0 需记录25 个脉冲,计数初值为 216-25=FFE7H,则输出低电平 T0 需记录 150 个脉冲,计数初值为 216-150=FF6AH,编程如下ORG0000HLJMPMAINORG000BHLJMPT00ORG0100HMAIN:MOVSP,#60HM

17、OVTMOD,#01HMOVTH0,#0FFHMOVTL0,#0E7HSETBEASETBET0SETBSETBTR0SJMP$T00:JNB,QFMOVTH0,#FFHMOVTL0,#0E7HSJMPDONEQF:MOVTH0,#0FFHMOVTL0,#6AHDONE:CPLRETIEND6-5 利用定时器来测量单次正脉冲宽度,米用何种方式可获得最大量程?设 f0sc=6MHz,求允许测量的最大脉冲宽度是多少?答:定时器方式 1,最大脉冲宽度为 2us*216=6-6 试编制一程序,其功能为:当引脚的电平上跳时,对的输入脉冲进行计数;当引脚的电平下跳时,停止计数,并将计数值写入 R6 与 R

18、7。解:接引脚,利用 T0 做计数器,工作于方式 1,初值为 0(T0 未工作于中断方式)ORG0000HLJMPMAIN;ORG000BHORG0100HMAIN:MOVSP,#60HMOVR6,#0MOVR7,#0MOVTMOD,#05HMOVTH0,#0MOVTL0,#0LOOP:JNB,LOOPSETBTR0LOOP1:JB,LOOP1CLRTR0MOVR6,TH0MOVR7,TL0SJMP$END6-7 试用中断技术设计一发光二极管 LED 闪烁电路,闪烁周期为 2s,要求亮 1s,再日 f1s。解:设接 1 发光二极管,低电平点亮;利用定时器 T0,工作于定时器方式 2,设系统频率

19、为 fosc=12MHz,则一个定时脉冲为 1us,每次中断定时 250us 则需要 4000 个中断实现 1s 的定时利用 R6,R7 做软件计数器,初值分别为 40,100;定时初值 28-250=06HORG0000HLJMPMAINORG000BHLJMPT00ORG0100HMAIN:MOVSP,#60HMOVTMOD,#02HMOVTH0,#06HMOVTL0,#06HMOVR6,#40MOVR7,#100CLRSETBEASETBET0SETBTR0SJMP$T00:DJNZR6,DONEMOVR6,#40DJNZR7,DONEMOVR7,#100DONE:CPLRETIEND6

20、-8 试用中断方法设计秒、分脉冲发生器,即由 8031 的每秒产生一个机器周期的正脉冲,由每分钟产生一个机器周期的正脉冲。解: 设系统时钟频率为 12MHz,则一个计数脉冲为 1us,?J 用 T0 做定时器记录 50ms,计数初值为 216-50000=3CB0H,利用 R6,R7 为软件计数器, 初值为 20,60,分别实现 1s 和 1 分钟的定时ORG0000HLJMPMAINORG000BHLJMPT00ORG0100HMAIN:MOVSP,#60HMOVTMOD,#01H;T0 定时器,工作方式 1MOVTH0,#3CHMOVTL0,#0B0H;装入 50ms 的初始值MOVR6,

21、#20MOVR7,#60CLR;,均输出低电平CLRSETBEASETBET0SETBTR0;中断允许,开始定时SJMP$T00:DJNZR6,DONE;R6-1=0,定时 1 秒时间至 USETB;输出 1us 的高电平CLR;继续输出低电平MOVR6,#20DJNZR7,DONE;R7-1=0,定时 1 分钟时间到SETB;输出 1us 的高电平CLR;继续输出低电平MOVR7,#60DONE:MOVTH0,#3CHMOVTL0,#0B0HRETIEND第七章串口工作方式 0关于 I0 接口的扩展7-1 利用 74LS164 并行输出 8 只发光二极管,将二极管从左至右点亮,时间间隔 1S

22、 左右,并循环往复,画出电路原理图,编程实现。(P109)ORG0100HMOVSCON,#00HMOVA,#80HLOOP:MOVSBUF,AACALLDEL1SRRASJMPLOOP7-4 利用 MCS-51 系列单片机的串行接口设计键盘输入电路(P111)第九章模拟量输入输出接口技术9-1 在一个 fosc 为 12MHz 的 8031 单片机系统中,接有一片 DAC0832,它的地址为7FFFH,输出电压为 0-5V,请画出有关逻辑框图并编写程序,使其运行后能在示波器上显示锯齿波(设示波器 X 方向扫描频率为 50us 格,Y 方向扫描频率为 1V/格)。答:ORG0000HLJMPM

23、AINORG0100HMAIN:MOVSP,#60HMOVDPTR,#7FFFHLOOP:MOVA,#00HLOOP1:MOVXDPTR,A;2INCA;1CJNEA,#0,LOOP1;2SJMPLOOPEND输出波形为周期是 255us 幅值为 5V 的锯齿波.9-2 在 fosc=12MHz 的系统中,接有 ADC0809,地址为 7FF8H-7FFFH,试画出逻辑框图并编写ADC0809 的初始化程序和定时取样通道 2 的程序(假设取卞频率为 1ms 一次,每次取样 4 个数据,存于 8031 单片机内部 RAM70h-73h 中)。答:连接 0809 的 START 端ORG0000H

24、LJMPMAINORG0100HMAIN:MOVSP,#60HMOVDPTR,#7FFAHMOV70H,#0MOV71H,#0MOV72H,#0MOV73H,#0MOVR2,#4MOVR0,#70HLOOP:ACALLDEL_1msLOOP1:SETBNOPNOPNOPCLRMOVXA,DPTRMOVR0,AACALLDEL_100usINCR0DJNZR2,LOOP1MOVR0,#70HMOVR2,#4SJMPLOOPDEL_1ms:MOVR7,#5;1DEL2:MOVR6,#100;1DEL1:DJNZR6,DEL1;2DJNZR7,DEL2;2RETDEL_100us:MOVR5,#5;

25、1DEL21:MOVR4,#10;1DEL11:DJNZR4,DEL11;2DJNZR5,DEL21;2RETEND9-3DAC0832 与 8031 单片机连接时有哪些控制信号?其作用是什么?P201答:CS,WRi,WR2,XFERo而,碉两个引脚,使数据线上的数据送入输入寄存器;当CPU 发出控制信号WR2,XFER时,把输入寄存器中的数据送给 DAC 寄存器,并随即由D/A 转换器进行转换,变成模拟信号输出。9-4 已知 DAC0832 的地址为 7FFFH,输出电压为 0-5V,编写产生矩形波的转换程序,其波形占空比为 1:4,高电平电压为,低电平电压为。答:ORG0000HLJMP

26、MAINORG0100HMAIN:MOVSP,#60HMOVDPTR,#7FFFHMOVR2,#3LOOP:MOVA,#7FHMOVXDPTR,A;2ACALLDELMOVA,#40HMOVXDPTR,ADELL:ACALLDELDJNZR2,DELLMOVR2,#3SJMPLOOPDEL:MOVR7,#10;若主频为 12MHz,则波形周期为 400usDEL2:MOVR6,#20DEL1:DJNZR6,DEL1DJNZR7,DEL2RETEND9-5 已知 ADC0809 的地址为 7FF8H-7FFFH。编写每隔 100ms 轮流采集一次 8 个通道数据的程序,共取样 10 次,其取样值存入片外 RAM 从 3000H 开始的存储单元中(设fosc=6MHz)答:连接 0809 的 START 端,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论