您好,欢迎访问三七文档
单片机面试问题集单片机的最小系统?内部的主要结构? 答:最小系统:电源、晶振(为系统提供基本的时钟信号)、复位电路;内部结构:ROM/RAM、计时器、中断、I/O串并行口、总线扩展控制。 RAM和ROM的区别? 答:ROM(只读存储器):它的信息一次写入后只能被读出,而不能被操作者修改或者删除。一般用于存放固定的程序或数据表格。但是,只读这个概念有时候可以被一些新特性的器件颠覆。 RAM(随机存储器):它就是我们平时说的内存,主要用来存放各种现场的输入/输出数据、中间计算结果,以及与外部存储器交换信息,或者作堆栈(特点:先进后出,后进先出)用。它的存储单元根据具体需要可以读出或者改写。 两者区别:RAM只能用于暂时存放程序与数据。一旦电源关闭或发生断电,RAM中的数据就会丢失。而ROM中的数据在电源关闭或者断电后仍然会保留下来。 简而言之:相同点它们都是用来存储数据的 不同点存储数据的方式与数据能不能在二次加工不同 单片机I/O口有什幺作用?I/0口的驱动能力?上拉电阻与下拉电阻的作用? 答:I/O口最主要的功能用来与外部器件实现数据信息的交互、速度匹配、数据传送方式和增强单片机的负载能力。它在两者之间扮演桥梁的作用,单片机拥有着串行与并行接口。每个种类的单片机的不同并行口也有着各自不同的功能。 单片机输出低电平时,将允许外部器件,向单片机引脚内灌入电流,这个电流,称为灌电流,外部电路称为灌电流负载。 单片机输出高电平时,则允许外部器件,从单片机的引脚拉出电流,这个电流,称为拉电流,外部电路称为拉电流负载。 单片机输出驱动能力的问题:每个单个的引脚,输出低电平的时候,允许外部电路,向引脚灌入的最大电流为10mA;每个8位的接口(P1、P2以及P3),允许向引脚灌入的总电流最大为15mA,而P0的能力强一些,允许向引脚灌入的最大总电流为26mA;全部的四个接口所允许的灌电流之和,最大为71mA。而当这些引脚输出高电平的时候,单片机的拉电流能力呢?可以说是太差了,竟然不到1mA。 结论就是:单片机输出低电平的时候,驱动能力尚可,而输出高电平的时候,就没有输出电流的能力。 综上所述:灌电流负载,是合理的;而拉电流负载和上拉电阻会产生很大的无效电流,并且功耗大。 设计单片机的负载电路,应该采用灌电流负载的电路形式,以避免无谓的电流消耗。 在数字电路中,只有二种状态,要幺是高电平,要幺是低电平,在通电初期,这些输出状态是不确定的,为了使电路确定状态,必需使用上拉电阻或下拉电阻,使一个原来不确定电平变高的叫上拉电阻,否则就是下拉电阻,上拉电阻就是从电源上接一只电阻到这个状态口上就可以了,(就是把高的电压加到这个点上去,这个点的电位就高了)下拉电阻的接法,从这个状态口接一只电阻到负极(或数字接地),因电路形式与类别不同,当输入端有信号,这种变化会反应到输出口,从输出口得到了一个状态,本来应该完成任务了,但这会儿输入口已没信号了,可输出端还是这个状态(这个人习惯不好,开门后总是不关门,加一只弹簧,(电阻)让它自己关门,)这时候也要用到上下拉电阻,这里有复位的作用。 常见的时钟电路有哪些?为什幺要使用PLL? 答:先了解一下什幺是时钟电路? 时钟电路就是产生像时钟一样准确运动的振荡电路,任何工作都按时间顺序。用于产生这个时间的电路就是时钟电路。 组成:晶体振荡器、晶震控制芯片和电容组成。 现在流行的串行时钟电路有:DS1302、DS1307、PCF8485等 它们的特点:接口简单、价格低廉、使用方便。 DS1302:具有涓细电流充电能力的电路,主要特点:采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768KHz晶振。 PLL(PhaseLockedLoop):锁相环电路。用来统一整合时脉讯号,使高频器件正常工作。如:内存的存取资料等。PLL用于振荡器中的反馈技术。许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。一般的晶振由于工艺与成本原因,做不到很高的频率,而在需要高频应用时,有相应的器件VCO,实现转成高频,但不稳定,故利用锁相环路就可以实现稳定且高频的时脉冲讯号。 什幺是时脉:指同步电路中时钟的基础频率,它以(若千次周期每秒)来度量,单位是(Hz) 总之:PLL可以同步频率,相位正交。倍频、变频。 单片机的寻址方式有哪些? 答:80C51有七种寻址方式: 1、立即寻址,寻址空间为ROM; 2、直接寻址,寻址空间为片内RAM的低128B和特殊功能寄存器; 3、寄存器寻址,寻址空间为A、B、DPTR、CY、通用工作寄存器等; 4、寄存器间接寻址,片内RAM低128B、片外RAM; 5、相对寻址,寻址空间为ROM; 6、变址寻址,寻址空间为ROM; 7、位寻址,寻址空间为片内RAM低128B的位寻址区的128个位,其字节地址为20H~2FH;以及部分可以位寻址的特殊功能寄存器。 参考:AT89C51单片机能直接认识和执行的机器指令有255条,有7种寻址方式,即立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。 1.直接寻址: 指令中直接给出参与操作的数据的地址,该地址一般用direct表示。 汇编指令:MOVA,direct 该指令的功能是将片内RAM地址direct单元中的内容(参与操作的数据)传送到累加器A中,双字节指令。 2.立即寻址: 指令中直接给出参与操作的数据,称立即数,用data表示。在汇编语言中,为标明立即数,为data加前缀#。立即数可以是8位和16位二进制数,分别用#data和#data16表示。 汇编语言指令:MOVA,#data 该指令将立即数data传送到累加器A中,双字节指令。 3.寄存器寻址: 参与操作的数据存放在寄存器中,汇编指令中直接以寄存器名来表示参与操作的数据地址,寄存器包括工作寄存器R0~R7、累加器A、AB、数据指针DPTR和位运算寄存器C。 汇编语言指令:MOVA,Rn;n=0~7 该指令将Rn中的内容传送到累加器A中,单字节指令。 4.寄存器间接寻址: 寄存器间接寻址为二次寻址,第一次寻址得到寄存器的内容为(Ri)或(DPTR),第二次寻址是将第一次寻址得到的寄存器内容作为地址,并在其中存、取参与操作的数据。汇编语言中,寄存器前缀@是寄存器间接寻址的标志,有@Ri、@DPTR等。 汇编语言指令:MOVA,@Ri;i=0、1 该指令是将Ri中的内容作为地址,再将该地址中的内容传送到累加器A中,单字节指令。 5.变址寻址: 间接寻址由两个寄存器提供。若由A、PC提供,在汇编语言指令中寻址地址表示为@A+PC;若由A和DPTR提供,在汇编语言指令中寻址地址为@A+DPTR。其中,PC或DPTR被称为基址寄存器,A被称为变址寄存器,基址与变址相加为16位无符号加法。若变址寄存器A中内容加基址寄存器DPTR(或PC)中内容时,低8位有进位,则该进位直接加到高位,不影响进位标志。因变址寻址指令多用于查表,故常称为查表指令。 汇编语言指令:MOVCA,@A+DPTR 该指令将DPTR中的内容加上A中的内容作为地址,再将该地址中的内容传送到累加器A中,单字节指令。 6.相对寻址: 相对寻址是以相对寻址指令的下一条指令的程序计数器PC的内容为基值,加上指令机器代码中的相对地址,形成新的PC值(要转移的指令地址)的寻址方式。指令机器代码中相对地址指的是用一个带符号的8位二进制补码表示的偏移字节数,其取值范围为-128~+127,负数表示向后转移,正数表示向前转移。 若(PC)表示该指令在ROM中的首地址,该指令字节数为2,执行时分两步操作:(PC)←(PC)+2,(PC)←(PC)+相对地址。第一步完成后,PC中的值为该指令的下一条指令的首地址;第二步完成后,PC中的内容(PC)为转移的目标地址。所以,转移的目标地址范围是该相对寻址指令的下一条指令首址加上-128~+127字节的地址。 汇编语言指令:SJMPrel 汇编语言相对寻址指令中的rel往往是一个标号地址,表示ROM中某转移目标地址。汇编软件对该汇编语言指令进行汇编时,自动算出相对地址并填入机器代码中,应将rel理解为带有相对意义的转移目标地址。 Rel=(PC)+相对寻址指令字节数+相对地址 其中,(PC)为该指令所在ROM中的首地址。 7.位寻址: 参与操作的数据为位,而不是字节,是对片内数据存储器RAM和SFR中可位寻址单元的位进行操作的寻址方式。 汇编语言指令:ANLC,bit 该指令将bit(位地址)中的内容(0或1)与C中的内容进行与操作,再将结果传送到PSW中的进位标志C中。 什幺是时钟周期?机器周期?指令周期?它们之间的关系? 答:1、时钟周期又叫做振荡周期;单片机内部时钟电路产生(或外部时钟电路送入)的信号周期,单片机的时序信号是以时钟周期信号为基础而形成的,在它的基础上形成了机器周期、指令周期和各种时序信号。定义为时钟脉冲的倒数(可以这样理解:时钟周期就是单片机外接晶振的倒数,例如:12M的晶振,它的时钟周期就是1/12us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。 2、计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。例如:取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一项基本操作所需要的时间成为机器周期。一般情况,一个机器周期由若干个S周期(状态周期)组成。机器周期是单片机的基本操作周期,每个机器周期包含S1、S2、S6这6个状态,每个状态包含两拍P1和P2,每个拍为一个时钟周期(振荡周期)。因此,一个机器周期包含12个时钟周期。依次可表示为S1P1、S1P2、S2P1、S2P2、S6P1、S6P2。 3、指令周期:计算机从取一条指令开始,到执行完该指令所需要的时间称为指令周期。不同的指令,指令长度不同,指令周期也不一样。但指令周期以机器周期为单位,指令不同,所需的机器指令也不同。 51单片机指令根据指令长度与执行周期分为: 1)单字节单周期指令 2)单字节双周期指令 3)双字节单周期指令 4)双字节双周期指令 5)三字节双周期指令 6)一字节四周期指令 总结:时钟周期是最小单位,机器周期需要1个或者多个时钟周期,指令周期需要1个或者多个机器周期;机器周期是指完成一个基本操作的时间。指令周期是CPU的关键指标,指取出并执行一条指令的时间。一般以机器周期为单位,分单指令执行周期、双指令执行周期等。机器周期是完成一个基本操作的时间单元。时钟周期是CPU的晶振的工作频率的倒数。 单片机有哪些接口,各模块有哪些特性及应用环境? 答:接口电路用于衔接外设与总线,实现存储空间扩展、I/O口线扩展、类型转换(电平转换、串并转换、A/D转换)、功能模块、通信扩展、总线扩展等。 外围设备工作设备,连接在接口电路上,主要有输出设备和输入设备。 看门狗相关问题: 看门狗的原理? 答:工作原理:在系统运行以后就启动看门狗计数器,此时看门狗就开始自动计时,如果达到一定的时间还不去给它进行清零,看门狗计数器就会溢出从而引起看门狗中断,造成系统的复位。 为什幺会溢出呢? 因为看门狗是一个计数器,而计数器位数有限。能够装的数值也就有限(比如8位的最多装256个数,16位的最多装65536个数),从开启看门狗那刻起,它就开始不停的数机器周期,数一个机器周期就计数器加1,加到计数器盛不下了(这就是溢出)就产生一个复位信号,重启系统。 看门狗分为软件看门狗和硬件看门狗,在什幺情况下软件看门狗失效? 答:硬件看门狗是利用一个定时器电路,其定时输出连接到电路的复位端,程序在一定时间范围内对定时器清零,因此程序正常工作时,定时器总不能溢出,也就不能产生复位信号。如果程序出现故障,
本文标题:单片机面试问题集
链接地址:https://www.777doc.com/doc-4288913 .html