c51单片机复习题简答题.doc
一、问答题1简述C51语言和汇编语言的比较使用C51语言进行嵌入式系统的开发,有着汇编语言所不可比拟的优势: 编程调试灵活方便; 生成的代码编译效率高; 模块化开发; 可移植性好; 便于项目的维护;2简述单片机的C语言的特点单片机的C语言的特点主要体现在以下几个方面: 无需了解机器硬件及其指令系统,只需初步了解MCS-51的存储器结构; C51能方便的管理内部寄存器的分配、不同存储器的寻址和数据类型等细节问题,但对硬件控制有限;而汇编语言可以完全控制硬件资源; C51在小应用程序中,产生的代码量大,执行速度慢;但在较大的程序中代码效率高; C51程序由若干函数组成,具有良好的模块化结构,便于改进和扩充; C51程序具有良好的可读性和可维护性;而汇编语言在大应用程序开发中,开发难度增加,可读性差; C51有丰富的库函数,可大大减少用户的编程量,显著缩短编程与调试时间,大大提高软件开发效率; 使用汇编语言编制的程序,当机型改变时,无法直接移植使用,而C语言程序是面向用户的程序设计语言,能在不同机型的机器上运行,可移植性好。3哪些变量类型是51单片机直接支持的? 答:C51编译器支持的数据类型有:位型(bit)、无符号字符型(unsigned char)、有符号字符型(signed char)、无符号整型(unsigned int)、有符号整型(signed int)、无符号长整型(unsigned long)、有符号长整型(signed long)、浮点型(float)和指针型等。C51编译器支持的数据类型、长度和值域如表1-1所示。表1-1 C51的数据类型数据类型长度/bit长度/byte值域bit10,1unsigned char810255signed char81-128127unsigned int162065 535signed int162-32 76832 767unsigned long32404 294 967 295signed long324-2 147 483 6482 147483 647float324±1176E-38±340E+38(6位数字)double648±1176E-38±340E+38(10位数字)一般指针243存储空间 065 5354简述C51的数据存储类型答:我们都知道,8051单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区。8051单片机内部的数据存储区是可读写的,8051派生系列最多可有256字节的内部数据存储区,其中低128字节可直接寻址,高128字节(从0x80到0xFF)只能间接寻址,从20H开始的16字节可位寻址。内部数据区可分为3个不同的存储类型:data、idata和bdata。外部数据区也是可读写的,访问外部数据区比访问内部数据区慢,因为外部数据区是通过数据指针加载地址来间接访问的。C51提供两种不同的存储类型xdata和pdata访问外部数据。程序存储区是只能读不能写。程序存储区可能在8051单片机内部或者在外部或者内外都有,这由8051单片机的硬件决定。C51提供了code存储类型来访问程序存储区。每个变量可以明确地分配到指定的存储空间,对内部数据存储器的访问比对外部数据存储器的访问快许多,因此应当将频繁使用的变量放在内部存储器中,而把较少使用的变量放在外部存储器中。各存储区的简单描述如表1-2所示。表1-2 C51存储类型与8051存储空间的对应关系存储区描述DATA片内RAM的低128字节,可在一个周期内直接寻址BDATA片内RAM的位寻址区,16字节IDATA片内RAM的256字节,必须采用间接寻址XDATA外部数据存储区,使用DPTR间接寻址PDATA外部存储区的256个字节,通过P0口的地址对其寻址。使用MOVX Ri,需要两个指令周期CODE程序存储区,使用DPTR寻址。以上介绍的是C51的数据存储类型,C51存储类型及其大小和值域如表1-3所示。表1-3 C51存储类型及其大小和值域存储类型长度/bit长度/byte值域data810255idata810255pdata810255code162065 535xdata162065 5355简述C51对51单片机特殊功能寄存器的定义方法答:MCS-51通过其特殊功能寄存器(SFR)实现对其内部主要资源的控制。MCS-51单片机有21个SFR,有的单片机还有更多的SFR,它们分布在片内RAM的高128字节中,其地址能够被8整除的SFR一般可以进行位寻址。关于MCS-51单片机的特殊功能寄存器参看附录A。对SFR只能用直接寻址方式访问。C51允许通过使用关键字sfr、sbit或直接引用编译器提供的头文件来实现对SFR的访问。 (1)使用关键字定义sfr为了能直接访问特殊功能寄存器SFR,C51提供了一种自主形式的定义方法。这种定义方法与标准的C语言不兼容,只适用于对8051系列单片机进行C编程。这种定义的方法是引入关键字“sfr”,语法如下:sfr 特殊功能寄存器名字 = 特殊功能寄存器地址;如:sfr SCON=0x98;/*串口控制寄存器地址98H*/sfr TMOD=0X89;/*定时器/计数器方式控制寄存器地址89H*/ (2)通过头文件访问SFR 8051系列单片机的寄存器数量与类型是极不相同的,因此对单片机特殊功能寄存器的访问可以通过对头文件的访问来进行。 为了用户处理方便,C51编译器把MCS-51单片机的常用的特殊功能寄存器和特殊位进行了定义,放在一个“reg51.h”或“reg52.h”的头文件中。当用户要使用时,只需要在使用之前用一条预处理命令“#include <reg51.h>”把这个头文件包含到程序中,然后就可以使用特殊功能寄存器名和特殊位名称了。用户可以通过文本编辑器对头文件进行增减。 (3)SFR中位定义在8051单片机的应用问题中,经常需要单独访问SFR中的位,C51的扩充功能使之成为可能,使用关键字“sbit”可以访问位寻址对象。特殊位(sbit)的定义,像SFR一样不与标准C兼容。与SFR定义一样,用关键字“sbit”定义某些特殊位,并接受任何符号名,“=”号后将绝对地址赋给变量名。这种地址分配有三种方法:第一种方法:sbit 位名=特殊功能寄存器名位置;当特殊功能寄存器的地址为字节(8位)时,可使用这种方法。特殊功能寄存器名必须是已定义的SFR的名字。“”后的“位置”语句定义了基地址上的特殊位的位置。该位置必须是07的数。如:第二种方法:sbit 位名=字节地址位置;这种方法是以一个整常数为基地址,该值必须在0x800xFF之间,并能被8整除,确定位置的方法同上。第三种方法:sbit 位名=位地址;这种方法将位的绝对地址赋给变量,地址必须在0x800xFF之间。6C51 的data、bdata、idata 有什么区别? 答:data、bdata、idata是表明数据的存储类型,data是指片内RAM的低128字节,可在一个周期内直接寻址;bdata是指片内RAM的位寻址区,16字节;idata是指片内RAM的256字节,必须采用间接寻址。7C51中的中断函数和一般的函数有什么不同? 答:C51编译器允许用C51创建中断服务函数,中断函数是由中断系统自动调用的。中断函数的定义格式为:函数类型 函数名 interrupt n using n其中:interrupt和using为关键字;interrupt后面的n 为中断源的编号,即中断号;using后面的n所选择的寄存器组,取值范围为03。定义中断函数时,using是一个选项,可以省略不用。如果不用using选项,则由编译器选择一个寄存器组作为绝对寄存器组。8051的中断过程通过使用interrupt关键字和中断号(031)来实现,中断号告诉编译器中断函数的入口地址。8按照给定的数据类型和存储类型,写出下列变量的说明形式(1)在data区定义字符变量val1答:char data vall;(2)在idata区定义整型变量val2 答:int idata val2;(3)在xdata区定义无符号字符型数组val34。答:unsigned xdata val34;(4)在xdata区定义一个指向char类型的指针px。答:char xdata *px;(5)定义可位寻址变量flag。答:bit flag;(6)定义特殊功能寄存器变量P3。答:Sfr P3=0xB0;9什么是重入函数?重入函数一般什么情况下使用,使用时有哪些需要注意的地方?答: 多个函数可以同时使用的函数,称为重入函数。通常情况下,C51函数不能被递归调用,也不能应用导致递归调用的结构。有此限制是由于函数参数和局部变量是存储在固定的地址单元中。重入函数特性允许你声明一个重入函数。即可以被递归调用的函数。重入函数可以被递归调用,也可以同时被两个或更多的进程调用。重入函数在实时应用中及中断服务程序代码和非中断程序代码必须共用一个函数的场合中经常用到。10如何消除键盘的抖动? 答:由于按键是机械开关结构,所以当用手按下其中一个键时,往往会出现所按键在闭合位置和断开位置之间发生跳几下后才会稳定到闭合状态的情况。在释放一个键时,也会出现类似的情况,这就是键的抖动,抖动的持续时间不一,但通常不会大于10ms。若抖动问题不解决,就会引起对闭合键的多次读入。对于键抖动最方便的解决方法就是当发现有键按下后,不是立即进行扫描,而是延时大约10ms后再进行。由于一个键按下的时间一般会持续上百毫秒,所以延迟10ms后再扫描处理并不迟。11在使用8051的定时器/计数器前,应对它进行初始化,其步骤是什么? 答: (1)确定T/C的工作方式编程TMOD寄存器; (2)计算T/C中的计数初值,并装载到TH和TL; (3)T/C在中断方式工作时,须开CPU中断和源中断编程IE寄存器; (4)启动定时器/计数器编程TCON中TR1或TR0位。第1章 单片机硬件系统1. 什么是单片机、单片机系统、单片机应用系统?答:单片机:又名微控制器,是将微型计算机中的中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)及I/O口电路等主要部件,结合连接它们的总线集成在一块芯片上,即它是一块智能芯片。单片机系统:单片机本身只是一块芯片,它并不能集成计算机的全部电路,因此需要加上时钟、复位电路等,才能构成单片机最小应用系统;若最小系统资源不足时,还需扩展外围电路和外围芯片等,从而构成能满足应用要求的单片机系统。单片机应用系统:它是为实际的控制应用而设计的,该系统与控制对象结合在一起,是满足嵌入式对象要求的全部电路系统。它在单片机的基础上配置了前/后向通道接口电路、人机交互通道接口电路、串行通信接口等面向对象的接口电路。另单片机系统和单片机应用系统都是软硬件结合的系统,缺一不可。2. 单片机有哪些特点?答:单片机的特点很多,主要是体积小品种多,价格便宜,可靠性高,使用灵活,还有(1)突出控制功能(2)ROM和RAM分开(3)单片机资源具有广泛的通用性(4)易于扩展ROM、RAM、定时/计数器、中断源等资源。3. 为什么说AT89C51单片机是MCS-51系列的兼容机?AT89C51单片机有何优点?答: AT89系列单片机是将FLASH存储器技术和MCS-51系列单片机的基本内核相结合的单片机,且管脚也与之兼容,可以直接代换,所以说AT89C51是MCS-51系列的兼容机。AT89C51单片机是AT89系列机的标准型单片机,它的优点主要有:内ROM是FLASH存储器,已获得广泛应用的80C51兼容,采用静态逻辑设计,操作频率范围宽,具有两个软件选择的节电模式等。4. AT89C51单片机由哪些主要功能部件组成? 答:MCS-51系列89C51单片机由下列部分组成:1个8位CPU、128B的RAM、4K程序存储器、18个特殊功能寄存器SFR、4个并行口、1个串行口、2个定时计数器和中断系统等资源。补充: MCS-52系列单片机的内部资源有哪些? 答:MCS-52系列单片机内部有:1个8位CPU、128B的RAM、8K程序存储器、21个特殊功能寄存器SFR、4个并行口、1个串行口、3个定时计数器和中断系统等资源。5. 简述单片机应用研发过程和研发工具(了解)。答:任务分析方案论证硬件设计软件设计仿真调试实物制作与调试。研发工具:调试仿真软件KEIL、在线仿真器、编程器或ISP下载器、PROTEUS仿真平台、教学实验板等。6. AT89C51单片机内部结构主要有哪些部件组成?它们的主要功能是什么?答:AT89C51单片机内部结构主要有:(1)中央处理器CPU,是单片机的核心,完成运算和控制功能;(2)内部数据存储器(256字节),前面128个单元00H7FH存储内部数据,后面128个单元80HFFH被专用寄存器占用,用来实现对片内各部件进行管理、控制、监视;(3)程序计数器PC,是一个16位专用寄存器,其内容为下一条执行指令的地址;(4)Flash内部程序存储器(4K),用于存储程序、原始数据、表格等;(5)4个并行I/O口(8位),实现数据的并行输入输出;(6)串行通信口,实现单片机和其他数据设备之间的串行数据传送;(7)2个定时器/计数器(16位),实现定时或计数功能;(8)中断控制系统,共5个中断源,分高低两个优先级;(9)一个片内振荡器和时钟电路,为单片机产生时钟脉冲序列;(10)总线,用于连接各个部件和单片机系统的扩展。7. 请将AT89C51的40个引脚按4类(电源、时钟、控制和I/O引脚)分类。答:电源(2):Vss接地端,Vcc接DC正电源线;时钟(2):XTAL1,XTAL2控制(4):RST复位输入,ALE/(/PROG)地址锁存允许/编程脉冲,/PSEN外ROM读选通信号,(/ES) / VPP内外ROM选择/编程电源I/O引脚(32):P0P3并行8位I/O口8. AT89C51单片机引脚/EA、RST、ALE、/PSEN的功能是什么?答:/EA是片内外ROM选择端,ROM的寻址范围为64KB,而AT89C51内部只有4KB ROM,当不够用时可在外扩展ROM。当/EA信号为低电平时,指访问外部ROM;当/EA为高电平时,则先访问内部ROM,当PC值超过4KB时自动转向外部ROM中执行。RST复位信号,当此引脚上的信号出现至少两个机器周期的高电平将使单片机复位。ALE地址锁存控制信号,当系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器存起来,以实现低位地址和数据的分时传送。/PSEN外部ROM的读选通信号,在访问外部ROM时,每个机器周期两次PSEN有效(低电平),但在此期间内,每当访问外部数据存储器时,这两次有效的PSEN将不出现。8-(1)说明MCS-51单片机的外部引脚EA的作用?答:1、引脚EA为访问内/外部程序存储器控制信号。 引脚EA高电平时,对ROM的读操作先从内部4KB开始,当地址范围超出4KB时自动切换到外部进行; 当引脚EA为低电平,对ROM 的读操作限定在外部程序存储器。9. (了解)什么是单片机的振荡周期、状态时钟周期、机器周期和指令周期?它们之间有什么关系?答: 单片机是按一定的时序进行工作的,而时序是通过XTAL1和XTAL2引脚跨接振荡器与内部振荡电路共同产生固定频率的波形。我们把振荡频率的倒数称振荡周期。状态时钟周期是指单片机时钟信号的周期,是振荡周期的两倍,又称状态周期。一个机器周期由6个状态组成,即机器周期等于6个状态时钟周期或等于12个振荡周期。指令周期是指单片机执行一条指令所占用的时间,根据指令的不同,可包含有1、2、4等机器周期的倍数。10. 当AT89C51单片机外接晶振为4MHZ时,其振荡周期、状态时钟周期、机器周期、指令周期的值各为多少?s,机器周期为3s,指令周期根据指令而不同可能是3s、6s、12s等。11. MCS-51单片机扩展系统中,外部程序存储器和数据存储器共用16位地址线和8位数据线,扩展空间都为64KB,为什么两个存储空间不会发生冲突?答:MCS-51单片机是通过不同的信号来对片外数据存储器和程序存储器进行读、写的:片外数据存储器的读、写:通过RD和WR信号和片选信号等来控制;程序存储器的读:通过PSEN信号控制。此外,通过用不同的命令(指令)来实现。12、什么是堆栈? 简述单片机的堆栈处理过程。什么是堆栈指针寄存器SP?复位后SP值是多少?答: 堆栈是:按着“先进后出”的原则进行操作的一段片内数据存储器区域。堆栈处理过程:u 数据存入栈时,SP指针先加1,再存入数据;u 数据出栈时,先取数据,再把SP指针减1。堆栈指针SP就是指向堆栈区域的第一个存储单元地址(也称“栈顶”),向堆栈中每存一个数,SP中的值就自动加1,每取一个数就自动减1,SP指针始终指向栈顶地址。复位后,SP值SP=07H,这样堆栈就要从08H开始,而08H属于工作寄存器区,若程序要用到这些寄存器组则要将SP设置大些,因此堆栈最好在内部的RAM(30H7FH)中开辟。13.(了解) AT89C51单片机的ROM空间中,这6个地址(0、03H、0BH、13H、1BH、23H)有什么特殊的意义和用途?用户应怎样合理安排?答:他们都是特殊的地址单元,其中0000H是单片机复位后,系统开始取指、执行指令的地址,即单片机复位后PC值为0000H;而03H、0BH、13H、1BH、23H是单片机5个中断服务子程序的入口地址。相邻中断入口地址间隔8个单元。当程序使用中断时,在入口地址处安放一条跳转指令,而相应的中断服务子程序从转移地址开始安放,若中断服务子程序小于等于8个单元可直接存在入口地址开始的8个单元内。若没有用到中断功能,这些单元就可以作为一般的程序存储器用。14. 位地址3EH和字节地址3EH有何区别?位地址3EH具体在片内RAM中什么位?答:字节地址3EH是内RAM低128字节中的一个字节存储单元。而位地址是针对可位寻址区域而言的,位寻址区占用了字节地址的20H2FH共16个字节,字节地址20H中的20H.020H.7位地址是00H08H,因此位地址3EH是字节地址27H中的第7位。15程序计数器寄存器PC的作用?复位后PC中值各为何? 答: 程序计数器PC时一个16位的计数器,其内容为将要执行的指令的首地址,寻址范围达64KB,PC具有自动加1功能,以实现程序的顺序执行。PC不可寻址,无法对它进行读写。复位后,PC=0000H,使单片机从0000H单元开始执行。16. 画图说明AT89C51单片机的存储空间结构。答: 程序存储器ROM结构 内RAM存储器结构补充:8051单片机内部的存储器结构存储器是计算机的重要硬件之一,单片机存储器结构有两种类型:一种是程序存储器和数据存储器统一编址,属于普林斯顿结构。另一种是程序存储器和数据存储器分开编址的哈佛结构。 MCS-51 采用的是哈佛结构。19、8051单片机的内部RAM的结构内部256B共分为:RAM(低128B)和特殊功能寄存器SFP区(高128B)(参考教材P15-)MCS-51 内部有 128 个字节的数据存储器 RAM ,它们可以作为数据缓冲器、堆栈、工作寄存器和软件标志等使用。内部 RAM 地址为 00H 7FH ,不同的地址区域内,规定的功能不完全相同。低128 字节地址空间的 RAM 中不同的地址区域功能分配为: 工作寄存器区 (00H-1FH)单片机的内部工作寄存器以 RAM 形式组成,即工作寄存器包含在内部数据存储器中。地址为 00H 1FH 单元,内部 RAM 的低 32 字节分成 4 个工作寄存器区,每一个区有 8 个工作寄存器,编号为 R0 R7 。 位寻址空间 (20H-2FH)CPU 不仅对内部 RAM的 20H 2FH 这 16 个单元有字节寻址功能,而且具有位寻址功能(可以单独读写某一位)。给这 128 位赋以了位地址为 00H 7FH , CPU 能直接寻址这些位。 堆栈和数据缓冲区 (30H-7FH )原则上MCS-51单片机的堆栈可以设在内部RAM的任意区域内,但是一般设在30H7FH的范围内。栈顶的位置由堆栈指针 SP 指出。 特殊功能寄存器 SFR区(高128B,即 80H FFH)在高128B区中,在 80HFFH 的地址空间内离散地分布着18个特殊功能寄存器(SFR),并允许像访问内部RAM一样方便地访问特殊功能寄存器。例如:四个口P0P3、 ACC、TMOD、TCON、SCON、SP、TH0、TL0等。(参考教材P17)(补充:8052 有 21 个特殊功能寄存器。)输入/输出(I/O)口及其简单应用1. AT89C51四个I/O口使用时有哪些分工和特点?试作比较,并填写下表。I/O口相同的结构不同的结构基本功能第二功能SFR字节地址位地址范围驱动能力P0都有锁存器、输入缓冲器和输出驱动器多路选择开关输入输出数据线/低8位地址线80H8087H强,8个LS TTL 输入,8个引脚最大吸收电流26mAP1输入输出90H9097H4个LS TTL输入,8个引脚最大吸收流15mAP2多路选择开关输入输出高8位地址线A0HA0A7HP3选择输出功能输入输出第二功能B0HB0B7H2. AT89C51的4个I/O口作为输入口时,为什么要先写“1”?答:AT89C51读操作时,为读入正确的引脚信号,必须先保证场效应管截止。因为场效应管导通,引脚电平为0,显然,从引脚输入的任何外部信号都被场效应管强迫短路,严重时可能因有大电流流过场效应管,而将它烧坏。为保证场效应管截止,必须先向锁存器写“1”,使场效应管截止。 3.P0口作输出口时,为什么要外加上拉电阻?答: 因为当P0口作数据传输作用时,输出驱动器是开漏电路,需要外加上拉电阻。4. 为什么外扩存储器时,P0口要外接锁存器,而P2口却不接?答: 因为P0口8位是地址线与数据线分时复用的, 即P0口8位先输出外部数据存储器的低8位地址到锁存器中锁存,然后再输出8位数据到数据总线上。P2口8位输出的数据只作为地址总线的高8位,所以不需要连接锁存器。5. 为什么当P2口作为扩展程序存储器的高8位地址后,就不宜作I/O口用?答: P2口虽然有地址/数据的双重作用,可是在同一时间只能在一个状态下工作,如果有外部ROM,访问的操作连续不断,P2口作为高8位要不断的传送地址,因此不宜再作为数据传输用,如果是外RAM,则根据对其读写的频繁度来决定是否将P2口作为数据传输。6单片机P3口各引脚的第二功能有哪些?答:单片机P3口各引脚复用的第二功能有:)。 定时器/计数器与中断系统1. 与定时器/计数器工作相关的寄存器是哪两个?分别列表说明它们各控制位的含义和功能是什么? 答:与定时器/计数器工作相关的两个特殊寄存器是TMOD和TCON,各有8位。(1)TMOD是工作方式寄存器,高四位和低四位分别用于控制T0和T1,作用相同,因此这里就介绍低四位,它们分别是:M0,M1这两位用于工作方式选择,对应于定时器状态而言;C/(T)位是计数/定时方式选择位;GATE是门控位,用于定时器启动信号源的选择。(2)TCON是控制寄存器,其中低四位用于外部中断信号控制,高四位用于定时器/计数器控制,其中: TR1定时器/计数器1启动标志; TR0定时器/计数器0启动标志。2简述8051的定时/计数器T0和定时/计数器T1的工作方式分别有哪几种?答:定时/计数器T0的工作方式有:工作方式各方式功能说明方式013位定时/计数器方式116位定时/计数器方式28位自动重置定时/计数器方式3两个8位的定时/计数器定时/计数器T1的工作方式工作方式方式说明013位定时/计数器116位定时/计数器28位自动重置定时/计数器重要知识点:晶振频率fosc时钟周期(也称为振荡周期)=1/fosc1状态周期=2拍=2*时钟周期1机器周期=6拍=6*状态周期=12*时钟周期补充说明: 定时器/计数器的最大定时容量、定时容量、初值之间的关系如何?答:定时器/计数器的最大定时容量是指从0开始到最终溢出的容量,在方式0和方式2下最大定时容量分别为2138192和28256,而定时容量是根据当前初值到最终溢出的容量;而初值就是指当前定时器/计数器在定时/计数开始之前赋予的数值,定时容量就是最大容量和初值的差。3、晶振fosc=6MHz,T0工作在模式1,最大定时的时长是多少? 答:最大定时=(M-T0初值)×时钟周期×12 =(216-0)×1/6×12 = 131072s 补充:晶振fosc=12MHz,T0工作在模式0、模式1和模式2,最大定时的时长分别是多少? 答:在模式0:最大定时=(M-T0初值)×时钟周期×12 =(213-0)×1/12×12 =8192s 在模式1:最大定时=(M-T0初值)×时钟周期×12 =(216-0)×1/12×12 =65536s在模式2:最大定时=(M-T0初值)×时钟周期×12=(28-0)×1/12×12=256s4、已知一台MCS51单片机系统使用fosc =12MHZ(或6MHZ)的外部晶体振荡器,计算:1)该单片机系统的状态周期、时钟周期与机器周期各为多少?答:1)状态周期=2/foscs 时钟周期=1/ fosc=1/12s机器周期=12/fosc=1s (2s)2)当单片机的工作在方式2时,T0的最大定时时间为多少?2)TMAX =28×机器周期=256×1us=256s (256*2s=512us)(3)定时200s ,则定时器0(T0)装入的初值是多少?T0初值=28-200s/1s =56=38H(28-200s/2s=156=9CH)5、MCS-51采用6MHz的晶振,定时0.5ms,如用定时器方式1时的初值应为多少(16进制数)?答:因为:定时时间=(216-初值)*机器周期所以:T0 初值=216-500S/2s =65536-250 = 65286 =FF06H 补充:(1)若定时1ms,如用定时器方式1时的初值应为多少?答:T0 初值=216-1000S/2s =65536-500 = 65036 = FE0CH(2)若定时10ms,如用定时器方式1时的初值应为多少?答:T0 初值=216-10000S/2s =65536-5000 = 60536 = EC78H(3)若定时100ms,如用定时器方式1时的初值应为多少?答:T0 初值=216-100000S/2s =65536-50000 = 15536 = 3CB0H思考:(1) 若采用方式0或方式2时,上述结果是多少?(2)若采用12MHz的晶振,上述结果又是多少?6. 什么叫中断?设置中断有什么优点?答:单片机执行程序的过程中,为响应内部和外部的随机发生的事件,CPU暂时终止执行当前程序,转去处理突发事件,处理完毕后,再返回来继续执行原来终止了的程序,这一过程称为中断。设置中断使单片机能够及时的响应并处理运行过程中内部和外部的突发事件,解决单片机快速CPU与慢速外设间的矛盾,提高单片机工作效率及其可靠性。7. 写出AT89C51单片机5个中断源的入口地址、中断请求标志名称、位地址和所在的特殊功能寄存器。中断源入口地址中断请求标志名称中断请求标志位地址所在特殊寄存器INT00003HIE089HTCONT0000BHTF08DHTCONINT10013HIE18BHTCONT1001BHTF18FHTCON串行口0023HTI、RI99H、98HSCON8. 中断处理过程包括哪4个步骤?简述中断处理过程。答:中断过程可以分为四步,分别是中断请求、中断响应、中断服务和中断返回。当中断源要CPU为其服务时,先发出一个中断请求信号,CPU不断查询中断请求标志,一旦查询到某个中断请求标志置位,则根据中断响应条件去响应请求,从而转去执行中断服务程序。但转去中断程序时,要求先保护现场,将相关的在服务子程序可能改变的存储单元内容压入堆栈保护,然后再去执行中断服务程序主体,最后中断返回,再返回前将原先的堆栈内容出栈,即恢复现场。9.中断响应需要哪些条件? 答:条件:(1)已经开总中断(EA=1)和相应中断源的中断;(2)未执行同级或更高级的中断;(3)当前执行指令的指令周期已经结束;(4)正在执行的不是中断返回指令和访问IE、IP的指令,否则要再执行一条指令后才能响应。10. AT89C51单片机中断优先级有几级? 答:AT89C51单片机中断优先级共有两级,优先级分为高优先级和低优先级。当几个中断源同时请求时,CPU先服务高优先级的中断,可由程序编程决定。11AT89C51单片机响应中断的优先顺序应依什么原则?写出同级中断源的中断响应优先级别(从高至低 )。答:单片机响应中断的优先顺序应依什么原则是:按着二级优先级从高到低,相同优先级的中断再按默认的优先级次序从高到低的响应原则。同级中断源的中断响应次序(从高至低 )如下表:最高次高第三第四最低外部中断0定时计数器中断0外部中断1定时计数器中断1串行口中断12MCS-51系列单片机具有几个中断源?分别是什么?各自的中断标志位是什么 ?其中,CPU响应外部中断后,如何清除中断请求标志位? 答: MCS-51系列单片机共有5个中断源,分别为:外部中断0定时计数器中断0外部中断1定时计数器中断1串行口中断中断标志为分别为:外部中断0定时计数器中断0外部中断1定时计数器中断1串行口中断IE0TF0IE1TF1TI和RI在CPU响应外部中断(INT0/INT1)后,在边沿触发方式下,IE0、IE1可由硬件自动清除;在电平触发方式下,IE0、IE1由软件清除。补充:串行口中断的标志位TI和RI则由软件清0.定时器/计数器的标志位TF0和TF1由自动硬件清0.13MCS-51单片机有几个中断源?各中断请求如何提出的?中断程序的入口地址是多少?(教材-P117)答:8051单片机一共有5个中断源。外部中断两个INT0和INT,当其为低电平时向CPU提出中断请求,有两种触发方式:电平触发和边沿触发。两个定时/计数器T0和T1,当计数满或定时时间到了可向CPU提出中断请求,由软件设置开启和关闭这两个中断。串行口的发送/接收时数据完成后,(置位TI/RI),向CPU提出中断请求。各中断程序的入口地址是见教材P135MCS-51系列单片机共有5个中断源及入口地址表:外部中断0定时计数器中断0外部中断1定时计数器中断1串行口中断0003H000BH0013H001BH0023H15. 已知FOSC6MHZ,使P1.7输出高电平宽40us,低电平宽360us的连续矩形脉冲,使用T0定时的初值分别是多少?答:利用T0分别定时器40us和360 us来控制P1.7引脚,初值计算过程:根据晶振得一个机器周期为2us,输出高电平宽40us时,其初值(T0)28-40/2ECH(40us) 输出低电平宽360us时,其初值(T0)28-360/24CH(360us) 6. 已知FOSC6MHZ,试编写程序,利用T0工作在方式2,使P1.0和P1.1分别输出周期为1ms和400us的方波。此时的时间初值是多少?答:采用200us定时,初值计算过程:根据晶振得一个机器周期为2us,初值(T0)28-200/29CH A/D和D/A转换接口1简述ADC0809转换的基本过程 。答:1输入3位地址(A,B,C),并使ALE=1,将地址存入地址锁存器中,经地址译码器译码从8路模拟通道中选通一路模拟量送到比较器。2送START一高脉冲,START的上升沿使逐次逼近寄存器复位,下降沿启动A/D转换,并使EOC信号为低电平。3当转换结束时,转换的结果送入到输出三态锁存器,并使EOC信号回到高电平,通知CPU已转换结束。4当CPU执行一读数据指令,使OE为高电平,则从输出端D0D1读出数据。2简述DAC 0832转换器的主要功能。答:DAC 0832转换器的主要功能是将数字量转换成模拟量输出。 串行口通信技术1. 串行通信按时钟的控制方式可分为几种?答: 串行通信按时钟的控制方式可分为: 串行同步通信和串行异步通信两种方式。2什么是波特率?答:波特率是指串行通信中,单位时间传送的二进制位数,单位为bps。 在异步通信中,传输速度往往又可用每秒传送多少个字节来表示(Bps)。它与波特率的关系为:波特率(bps)=一个字符的二进制位数×字符/秒(Bps)3假设单片机的串行口每秒传送200个字符,每个字符1位起始位、8个数据位、1个校验位和