单片机是怎么工作的
我们大概的了解了单片机的结构、特点,下面我们主要讲解单片机如何工作,有那些工作方式。
单片机共有复位、程序执行、低功耗和编程与加密四种工作方式,下面分别加以介绍。
1.复位方式
(1)为什么要复位
大家知道,单片机执行程序时总是从地址0000H 开始的,所以在进入系统时必须对CPU 进行复位,也叫初始化;另外由于程序运行中的错误或操作失误使系统处于死锁状态时,为了摆脱这种状态,也需要进行复位,就象电脑死机了要重新启动一样。
(2)复位的原理
单片机复位的方法其实很简单,只要在RST 引脚(9 脚)上加一个持续时间为24 个振荡周期(即两个机器周期)的高电平就可以了。如果晶振为12M,计算一下这个持续脉冲需要多长时间?
(3)如何进行复位
复位操作有上电自动复位、按键复位和外部脉冲复位3 种方法,上电自动复位是通过外部复位电路的电容充电来实现的,当电源刚接通时电容C 对下拉电阻开始充电,由于电容两边的电压不能突变,所以RTS 端维持高电平,只要这个充电时间不超过1ms,就可以实现对单片机的自动上电复位,即接通电源就完成了系统的初始化,在实际的工程应用中,如果没有特殊要求,一般都采用这种复位方式;按键复位的电路如图2 所示,它其实就是在上电复位的基础上加了R2 和SA,这种电路一般用在需要经常复位的系统中;外部脉冲复位的电路如图3 所示,外部复位通常用于要求比较高的系统,比如希望系统死锁后能自动复位。外部复位是由专门的集成电路来实现的,也就是我们通常俗称的“看门狗”电路,这种电路有很多,它们不但能完成对单片机的自动复位功能,而且还有管理电源、用作外部存储器等功能,比如X25045,MAX813L 等等就是比较常用的此类芯片,
现在让我们先来看看单片机复位后,它的内部会有些什么变化呢?看下面的表:
(4)复位后的状态
这就是单片机复位后内部系统的状。
2.程序执行方式
程序执行是单片机的基本工作方式,由于复位后PC=0000 ,所以程序就从地址0000H 开始执行,此时单片机就根据指令的要求完成一系列的操作控制,比如前面讲的让LED 灯闪烁起来,不过在实际使用中,程序并不会从0000H 开始执行,而总是安排一条跳转指令,比如LJMP START ,为什么要这样安排,我们讲到中断时再来解释。
3. 低功耗操作方式
在以电池供电的系统中,有时为了降低电池的功耗,在程序不运行时就要采用低功耗方式,低功耗方式有两种—待机方式和掉电方式。
低功耗方式是由电源控制寄存器PCON (上一课我们提到过的)来控制的。电源控制寄存器是一个逐位定义的8 位寄存器,其格式如下,
其中:SMOD 为波特率倍增位,在串行通讯时用;GF1 为通用标志位1;GF0 为通用标志位0;PD 为掉电方式位,PD=1,进入掉电方式;IDL 为待机方式位,IDL=1 ,进入待机方式。也就是说只要执行一条指令让PD 位或IDL 位为1 就可以了。那么单片机是如何进入或退出掉电工作方式和待机工作方式的。
1 .待机方式
2 .进入待机方式
当使用指令使PCON 寄存器的IDL=1 ,则进入待机工作方式。此时CPU 停止工作,但时钟信号仍提供给RAM,定时器,中断系统和串行口;同时堆栈指针SP,程序计数器PC,程序状态字PSW,累加器ACC 以及全部的通用寄存器都被冻结起来;单片机的消耗电流从24mA 降为3.7mA,这样就可以节省电源的消耗。
② 退出待机方式
退出待机方式可以采用引入中断的方法,在中断程序中安排一条RETI 的指令就可以了,什么是中断,我们现在还不知道,当然这没关系。其实待机方式和我们使用电脑时的睡眠方式有异曲同工之妙。
(2)掉电方式
①进入待机方式
当使用指令使PCON 寄存器的PD=1 ,则进入掉电工作方式,此时单片机的一切工作都停止,只有内部RAM 的数据被保持下来;掉电方式下电源可以降到2V,耗电仅50uA 。此时就相当于把显示器和硬盘也关闭了。
② 退出待机方式
退出掉电工作方式的唯一方法是复位,不过应在电源电压恢复到正常值后再进行复位,复位时间要大于10mS ,在进入掉电方式前,电源电压是不能降下来的,因此可靠的单片机电路最好要有电源检测电路。显然掉电方式和待机方式是两种不同的低功耗工作方式,前者可以在无外部事件触发时降低电源的消耗,而后者则在程序停止运行时才使用。关于单片机的低功耗的方式就简单的讲这些,更详细的内容也留到下册再讲解,因为那都是大虾们的作品。
4. 编程和加密方式
单片机的编程与加密是由专门的设备来完成的,这种设备称为编程器或烧录器,类似的产品有很多,功能也不尽相同。本站的XL2000是集烧录、试验、编程、仿真一体化的产品
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)