单片机课后习题答案--胡汉才编

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.25单片机部由哪几部分电路组成?各部分电路的主要功能是什么?解:单片机部由CPU、存储器和I/O接口等电路组成。CPU的主要功能是对二进制数进行算术和逻辑运算、执行指令(从ROM中取指令,对指令译码,发各种控制信号使CPU和其他部分协调一致的工作,完成指令的功能),存储器由ROM和RAM组成,ROM的主要功能是存储单片机应用系统的程序,RAM的主要功能是存储实时数据或作为通用寄存器、堆栈、数据缓冲区。I/O接口的主要功能是负责单片机和外设、外部存储器间的通信。第二章存在的错别字问题:“振荡”写出“推荡”;“芯片”写成“蕊片”。2.3、程序状态字PSW各位的定义是什么?解:PSW的各位定义如下:Cy:进位标志位;AC:辅助进位位;F0:用户标志位;RS1、RS0:寄存器选择位;OV:溢出标志位;P:奇偶标志位;PSW1:未定义。2.4、什么叫堆栈?8031堆栈的最大容量是多少?MCS51堆栈指示器SP有多少位,作用是什么?单片机初始化后SP中的容是什么?解:堆栈:符合“先进后出”或“后进先出”存取规律的RAM区域。8031堆栈的最大容量是128B;MCS-51堆栈指针SP有8位,作用是存放栈顶(/栈低)地址;单片机初始化后(即单片机复位后)SP中的容是07H。存在的问题:1、堆栈的定义中,未答出“RAM区域”,而用了“部件”;2、只说了“单片机初始化后(即单片机复位后)SP中的容是栈底地址”,未说明具体值07H;3、8031堆栈的最大容量错成128M或256B。2.5、数据指针DPTR有多少位,作用是什么?解:数据指针DPTR有16位;作用是存放ROM或外部RAM的地址。2.7、8051片RAM容量有多少?可以分为哪几个区?各有什么特点?解:8051的片RAM容量有128B;分为三个区:工作寄存器区、位寻址区和便笺区;存在的问题:1、8051的片RAM容量错成256B。2.8、8051的特殊功能寄存器SFR有多少个?可以位寻址的有哪些?解:8051的SFR有21个,可位寻址的有11个:ACC、B、PSW、IP、P3、IE、P2、SCON、P1、TCON和P0。存在的问题:SFR有21个错成了26个;可位寻址的SFR中多了一个T2CON,个别同学甚至在T2CON用了一个“+”号。2.11、8051和片外RAM/ROM连接时,P0和P2口各用来传送什么信号?为什么P0口需要采用片外地址锁存器?解:8051和片外RAM/ROM连接时,P0口用来分时地传送片外RAM/ROM的低8位地址信号和8位数据信号,P2口用来传送片外RAM/ROM的高8位地址信号;因为P0口在访问片外RAM/ROM的一个机器周期,要先传送地址信号,后传送数据信号,所以P0口需要片外地址锁存器。存在的问题:对第二问,1、未回答;2、答成了“增加数据输入的可靠性”;3、答成了“只有P0口是真正的双向口,故它具有较大的负载能力”;4、“因P0口输出的地址不能一直保持,故在ALE下降沿被锁存,以便空中引脚去传送随后而来的片外存储器读写数据”中的“空中”应改为“空出”。2.12、8051的ALE线的作用是什么?8051不和片外RAM/ROM相连时ALE线上输出的脉冲频率是多少?可以做什么用?解:8051的ALE线用于锁存P0口输出的片外RAM/ROM的低8位地址;8051不和片外RAM/ROM相连时,ALE线上输出脉冲的频率是fosc/6(fosc是8051的时钟频率),该脉冲信号可用作外部时钟源或作为定时脉冲源使用。存在的问题:1、ALE的作用错为“ALE每次出现,CPU就进行一次取指操作”;2、有同学漏掉了“/6”。2.13、8051的线的作用是什么?和的作用是什么?解::片外ROM的选通线;:片外RAM的读选通线;:片外RAM的写选通线。存在的问题:1、、为读写控制端,漏掉“片外RAM”;2、、的作用错成“是读写数据”;3、、的作用错成“控制2#芯片”,2#芯片在哪里?2.16、复位方式下,程序计数器PC中的容是什么?这意味着什么?解:复位方式下,程序计数器PC中的容是0000H,这意味着8051在复位后,总是从0000H处执行程序(即从存储在地址为0000H的ROM单元中的指令开始执行程序)。存在的问题:“意味着的含义”没有将最重要的含义答出,如答成“意味着PC从0000H开始计数”、“从这个初始状态工作”。2.22、时钟周期、机器周期和指令周期的含义是什么?MCS51的一个机器周期包含多少个时钟周期?解:时钟周期:单片机所用时钟脉冲频率的倒数;机器周期:实现特定功能所需的时间,通常由若干时钟周期构成;指令周期:执行一条指令所需的时间,通常由若干机器周期构成;MCS-51的一个机器周期包含12个时钟周期。存在的问题:1、时钟周期的定义答成“由振荡电路产生”;“MCS-51的一个机器周期包含12个时钟周期”中的一个漏掉;还有同学答成了Z80的机器周期的构成。第三章3.3、MCS-51共有哪七种寻址方式?各有什么特点?解:MCS-51的七种寻址方式及特点如下:直接寻址:操作数的地址在指令码中;立即寻址:操作数在指令码中;寄存器寻址:操作数所在的寄存器号在指令码中;寄存器间(接寻)址:操作数地址所在的寄存器号在指令码中;变址寻址:操作数所在ROM单元的地址等于基地址加偏移量,其中基地址在PC或DPTR中,偏移量在A中;相对寻址:用于相对转移指令,指令码中含有相对地址偏移量;位寻址:操作数是8位二进制数中的某位。3.4解:1.MOVA,#40H2.MOVA,40H3.MOVA,R14.MOVA,R35.MOVCA,A+PC6.SJMPLOOP立即寻址,将立即数40H送累加器A;直接寻址,将地址为40H的部RAM单元的容送累加器A;寄存器间址,将地址为R1的值的部RAM单元的容送累加器A;寄存器寻址,将寄存器R3的值送累加器A;变址寻址,将地址为(A+PC)的ROM单元的容送累加器A;相对寻址,将(PC+LOOP)送PC。3.5、部RAM的00H单元可以有哪几种寻址方式?特殊功能寄存器中的操作数有几种寻址方式?请举例说明。解:寻址部RAM00H单元的寻址方式有:直接寻址,如MOVA,00H;寄存器寻址,如:在PSW中的RS1=0、RS0=0时,MOVA,R0;寄存器间址,如:在PSW中的RS1=0、RS0=0、R1=0时,MOVA,R1;SFR的寻址方式有:直接寻址,如MOV20H,ACC或MOV20H,0E0H中的源操作数;寄存器寻址(只适用于A、B),如MOV20H,A中的源操作数;位寻址,如SETBACC.7。3.13、试问如下程序执行后累加器A和PSW中的容是什么?1.MOVA,#0FEH2.MOVA,#92HADDA,#0FEHADDA,#0A4H解:A=FCH,PSW=C0H;A=36H,PSW=84H。3.20、1.使20H单元中数的高两位变为0,其余位不变2.使20H单元中数的高两位变为1,其余位不变3.使20H单元中数的高两位变反,其余位不变4.使20H单元中数的所有位变反。解:ANL20H,#3FH;ORL20H,#0C0H;XRL20H,#0C0H;XRL20H,#0FFH;3.26、已知SP=70H,MA=2000H,SUBPR=4046H.试问如下三种程序中哪些是正确的,为什么?哪些程序最好,为什么?若SUBPR=2060H,则哪一个程序最好,为什么?解:若SP=70H,MA=2000H,SUBPR=4060H,则:程序①错误,因为MA和SUBR间的距离超过2KB;程序②、③都正确,但程序③更好,因为程序③的字节数少、速度快且结构清晰。若SP=70H,MA=2000H,SUBPR=2060H,则:程序②错误,程序①、③正确,但程序①最好,因为程序①的字节数少且能生成浮动代码。第四章4.2、在汇编语言程序设计中,为什么要采用标号来表示地址?标号的构成原则是什么?使用标号有什么限制?注释段起什么作用?解:用标号表示指令的地址是便于在转移指令中书写转移到的指令位置,避免手工计算偏移量或指令的实际地址。标号的构成原则:以大写英文字母开头的,由英文字母、数字构成的长度不超过8的符号串。但应注意汇编语言的保留字如MOV、A、END等不能用作标号。注释段的作用是解释程序、程序段或指令的功能,增加程序的易读性,汇编时不产生机器码。4.3、MCS51汇编语言有哪几条常用伪指令?各起什么作用?解:常用的伪指令有8条:定义字符名称的EQU、DATA;定义位地址的BIT;定义字节、字、预留存储空间的DB、DW、DS;定义存储起始地址的ORG;指示源程序结束的END。4.25、设晶振频率为6MHZ,试编写能延时20ms的子程序。解:程序为:DELAY20MS:MOVR7,#49;1次×1个机器周期/次DELAY2:MOVR6,#100;49次×1个机器周期/次DELAY1:DJNZR6,DELAY1;49×100次×2个机器周期/次NOP;49次×1个机器周期/次DJNZR7,DELAY2;49次×2个机器周期/次NOP;1次×1个机器周期/次RET;1次×2个机器周期/次;该程序执行需要的时间:(1+49+9800+49+98+1+2)=10000个机器周期。第6章作业参考答案6.2什么叫中断源?MCS51有哪些中断源?各有什么特点?解:中断源:引起中断的原因;MCS-51的中断源有:外部中断源、定时器/计数器溢出中断源、串行口中断源。6.48031的5个中断标志位代号是什么?位地址是什么?他们在什么情况下被置位和复位?解:8031的5个中断标志位代号分别是IE0、IE1、TF0、TF1、TI/RI;位地址分别是89H、8BH、8DH、8FH、99H/98H;它们在有相应的中断请求时置位;IE0、IE1、TF0、TF1在相应的中断被响应后自动复位,TI/RI须在中断服务程序中由软件复位。6.5中断允许寄存器IE各位定义是什么?请写出允许T1定时器溢出中断的指令?解:IE各位的定义如下:D7D6D5D4D3D2D1D0EAESET1EX1ET0EX0⑴EX0(IE.0)——外部中断0中断允许位。⑵ET0(IE.1)——T0中断允许位。⑶EX1(IE.2)——外部中断1中断允许位。⑷ET1(IE.3)——T1中断允许位。⑸ES(IE.4)——串行口中断允许位。⑹EA(IE.7)——CPU中断允许位。当EA=1,允许所有中断开放,总允许后,各中断的允许或禁止由各中断源的中断允许控制位进行设置;当EA=0时,屏蔽所有中断。允许T1定时器溢出中断的指令为:1)、采用字节操作指令:MOVIE,#88H2)、采用位操作指令:SETBEASETBET16.6试写出设定和上的中断请求为高优先级和允许它们中断的程序。此时,若和引脚上同时有中断请求信号输入,试问MCS51先响应哪个引脚上的中断请求?为什么?解:程序为:SETBPX0SETBPX1SETBEASETBEXOSETBEX1若、引脚上同时有中断请求,则MCS-51先响应引脚上的中断请求,因为MCS-51部规定:的优先级高于。6.7MCS51响应中断是有条件的,请说出这些条件是什么?中断响应的全过程如何?解:MCS-51响应中断的条件为:P211;中断响应的过程为:1、先将程序计数器PC的容压入堆栈进行保护,先低位地址,后高位地址,同时堆栈指针SP加2;2、关闭中断,以防在响应中断期间受其他中断的干扰;3、将对应中断源的中断入口地址装入PC,去执行中断服务程序。6.8写出并记住8031五级中断的入口地址。8031响应中断的最短时间是多少?解:INT0、T0、INT1、T1、串行口中断的入口地址分别为:0003H、000BH、0013H、001BH、0023H;8031响应中断的最短时间为3个机器周期。6.9在MCS51中,哪些中断可以随着中断被响应而自动撤除?哪些中断需要用户来撤除?撤除的方法是什么?解:MCS-51中,定时器/计数器溢出中断、边沿触发方式的外部中断可以随着中断被响应而自动撤除;电平触发方式的外部中

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功