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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机原理与应用及C51程序设计杨加国主编完整版答案.docx

1、单片机原理与应用及C51程序设计杨加国主编完整版答案单片机原理与应用及C51程序设计-杨加国主编-完整版答案单片机原理与应用及C51程序设计第一章第二章第三章1在MCS-51单片机中,寻址方式有几种?其中对片内RAM可以用哪几种寻址方式?对片外RAM可以用哪几种寻址方式?答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。片外RAM寻址有:寄存器间接寻址方式。2在对片外RAM单元寻

2、址中,用Ri间接寻址与用DPTR间接寻址有什么区别?答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针间接访问可访问整个64K字节。3在位处理中,位地址的表示方式有哪几种?答:1直接位地址(00H0FFH)。例如:20H2字节地址带位号。例如:20H.3表示20H单元的3位。3特殊功能寄存器名带位号。例如:P0.1表示P0口的1位。4位符号地址。例如:TR0是定时/计数器T0的启动位。4写出完成下列操作的指令。(1)R0的内容送到R1中。 MOV A,R0 MOV R1,A(2)片内RAM的20H单元内容送到片内RAM的40H单元中。 MOV 40H,20

3、H(3)片内RAM的30H单元内容送到片外RAM的50H单元中。 MOV A,30H MOV R0,#50H MOVX R0,A(4)片内RAM的50H单元内容送到片外RAM的3000H单元中。 MOV A,50H MOV DPTR,#3000H MOVX DPTR,A(5)片外RAM的2000H单元内容送到片内RAM的20H单元中。 MOV DPTR,#2000H MOVX A,DPTR MOV 20H,A(6)片外RAM的1000H单元内容送到片外RAM的4000H单元中。 MOV DPTR,#1000H MOVX A,DPTR MOV DPTR,#4000HMOV DPTR,A(7)RO

4、M的1000H单元内容送到片内RAM的50H单元中。 MOV A,#0 MOV DPTR,#1000H MOVC A,A+DPTR MOV 50H,A(8)ROM的1000H单元内容送到片外RAM的1000H单元中。 MOV A,#0 MOV DPTR,#1000H MOVC A,A+DPTR MOVX DPTR,A5区分下列指令有什么不同?(1)MOV A,20H和MOV A,#20H 答:前者源操作数是直接寻址,后者源操作数立即寻址。(2)MOV A,R1和MOVX A,R1 答:前者源操作数是访问片内数据存储器,后者源操作数访问片外数据存储器低256字节。(3)MOV A,R1和MOV

5、A,R1 答:前者源操作数是寄存器寻址,后者源操作数寄存器间接寻址。(4)MOVX A,R1和MOVX A,DPTR 答:前者源操作数是访问片外数据存储器低256字节,后者源操作数访问片外数据存储器整个64K字节。(5)MOVX A,DPTR和MOVC A,A+DPTR 答:前者源操作数是访问片外数据存储器,后者源操作数访问程序数据存储器。6设片内RAM的(20H)=40H,(40H)=10H,(10H)=50H,(P1)=0CAH。分析下列指令执行后片内RAM的20H、40H、10H单元以及P1、P2中的内容。MOV R0,#20H ;R0=20HMOV A,R0 ;A=40HMOV R1,

6、A ;R1=40HMOV A,R1 ;A=10HMOV R0,P1 ;(40H)=0CAHMOV P2,P1 ;P2=0CAHMOV 10H,A ;(10H)=10HMOV 20H,10H ;(20H)=10H结果:(20H)=10H、(10H)=10H、(40H)=0CAH、P2=0CAH和P1=0CAH7已知(A)=02H,(R1)=7FH,(DPTR)=2FFCH,片内RAM(7FH)=70H,片外RAM(2FFEH)=11H,ROM(2FFEH)=64H,试分别写出以下各条指令执行后目标单元的内容。(1)MOV A,R1 结果:累加器A等于70H(2)MOVX DPTR,A 结果:片外

7、RAM(2FFCH)单元等于02H(3)MOVC A,A+DPTR 结果: 累加器A等于64H(4)XCHD A,R1 结果:累加器A等于00H,片内RAM(7FH)单元等于72H8已知:(A)=78H,(R1)=78H,(B)=04H,CY=1,片内RAM(78H)=0DDH,(80H)=6CH,试分别写出下列指令执行后目标单元的结果和相应标志位的值。(1)ADD A,R1 ;累加器A等于55H,CY等于1(2)SUBB A,#77H ;累加器A等于00H,CY等于0(3)MUL AB ;累加器A等于E0H,B寄存器等于01H,CY等于1,OV等于0(4)DIV AB ;累加器A等于1EH,

8、B寄存器等于00H,CY、OV等于0(5)ANL 78H,#78H ;片内RAM(78H)单元等于58H(6)ORL A,#0FH ;累加器A等于7FH(7)XRL 80H,A ;片内RAM(80H)等于14H9设(A)=83H,(R0)=17H,(17H)=34H,分析当执行完下面指令段后累加器A、R0、17H单元的内容。ANL A,#17H ;A=03HORL 17H,A ;(17H)=37HXRL A,R0 ;A=34HCPL A ;A=CBH结果:A=CBH,(R0)=17H,(17H)=37H10写出完成下列要求的指令。(1)累加器A的低2位清零,其余位不变。 ANL A,#1111

9、1100B(2)累加器A的高2位置“1”,其余位不变。 ORL A,#11000000B(3)累加器的高4位取反,其余位不变。 XRL A,#11110000B(4)累加器第0位、2位、4位、6位取反,其余位不变。 XRL A,#01010101B11说明LJMP指令与AJMP指令的区别? 答:LJMP指令后面提供的是16位目标地址,所以可以转移到64KB程序存储器的任意位置,缺点是:执行时间长,字节数多。 AJMP指令后带的是11位直接地址,执行时,先将程序指针PC的值加2(该指令长度为2字节),然后把指令中的11位地址addr11送给程序指针PC的低11位,而程序指针的高5位不变,只能在当

10、前2K范围内转移。12设当前指令CJNE A,#12H,10H的地址是0FFEH,若累加器A的值为10H,则该指令执行后的PC值为多少?若累加器A的值为12H呢? 答:指令执行后的PC值为1011H,若累加器A的值为12H,则指令执行后的PC值为1001H。13用位处理指令实现P1.4=P1.0(P1.1P1.2)/P1.3的逻辑功能。 程序: MOV C,P1.1 ORL C,P1.2 ANL C,P1.0 ORL C,/P1.3 MOV P1.4,C14下列程序段汇编后,从1000H单元开始的单元内容是什么?ORG 1000HTAB: DB 12H,34HDS 3DW 5567H,87H

11、答:(1000H)=12H,(1001H)=34H,(1002H)=00H,(1003H)=00,(1004H)=00,(1005H)=67H,(1006H)=55H,(1007H)=87H,(1008H)=00H15试编一段程序,将片内RAM的20H、21H、22H单元的内容依次存入片外RAM的20H、21H、22H中。程序:MOV R0,#20HMOV R2,#03HLOOP:MOV A,R0 MOVX R0,A INC R0 DJNZ R2,LOOP SJMP $16编程实现将片外RAM的2000H2030H单元的内容,全部搬到片内RAM的20H单元开始位置,并将源位置清零。程序:MOV

12、 R0,#20HMOV DPTR,#2000HMOV R2,#31HLOOP: MOVX A,DPTR MOV R0,A MOV A,#00 MOVX DPTR,A INC DPTRINC R0 DJNZ R2,LOOP SJMP $17编程将片外RAM的1000H单元开始的100个字节数据相加,结果放于R7R6中。程序:MOV DPTR,#1000HMOV R2,#100MOV R7,#00MOV R6,#00LOOP: MOVX A,DPTR ADD A,R6 MOV R6,A MOV A,R7 ADDC A,#0 MOV R7,A INC DPTR DJNZ R2,LOOP SJMP $

13、18编程实现R4R3R2,结果放于R7R6R5中。程序:ORG 0100HMUL1:MOV A,R2MOV B,R3MUL AB ;R2R3,结果的低字节直接存入积的R5MOV R5,A ;结果的高字节存入R6中暂存起来MOV R6,BMUL2:MOV A,R2MOV B,R4MUL AB ;R2R4,结果的低字节与R6相加后,再存入R6中ADD A,R6MOV R6,AMOV A,B ;结果的高字节加上进位位后存入R7中ADDC A,#00MOV R7,ASJMP $19编程实现把片内RAM的20H单元的0位、1位,21H单元的2位、3位,22H单元的4位、5位,23H单元的6位、7位,按原

14、位置关系拼装在一起放于R2中。程序: MOV C,20H.0 MOV A.0,C MOV C,20H.1 MOV A.1,C MOV C,21H.2 MOV A.2,C MOV C,21H.3 MOV A.3,C MOV C,22H.4 MOV A.4,C MOV C,22H.5 MOV A.5,C MOV C,23H.6 MOV A.6,C MOV C,23H.7 MOV A.7,C MOV R2,A20用查表的方法实现一位十六进制数转换成ASCII。 程序:(设一位十六进制数放在R2中,轮换的ASCII也放于R2中) C16STASC:MOV DPTR,#TAB MOV A,R2 MOVC

15、 A,A+DPTR MOV R2,A RET TAB:DB 30H,31H,32H,33H,34H,35H,36H,37HDB 38H,391H,41H,42H,43H,44H,45H,46H21编程统计从片外RAM2000H开始的100个单元中“0”的个数放于R2中。程序:MOV DPTR,#2000HMOV R3,#100MOV R2,#00LOOP: MOVX A,DPTR JNZ NEXT INC R2NEXT:INC DPTR DJNZ R3,LOOP SJMP $第四章4-2有哪里些数据类型是MCS-51系列单片机直接支持的?答:见P89,基本类型:字符型,整型,长整型,浮点型,特

16、殊功能寄存器; 构造类型:数组类型,结构体类型,共用体,枚举 指针类型 空类型4-3 C51特有的数据结构类型有哪些? 答:特殊功能寄存器,位类型4-4 C51的存储类型有几种?它们分别表示的存储器区域是什么?答:见P94页:存储器类型有:data, bdata,idata,pdata,xdata4-5 C51中bit位与sbit位有什么区别? 答:bit是定义一个一般的位变量;而使用sbit定义可位寻址字节或是特殊功能寄存器的的位,定义时必指定其位地址,其存储空间为内部RAM中的位寻址区20H-2FH(位地址为:00H7FH),4-6 在C51通过绝对地址来访问的存储器有几种方式?答:使用C

17、51运行库中预定义宏,通过指针访问,使用C51扩展关键字_at_4-7 在C51中,中断函数与一般函数有什么不同? 答:见P112页:7点4-8 按指定存储器类型和数据类型,写出下列变量的说明形式答:(1)在data定义字符变量var11: char data var11 (2)在idata定义整型变量var12: char idata var12 (3)在xdata定义无符号字符数组var114: unsigned char xdata var134 (4) 在 xdata定义一个指向无符号字符的指针px: unsigned char xdata* px (5)定义可寻址位变量flag: b

18、it flag;(6)定义特殊功能寄存器变量p3: sfr p3=0xb0(7) 定义特殊功能寄存器变量SCON:sfr SCON = 0x98(8)定义16位特殊功能寄存器变量T0:sfr16 T0=0x8a (无法真正与实际相匹配)4-9 设a=3,b=4,c=5,写出下列关系表达式或逻辑表达式的结果答: (1) a+bc & b=c (False) (2) a|b+c&b-c (True) (3)!(ab) & !c| 1 (True)(4)!(a+b)+c-1&b+c/2 (True)4-10 break与continue语句的区别是什么?答:见P110; 使用break语句可以跳出s

19、witch和循环体,提前结束循环而接着执行循环结构下面的语句continue语句使用在循环体结构中,用于结束本次循环,跳过该语句下面尚未执行的语句,直接进行下一否执行循环的判断。4-11用分支结构编程实现,输入”1”时显示“A”,输入”2”时显示“B”,输入”3”时显示“C”,输入”4”时显示“D”,输入”5”时结束。 答:#include #include #define uchar unsigned char#define uint unsigned intuchar I;void main()scanf(“%d”,&i);swtch (i)case 1: printf(“A”),brea

20、k;case 2: printf(“B”),break;case 3: printf(“C”),break;case 4: printf(“D”),break;case 5: break; default: printf(“Error!”);While(1); 4-12 输入3无符号数据,要求按由大到小的顺序输出。解:#include #include #define uchar unsigned char#define uint unsigned intuint a,b,c;void main() uint max, min, med; scanf(%d%d%d, &a , &b, &c);

21、 if (ab & bc) max=a; med=b; min=c; else if (ab & bc) max=a; med=c; min=b; else if (ab & bc & aa & ba & bc & ac) max=b; med=a; min=c; else max=b; med=c; min=a; printf(%d%d%dn, max, med, min);4-13 用3种循环结构编写程序实现输出1-10的平方和解:#include #include #define uchar unsigned char#define uint unsigned intuint sum=0

22、;void main uchar i,Square; for (i=1;i=10;i+) sum = sum +i*i;printf(”sum=%d,”sum);i=1;while (i10)printf(”sum=%d,”sum);4-14 对一个5个元素的无符号字符数组按由大到小的顺序输出解:#include #include #define uchar unsigned char#define uint unsigned intuint i, n=5, j, m;uint a=210,108,65,49,72;void main()for (i=1; in; i+)for (j=0; j

23、n-i; j+)if (ajaj+1)m=aj;aj=aj+1;aj+1=m;printf(nThe sorted integers:nn);for (i=0; in; i+)printf(%6d,ai); 4-15 用指针实现输入设备个无符号字符数据按由大到小的顺序输出。#include #include #define uchar unsigned char#define uint unsigned int uint i, n=5, j, m; uint a=210,108,65,49,72; uint *p;void main() p=a; for (i=1;in;i+) for (j=

24、0;jn-i;j+) if (*(p+j)*(p+j+1) m=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=m; printf(nThe sorted integers:nn); for (i=0; in; i+) printf(%6d,ai); 第六章1. 何为“准双向I/O接口”?在MCS-51单片机的四个并口中,哪些是“准双向I/O接口”?答:准双向I/O接口是能实现输入输出功能,但在使用时只能从输入和输出中选择一个。MCS-51单片机的四个并口中P1、P2、P3是准双向I/O接口。2. 80C51单片机内部有几个定时/计数器?它们由哪些功能寄存器组成?怎样实现定

25、时功能和计数功能?答:80C51单片机内部有两个16位的可编程定时/计数器,由TH0,TL0,TH1,TL1,TMOD和TCON功能寄存器组成。通过TMOD中的C/T位选择对机器周期计数实现计数功能,选择对外部脉冲计数实现计数功能。3. 定时/计数器T0有几种工作方式?各自的特点是什么?答:有四种工作方式,特点见下表:M1M0工作方式方式说明00013位定时/计数器01116位定时/计数器1028位自动重置定时/计数器113两个8位定时/计数器(只有T0有)4. 定时/计数器的四种工作方式各自的计数范围是多少?如果要计10个单位,不同的方式初值应为多少?答:有四种方式。方式0计数范围:1819

26、2;方式1计数范围:165536;方式2计数范围:1256;方式3计数范围:1256。 如果计10个单位,方式0初值为:8192-10=8182;方式1初值为:65536-10=65526;方式2初值为:256-10=246;方式2初值为:256-10=246。5. 设振荡频率为12MHz,如果用定时/计数器T0产生周期为100ms的方波,可以选择哪几种方式,其初值分别设为多少?答:只能选择方式1,初值为65536-50000=15536。6. 何为同步通信?何为异步通信?各自的特点是什么?答:异步通信方式的特点是数据在线路上传送时是以一个字符(字节)为单位,未传送时线路处于空闲状态,空闲线路

27、约定为高电平“1”。特点是对发送时钟和接收时钟的要求相对不高,线路简单,但传送速度较慢。同步通信方式的特点是数据在线路上传送时以字符块为单位,一次传送多个字符,传送时须在前面加上一个或两个同步字符,后面加上校验字符。特点是对发送时钟和接收时钟要求较高,往往用同一个时钟源控制,控制线路复杂,传送速度快。7. 单工、半双工和全双工有什么区别?答:单工方式只有一根数据线,信息只能单向传送;半双工方式也只有一根数据线,但信息可以分时双向传送;全双工方式有两根数据线,在同一个时刻能够实现数据双向传送。8. 设某异步通信接口,每帧信息格式为10位,当接口每秒传送1000个字符时,其波特率为多少?答:100

28、00波特9. 串行口数据寄存器SBUF有什么特点?答:发送数据寄存器和接收数据寄存器合起用一个特殊功能寄存器SBUF(串行口数据寄存器),执行MOV SBUF,A发送时为发送数据寄存器,执行MOV A, SBUF接收时为接收数据寄存器。10. MCS-51单片机串行口有几种工作方式?各自特点是什么?答:有四种工作方式,分别是方式0、方式1、方式2和方式3。其中:方式0,称为同步移位寄存器方式,一般用于外接移位寄存器芯片扩展I/O接口。方式1,称为8位的异步通信方式,通常用于双机通信。方式2和方式3,称为9位的异步通信方式,通常用于多机通信。11. 说明SM2在方式2和方式3对数据接收有何影响。答:通过SM2对方式2和方式3数据接收进行控制, SM2=1,那么只有接收的第9位为“1”才接收有效。如SM2=0,接收的第9位无论为1还是0都接收有效。12. 怎样来实现利用串行口扩展并行输入/输出口?答:利用串行口在方式0时,当外接一个串入并出的移位寄存器,就可以扩展并行输出口;当外接一个并

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

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