我的生活随笔

单片机工作原理及常见问题解决

  单片机是一种大规模的数字集成电路,它的基本工作条件是电源、复位信号和时钟信号,只有具备了这些条件,单片机才能开始工作。

  单片机内部有大量的数字电路,在为这些电路提供电源的同时,还要给它们提供复位信号,让这些电路都进入初始状态,然后才开始工作。

  再接通+5V 电源的瞬间,由于 C1 来不及充电,其两端的电压 UC1 为 0V,R2 两端的电压 UR2 为 5V (UC1 +UR2 =5V),即单片机的9脚为高电平,该高电平信号进入9脚,对内部电路进行复位,让内部电路都进入初始状态。随着+5V电源对C1不断充电,C1两端的电压迅速上升,而 R2 两端的电压则迅速下降,当C1两端电压充到5V时,R2两端电压为0V,单片机9脚变为0V(低电平),复位完成,单片机的内部电路开始工作。由于该复位过程在单片机接通电源时就会自动进行,故又称上电复位。

  如果单片机工作不正常,可按一下复位开关S,在按下开关时,+5V电源通过R1加到9脚,9脚为高电平,该高电平对内部电路进行复位,使内部电路全部回到初始状态,当S断开时,9脚变为低电平,复位结束,单片机内部电路全部恢复到起始状态,然后重新开始工作。该复位过程称作手工复位。

  为了让单片机的内部电路有次序、有节拍地工作,需要为这些电路提供时钟脉冲信号,让时钟信号来控制它们工作。有的电路来一个时钟脉冲就工作一次,有的电路需要来多个时钟脉冲才工作一次,如果没有时钟脉冲到来,这些电路就不能正常工作。时钟信号频率越高,这些电路的工作速度越快。

  18、19 脚为时钟信号引脚(XTAL2、XTAL1)。单片机可采用两种时钟电路来提供时钟信号,如图2-5所示。

  图2-5(a)采用了内时钟电路,单片机内部的反相放大器与 XTAL2、XTAL1 引脚外接的反馈兼选频电路(C1、C2、晶振)构成时钟振荡器,产生时钟信号提供给单片机的内部电路。如果晶振的频率为12MHz,则时钟振荡器产生的时钟信号频率为12MHz。

  图2-5(b)采用了外时钟电路,单片机外部的振荡电路产生的时钟信号经放大器放大后,进入XTAL2引脚,送给单片机的内部电路。单片机XTAL2、XTAL1引脚之间的内部放大电路由于无外接反馈选频电路,并且XTAL1引脚接地,所以不会产生振荡。

  单片机是在时钟脉冲的控制下工作的,有的电路来一个时钟脉冲就可完成一次工作,而有的电路需要来多个时钟脉冲才能完成一次工作。为了方便分析工作时序,单片机中规定了几种周期:时钟周期、状态周期、机器周期和指令周期。

  时钟周期是指振荡器产生的时钟信号周期,也即时钟振荡频率的倒数。例如:单片机时钟信号的频率为12MHz,那么时钟周期就为1/12μs。

  状态周期由两个时钟周期组成,它分为P1节拍和P2节拍,第1个时钟周期为P1节拍,第2个时钟周期为P2节拍。

  单片机在执行指令时,通常把执行过程划分成几个基本的操作,完成一个基本操作所需要的时间称为机器周期。一个机器周期由6个状态周期,也即12个时钟周期组成。

  指令周期是指执行一条指令所需要的全部时间,它通常为1~4个机器周期。例如,单片机在执行“MOV A,C3H”指令时,需要2个机器周期,即24个时钟周期,若时钟周期为1/12μs,那么执行该指令需要2μs。

  MCS-51系列单片机有4组I/O接口:P0、P1、P2和P3。前面简单介绍了一下各个端口,要学好单片机技术,非常有必要详细了解这些端口的内部结构及工作原理。

  P0端口有P0.0~P0.7共8个引脚,这些引脚除了可作I/O引脚外,在外接存储器时,还可作地址/数据总线引脚。P0端口每个引脚的内部电路结构都相同,其内部电路结构如图2-6所示。

  如果要将P0端口用作输出端口,单片机内部的CPU会发出一个“0”到与门的控制端。控制端的“0”一方面关闭与门(即与门的一端为“0”时,不管另一端输入何种信号,输出都为“0”),使地址/数据总线送来的信号无法通过与门;另一方面控制电子开关,让电子开关与锁存器的O端接通。

  此时若给锁存器的写锁存器端送写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器并从Q和 端输出,如D端输入“1”,则 端输出“0”(Q端输出“1”),该“0”经电子开关送到场效应管VT2的栅极,VT2截止,从P0端口输出“1”。

  也就是说,当给P0端口内部的与门控制端送“0”,同时给写锁存器端送写脉冲信号时,单片机内部总线的信号就可以通过接口电路从P0端口输出。

  当将P0端口用作输入端口时,P0端口的信号既送到三态门,又送到VT2的漏极。如果锁存器之前锁存的为“0”,即Q=0、 =1,其

  解决的方法是:在将数据输入P0端口前,先通过内部总线向锁存器写“1”,即让=0,VT2截止,P0 端口输入的“1”就可以送到三态门的输入端,此时再给三态门的读引脚送一个读控制信号,“1”就可以通过三态门送到内部总线。

  也就是说,要将P0端口作为输入端口,先要将P0端口的锁存器写“1”,然后再给输入三态门送读控制信号,P0端口的数据就可以通过接口电路,送到单片机内部的总线上。

  如果要将 P0 端口用作地址/数据总线引脚,先要给与门的控制端送“1”,于是与门打开,同时电子开关和非门输出端接通。当地址/数据总线为“1”时,“1”一方面通过与门送到VT1的栅极, VT1导通,另一方面送到非门,经反相变为“0”,再经电子开关送到VT2的栅极,VT2截止,VT1导通,VT2截止使P0端口输出为“1”;当地址/数据总线为“0”时,VT1导通,VT2也导通,P0端口输出为“0”。

  也就是说,当给与门的控制端送“1”时,内部地址/数据总线上的信号就可以从P0端口输出, P0端口就可当作地址/数据总线引脚使用。

  P1端口有P1.0~P1.7共8个引脚,这些引脚可作I/O引脚。P1端口每个引脚的内部电路结构都相同,其内部电路结构如图2-7所示。

  从图2-7 中可以看出,P1 端口的结构较P0端口简单很多,由于P1端口内部采用了一只场效应管,并且与电源之间接了一只上拉电阻,所以不需要在P1端口的外部接上拉电阻。

  “如果要将P1端口用作输出端口,应给锁存器的写锁存器CL端送写脉冲信号,内部总线送来的数据就可以通过 D 端进入锁存器并从Q和O端输出,如D端输入“1”,则O端输出“0”(Q端输出“1”),该“0”送到场效应管的栅极,场效应管截止,从P1端口输出“1”。

  当将P1端口用作输入端口时,如果锁存器以前锁存的为“0”,即Q=0、 O=1,其中O=1会使场效应管导通,P1端口被钳在“0”电平上,“1”将无法送入P1端口。所以与P0端口一样,在将数据输入P1端口前,先要通过内部总线向锁存器写“1”,让O=0,场效应管截止,P1端口输入的“1”就可以送到输入三态门的输入端,此时再给三态门的读引脚送一个读控制信号,“1”就可以通过输入三态门送到内部总线。

  P2端口有P2.0~P2.7共8个引脚,P2端口每个引脚的内部电路结构都相同,其内部电路结构如图2-8所示。

  从图2-8中可以看出,P2端口的内部结构与P0端口很相似。P2端口也可作I/O引脚,在外接存储器时,还可以作为地址总线引脚。

  如果要将P2端口用作地址总线引脚,单片机内部的CPU会发出一个控制信号到电子开关的控制端,让电子开关与内部地址总线接通,地址总线上的信号就可以在通过电子开关、非门和场效应管后从P2端口引脚输出。

  如果要将P2端口用作I/O接口,单片机内部的CPU会发出一个控制信号到电子开关的控制端,让电子开关与锁存器接通。

  当将P2端口用作输出端口时,给锁存器的CL端送写脉冲信号,内部总线上的数据就被锁存进锁存器并从Q端输出,再通过电子开关、非门和场效应管从P2端口引脚输出。

  当将P2端口用作输入端口时,如果锁存器以前锁存的为“0”,即Q=0,经非门反相后会使场效应管导通,P2端口被钳在“0”电平上,“1”将无法送入P2端口。所以与P0、P1端口一样,在将数据输入P2端口前,先通过内部总线向锁存器写“1”,让Q=1,场效应管截止,P2端口输入的“1”就可以送到输入三态门的输入端,此时再给读引脚送一个读控制信号,“1”就可以通过三态门送到内部总线。

  P3端口有P3.0~P3.7共8个引脚,P3端口可作为I/O接口,还可以用于其他方面。P3端口每个引脚的内部电路结构都相同,其内部电路结构如图2-9所示

  当将P3端口用作输出端口时,给锁存器的CL端送写脉冲信号,内部总线送来的数据就可以通过D端进入锁存器并从Q端输出,再通过与非门和场效应管从P3端口引脚输出。

  当将 P3 端口用作输入端口时,应先通过内部总线向锁存器写“1”,让 Q=1,场效应管截止, P3端口输入的信号就可以通过缓冲器、输入三态门送到内部总线。

  P3端口用作第二功能(又称复用功能)时,实际上也是在该端口输入或输出信号,只不过输入、输出的是一些特殊功能的信号。所以当P3端口用作第二功能时,其内部电路的工作原理与用作I/O接口时是一样的,在用作输入功能时,端口的锁存器同样要先置“1”。

  P3端口8个引脚的第二功能详见表2-1。例如P3.2引脚用作第二功能时,该端口可输入由外部设备送到的中断请求信号,该信号通过缓冲器、输入三态门送到内部总线。

  P3端口除了可以接收外界的输入信号外,还可以接收内部的替代输入功能端送来的信号,该信号通过输入三态门送到内部总线。

  总之,P0、P1、P2和P3端口的功能是:都可以作输入或输出端口;P0、P2、P3端口具有第二功能,各种端口的第二功能见表2-1。例如,表中说明P0端口的第二功能可以用作低8位地址总线/数据总线,P2端口可用作高8位地址总线,P3.0端口可用作串行数据接收端。

赞(0)
未经允许不得转载:我的生活随笔 » 单片机工作原理及常见问题解决

我的生活随笔我的生活随笔