第4章单片机原理课后答案.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章单片机原理课后答案

习 题 1. C51特有的数据类型有哪些? 答:C51特有的数据类型有位型bit、特殊位型sbit、8位特殊功能寄存器型sfr和16位特殊功能寄存器型sfr16。 2. C51中的存储器类型有几种,它们分别表示的存储器区域是什么? 答:C51中的存储器类型有6种,分别表示的存储器区域是: data:直接寻址的片内RAM低128B,访问速度快 bdata:片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问 idata:间接寻址访问的片内RAM,允许访问全部片内RAM pdata:用Ri间接访问的片外RAM低256B xdata:用DPTR间接访问的片外RAM,允许访问全部64KB片外RAM code:程序存储器ROM?64KB空间 3. 在C51中,bit位与sbit位有什么区别? 答:bit位类型符用于定义一般的位变量,定义的位变量位于片内数据存储器的位寻址区。定义时不能指定地址,只能由编译器自动分配。 sbit位类型符用于定义位地址确定的位变量,定义的位变量可以在片内数据存储器位寻址区,也可为特殊功能寄存器中的可位寻址位。定义时必须指明其位地址,可以是位直接地址,也可以是可位寻址的变量带位号,还可以是可位寻址的特殊功能寄存器变量带位号。 4. 在C51中,通过绝对地址来访问的存储器有几种? 答:绝对地址访问形式有三种:宏定义、指针和关键字“_at_”。 5. 在C51中,中断函数与一般函数有什么不同? 答:中断函数是C51的一个重要特点,C51允许用户创建中断函数。中断函数用interrupt m修饰符, m的取值为0~31,对应的中断情况如下: 0——外部中断0 1——定时/计数器T0 2——外部中断1 3——定时/计数器T1 4——串行口中断 5——定时/计数器T2 中断函数需要注意如下几点。 (1) 中断函数不能进行参数传递 (2) 中断函数没有返回值 (3) 在任何情况下都不能直接调用中断函数 (4) 如果在中断函数中调用了其他函数,则被调用函数所使用的寄存器必须与中断函数相同 (5) C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容 (6) C51编译器从绝对地址8m+3处产生一个中断向量 (7) 中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明 6. 按给定的存储类型和数据类型,写出下列变量的说明形式。 (1) 在data区定义字符变量val1。 char data varl; (2) 在idata区定义整型变量val2。 int idata var2; (3) 在xdata区定义无符号字符型数组val3[4]。 unsigned char xdata val3[4]; (4) 在xdata区定义一个指向char类型的指针px。 char xdata *px; (5) 定义可寻址位变量flag。 bit fllag; (6) 定义特殊功能寄存器变量P3。 sfr P3=0xb0; (7) 定义特殊功能寄存器变量SCON。 sfr SCON=0x98; (8) 定义16位的特殊功能寄存器T0。 sfr16 T0=0x8a; 7. 下列程序段汇编后,从2000H单元开始的单元内容是什么? ?ORG 2000H TAB:DB 01H,34H,’a’,’C’ ?DW 5567H,87H (2000H)=01H; (2001H)=34H; (2002H)=61H; (2003H)=43H; (2004H)=55H; (2005H)=67H; (2006H)=00H; (2007H)=87H; 8. 编程实现将片外RAM的20H~30H单元的内容,全部移到片内RAM的20H单元的开始位置,并将原位置清零。 程序: MOV R0,#20H MOV DPTR,#20H MOV R2,#11H LOOP: MOVX A,@DPTR MOV @R0,A MOV A,#00 MOVX @DPTR,A INC DPTR INC R0 DJNZ R2,LOOP SJMP $ 9. 编程将片外RAM的1000H单元开始的50个字节的数据相加,结果存放于R7R6中。 MOV DPTR,#1000H MOV R2,#50 MOV R7,#00 MOV R6,#00 LOOP: MOVX A,@DPTR ADD A,R6 MOV R6,A MOV A,R7 ADDC A,#0 MOV R7,A INC DPTR DJNZ R2,LOOP SJMP $ 10. 编程实现R4R3(R2,结果存放于R7R6R5中。 程序: ORG 0100H MUL1:MOV A,R2 MOV B,R3 MUL AB ;R2

您可能关注的文档

文档评论(0)

almm118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档