赵嘉蔚-北京交通大学-单片机原理与接口技术-课后习题

上传人:豆浆 文档编号:92375228 上传时间:2019-07-09 格式:DOCX 页数:14 大小:19.99KB
返回 下载 相关 举报
赵嘉蔚-北京交通大学-单片机原理与接口技术-课后习题_第1页
第1页 / 共14页
赵嘉蔚-北京交通大学-单片机原理与接口技术-课后习题_第2页
第2页 / 共14页
赵嘉蔚-北京交通大学-单片机原理与接口技术-课后习题_第3页
第3页 / 共14页
赵嘉蔚-北京交通大学-单片机原理与接口技术-课后习题_第4页
第4页 / 共14页
赵嘉蔚-北京交通大学-单片机原理与接口技术-课后习题_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《赵嘉蔚-北京交通大学-单片机原理与接口技术-课后习题》由会员分享,可在线阅读,更多相关《赵嘉蔚-北京交通大学-单片机原理与接口技术-课后习题(14页珍藏版)》请在金锄头文库上搜索。

1、第一章1-4运算器,控制器,存储器,输入设备,输出设备1-9(7) 1-11(3) 1-12(4) 1-16(3)见例1-171-19(1)0100 01111-20(1)41 42 38第二章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)把外部RAM 1000H单元的内容传送到内部RAM 30H单元中。(3)清除内部RAM 3FH 单元的高4位。(4)使累加器A的最低位置1。(5)清除进位位。(6)

2、使ACC.4和ACC.5置1。(7)把外部ROM 2000H单元中的内容送到内部RAM的20H单元中。(8) 把外部ROM 2000H单元中的内容送到外部RAM的3000H单元中。 答案:(1) MOV A,R6(2) MOV DPTR,#1000HMOVX A,DPTRMOV R0,#30HMOV R0,A (3) ANL 3FH,#0FH(4)ORLA,#01H(5)CLRC(6)ORLA,#30H(7)CLR AMOVDPTR,#2000HMOVCA,A+DPTRMOV20H,A(8)CLR AMOVDPTR,#2000HMOVCA,A+DPTRMOVDPTR,#3000HMOVXDPT

3、R,A 3-10 编写程序段完成如下要求。(1)将寄存器R0中的内容乘以10(积小于256)。(2)将片内RAM 30H单元开始的15个字节的数据传送到片外RAM 3000H开始的单元中。(3)将片外RAM 2000H开始的5个字节的数据传送到片内RAM 20H开始的单元中。(4)有10个字节的二进制数存放在片内RAM以 40H开始的单元内,编程找出其中的最大值并存于内部50H单元中。(5)将片外RAM空间2000H200AH中的数据的高4位变零,低4位不变,原址存放。(6)将外部RAM 2040H单元的内容与3040H单元的内容互换。答案:(1) MOV B,#0AHMOV A,R0MUL

4、ABMOV R0,A(2)ORG 0000HMOV R0,#30HMOV DPTR,#3000HMOV R7,#0FHLOOP: MOV A,R0MOVX DPRT,AINC R0INC DPTRDJNZ R7,LOOPSJMP $END(3)MOV DPTR,#2000HMOV R0,#20HMOV R7,#05HLOOP:MOVX A,DPTRMOV R0,AINC R0INC DPTRDJNZ R7,LOOPEND(4) ORG 0000HMOV A,40H;A寄存器放最大值,且初始化最大值(默认第一个数)MOV R3,#09H;比较次数MOV R0,#41HSTART:CJNE A,R

5、0,LOOPLOOP:JNC LOOP1;如果比A小,则跳转到LOOP1MOV A,R0;如果比A大,则更新A的值LOOP1:INC R0DJNZ R3 STARTMOV 50H,ASJMP $END(5) MOV DPTR,#20000HMOV R1,#0BHLOOP:MOVX A,DPTRANL A,#0FHMOVX DPTR,AINC DPTRDJNZ R1,LOOPSJMP $(6) MOV DPTR,#2040HMOVX A,DPTRMOVR0,#20HMOV R0,AMOV DPTR,#3040HMOVX A,DPTRXCH R0,AMOVX DPTR AMOV A,R0MOV D

6、PTR,#2040HMOVX DPTR,A3-15 设有一带符号的十六位数以补码形式存放在R2、R3寄存器中,试编制求其原码的程序。ORG 0000HSTART:MOV A,R3JB ACC.7,NEXT;判读符号位,如果是正数则原码与补码一样,如果为负,求原码的方法是符号位不变,其余位取反加1MOV R3,AHERE:SJMP $NEXT:XRL A,#7FH;高八位,符号位不变,其余取反MOV R3,A;放回R3MOV A,R2;低八位XRL A,#0FFH;取反ADD A,#01H;加1MOV R2,A;放回R2MOV A,R3;看低八位是否有向高八位进位ADDC A,#00HMOV R

7、3,ASJMP $END3-16 设有一不带符号的十六进制数组,存放在8031单片机片内RAM以BUFFER为首址的连续单元中,其长度为30个字节,要求统计小于10,等于10及大于10的数的个数,并把它们分别存放到片内RAM的LESS、EQUAL、BIG单元中,试编制实现上述要求的程序并画出相应的流程图。ORG 0000HBUFFER DATA 10HLESS DATA 30HEQUALDATA 31HBIG DATA 32HMOV R0,#BUFFERMOV R7,#1EHMOV LESS,#00HMOV EQUAL,#00HMOV BIG,#00HNEXT:CJNE R0,#0AH, LO

8、OP1;循环次数INC EQUALAJMP LOOP3LOOP1:JC LOOP2INC BIGAJMP LOOP3LOOP2:INC LESSLOOP3:INC R0DJNZ R7, NEXTSJMP $END3-17 在外部RAM 1000H单元开始的存储区域存放着10个用ASCII码表示的09之间的数字,请编程将它们转换成BCD码,然后存放在2000H2004H单元(以压缩BCD码存放)。ORG 0000HMOV R2,#05HMOV DPTR,#1000HMOV R0,#20HLOOP:MOVX A,DPTRANL A,#0FHMOV R4,AINC DPTRMOVX A,DPTRAN

9、L A,#0FHSWAP AADD A,R4MOV R0,AINC R0 INC DPTRDJNZ R2,LOOPMOV R5,#05HMOV R0,#20HMOV DPTR,#2000HLOOP1: MOV A,R0MOVX DPTR,AINC R0 INC DPTRDJNZ R5,LOOP1SJMP $END3-18 设有50个无符号8位二进制数,存放在8031单片机内部RAM以BOFER为首址的连续单元中,试编制将其中最小数存放到内部RAM的MIN单元的程序并画出相应的流程图。ORG 0000HBOFER DATA 20HMIN DATA 60HMOV R2,#31H;循环49次MOV

10、R1,# BOFER+1MOV MIN,BOFER;把最小值放A,且初始化时把第一个数放入ALOOP:CJNE R1,MIN,LOOP1LOOP1:JNC LOOP2; R1MINMOV MIN,R1 ;MIN R1,MIN要更新LOOP2:INC R1DJNZ R2,LOOPSJMP $END3-19 设有一字符串存放在8031单片机内部RAM以20H为首址的连续单元中,字符串以回车结束。要求统计该字符串中字符B(B=42H)的个数,并将其存入外部RAM的40H单元中。试编写实现上述要求的程序并画出相应的流程图。ORG 0000HMOV R0,#20HMOV R1,#00H;B的个数初始化L

11、OOP:MOV A,R0CJNE A,#42H,NEXT;不为B则跳转LOOP1: INC R1; 为B则使计数器加1 INC R0 AJMP LOOPNEXT:CJNE A,#0DH,LOOP1;判断是否结束(回车键)MOV DPTR,#0040H;把结果放外部RAM中MOV A,R1MOVX DPTR,ASJMP $END3-23 已知MDA和MDB单元内分别存有两个小于10的整数a和b,试用查表子程序实现c=a2+2ab+b2,并把和存于MDC和MDC+1单元中(MDC单元中放低字节,MDC+1单元中放高字节)。ORG 0000HMDA DATA 20HMDB DATA 21HMDC D

12、ATA 22HORG0000HCLR CMOV A,MDAACALL SQRMOV R2,AMOV A,MDBACALL SQRADD A,R2MOV R2,A;a2+b2结果暂时放入R2MOV B,MDA;下面算2*a*bMOV A,MDBMUL ABRL AADDC A,R2MOV MDC,ACLR AADDC A,#00HMOV MDC+1,ASJMP$SQR:ADD A,#01HMOVC A,A+PCRETSQRTAB:DB 0 1 4 9 16 25 36 49 64 81 100 121 DB 144 169 196 225END3-25 设有一长度为20H的字符串,存放在8031

13、单片机片内RAM以10H为首地址的连续单元中,试编制将其中数字与字母分开并将它们分别送到以30H和50H为首地址的连续单元中的程序。ORG 0000HMOV R2,#20H;循环次数MOV R1,#10HMOV 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: MOVR0,61HMOV 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. 高电平: 初值: 低电平: 初值:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号