单片微型计算机原理与接口技术_髙锋版课后答案第一章略第二章【单片机的基本结构】思考与练习题解析【2-1】8()C51单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的最主要功能是什么?【答】80C51单片机在片内主要包含中央处理器CPU(算术逻辑单元ALU及控制器等)、只读存储器ROM、读/写存储器RAM、定时器/计数器、并行I/O口Po~P3、串行口、中断系统以及定时控制逻辑电路等,各部分通过内部总线相连。1.中央处理器(CPU)单片机中的中央处理器和通用微处理器基本相同,是单片机的最核心部分,主要完成运算和控制功能,又增设了“面向控制”的处理功能,增强了实时性。80C51的CPU是一个字长为8位的中央处理单元。2.内部程序存储器根据内部是否带有程序存储器而形成三种型号:内部没有程序存储器的称为80C31;内部带ROM的称为80c51,80c51共有4KB掩膜ROM;内部以EPROM代替RoM的称为87C51。程序存储器用于存放程序和表格、原始数据等。3.内部数据存储器(RAM)在单片机中,用读/写存储器(RAM)来存储程序在运行期间的工作变量和数据。80C51中共有256个RAM单元。4.I/O口单片机提供了功能强、使用灵活的I/O引脚,用于检测与控制。有些I/O引脚还具有多种功能,比如可以作为数据总线的数据线、地址总线的地址线或控制总线的控制线等。有的单片机I/0引脚的驱动能力增大。5.串行I/O口目前高档8位单片机均设置了全双工串行I/0口,用以实现与某些终端设备进行串行通信,或与一些特殊功能的器件相连的能力,甚至用多个单片机相连构成多机系统。有些型号的单片机内部还包含两个串行I/O口。6·定时器/计数器80c51单片机内部共有两个16位定时器/计数器,80C52则有3个16位定时器/计数器。定时器/计数器可以编程实现定时和计数功能。7.中断系统80C51单片机的中断功能较强,具有内、外共5个中断源,具有两个中断优先级。8.定时电路及元件单片机内部设有定时电路,只需外接振荡元件。近年来有些单片机将振荡元件也集成到芯片内部。单片机整个工作是在时钟信号的驱动下,按照严格的时序有规律地一个节拍一个节拍地执行各种操作。【2-2】80C51单片机引脚有哪些第二功能?【答】80C51单片机的P0、P2和P3引脚都具有第二功能。第一功能第二变异功能P0.0~P0.7地址总线Ao~A7/数据总线D0~D7P2.0~P2.7地址总线A8~A15P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0外部中断0)P3.3IINT1(外部中断1)P3.4TO(定时器/计数器0的外部输入)P3.5T1(定时器/计数器0的外部输出)P3.6WR(外部数据存储器或I/O的写选通)P3.7RD外部数据存储器或I/O的读选通)【2-3】程序计数器PC和数据指针DPTR有哪些异同?【答】程序计数器PC中存放的是下一条将要从程序存储器中取出的指令的地址。DPTR是数据指针,在访问外部数据存储器或I/O时,作为地址使用;在访问程序存储器时,作为基址寄存器。①PC和DPTR都是与地址有关的16位寄存器。其中PC与程序存储器的地址有关,而DPTR与数据存储器或I/O的端口地址有关。作为地址寄存器使用时,PC与DPTR都是通过P0和P2口输出的。PC的输出与ALE及PSEN信号有关,DPTR的输出则与ALE、WR和RD信号有关。②PC只能作为16位寄存器。PC是不可访问的,它不属于特殊功能寄存器,有自己独特的变化方式。DPTR可以作为16位寄存器,也可以作为两个8位寄存器DPL和DPH。DPTR是可以访问的,DPL和DPH都位于特殊功能寄存器区中。【2—4】80C51单片机的存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间?访问片内RAM和片外RAM的指令格式有何区别?【答】80C5l单片机采用哈佛(Har—yard)结构,即将程序存储器和数据存储器截然分开,分别进行寻址。不仅在片内驻留一定容量的程序存储器和数据存储器及众多的特殊功能寄存器,而且还具有较强的外部存储器扩展能力,扩展的程序存储器和数据存储器寻址范围都可达64KB。1.在物理上设有4个存储器空间·片内程序存储器;·片外程序存储器;·片内数据存储器;.·片外数据存储器。2.在逻辑上设有3个存储器地址空间�片内、片外统一的64KB程序存储器地址空间。�片内256字节(80C52为384字节)数据存储器地址空间。片内数据存储器空间在物理上又包含两部分:�对于80C51型单片机,0~127字节为片内数据存储器空间;128~255字节为特殊功能寄存器(SFR)空间(实际仅占用了20多个字节)。�对于80C52型单片机,O~127字节为片内数据存储器空间;128~255字节共128个字节是数据存储器和特殊功能寄存器地址重叠空间。片外64KB的数据存储器地址空间。在访问3个不同的逻辑空间时,应采用不同形式的指令,以产生不同存储空间的选通信号。访问片内RAM采用MOV指令,访问片外RAM则一定要采用MOVX指令,因为MOVX指令会产生控制信号RD或WR,用来访问片外RAM。访问程序存储器地址空间,则应采用MOVC指令。【2—5】80C51单片机的EA信号有什么功能?在使用80C51时,EA信号引脚应如何处理?在使用80C31时,EA信号引脚应如何处理?【答】80C51单片机的EA信号被称为“片外程序存储器访问允许信号”。CPU访问片内还是片外程序存储器,可由EA引脚所接的电平来确定:�EA引脚接高电平时,程序从片内程序存储器地址为0000H开始执行,即访问片内存储器;当PC值超出片内ROM容量时,程序会自动转向片外程序存储器空间执行。片内和片外的程序存储器地址空间是连续的。�EA引脚接低电平时,迫使系统全部执行片外程序存储器0000H开始存放的程序。对于有片内ROM的80C51/87C51单片机,应将EA引脚接高电平。在使用80C31单片机时,EA信号引脚应接低电平,即此时程序存储器全部为外部扩展。【2—6】80C51单片机片内RAM低128个存储单元划分为哪3个主要部分?各部分主要功能是什么?【答】80C51片内RAM的低128个存储单元划分为3个主要部分:·寄存器区。共4组寄存器,每组8个存储单元,各组以R0~R7作为单元编号。常用于保存操作数及中间结果等。:R0~R7也称为“通用工作寄存器”,占用00H~1FH共32个单元地址。·位寻址区。单元地址为20H~2FH,既可作为一般RAM单元使用,按字节进行操作,也可对单元中的每一位进行位操作。因此,称为“位寻址区”。寻址区共有16个RAM单元,共计128位,位地址为OOH~7FH。·用户RAM区。在内部RAM低128单元中,除去前面两个区,剩下80个单元,单元地址为30H~7FH。在用户RAM区内可以设置堆栈区。【2—7】程序存储器的哪些单元被保留用于特定场合?【答】80C51单片机复位后,程序计数器PC的地址为0000H,所以系统从0000H单元开始取指,并执行程序。0000H是系统的启动地址,一般在该单元设置一条绝对转移指令,使之转向用户主程序处执行。0003H~002DH单元被保留用于6个中断源的中断服务程序的入口地址,故有以下7个特定地址被保留:复位0000H外部中断O0003H计时器TO溢出000BH外部中断10013H计时器T1溢出001BH串行口中断0023H计时器T2/T2EX002BH(仅对80C52单片机)由于每个中断入口之间的间隔仅为8个地址单元,所以在程序设计时,通常在这些中断入口处设置一条无条件转移指令,使之转向对应的中断服务子程序处执行。【2—8】80C51单片机设有4个通用工作寄存器组,有什么特点?如何选用?如何实现工作寄存器的现场保护?【答】片内数据RAM区的O~31(OOH~1FH),共32个单元,是4个通用工作寄存器组,每个组包含8个8位寄存器,编号为R0~R7,工作寄存器组如表2-l所列。在某一时刻,只能选用一个寄存器组。可以通过软件对程序状态字PSW中:RS0、RSl两位的设置来实现。设置RS0,RSl时,可以对PSW采用字节寻址方式,也可以采用位寻址方式,间接或直接修改RS0、RSl的内容。例如,若.RS0、RSl均为1,则选用工作寄存器3组为当前工作寄存器。若需要选用工作寄存器2组,则只需将RS0改成0.可用位寻址方式(即“CLRPSW.3”;其中:PSW.3为RS0位的符号地址)来实现。特别是在中断嵌套时,只要通过软件对程序状态字PSW中的RS0、RSl两位进行设置,切换工作寄存器组,就可以极其方便地实现对工作寄存器的现场保护。【2—9】什么是堆栈?堆栈有哪些功能?设计时,为什么还要对SP重新赋值?表2—1工作寄存器组┏━━━━┳━━━┳━━━━┳━━━━━━━━━━┓┃RSI┃RS0┃组号┃寄存器RO~R7地址┃┣━━━━╋━━━╋━━━━╋━━━━━━━━━━┫┃O┃0┃O组┃00H~07H┃┣━━━━╋━━━╋━━━━╋━━━━━━━━━━┫┃O┃1┃l组┃08H~OFH┃┣━━━━╋━━━╋━━━━╋━━━━━━━━━━┫┃1┃O┃2组┃:10H~17H┃┣━━━━╋━━━╋━━━━╋━━━━━━━━━━┫┃1┃l┃3组┃18H~1FH┃┗━━━━┻━━━┻━━━━┻━━━━━━━━━━┛堆栈指针SP的作用是什么?在程序【答】堆栈是在片内数据RAM区中,数据按照“先进后出”或“后进先出”原则进行管理的区域。堆栈功能有两个:保护断点和保护数据。在子程序调用和中断操作时这两个功能特别有用。在80C51单片机中,堆栈在子程序调用和中断时会把断点地址自动进栈和出栈。进栈和出栈的指令(PUSH、POP)操作可用于保护现场和恢复现场。由于子程序调用和中断都允许嵌套,并可以多级嵌套,而现场的保护也往往使用堆栈,所以一定要注意给堆栈以一定的深度,以免造成堆栈内容的破坏而引起程序执行的“跑飞”。堆栈指针SP在80C51中存放当前的堆栈栈顶所指存储单元地址的一个8位寄存器。80C51单片机的堆栈是向上生成的,即进栈时SP的内容是增加的;出栈时SP的内容是减少的。系统复位后。80C51的SP内容为07H。若不重新定义,则以07H为栈底,压栈的内容从08H单元开始存放。但工作寄存器R0~R7有4组,占有内部RAM地址为00H~1FH,位寻址区占有内部RAM地址为20H~2FH。若程序中使用了工作寄存器1~3组或位寻址区,则必须通过软件对SP的内容重新定义,使堆栈区设定在片内数据RAM区中的某一区域内(如30H),堆栈深度不能超过片内RAM空间。【2-10】80C51单片机的特殊功能寄存器SFR区有哪些特点?【答】特殊功能寄存器SFR区是80C51单片机中各功能部件所对应的寄存器区,用来存放相应功能部件的控制命令寄存器、状态寄存器或数据寄存器的区域。这是80C51系列单片机中最有特色的部分。.80C51系列单片机设有128字节片内数据RAM结构的特殊功能寄存器区。除程序计数器PC和4个通用工作寄存器组外,其余所有的寄存器都在这个地址空间之内。特殊功能寄存器在128字节空间中只分布了很小部分,这为80C51单片机系列功能的增加提供了极大的可能性。所有80C51单片机系列功能部件的增加和扩展几乎都是通过增加特殊功能寄存器来达到的。在80C51的21个特殊功能寄存器中,字节地址中低位地址为0H或8H的特殊功能寄存器,除有字节寻址能力外,还有位寻址能力。其中对于PO~P1口4个特殊功能寄存器的位寻址使I/O的控制功能得到了增强。【2-11】80C51单片机的布尔处理机包括哪些部分?它们具有哪些功能?共有多少个单元可以位寻址?【答】在80C51单片机系统中,专门设置了一个结构完整、功能极强的布尔(位)处理机。这是一个完整的一位微计算机,它具有自己的CPU、寄存器、I/0、存储器和指令集。80C51单片机把8位机和布尔(位)处理机的硬件资源复合在一起,这是80C51系列单片机的突出优点之一,给实际应