赵嘉蔚 北京交通大学 单片机原理与接口技术 课后习题_第1页
赵嘉蔚 北京交通大学 单片机原理与接口技术 课后习题_第2页
赵嘉蔚 北京交通大学 单片机原理与接口技术 课后习题_第3页
赵嘉蔚 北京交通大学 单片机原理与接口技术 课后习题_第4页
赵嘉蔚 北京交通大学 单片机原理与接口技术 课后习题_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

赵嘉蔚北京交通大学单片机原理与接口技术课后习题赵嘉蔚北京交通大学单片机原理与接口技术课后习题赵嘉蔚北京交通大学单片机原理与接口技术课后习题xxx公司赵嘉蔚北京交通大学单片机原理与接口技术课后习题文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度第一章1-4运算器,控制器,存储器,输入设备,输出设备1-9(7)1-11(3)1-12(4)1-16(3)见例1-171-19(1)010001111-20(1)414238第二章2-2见书p30,2-4见书p31,2-5见书p31,2-6见书p32,2-9见书p38,2-10见书p39,2-13见书p43,2-14见书p46,3-8按要求写出相应的指令。(1)把寄存器R6的内容送到累加器A中。(2)把外部RAM1000H单元的内容传送到内部RAM30H单元中。(3)清除内部RAM3FH单元的高4位。(4)使累加器A的最低位置1。(5)清除进位位。(6)使和置1。(7)把外部ROM2000H单元中的内容送到内部RAM的20H单元中。(8)把外部ROM2000H单元中的内容送到外部RAM的3000H单元中。答案:(1) MOV A,R6(2) MOVDPTR,#1000HMOVXA,@DPTRMOVR0,#30HMOV @R0,A (3) ANL 3FH,#0FH(4) ORL A,#01H(5) CLR C(6) ORL A,#30H(7) CLR A MOV DPTR,#2000H MOVC A,@A+DPTR MOV 20H,A(8) CLR A MOV DPTR,#2000H MOVC A,@A+DPTR MOV DPTR,#3000H MOVX @DPTR,A 3-10编写程序段完成如下要求。(1)将寄存器R0中的内容乘以10(积小于256)。(2)将片内RAM30H单元开始的15个字节的数据传送到片外RAM3000H开始的单元中。(3)将片外RAM2000H开始的5个字节的数据传送到片内RAM20H开始的单元中。(4)有10个字节的二进制数存放在片内RAM以40H开始的单元内,编程找出其中的最大值并存于内部50H单元中。(5)将片外RAM空间2000H~200AH中的数据的高4位变零,低4位不变,原址存放。(6)将外部RAM2040H单元的内容与3040H单元的内容互换。答案:(1)MOVB,#0AHMOVA,R0MULABMOVR0,A(2) ORG0000HMOVR0,#30HMOVDPTR,#3000HMOVR7,#0FHLOOP: MOVA,@R0MOVX@DPRT,AINCR0INCDPTRDJNZR7,LOOPSJMP$END(3) MOVDPTR,#2000HMOVR0,#20HMOVR7,#05HLOOP: MOVXA,@DPTRMOV@R0,AINCR0INCDPTRDJNZR7,LOOPEND(4) ORG0000HMOVA,40H;A寄存器放最大值,且初始化最大值(默认第一个数)MOVR3,#09H;比较次数MOVR0,#41HSTART: CJNEA,@R0,LOOPLOOP: JNCLOOP1;如果比A小,则跳转到LOOP1MOVA,@R0;如果比A大,则更新A的值LOOP1: INCR0DJNZR3STARTMOV50H,ASJMP$END(5)MOVDPTR,#20000HMOVR1,#0BHLOOP: MOVXA,@DPTRANLA,#0FHMOVX@DPTR,AINCDPTRDJNZR1,LOOPSJMP$(6)MOVDPTR,#2040HMOVXA,@DPTRMOV R0,#20HMOV@R0,AMOVDPTR,#3040HMOVXA,@DPTRXCH@R0,AMOVX@DPTRAMOVA,@R0MOVDPTR,#2040HMOVX@DPTR,A3-15设有一带符号的十六位数以补码形式存放在R2、R3寄存器中,试编制求其原码的程序。ORG0000HSTART: MOVA,R3JB,NEXT;判读符号位,如果是正数则原码与补码一样,如果为负,求原码的方法是符号位不变,其余位取反加1MOVR3,AHERE: SJMP$NEXT: XRLA,#7FH;高八位,符号位不变,其余取反MOVR3,A;放回R3MOVA,R2;低八位XRLA,#0FFH;取反ADDA,#01H;加1MOVR2,A;放回R2MOVA,R3;看低八位是否有向高八位进位ADDCA,#00HMOVR3,ASJMP$END3-16设有一不带符号的十六进制数组,存放在8031单片机片内RAM以BUFFER为首址的连续单元中,其长度为30个字节,要求统计小于10,等于10及大于10的数的个数,并把它们分别存放到片内RAM的LESS、EQUAL、BIG单元中,试编制实现上述要求的程序并画出相应的流程图。ORG0000HBUFFERDATA10HLESS DATA30HEQUAL DATA31HBIG DATA32HMOVR0,#BUFFERMOVR7,#1EHMOVLESS,#00HMOVEQUAL,#00HMOVBIG,#00HNEXT: CJNE@R0,#0AH,LOOP1;循环次数INCEQUALAJMPLOOP3LOOP1: JCLOOP2INCBIGAJMPLOOP3LOOP2: INCLESSLOOP3: INCR0DJNZR7,NEXTSJMP$END3-17在外部RAM1000H单元开始的存储区域存放着10个用ASCII码表示的0~9之间的数字,请编程将它们转换成BCD码,然后存放在2000H~2004H单元(以压缩BCD码存放)。ORG0000HMOVR2,#05HMOVDPTR,#1000HMOVR0,#20HLOOP: MOVXA,@DPTRANLA,#0FHMOVR4,AINCDPTRMOVXA,@DPTRANLA,#0FHSWAPAADDA,R4MOV@R0,AINCR0INCDPTRDJNZR2,LOOPMOVR5,#05HMOVR0,#20HMOVDPTR,#2000HLOOP1: MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR5,LOOP1SJMP$END3-18设有50个无符号8位二进制数,存放在8031单片机内部RAM以BOFER为首址的连续单元中,试编制将其中最小数存放到内部RAM的MIN单元的程序并画出相应的流程图。ORG0000HBOFERDATA20HMIN DATA60HMOVR2,#31H;循环49次MOVR1,#BOFER+1MOVMIN,BOFER;把最小值放A,且初始化时把第一个数放入ALOOP: CJNE@R1,MIN,LOOP1LOOP1: JNCLOOP2;@R1>MINMOVMIN,@R1;MIN>@R1,MIN要更新LOOP2: INCR1DJNZR2,LOOPSJMP$END3-19设有一字符串存放在8031单片机内部RAM以20H为首址的连续单元中,字符串以回车结束。要求统计该字符串中字符B(‘B’=42H)的个数,并将其存入外部RAM的40H单元中。试编写实现上述要求的程序并画出相应的流程图。ORG0000HMOVR0,#20HMOVR1,#00H;‘B’的个数初始化LOOP: MOVA,@R0CJNEA,#42H,NEXT;不为B则跳转LOOP1:INCR1;为B则使计数器加1 INCR0AJMPLOOPNEXT: CJNEA,#0DH,LOOP1;判断是否结束(回车键)MOVDPTR,#0040H;把结果放外部RAM中MOVA,R1MOVX@DPTR,ASJMP$END3-23已知MDA和MDB单元内分别存有两个小于10的整数a和b,试用查表子程序实现c=a2+2ab+b2,并把和存于MDC和MDC+1单元中(MDC单元中放低字节,MDC+1单元中放高字节)。ORG0000HMDADATA20HMDBDATA21HMDCDATA22HORG 0000HCLRCMOVA,MDAACALLSQRMOVR2,AMOVA,MDBACALLSQRADDA,R2MOVR2,A;a2+b2结果暂时放入R2MOVB,MDA;下面算2*a*bMOVA,MDBMULABRLAADDCA,R2MOVMDC,ACLRAADDCA,#00HMOVMDC+1,ASJMP $SQR: ADDA,#01HMOVCA,@A+PCRETSQRTAB:DB0149162536496481100121DB144169196225END3-25设有一长度为20H的字符串,存放在8031单片机片内RAM以10H为首地址的连续单元中,试编制将其中数字与字母分开并将它们分别送到以30H和50H为首地址的连续单元中的程序。 ORG 0000H MOV R2,#20H ;循环次数 MOV R1,#10H MOV 60H,#30H ;数字存储首地址 MOV 61H,#50H ;字母存储首地址LOOP: MOV A,@R1 CJNE A,#40H,NEXTNEXT: JNC NEXT1 ;如果是字母则跳转到NEXT1 MOV R0,60H ;是数字,把数字的存储地址给R0 MOV @R0,A INC 60H SJMP LOOP1NEXT1:MOV R0,61H MOV @R0,A ;是字母,把字母的存储地址给R0 INC 61HLOOP1: INC R1 DJNZ R2,LOOP SJMP $ END第四章4-3,见书略4-4,见书略4-5,见书略4-8,见书略4-9,见书略4-16,16.高电平:初值:低电平:初值:ORG0000HAJMPMAINORG000BHAJMPTOINTMAIN:MOVTMOD,#01HMOVTH0,#FDHMOVTL0,#64HMOVIE,#82HSETBSETBTR0SJMP$TOINT:MOVC,JCNEXTMOVTH0,#0FDHMOVTL0,#64HSJMPCOMNEXT:MOVTH0,#0FAHMOVTL0,#0CAHCOM:CPLRETIEND4-17,定时器50ms,循环2次可得100ms,设定初值3CB0HORG0000HAJMPMAINORG001BHAJMPBRT1MAIN:MOVTMOD#10HMOVTH1,#3CHMOVTL1,#0B0HMOVR1,#10HMOVR0,#70HMOVR2,#5MOVR3,#02HMOVIE,#88HSETBTR1LOOP:SJMP$BRT1:MOVTH1,#3CHMOVTL1,#0B0HDJNZR3,DONEMOVR3,#02HDJNZR2,LOOPCLRET1SJMPDONELOOP:MOVR4,#10LOOP1:MOVA,@R1MOV@R0,AINCR1INCR0DJNZR4,LOOP1DONE: RETI END4-26,串行接口设置为方式1,采用定时器T1方式2作为波特率发生器,SMOD=0,则计数初值0E6H分别装入TL1,TH1,程序如下:ORG 0000HAJMPMAINORG0023HAJMPPR1RBLOCKDATA2000HMAIN:MOVTMOD,#20HMOVTL1,#0E6HMOVTH1,#0E6HMOVPCON,#00HSETBTR1MOVSCON,#50HMOVDPTR,#RBLOCKMOVR2,#30SETBEASETBESWAIT:JBERROR1SJMPWAITERROR1:CLREA SJMP$PR1:CLRRIMOVA,SBUFMOVC,JCERRORANLA,#7FHMOVX@DPTR,ADJNZR2,NEXTCLREASJMP$ERROR:SETBSJMPNEXT1NEXT: INCDPTRNEXT1: RETIEND第五章5-8要在单片机片外扩展16KB数据存储器,选择其地址为0000~3FFFH。如选用6264为存储器芯片,74LS138为译码器,试画出硬件的连接图。(图中右边的6116应该改为6264)5-9要在单片机片外扩展32KB数据存储器,选择其地址为8000H~FFFFH。如选用线选法,试设计其硬件的连接图。5-11决定8155端口地址的引脚有哪些的作用是什么T/IN和的作用是什么1. AD0~AD7(8条)三态地址/数据线控制总线(8条)I/O总线(22条)电源线(2条)2. 为I/O口及存储器选择信号,若=0,则选择存储器;否则选择I/O口;3. T/IN为定时器输入,定时器工作所需的时钟信号由此端输入。为定时器输出;5-13LED数码管显示器在单片机系统中有哪几种显示方式?LED显示器的显示方式可分为静态显示和动态显示两种。静态显示是指每个数码管的段选线控制是独立的,其特点是各LED管能稳定地同时显示各自的字形。动态显示又称扫描显示方式,它是将每个数码管的段选线同名相连,在某一时刻只让一根位选线有效,同时在段选线上输出该位要显示的字形码,在下一时刻改变要显示的字位并在段选线上输出相应的字形码,如此各LED轮流地一遍一遍地显示各自的字符,由于视觉器官具有视觉暂留效应,从而看到的是各LED似乎在同时显示不同的字形。5-14以共阴极数码管为例说明其字形码是如何形成的?共阴极是把八个二极管的阴极接在一起作为位选线,低电平有效。下图为八段LED数码显示管的结构和原理图。管脚信号a~h用来控制显示的字形,称为段选线,一般将段选线的高低电平按h、g、f、e、d、c、b、a顺序排列,形成十六进制编码,称为字形码5-16已知30H单元中有一带符号数,若它是正数,则在图5-41所示接口电路中自左至右不断地依次显示0;若它是负数,则自右至左不断地依次显示1。试编写相应的程序。ORG 0000HSTART:MOV R1,#06H ;数码管个数 MOV R2,#20H ;负数时数码管自右向左显示时初始位控制字 MOV R3,#01H ;正数时数码管自左向右显示时初始位控制字 MOV R7,#02H ;延时1ms,内部循环 MOV R6,#0FFH ;延时1ms,外部循环 MOV A,#0EH ;命令控制字,B口输出,C口输出 MOV DPTR,#2100H ;命令寄存器地址 MOV @DPTR,A ;写命令 MOV A,30H ;取出30H单元的数,判断正负 JB ,NEG ;如果为负则跳转至NEG SJMP POS ;如果为正则跳转至POS NEG: MOV A,#06H ;“1”的字形码 MOV DPTR,#2102H ;B寄存器 MOVX @DPTR,A ; NXN: MOV A,R2 ;负数的位控制字 MOV DPTR,#2103H ;C寄存器 MOVX @DPTR,A ;输出位控制字,控制数码管的显示 RR A ;位控制字右移一位,实现数码管自右向左点亮 MOV R2,A ;把位控制字放回R2寄存器 ACALL DL ;调用延时程序,延时1ms NEXTN: DJNZ R1,NXN ;判断数码管是否已经循环完毕 SJMP JS ;如果显示完毕则跳转至JS POS: MOV A,#3FH ;“0”的字形码 MOV DPTR,#2102H ;B寄存器 MOVX @DPTR,A ; NXP: MOV A,R3 ;正数的位控制字 MOV DPTR,#2103H ;C寄存器MOVX @DPTR,A ; RL A ;位控制字左移一位,实现数码管自左向右点亮 MOV R3,A ;把位控制字放回R3寄存器 ACALL DL ;调用延时程序,延时1ms NEXTP: DJNZ R1,NXP ;判断数码管是否已经循环完毕 JS: SJMP START ;如果显示完毕则跳转至JS DL: MOV R6,#0FFH ;延时1ms子程序 DL6: DJNZ R6,DL6 ; DJNZ R7,DL ; RET END5-18 设计具有三个按键的电路并编写相应的程序:当第一个按键按下时,将40H单元置1;当第二个按键按下时,40H单元置2;当第三个按键按下时,40H单元置0。ORG 0000HSCAN: MOV DPTR,#0101H MOV A,#00H MOV @DPTR,A MOV DPTR,#0103H MOVX A,@DPTR ANL A,#07H CJNE A,#07H,KEYSCAN KEYSCAN: ACALL DYRMS MOV R2,#0FEHKEYSM1: MOV A,R2 MOV DPTR,#0101H MOVX @DPTR,A MOV DPTR,#0103H MOVX A,@DPTR ANL A,#07H CJNE A,#07H,JSADD SJMP $JSADD: JB ,JSADD1 MOV 40H,#01H AJMP DONEJSADD1: JB ,JSADD2 MOV 40H,#02H AJMP DONEJSADD2: JB ,DONE MOV 40H,#00HDONE: SJMP $DYRMS: MOV R7,#18HDYRMS1: MOV R6,#0FFHDYRMS2: DJNZ R6,DYRMS2 DJNZ R7,DYRMS1 RET END第六章6-5见书p211,6-6见书p213,6-8仿书p216,6-10见书p219,6-11见书p221,3.解:分辨率为6-8利用8051单片机和DAC0832产生的梯形波(如图6-16所示,梯形波的斜边采用步幅为1的线性波形,幅度从00H~80H,水平段调用延迟程序维持),编写梯形波产生的程序。若水平段由8051的内部定时器/计数器来维持,程序应怎样编制图6-16梯形波8. ORG0000HTIXING:MOVA,#00HMOVDPTR,#7FFFHMOVR2,#80HUP:MOVX@DPTR,AINCADJNZR2,UPACALLDELAYDOWN:MOVX@DPTR,ADECAJNZDOWNACALLDELAYSJMPUPDELAY:MOVR4,#02HDEL1:MOVR5,#0F4HDEL2:DJNZR5,DEL2DJNZR4,DEL1RETEND若是采用定时器维持水平段:ORG0000HAJMPMAINORG000BH

温馨提示

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

评论

0/150

提交评论