《单片机原理与接口技术C51编程张毅刚第二版本习题包括答案.docx》由会员分享,可在线阅读,更多相关《单片机原理与接口技术C51编程张毅刚第二版本习题包括答案.docx(20页珍藏版)》请在三一办公上搜索。
1、单片机原理及接口技术(C51编程)(第2版)-习题答案汇总23单片机答案第1章单片机概述思考题及力Sfi1参考答案一、填空1除了单片机这一名称之外,单片机还可祢为(或(.答;赧控制器,嵌入式控制器.2. 单片机与普通微里计算机的不同之处在于其将MHZ.答:24MHz.4. IH1.单片机已使系统结构最简化、软硬件资源利用最优化,从而大大降低()和提高().答:成本,可靠性,二、单选1 .单片机内部数抵之所以用二进制形式表示,主要是A.为了端程方便B.受器件的初理性能型制C.为了通用性D.为了提高运算数度格B2 .在家用电器中使用单片机应属于微计算机的.A.辅助设计应用B.测破、控制应用C.数位
2、计算应用D.数据处理应用答:B3 .下面的哪一项应用,不属于单片机的应用范围.A.工业捽制B.家用电卷的控制C.数据库管理D.汽车电子设备答:C三.判断对错1.STC系列卡片机是8051内核的单片机.对2. AT89S52与AT89S51相比,片内多出了4KB(TjF1.ash程序存储器、128B的RAM、1个中断源、1个定时器且具有捕捉功能).对3. 单片机是一种CPU.锵4. AT89S52单.片机是微处理器.tft5. AT89S51片内的F1.ash程序存储器可在线写入(ISP),而AT89C52则不能.对6.为AT89C51单片机设计的应用系统板,可将芯片AT89C51口接用芯片AT
3、89S51秒换,对7 .为AT89S51单片机设计的应用系统板,可招芯片AT89S51直接用芯片AT89S52替换.对8 .单片机的功能侧质干测玳和控制,而双杂的数字信号处理运算及窗速的测控功能则是DSP的长处.对笫2章AT89S51单片机片内硬件结构思考题及习遨2参考答案一、填空5 .在AT89S51单片机中,如果采用6MHz晶振,一个机器周期为C.答:2uS6 .AT89S51单片机的机器周期笠于O个时钟振荡周期,答:127 .内部RAM中.位地址为40H.88H的位.该位所在字节的字节地址分别为O和().答:28H,88H8 .片内字节地址为2AH取元最低位的位地址是():片内字节地址为
4、A8H电元的G低位的位地址为)-?:50H,A8H9 .若A中的内容为63H,那么,P标忐位的值为(),答:O10 .AT89S51单片机更位后,R4所对应的存储单元的地址为C,因上电时PSW.这时当前的工作寄存器区是()组工作寄存器区。答:04H.OOH,0)H(H.ft:OOH.1FH11 .内部RAMtp,可作为工作寄存器区的单元地址为12.通过堆栈操作实现子程序调用时,百先要把)的内容入校,以进行断点保护,调川子程序返回指令时,再进行出栈保护.把保护的断点送回到.先弹出的是原来()中的内容.答:PC,PC.PCH13.AT89S51AT89S51A片机的单片机程序存储港的*址范用及由程
5、序计数器PC是16位的,因此其寻址的范困为(PC的位数所决定的,因为)KB.答:6414AT89S51单片机见位时,P0P3U的各用脚为()电平。粹:高15. AT89S51单片机使用片外振片罂作为时钟信号时,引脚XTA1.1(),引脚XTA1.2的接法是(答:片外振荡器的输出宿号,能空16. AT89S51单片机发位时,见栈指针SP中的内容为(PC中的内容为().答:07H,0000H二、单选4.程序在运行中,当前PC的值是,A.当前正在执行指令的前一条指令的地址B.当前正在执行指令的地址,C.当前正在执行指令的下一条指令的首地址D.控制器中指令存存器的地址,答IC5.判断下列哪种说法是正确
6、的?A.PC是一个可寻址的寄存器B.单片机的主频越两,其运算速度越快,C.AT89S51单片机中的一个机港周期为1sD.特殊功能奇存器SP内存放的是堆找栈顶小元的内容,答:B三、判断对佛6 .使用AT89S51单片机且引脚EA=I时.仍可外扩64KB的程序存储器.怫2.区分片外程序存储器和片外数据存储蹲的最可靠的方法是看其位于地址范困的低端还是高端.错9 .在AT89S51单片机中.为使准双向的I/OU工作在输入方式,必须事先预巴为1.对10 .PC可以看成是程序存储涔的地址指针.对11 .AT89S51雅片机中特殊功能寄存器(SFR)使用片内RAM的郃份字节地址.对6.片内RAM的位寻址区,
7、只能供位寻址使用,而不能进行字节寻址。槽7. AT89S51中.片机共有26个特殊功能寄存器,它们的位都是可以用软件设置的,因此.都是可以位寻址的,忸8. 堆校区是单片机内部的一个特殊区域与RAM无关。错9. AT89S51单片机进入空闲模式,CPU停止工作.片内的外国电路(如中断系统、串行口和定时器)仍将继续工作.对17. AT89S51整片机不论是进入空闱模式还是掉电运行模式后.片内RAM和SFR中的内容均保外原来的状态.对18. AT89S515片机进入掉电运行模式,CPU和片内的外惬电路(如中断系统、电行口和定时器均停止工作.对19. AT89S51单片机的抻电运行模式可采用响应中断方
8、式来退出。对四、荷答6. AT89S51单片机片内都生成了哪些功能部件?答:集成了如下部件:1个CPU;128个数据存储器(RAM)单元;8KF1.ash程序存储器;4个8位可编程并行I/O11(POKP1UP211,P311:1个全双工事行11:3个16位定时SS/计数器:1AT89S51尔片机5个中断源的答:见下表定时器/计数器T1等行口0023H个看门狗定时器;一个中断系统,6个中断源,2个优先级;32个特殊功能寄存器(SFR).7. AT89S51的64KB程序存储器空间有5个单元地址对应中断入1.1.地址,请写出这些单元的入U地址及对应的中断源.表AT89S51各中断源的中断入口地址
9、中断源外部中断0定时器/计数器TO外部中断入I】J也址0003H(XX)BH0013H001BH8. 说明AT89S51单片机的EA引脚接高电平或低电平的区别.答:当EA脚为高电平时,单片机i片内程序存储涔(4K字节FIaSh)中的内容,但在PC值邮过OFFFH(即超出4K字节地址范围)时,将自动转向该外郃程序存储器内的程序;当EA脚为低电平时,单片机只对外部程序存储器的地址为0000HJFFFFH中的内容进行读操作,尔片机不理会片内的4K字节的FIaSh程序存储器,第3章C51编程用吉基础思考SS及习题3参考答案一、填空1. 与汇编语言相比,C51语言具有O、()、()、和C等优点,答:可读
10、性好,可移植性好,模块化开发与资源共享,生成的代码效率而2. C51语言头文件包括的内容有8051单片机O.以及()的说明“答:片内的外设硬件资魂相应的特殊功能寄存潺data3. C51提供了两种不同的数则存储类型。和()来访同片外数据存储区,答:ata4. C51提供了Code存储类型来访问O.答:程序存储区5. 对于SMA1.1.存储模式,所有变心都默认位于8051单片机().答:内部的数据存谛6. C51用一”和运算符来提取指针变价的。和指针变般的C。答;内容,地址二、判断对错1 .C51语言处理单片机的中断足由门的中断函数来处理的。对2 .在C51语言中,函数是一个完成一定相关功能的执
11、行代码段,它与另外两个名诃“子程序和“过程”用来描述同样的小情,对3 .在语言编程中,源目中断服务函数时需要考虑如何进行现场保护、阻断其他中断.C51返回时自动恢兔现场等处理的程序段的编写.错4 .全局变境是在某一函数中存在的变量,它只在该隐数内部有效,错5 .全局变Gt可使用StaUC关犍间进行定义,由于全局变量一直存在,占用/大量的内存单元,且加大程序的隅合性.不利于程序的移植或复用.对6 .绝对地址包含头文件absacch定义了几个宏,用来确定各类存储空间的绝对地址,对三、筒答1. C51在标准C的葩础上,扩展了哪几种数据类型?答:犷展了4种数堀类型,它们是:bit,sfr、s(r16和
12、Sbit.2. C51有哪几种数期存储类型?其中数梯类型“idata,code,xdata.pdata”各对应AT89S51单片机的加理存储空间答:C51有6种数据存储类型data、bdata.idata、xdatapdataMicode-数据存储类型idata对应片内RAM的256字节。数据存储类型8de对应程序存储区。数据存储类型Xdata对应片外64KB的RAM空间。数据存储类型Pdata对应用外RAM的256字节.3. bit与Sbit定义的位变及有什么区别?粹:bit是用来定义普通的位变量,它的值只能是二进制的。或1而Sbit定义的是特殊功能寄存潺的可寻址位,它的(ft是可以进行位寻
13、址的特殊功能寄存港的某位的绝对地址,例如PSW寄存器OV位的绝对地址0xd24.说明3种数据存储模式(1)SMA1.1.模式(2COMPAC模T式(3)1.ARGE模式之间的空别。答:3种数据存储模式之间的差别如下:(1)SMA1.1.mA-在该模式下,所有变量都默认位于8051单片机内部的数据存储服这与使用data指定存储器类型的方式一样,在此模式下,变旗访问的效率高,但是所有数据对象和堆栈必须使用内部RAM(2) COMPAC模T式.本模式下的所有变属都趺认在外部数据存储器的1页256字节)内,这与使用Pdata指定存储器类型是一样的.该存储器类型适用于变敏不超过256字节的情况,此来制是
14、由寻址方式决定的,相当于使用数据指件Ri进行寻址.与SMA1.1.模式相比,该存储模式的效率比较低.对变必访问的速也慢一些,但比1.ARGE模式快.(3) 1.ARGE模式.在1.ARGE模式下,所有变责都就认位于外部数据存储零.相当于使用数据指针DPT进R行寻址.通过数据指性访问外部数据存储涔的效率较低,特别是当变现为2字节或更多字节时,该模式要比SMA1.1.和CoMPAC产T生更多的代码.5.do-whi1.e构成的循环与WhiIe循环的区别是什么?答:(1WhUe语句.whi1.e语句的谱法形式为:whi1.(表达式)(循环体语句;反之,表达式是whi1.e循环能否继续的条件,如果表达
15、式为其,就取发执行循环体语句:则终止锵环体内的语句,whi1.e循环的特点在f,循环条件的测试在循环体的开头,要把执行近复操作,首先必须进行循环条件的测试.如果条件不成立,则循环体内的电亚操作一次也不能执行.(2) do-whi1.e谙句.dowhi1.e语句的语法形式为:do)whi1.e(表达式):循环体语句;do-whi1.e语句的特点是先执行内战的册环体语句,再“尊衣达式,如果友达式的色为非0.则继续执行循环体语句,直到我达式的值为0时结束循环.whi1.eItido-whi1.e构成的循环与whi1.e循环十分相似.它籍之间的重要区别是:循环的控制出现在循环体之前,只有当Whi1.e
16、后面衣达式的值非。时,才可能执行循环体,在doWhiIe构成的循环中,总是先执行一次做环体,然后出求表达式的值,因此无论表达式的值是。还是非0.循环体至少要被执行一次.四、编程1 .娘写C51程序,将单片机片外200OH为首地址的连续10个单元的内容,读入到片内RAM的40H49H单元中.粹:将片外200OH为首地址的连续10个单元的内容,读入到片内RAM的40H49H小元中.程序如下:xdataunsignedcharbuffer1(10_at_0x2000;dataunsignedchartuffer210_at_0x40voidmain(void)unsignedchari;for(i=
17、0;i10;i+)buffer2(i=buffer1i)2 .编写将单片机片内一组RAM玳元清0的函数,函数内不包括这组RAM单元的起始地址和单元个数,起始地址和单元个数参数应在执行函数前由主函数联伯。答:参考程序如卜丁Sdefineucharunsignedcharvoidc1.ear(uchar,addr,uchar1.enth)uchari:for(i=0;ivoidmain(void)ucharaddr32_at_0x30;uchar1nth=32;起始地址联值堆元个数状的c1.eaK)(addr,Ienth);whi1.e(1);第5堂维片机与开关键盘以及显示器件的接口设计思考题及习
18、题5考答案一、填空20 .AT89S51单片机任何一个端口要想获得较大的羯动能力,要采用(电平输出,答低21 .检测开关处于闭合状态还是打开状态,只需把开关一端接到O谕”的引脚上,另端接地,然后通过检测C来实现,答:I/O端口引脚的电平22 .“8字型的1.ED数码管如果不包括小数戊段共计O段,集一段对应一个发光二极管,有()和()两种.答:7.共阳极,共阴极23 .对于共阴极带有小数点段的数码管,显示字符6.答:方式1定时,131.072ms.)可得到到大大程?若时钟30.定时器T2有3种工作方式:(相关位进行软件设置来选择.)和(.可通过对寄存器(中的答:捕捉,R新装或(增计数或减计数),
19、波特率发生涔,T2CON31.AT89S52单片机的晶振为6MHz.若利用定时器T1的方式1定时2ms,则(TH1)(T1.1)=答:FCH,18H.二、单选1 .定时器To工作在方式3时,定时器T1.有(种工作方式。A,1种82种C.3种D.4种答:C9 .定时器TO、T1工作于方式1时,其计数器为位。A.8位B.16位C.14位D.13位答:B10 .定时沿TO、T1的GATEx=I时,其计数器是否计数的条件().A.仅取决于TRX状态B.仅取决于GATE位状态C.是由TRX和INTX两个条件来共同控制D.仅取决于INTX的状态答:C11 .定时器T2工作在自动重装我方式时,其计数器为位.
20、A.8位B.13位C.14位D.16位答:D12 .OJfitINTO引脚上的正单脉冲的宽度.特殊功能寄存器TMOD的内容应为.A.87HB.09HC.OHD.OOH答:B三、判断对错1 .下列关于TO、T1的哪些说法是i1.:确的。A.特殊功能寄存器SCoN,与定时器/计数器的控制无关.对B.特殊功能寄存器TCON.与定时器/计数器的控制无关。错C.特殊功能寄存器IE,与定时器/计数涔的控制无关,错D.特殊功能寄存器TMO.D与定时器/计数器的控制无关。错2 .定时器TO、T1对外部脓冲进行计数时,要求输入的计数脉冲的高电平或低电平的持续时间不小于1个机器处期.特殊功能寄存器SCON与定时器
21、/计数器的控制无关,错3 .定时器TO、T1.对外部引脚上的脓冲进行计数时,要求输入的计数脓冲的高电斗和低电平的持续时间均不小于2个机器周期,对四、荷答1 .定时器/计数器T1、TO的工作方式2有什么特点?适用于哪些应用场合?答:方式2为初值自动装入的8位定时器/计数潜,克服了在循环定时域循环计数应用时就存在用指令反亚装入计数初值影响定时精度的问题,3.如果系统的晶报的版率为24MHz,定时器/计数落工作在方式0、1、2下,其见大定时时间各为务少?答:品振的频率为方24MHz,机器层期为0.5PS.式0呆X定时时间方=05Vs213=0.5Vs8192=4096HS式1G大定时时间方=0.5U
22、s216=0.5Sx65536=327686S式2最大定时时间=0.5SX28=0.5SX256=128S五、端程2.桀写程序,要求使用TO,采用方式2定时,在P1.0输出周期为400uS,占空比为10:1的矩形脉冲,都;设fosc=12MHz.则机器周期为1us,设P1.0初值为0周期为400us,可定义方式2定时,计数初也为256M0.一个周期中嘶10次为MOus,在中断讣数为1和2(或任意两次计数之间)时,对P1.o求反即可.#inc1.udeSbitP1.O=PIA0;输出冏期引,Wvoidmai(XP1_0=0;TMD=0x02;TH0=2540;T1.O=THO;IE=0x82;T
23、R0=1:M:;X)unsignedcharcnt=O:H中断次数计数器,初值为0H输出初伯为0(低电平)/TO方式2定时H计40次(定时40us),计数初值为模256减40允许CPU响应中断(100OoOI0),允许TO发中断请求启动TOH无限循环等待中断voidtimer()intrrpt1using1ent+;/中断次数加1i(cnt=1cnt=2)P1_0=!P1_0;/if(cnt=1O)cnt=O:/中断次数达到中断次数为1或2时时输出引脚求反10时复位为0)答:据题意.从P1.Oift出的矩形脉冲的高低电平的时间为10:1.则高低电平的时间分别为363.63US和36.37US如
24、果系铳采用6MHz晶振的话,Tcy=2Us,因此育低电平输出取整,则约为364S和36s.参考程序如下:MAIN:WAIT:ITOP:D1.Y:ORG0000H1.JMPMAINORG1.JMPITOPMOVMOVSETBTROSETBETOSETBEASETBP1.0AJMPWAITC1.RC1.RMOVDJNZRO1D1.YMOVSETBP1.0SETBEARETIOOOBHTMOD,#02HT1.0.#4AH:定时器/计数器TO为定时方式2:定时364US初tfi赋值:用动TO,开始计数.允许TO中断1.CPUffBiEAP1.0R0,#9T1.0,#4AH;关中断:延时36S:定时36
25、4S初值赋值第8章出行门的工作原埋及应用思考趣及习眶8参考答案一、填空1、AT89S51的申行异步通信口为(单工/半双工/全双工)。答:全双工.32 .串行通信波特率的垠位是().答:bit/s33 .AT89S51的中行通信I若传送速率为每秒120-Mi,每帧10位,则波特率为()答:12004 .串行口的方式0的波特率为().答:fosc/125 .AT89S51单片机的通讯接1.用()和()两种型式.在本行通讯中.发送时要把()数据转换成()数据。接收时又需把()数据利换成()数据.答:并行,申行,并行,申行,申行,并行6 .当用小行1.1.进行串行通信时,为减小波特率误差使用的时钟短率
26、为()MHZ.答:13.7 .AT89S51单片机率行的4种工作方式中,()和()的波特率是可议的,这与定时器/计数器T1.的溢出率有关,另外两种方式的波特率是固定的。答:方式1,方式38 .帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式(),答I方式1。9 .在申行通信中,收发双方射波特率的设定应该是()的。n相同的.10 .申行口工作方式1的波特率是()。答:方式1波特率(2SMOD32)X定时器T1的溢出率二、单选1.AT89S51的串行口扩展并行I/O11时,巾行接11工作方式选择.A.方式0B.方式1C.方式2D.方式3答IA7.控制中行口工作方式的寄存器是。A.
27、TCONBPCONC.TMODD.SC0N答,D三、判断对佛1,小行口通信的第9数据位的功能可由用户定义。对2 .发送数据的第9数据位的内容是在SCoN寄存器的TB8位中预先准备好的对3 .串行通信方式2或方式3发送时,指令把TB8t的状态送入发送SBUF,K错4中行通信接收到的第9位数据送SCON寄存潺的RB8中保存,对5 .中行”方式1的波特率是可变的,遍过定时器/计数器TI的溢出率设定.对34 .用行工作方式1的波特率是固定的,为fosc/32。错35 .AT89S51单片机进行串行通信时.一定要占用一个定时器作为波特率发生5K.Ift36 .AT89S51瓶片机进行串行通讯时,定时潜方
28、式2能产生比方式1更低的波特率.错37 .串行口的发送缓冲器和接收姬冲甥只有1个单元地址,但实际上它们是两个不同的商存器。对四、简答1 .在异步串行通信中,接收方是如何知道发送方开始发送数据的?答:实质就是如何检测起始位的开始.因接收方检测到RXD端从1到0的负跳变时就启动检测器,接收的值是3次连续采样,取式中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除T扰引起的影响,以保证可靠无误的开始接受数据.2 .AT89S51单片机的申行有几种工作方式?有几种帕格式?各种工作方式的波特率如何确定?答:有4种工作方式:方式0、方式1、方式2、方式3:有3种顿格式,方式2和3具有相同的帧格式:方式0的发送和接收都以fosc/12为固定波特率,方式1的波特率=2SMOm32X定时器T1的溢出率方式2的波特率=2SMOD64fosc方式3的波特率=2SMoD/32X定时涔T1的溢出率5 .某AT89S51单片机串行U.传送数据的帧格式由1个起始位(0).7个数据位、1个偶校验和1个停止位(1组成.当该串行门每分伸传送1800个字符时,试计算出它的波特率.答:电口每秒钟传送的字符为:1800/60=30个字符/秒所以波特率为:30个字符/杪X10位/个字符=300bs