单片机原理与应用及C51程序设计第4章习题答案.doc

单片机原理与应用及C51程序设计第4章习题答案.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 4 第4章习题答案 4-2有哪里些数据类型是MCS-51系列单片机直接支持的? 答:见P89,基本类型:字符型,整型,长整型,浮点型,特殊功能寄存器; 构造类型:数组类型,结构体类型,共用体,枚举 指针类型 空类型 4-3 答:特殊功能寄存器,位类型 4-4 C51的存储类型有几种?它们分别表示的存储器区域是什么? 答:见P94页:存储器类型有:data, bdata,idata,pdata,xdata 4-5 C51中bit位与sbit位有什么区别? 答:bit是定义一个一般的位变量;而使用sbit定义可位寻址字节或是特殊功能寄存器的的位,定义时必指定其位地址,其存储空间为内部RAM中的位寻址区20H-2FH(位地址为:00H~7FH), 4-6 在C51通过绝对地址来访问的存储器有几种方式? 答:使用C51运行库中预定义宏,通过指针访问,使用C51扩展关键字_at_ 4-7 在C51中,中断函数与一般函数有什么不同? 答:见P112页:7点 4-8 按指定存储器类型和数据类型,写出下列变量的说明形式 答:(1)在data定义字符变量var11: char data var11 (2)在idata定义整型变量var12: char idata var12 (3)在xdata定义无符号字符数组var11[4]: unsigned char xdata var13[4] (4) 在 xdata定义一个指向无符号字符的指针px: unsigned char xdata* px (5)定义可寻址位变量flag: bit 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+cb-c (True) (3)!(ab) !c|| 1 (True) (4)!(a+b)+c-1b+c/2 (True) 4-10 break与continue语句的区别是什么? 答:见P110; 使用break语句可以跳出switch和循环体,提前结束循环而接着执行循环结构下面的语句 continue语句使用在循环体结构中,用于结束本次循环,跳过该语句下面尚未执行的语句,直接进行下一否执行循环的判断。 4-11用分支结构编程实现,输入”1”时显示“A”,输入”2”时显示“B”,输入”3”时显示“C”,输入”4”时显示“D” 答:#include reg52.h #include stdoi.h #define uchar unsigned char #define uint unsigned int uchar I; void main() { scanf(“%d”,i); swtch (i) { case 1: printf(“A”),break; 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 reg52.h #include stdoi.h #define uchar unsigned char #define uint unsigned int uint a,b,c; void main() { ?uint max, min, med; ? scanf(%d%d%d, a , b, c); ? if (ab bc) ? {? max=a; med=b; min=c;} ? else if (ab bc ac) ? { max=a; med=c; min=b;} ? else if (ab bc ac) ? { max=c; med=a; min=b;} ??else if (ba bc) ? { max=c; med=b; min=a;} ? else?if (ba bc ac) ? { max=b; med=a; min=c;} ? else ? { max=b; med=c; min=a;} ? p

文档评论(0)

我思故我在 + 关注
实名认证
内容提供者

部分用户下载打不开,可能是因为word版本过低,用wps打开,然后另存为一个新的,就可以用word打开了

1亿VIP精品文档

相关文档