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

下载本文档

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

文档简介

单片机原理及应用技术苏家建课后习题参考答案第三章MCS51指令系统31MCS51指令系统有哪几种寻址方式按功能分类有哪几种指令32设A0FH,R030H,片内RAM的(30H)0AH,(31H)0BH,(32H)0CH,下列程序段运行后的结果MOVA,R0A0AHMOVR0,32H30H0CHMOV32H,A32H0AHMOVR0,31HR031HMOVA,R0A31H0BH33(1)R0的内容传送到R1MOVA,R0MOVR1,A2内部RAM20H单元的内容传送到AMOVA,20H3外部RAM30H单元的内容传送到R0MOVR1,30HMOVXA,R1MOVR0,A4外部RAM30H单元的内容传送到内部RAM20H单元MOVR1,30HMOVXA,R1MOV20H,A5外部RAM1000H单元的内容传送到内部RAM20H单元MOVDPTR,1000HMOVXA,DPTRMOV20H,A6程序存储器ROM2000H单元的内容传送到R1MOVDPTR,2000HCLRAMOVCA,ADPTRMOVR1,A7RAM2000H单元的内容传送到内部RAM20H单元MOVDPTR,2000HMOVXA,DPTRMOV20H,A8RAM2000H单元的内容传送到外部RAM30H单元MOVDPTR,2000HMOVXA,DPTRMOVR0,30HMOVXR0,A9RAM2000H单元的内容传送到外部RAM1000H单元MOVDPTR,2000HMOVXA,DPTRMOVDPTR,1000HMOVXDPTR,A34设内部RAM30H5AH,5AH40H,40H00H,P17FH,下面程序执行后的结果如何MOVR0,30HR030HMOVA,R0A30H5AHMOVR1,AR15AHMOVR1,P15AH7FHMOVA,P1A7FHMOV40H,20H40H20HMOV30H,40H30H00H35编程,将内部RAM20H2FH共16个连续单元清零ORG0100HMOVR0,20HMOVR2,16LOOPMOVR0,00HINCR0DJNZR2,LOOPEND36编程,求出内部RAM20H单元中的数据含“1”的个数,并将结果存入21H单元中。ORG0100HMOV21H,0MOVR2,8MOVA,20HCLRCLOOPRLCAJCCOUNTDJNZR2,LOOPSJMPSTOPCOUNTINC21HDJNZR2,LOOPSTOPSJMPEND37编程,找出内部RAM30H50H单元中出现FFH的次数,并将结果存入51H单元中。ORG0100HMOV51H,0MOVR0,30HMOVR2,20HLOOPMOVA,R0CJNEA,0FFH,AGAININC51HAGAININCR0DJNZR2,LOOPSJMPEND38编程,计算,并将结果存入内部的30H单元012IORG0100HMOV30H,0MOV31H,0I的初值MOVR0,30HMOVR2,11MOVA,31HLOOPINC31HADDA,R0MOVR0,AMOVA,31HRLADJNZR2,LOOPSJMPEND39已知片内RAM30H38H,38H40H,40H48H,48H90H说明下列指令源操作数的寻址方式,及指令执行的结果MOVA,40HA48H直接寻址MOVR0,A;R048H寄存器寻址MOVP1,0F0HP10F0H直接寻址MOVR0,30H48H38H寄存器间接寻址MOVDPTR,3848HDPTR3848H直接寻址MOV40H,38H40H38H40H直接寻址MOVR0,30HR030H38H寄存器寻址MOVP0,R0P038H直接寻址MOV18H,30H18H30H直接寻址MOVA,R0A38H40H直接寻址MOVP2,P1P20F0H直接寻址310设R032H,A48H,片内RAM32H80H,40H08H求指令运行的结果MOVA,R0A32H80HMOVR0,40H32H(40H)08HMOV40H,A40H80HMOVR0,35HR035H311设A83H,R017H,片内RAM17H34H,求指令运行的结果ANLA,17HA03HORLA,17H17H(37HXRLA,R0A37HCPLAAC8H312编程实现片内RAM20H2FH与30H3FH中数据的对换ORG0100HMOVR0,20HMOVR1,40HMOVR2,0FHLOOPMOVA,R0MOVR1,AINCR0INCR1DJNZR2,LOOPMOVR0,30HMOVR1,20HMOVR2,0FHLOOP1MOVA,R0MOVR1,AINCR0INCR1DJNZR2,LOOP1MOVR0,30HMOVR1,40HMOVR2,0FHLOOP1MOVA,R1MOVR0,AINCR0INCR1DJNZR2,LOOP1SJMPEND313A34H,30H4FH,ADDA,30H执行后的结果A83H,PSW41H314SP25H,PC2345H,24H12H,25H34H,2656H,执行RET后SPPCSP23H,PC3412H315SP25H,PC2345H,标号LABEL所在的地址3456H,执行LCALLLABEL后SPPC,堆栈中的数据有何变化SP27H26H48H27H23HPC3456H第四章程序设计基础41片内RAM30H单元开始存放着一组用补码表示的有符号数,数目存于20H单元。编程统计出正数,0,负数的数目,分别存到21H,22H,23H单元。ORG0100HMOV21H,0MOV22H,0MOV23H,0MOVR0,30HLOOPMOVA,R0CJNEA,0,PDINC22HSJMPDONEPDJBACC7,FUINC21HSJMPDONEFUINC23HDONEINCR0DJNZ20H,LOOPSJMPEND42片内RAM20H2FH凡是满足奇偶校验的数据(1的个数为偶数)的数转存到片外8000H开始的数据区ORG0100HMOVR0,20HMOVDPTR,8000HMOVR2,0FHLOOPMOVA,R0JBPSW0,DONEMOVXDPTR,AINCDPTRDONEINCR0DJNZR2,LOOPSJMPEND43编程,把外部RAM1000H10FFH的数据传送到2000H开始的区域ORG0100HMOVR3,10HMOVR4,20HMOVDPL,00HMOVR2,0LOOPMOVDPH,R3MOVXA,DPTRMOVDPH,R4MOVXDPTR,AINCDPLDJNZR2,LOOPSJMPEND44片内RAM30H单元开始存放着一组无符号数,其数目在21H单元中。编程将其中最小的数存入21HORG0100HMOVR0,30HMOVR2,21HMOVA,30HLOOPCJNEA,R0,PDSJMPDONEPDJNCDONEMOV22H,R0XCHA,22HDONEINCR0DJNZR2,LOOPMOV21H,ASJMPEND45编程实现片内RAM30H单元开始的16个数按顺序颠倒过来ORG0100HMOVR0,30HMOVR1,40HMOVR2,0FHLOOPMOVA,R0MOVR1,AINCR0INCR1DJNZR2,LOOPMOVR2,0FHMOVR0,40HMOVR1,3FHLOOP1MOVA,R0MOVR1,AINCR0DECR1DJNZR2,LOOP1SJMPEND46编程实现片内RAM30H单元开始的16个数,存有最小数值的所在单元的内容改为0FFHORG0100HMOVR0,30HMOVR2,16MOVA,30HMOV22H,022H存放找到的16个数中的最小值MOV23H,0存放最小数值的地址放到23HLOOPCJNEA,R0,PDSJMPDONEPDJNCDONEMOV22H,R0MOV23H,R0XCHA,22HDONEINCR0DJNZR2,LOOPMOVR0,23HMOVR0,0FFHSJMPEND47编程实现P17P16P15P14ORG0100HMOVC,P15ANLC,/P14MOV20H,CMOVC,P14ANLC,/P15ORLC,20HANLC,P16MOVP17,CEND48编程统计片内RAM30H单元开始的16个数,有多少数大于40,小于80,将结果存入40H单元中ORG0100HMOVR0,30HMOVR2,16MOV40H,0LOOPMOVA,R0CJNEA,40,PDSJMPDONEPDJNCPD2SJMPDONEPD2CJNEA,80,PD3SJMPDONEPD3JCCOUNTSJMPDONECOUNTINC40HDONEINCR0DJNZR2,LOOPSJMPEND第六章中断系统61定时器T0和T1各有几种工作方式请简述。答四种。T0T1工作方式最大计数模值初值加载方式最大计数模值初值加载方式方式0213人工加载213人工加载方式1216人工加载216人工加载方式228自动加载28自动加载(常用于串口通信波特率发生器)方式328TH0、TL0被分成两个相互独立的8位计数器;TL0既可做定时器也可做计数器;TH0可做内部定时器。人工加载初值8位计数,无中断产生,自动加载初值,用于不需要中断的场合62已知单片机系统时钟频率FOSC12MHZ,若要求定时值分别为01MS、1MS、10MS,定时器T0工作在方式0,方式1和方式3时,定时器对应的初值各为多少定时时间工作方式0初值工作方式1初值工作方式2初值工作方式3初值01MSFC1CHFF9CH9CH9CH1MSE018HFC18H10MSD8F0H63定时器/计数器T0已预置为156,工作于方式2计数,现T0引脚上输入周期为1MS的脉冲,问(1)此时T0的实际用途是(2)在什么情况下,T0溢出答(1)计数器(2)T0可记录100个外部脉冲,即从开始启动工作,经过100MS开始溢出。64设系统时钟为6MHZ,利用T0和P10产生连续矩形波,高电平宽度为50US,低电平宽度为300US。解因为系统时钟为6MHZ,则一个计数脉冲为2US,若T0工作于方式1,则P10输出高电平T0需记录25个脉冲,计数初值为21625FFE7H,则P10输出低电平T0需记录150个脉冲,计数初值为216150FF6AH,编程如下ORG0000HLJMPMAINORG000BHLJMPT00ORG0100HMAINMOVSP,60HMOVTMOD,01HMOVTH0,0FFHMOVTL0,0E7HSETBEASETBET0SETBP10SETBTR0SJMPT00JNBP10,QFMOVTH0,FFHMOVTL0,0E7HSJMPDONEQFMOVTH0,0FFHMOVTL0,6AHDONECPLP10RETIEND65利用定时器来测量单次正脉冲宽度,采用何种方式可获得最大量程设F0SC6MHZ,求允许测量的最大脉冲宽度是多少答定时器方式1,最大脉冲宽度为2US216131072MS66试编制一程序,其功能为当P12引脚的电平上跳时,对P11的输入脉冲进行计数;当P12引脚的电平下跳时,停止计数,并将计数值写入R6与R7。解P11接P34引脚,利用T0做计数器,工作于方式1,初值为0(T0未工作于中断方式)ORG0000HLJMPMAINORG000BHORG0100HMAINMOVSP,60HMOVR6,0MOVR7,0MOVTMOD,05HMOVTH0,0MOVTL0,0LOOPJNBP12,LOOPSETBTR0LOOP1JBP12,LOOP1CLRTR0MOVR6,TH0MOVR7,TL0SJMPEND67试用中断技术设计一发光二极管LED闪烁电路,闪烁周期为2S,要求亮1S,再暗1S。解设P10接1发光二极管,低电平点亮;利用定时器T0,工作于定时器方式2,设系统频率为FOSC12MHZ,则一个定时脉冲为1US,每次中断定时250US,则需要4000个中断实现1S的定时利用R6,R7做软件计数器,初值分别为40,100;定时初值2825006HORG0000HLJMPMAINORG000BHLJMPT00ORG0100HMAINMOVSP,60HMOVTMOD,02HMOVTH0,06HMOVTL0,06HMOVR6,40MOVR7,100CLRP10SETBEASETBET0SETBTR0SJMPT00DJNZR6,DONEMOVR6,40DJNZR7,DONEMOVR7,100DONECPLP10RETIEND68试用中断方法设计秒、分脉冲发生器,即由8031的P10每秒产生一个机器周期的正脉冲,由P11每分钟产生一个机器周期的正脉冲。解设系统时钟频率为12MHZ,则一个计数脉冲为1US,利用T0做定时器记录50MS,计数初值为216500003CB0H,利用R6,R7为软件计数器,初值为20,60,分别实现1S和1分钟的定时ORG0000HLJMPMAINORG000BHLJMPT00ORG0100HMAINMOVSP,60HMOVTMOD,01H;T0定时器,工作方式1MOVTH0,3CHMOVTL0,0B0H;装入50MS的初始值MOVR6,20MOVR7,60CLRP10;P10,P11均输出低电平CLRP11SETBEASETBET0SETBTR0;中断允许,开始定时SJMPT00DJNZR6,DONE;R610,定时1秒时间到SETBP10;P10输出1US的高电平CLRP10;P10继续输出低电平MOVR6,20DJNZR7,DONE;R710,定时1分钟时间到SETBP11;P11输出1US的高电平CLRP11;P11继续输出低电平MOVR7,60DONEMOVTH0,3CHMOVTL0,0B0HRETIEND第七章串口工作方式0关于I0接口的扩展71利用74LS164并行输出8只发光二极管,将二极管从左至右点亮,时间间隔1S左右,并循环往复,画出电路原理图,编程实现。P109ORG0100HMOVSCON,00HMOVA,80HLOOPMOVSBUF,AACALLDEL1SRRASJMPLOOP74利用MCS51系列单片机的串行接口设计键盘输入电路P111第九章模拟量输入输出接口技术91在一个FOSC为12MHZ的8031单片机系统中,接有一片DAC0832,它的地址为7FFFH,输出电压为05V,请画出有关逻辑框图并编写程序,使其运行后能在示波器上显示锯齿波(设示波器X方向扫描频率为50US/格,Y方向扫描频率为1V/格)。答ORG0000HLJMPMAINORG0100HMAINMOVSP,60HMOVDPTR,7FFFHLOOPMOVA,00HLOOP1MOVXDPTR,A2INCA1CJNEA,0,LOOP12SJMPLOOPEND输出波形为周期是255US,幅值为5V的锯齿波92在FOSC12MHZ的系统中,接有ADC0809,地址为7FF8H7FFFH,试画出逻辑框图并编写ADC0809的初始化程序和定时取样通道2的程序(假设取样频率为1MS一次,每次取样4个数据,存于8031单片机内部RAM70H73H中)。答P10连接0809的START端ORG0000HLJMPMAINORG0100HMAINMOVSP,60HMOVDPTR,7FFAHMOV70H,0MOV71H,0MOV72H,0MOV73H,0MOVR2,4MOVR0,70HLOOPACALLDEL_1MSLOOP1SETBP10NOPNOPNOPCLRP10MOVXA,DPTRMOVR0,AACALLDEL_100USINCR0DJNZR2,LOOP1MOVR0,70HMOVR2,4SJMPLOOPDEL_1MSMOVR7,51DEL2MOVR6,1001DEL1DJNZR6,DEL12DJNZR7,DEL22RETDEL_100USMOVR5,51DEL21MOVR4,101DEL11DJNZR4,DEL112DJNZR5,DEL212RETEND93DAC0832与8031单片机连接时有哪些控制信号其作用是什么P201答,。,两个引脚,使数据线上的数据送入输入寄存器;当CS1WR2XFECS1WRCPU发出控制信号,时,把输入寄存器中的数据送给DAC寄存器,并随即由D/A转换器进行转换,变成模拟信号输出。94已知DAC0832的地址为7FFFH,输出电压为05V,编写产生矩形波的转换程序,其波形占空比为14,高电平电压为25V,低电平电压为125V。答ORG0000HLJMPMAINORG0100HMAINMOVSP,60HMOVDPTR,7FFFHMOVR2,3LOOPMOVA,7FHMOVXDPTR,A2ACALLDELMOVA,40HMOVXDPTR,ADELLACALLDELDJNZR2,DELLMOVR2,3SJMPLOOPDELMOVR7,10若主频为12MHZ,则波形周期为400USDEL2MOVR6,20DEL1DJNZR6,DEL1DJNZR7,DEL2RETEND95已知ADC0809的地址为7FF8H7FFFH。编写每隔100MS轮流采集一次8个通道数据的程序,共取样10次,其取样值存入片外RAM从3000H开始的存储单元中(设FOSC6MHZ)答P10连接0809的START端,ORG0000H

温馨提示

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

评论

0/150

提交评论