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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机原理及接口技术余锡存著课后习题答案.docx

1、单片机原理及接口技术余锡存著课后习题答案第二章1.89C51、87C51、80C51和80C31单片机的主要区别在那里 答:相同之处是:制造工艺都为CHMOS,都有128字节片内RAM、两个定时/计数器、4个8位I/O并行口,一个串行口和5个中断源。主要区别: 89C51片内4K字节FLASHROM; 87C51片内4K字节EPROM; 80C51片内4K字节 掩膜ROM; 80C31片内无程序存储器。单片机引脚有多少I/O线它们和单片机对外的地址总线和数据总线有何关系答:4个8位I/O并行口,一个串行口;其中P0口为外接程存和数存的地址低8位和数据总线的时分复用接口;其中P2口为外接程存和数

2、存的地址高8位总线接口;其中P1口为真正的用户口线;其中P3口有第2功能; 以上4个口线在没有专用功能时,也可以做通用I/O口线用。3.简述8031片内RAM区地址空间的分配特点。答:MCS-51 单片机片内RAM为 256 字节, 地址范围为00HFFH, 分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(80HFFH)为特殊功能寄存器区SFR。 在低 128 字节RAM中, 00H1FH共 32 单元是 4 个通用工作寄存器区。每一个区有 8 个通用寄存器R0R7。4. MCS-51单片机由哪几个部分组成。答: 一个8位CPU; 4KB ROM or E

3、PROM(8031无ROM); 128字节RAM数据存储器; 21个特殊功能寄存器SFR; 4个8位并行I/O口,其中P0、P2为地址/数据线,可寻址64KB 程序存储器和64KB 数据存储器; 一个可编程全双工串行口; 具有5个中断源,两个优先级,嵌套中断结构; 两个16位定时器/计数器; 一个片内振荡器及时钟电路。7. 8. 4. 5. 6. 5. MCS-51单片机的信号各自的功能是什么答:都是控制总线 :访问内部程序存储器的控制信号/编程电压输入端。 时,CPU从片内读取指令, CPU从片外读取指令。 :地址锁存允许/编程信号线。 :外部程序存储器读选通信号。:复位输入信号/掉电保护后

4、备电源引脚。单片机如何实现工作寄存器组的选择 RS1、RS0 为工作寄存器组的选择位; 取值为00时选择第0组工作寄存器,片内RAM地址是00H07H,名称为R0R7; 取值为01时选择第1组工作寄存器,片内RAM地址是08H0FH,名称为R0R7; 取值为10时选择第2组工作寄存器,片内RAM地址是10H17H,名称为R0R7; 取值为11时选择第3组工作寄存器,片内RAM地址是18H1FH,名称为R0R7。7. 什么是时钟周期、机器周期、指令周期当单片机的时钟频率为12MHz时,一个机器周期是多少ALE引脚的输出频率是多少(1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振

5、荡源的周期。 (2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。 (3) 机器周期: 一个机器周期包含 6 个状态周期S1S6, 也就是 12 个时钟周期。 在一个机器周期内, CPU可以完成一个独立的操作。(4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。 当单片机的时钟频率为12MHz时,一个机器周期是多少1s(微秒);ALE引脚的输出频率是多少2s(微秒)。第三章1. MCS-51指令系统按功能分为几类具有几种寻址方式他们的寻址范围

6、如何 答: 按功能分为5类,分别是: 数据传送类、算术操作类、逻辑操作类、控制转移类和位操作类; 具有7种寻址方式; 立即寻址,寻址范围是程序存储器; 直接寻址,寻址范围是内部RAM低128字节和高128字节; 寄存器寻址,寻址范围是四组工作寄存器R0R7; 寄存器间接寻址,寻址范围是内部RAM的低128和外部RAM低64K可寻址空间; 基址寄存器加变址寄存器间接寻址,寻址范围是程序存储器; 相对寻址,寻址范围是以下一条指令为相对地址的-128+127字节范围内; 位寻址,寻址范围是可位寻址空间,包括内部RAM的可寻址位,特殊功能寄存器中的可寻址位。2.设内部RAM中59H单元的内容为50H,

7、写出当执行下列程序段后寄存器A,R0,和内部RAM中50H、51H单元的内容为和值答:MOV A,59H ; (A)=(59H)=50HMOV R0,A ; (R0)=50HMOV A,#00 ; (A)=00MOV R0,A ; (R0)=(50H)=00MOV A,#25H ; (A)=25HMOV 51H,A ; (51H)=25HMOV 52H,#70H ; (52H)=70H执行下列程序段后:(A)=25H,(R0)=50H, (50H)=00、(51H)=25H中Cy与OV有何不同下列程序段执行后(Cy)=(OV)=。 MOV A,#56H ADD A,#74H 答:Cy进位、借位

8、标志位;OV溢出标志位。MOV A,#56H ;(A)=56H=0101 0110 BADD A,#74H ;(A)=56H+74H=0CAH=1100 1010B , 程序执行后:(Cy)=0(OV)=1 A,A+DPTR与MOVX A,DPTR指令有何不同答: MOVC A,A+DPTR ;寻找的操作数在程序存储器中,地址是:(A)+(DPTR); MOVX A,DPTR ;寻找的操作数在外部数据存储器中,地址是:(DPTR)。5. AJMP、LJMP、SJMP指令功能上有何不同答:相同之处,都是无条件转移指令。 AJMP addr11 ;下调指令为基准的2KB范围内的跳转指令。 LJMP

9、 addr16 ;转移的目标地址可以在64KB程序存储器的任何地方。 SJMP rel ;下调指令为基准的-128B+127B范围内的短跳转指令。6.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化PUSH 30HPUSH 31HPOP DPLPOP DPHMOV 30H,#00HMOV 31H,#0FFH答:PUSH 30H ;(61H)= (30H) = 24HPUSH 31H ; (62H) = (31H) = 10HPOP DPL ; (DPL) = (62H)

10、= 10HPOP DPH ; (DPH) =(61H)= 24HMOV 30H,#00H ; (30H) = 00HMOV 31H,#0FFH ; (31H) = 0FFH程序执行后:(61H)= 24H, (62H) = 10H, (30H) = 00H, (31H) = 0FFH,(DPTR) = 2410H7.试分析下列程序段,当程序执行后,位地址00H和01H中的内容将为何值P1口的8条I/O线为何状态CLR CMOV A,#66HJC LOOP1CPL CSETB 01HLOOP1: ORL C,JB ,LOOP2LOOP2: MOV P1,A答: CLR C ; (Cy)=0MOV

11、 A,#66H ; (A) = 66H = 0110 0110 BJC LOOP1 ; 因 此时(Cy)=0 ,所以不跳转CPL C ; (Cy) = 1SETB 01H ; (01H)= 1LOOP1: ORL C, ; (Cy) =(Cy) = 1JB ,LOOP2 ; 因 = 1LOOP2: MOV P1,A ; (P1)= 0110 0110 B8.要完成以下的数据传送,应如何用MCS-51指令实现 R1的内容传送到R0; 片外RAM 20H单元的内容送R0; 片外RAM 20H单元的内容送片内RAM 20H单元; 片外RAM 1000H单元的内容送片内RAM 20H单元; ROM 2

12、000H 单元的内容送R0; ROM 2000H 单元的内容送片内RAM 20H单元; ROM 2000H 单元的内容送片外RAM 20H单元。答: R1的内容传送到R0; MOV A,R1 MOV R0,A 片外RAM 20H单元的内容送R0; MOV R1,#20H MOVX A,R1 MOV R0,A 片外RAM 20H单元的内容送片内RAM 20H单元; MOV R1,#20H MOVX A,R1 MOV 20H,A 片外RAM 1000H单元的内容送片内RAM 20H单元; MOV DPTR,#20H MOVX A,DPTR MOV 20H,A ROM 2000H 单元的内容送R0;

13、MOV DPTR,#2000HCLR A MOVC A,A+DPTR MOV R0,A ROM 2000H 单元的内容送片内RAM 20H单元; MOV DPTR,#2000HCLR A MOVC A,A+DPTR MOV 20H,A ROM 2000H 单元的内容送片外RAM 20H单元。MOV DPTR,#2000HCLR A MOVC A,A+DPTR MOV R0,#20H MOVX R0,A9.分析以下程序每条指令执行的结果: MOV A, #25H ; (A) = 25HMOV R1,#33H ; (R1) = 33HMOV 40H,#1AH ; (40H) = 1AHMOV R0

14、,40H ; (R0) = 1AHADD A,R1 ; (A) = 25H + 33H = 58HADDC A,R0 ; (A) = 58H + (1AH) + (Cy) = 58H ADDC A,40H ; (A) = 58H + 1AH + (Cy) = 72H10.设A=83H,R0=17H,(17H)=34H,执行下列程序后,(A) = ANL A,#17H ; (A) = 1000 0011B0001 0111B = 0000 0011BORL 17H,A ; (17H) = 0011 0100B0000 0011B = 0011 0111BXRL A,R0 ; (A) = 0000

15、 0011B0011 0111 = 0011 0100BCPL A ; (A) = 1100 1011B11.两个4位BCD码数相加,被加数和加数分别存于30H、31H和40H、41H单元中(次序为千位、百位在低地址中,十位、个位在高地址中),和数放在50H、51H、52H中(52H用于存放最高位的进位),试编写加法程序。 解: ORG 00HMOV 30H, #12H ; MOV 31H, #34H ; MOV 40H, #56H ; MOV 41H, #78H ; MOV A, 31H ; 取被加数十个位ADD A, 41H ; 相加,(A) = (31H) + (41H) DA A ;

16、十进制调整MOV 51H,A ; 存十位个位运算结果MOV A, 30H ; 取被加数千百位ADDC A, 40H ; 相加,(A) = (30H) + (40H)DA A ; 十进制调整MOV 50H,A ; 存千位百位运算结果CLR A ; 清AADDC A,#0 ; 将进位加到A中MOV 52H, A ; 存进位SJMP $12.试编写一程序,查找内部RAM单元的20H50H中是否有0AAH这一数据,若有,则将51H单元置为01H,若没有,则使51H单元置0。解: ORG 00H MOV 30H, #0AAH ; MOV R1, #31H ; MOV R0, #20H ; BIJIAO:

17、 MOV A, R0 CJNE A, #0AAH , LOOP; MOV 51H,#01H SJMP JIESHU LOOP: INC R0 DJNZ R1,BIJIAO MOV 51H,#00HJIESHU :SJMP $第四章1、若有两个符号数X,Y分别存放在内部存储器50H、51H单元中,试编写一个程序实现X*10+Y,结果存入52H、53H中。 1 ORG 00H 0000 7850 2 MOV R0,#50H 0002 E6 3 MOV A,R0 0003 75F00A 4 MOV B,#0AH 0006 A4 5 MUL AB 0007 08 6 INC R0 0008 26 7

18、ADD A,R0 0009 08 8 INC R0 000A A6F0 9 MOV R0,B 000C 08 10 INC R0 000D F6 11 MOV R0,A 12 END2、在以3000H为首地址的外部RAM中,存放了14个以ASCII码表示的09的数,试编写程序将它们转换成BCD码,并以压缩BCD形式存放在以2000H为首地址的外部RAM中。 1 ORG 00H 0000 903000 2 MOV DPTR,#3000H ; 原始数据首地址 0003 7807 3 MOV R0,#07 ; 循环次数 0005 7930 4 MOV R1,#30H ; 转换结果暂存区指针 0007

19、 E0 5 CH1: MOVX A,DPTR 0008 550F 6 ANL A, #00001111B 000A C4 7 SWAP A 000B F5F0 8 MOV B,A 000D A3 9 INC DPTR 000E E0 10 MOVX A,DPTR 000F 550F 11 ANL A, #00001111B 0011 45F0 12 ORL A,B 0013 F7 13 MOV R1,A 0014 09 14 INC R1 0015 A3 15 INC DPTR 0016 D8EF 16 DJNZ R0,CH1 0018 902000 17 MOV DPTR,#2000H ;

20、转换结果存储区 001B 7A07 18 MOV R2,#07H ; 结果个数 001D 7930 19 MOV R1,#30H 001F E7 20 CH2: MOV A,R1 ;3、采样的5个值分别存放在R0、R1、R2、R3、R4中,求出它们的中间值,并存放在R2中。 1 ORG 00H 0000 7805 2 MOV R0,#5 0002 7906 3 MOV R1,#6 0004 7A07 4 MOV R2,#7 0006 7B08 5 MOV R3,#8 0008 7C09 6 MOV R4,#9 000A E4 7 CLR A ; 000B C3 8 CLR C ; 000C E

21、8 9 MOV A,R0 ; 000D 29 10 ADD A,R1 ; 000E 2A 11 ADD A,R2 ; 000F 2B 12 ADD A,R3 0010 2C 13 ADD A,R4 0011 75F005 14 MOV B,#5 0014 84 15 DIV AB 0015 FA 16 MOV R2,A 0016 17 END 18 END4、以BUF1为起始地址的外部数据存储区中存放着16个单字节的无符号数,求其平均值并送入R2中。 1 ORG 00H 2 BUF1 EQU #1000H 0000 901000 3 MOV DPTR BUF1 0003 AA00 4 MOV

22、R2,0 0005 7816 5 MOV R0,#16H 0007 E0 6 SUM: MOVX A,DPTR 0008 2A 7 ADD A,R2 0009 FA 8 MOV R2,A 000A A3 9 INC DPTR 000B D8FA 10 DJNZ R0,SUM 000D 75F010 11 MOV B,#10H 0010 84 12 DIV AB 0011 FA 13 MOV R2,A 14 END5、试编写程序,将内部RAM单元中DATA1开始的20个单字节数依次与DATA2单元为起始地址的20个单字节数据进行交换。 1 DATA1 EQU #30H 2 DATA2 EQU #

23、50H 3 LEN EQU #16 4 ORG 0H 0000 7830 5 MOV R0,DATA1 0002 7950 6 MOV R1,DATA2 0004 7A10 7 MOV R2,LEN 0006 E6 8 EXC: MOV A,R0 0007 C7 9 XCH A,R1 0008 F6 10 MOV R0,A 0009 08 11 INC R0 000A 09 12 INC R1 000B DAF9 13 DJNZ R2,EXC14 END6、某场歌手赛,共有10个评委,试编写一程序,输入10个评分,去掉最高分和最低分,求平均分(均为BCD码)。 ORG 0H N EQU #5

24、BLOCK EQU #30HISELSORT: MOV R7,N DEC R7 MOV R1,BLOCKISST1: MOV R0,BLOCK MOV A,R7 MOV R6,A MOV A,R0 MOV B,AISST2: INC R1 MOV A,R1 CLR C SUBB A,B JC ISST3 MOV A,R1 MOV R2,A MOV B,R1ISST3: DJNZ R6,ISST2 MOV A,B XCH A,R1 MOV B,R2 MOV R1,B MOV R1,A DJNZ R7,ISST1 MOV R0,BLOCK MOV R0,#0 ;去掉最低分 MOV A,BLOCK

25、ADD A,#9 MOV R0,A MOV R0,#0 ;去掉最高分AD: MOV R0,BLOCK INC RO MOV R1,#8 CLR A CLR C MOV B,#0ADL: ADD A,R0 DA A MOV R2,A ADDC A,#0 MOV B,A MOV A,R2 DJNZ R1,ADL MOV R5,0 MOV R4,B MOV R3,A MOV R2,#0 MOV R1,#8 R5R4R3/R2R1 = R4R3 MOV R1,#00H MOV R2,#0FH MOV R3,#04H MOV R4,#05H MOV R5,#06H LCALL _DIV AJMP $_D

26、IV: ; CLR C MOV 30H,#0 MOV 31H,#0 MOV 32H,#0_DIV_LOOP: CLR C MOV A,R3 SUBB A,R1 MOV R3,A MOV A,R4 SUBB A,R2 MOV R4,A MOV A,R5 SUBB A,#0 MOV R5,A JC _DIV_END_INC_SHANG: CLR C MOV A,30H ADDC A,#1 MOV 30H,A MOV A,31H ADDC A,#0 MOV 31H,A MOV A,32H ADDC A,#0 MOV 32H,A LJMP _DIV_LOOP_DIV_END: CLR C MOV A,

27、R1 ADDC A,R3 MOV A,R2 ADDC A,R4 MOV R3,30H MOV R4,31H END7、编写将一个十六进制数转换为十进制数的子程序。 0000 78FE 2 MOV R0,#FEH 0002 7930 3 MOV R1,#30H 0004 E8 4 HEXBCD: MOV A,R0 0005 75F064 5 MOV B,#100 0008 84 6 DIV AB 0009 F7 7 MOV R1,A 000A 740A 8 MOV A,#10 000C C5F0 9 XCH A,B 000E 84 10 DIV AB 000F 09 11 INC R1 0010

28、 F7 12 MOV R1,A 0011 09 13 INC R1 0012 A7F0 14 MOV R1,B 15 RET8、在内部RAM的BLOCK开始的单元中有一无符号数据块,数据长度为LEN。试编程求其中最大的数并存入MAX中。MCS51 1 ORG 0H 2 LEN EQU #10 ;数据块长度 3 MAX EQU #40H 0000 7830 4 MOV R0,#30H ; BLOCK首地址 0002 790A 5 MOV R1,LEN 0004 19 6 DEC R1 ; 循环次数 0005 C3 7 CLR C 0006 E6 8 LOOP: MOV A,R0 0007 08

29、9 INC R0 0008 96 10 SUBB A,R0 0009 4002 11 JC EXCHANG 000B 8002 12 SJMP NEXT 000D 86F0 13 EXCHANG: MOV B,R0 000F C3 14 NEXT: CLR C 0010 D9F4 15 DJNZ R1,LOOP 0012 85F040 16 MOV 40H,B ; MAX单元 17 END9、试编程将内部RAM中41H43H单元中的数左移4位,移出部分送50H。 题意不清。10、在外部RAM中BLOCK开始的单元中有一数据块,数据长度为LEN,试编程统计其中的正数、负数和零的个数分别存入内部RAM的Pcount、Mcoun和

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

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