2014-03-31 17:46:03 u013271997 阅读数 514
{//单片机为什么要复位?
在电路上电时候或电压波动不稳定的时候,当给单片机上电那一瞬间,电压有在几微秒内(有的是几毫秒内)不是直接跳变到5V的而是一个直线上升的阶段,
这时候,单片机不能正常工作,需要复位电路给它延时以等到电压稳定。
}
2011-11-04 00:05:36 shanekong 阅读数 2688
 

从网上收集整理的资料:

如何确定晶振正常起振?

1、判断方法很多,用示波器看波形是最直接的,用数字万用表的电压档测电压也行,因晶振波形的占空比为50%,所以测得的平均电压为1/2Vcc左右,对于51单片机,在使用外置程序存储器的时候还可以测PSEN引脚或P0口引脚的电压或波形,只有晶振电路正常工作,那些引脚才会有信号输出,但现在很少采用片外扩展存储器,所以测晶体两端的电压或波形即可,只是晶振电路设计不良时,测试设备的引入有可能导致停振。

 

2、晶体两端的电压差不是平均电压差,虽然事实上因外电路的影响,晶体两端的电压可能会有差别,但这不是判断晶振是否起振的依据,也不是晶振电路正常工作的条件。至于一高一低没有工作是指一端为Vcc或接近Vcc,另一端为0或接近0,这时晶振电路当然没有起振,否则50%的占空比势将平均电压拉到1/2Vcc左右,但这么表达是不确切的,搞技术应该尽量定量精确描述。

 

3、听声音判断晶振是否起振不可靠,晶体的振荡频率远超人耳能够听见的频率上限,有时能够听到反而是有问题的,说明晶体质量不佳,更多的时候,正常工作的晶体是不会发出任何人耳能听到的声音的,有时声音来自外电路元件

4、单片机的两个信号输入脚一个是19脚(XTAL1)一个是18脚(XTAL2)对应单片机内部的电路是高增益放大器,当外面接晶振的时候,19脚对应高增益放大器的输入端,18脚对应高增益放大器的输出端,所以你测量的时候应该是高增益输出端有信号也就是18脚

 

 

51单片机振荡电路?

在MCS-51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式,如图2.11所示

(a)内部方式时钟电路                                                                                      (b)外接时钟电路 

 

 

 

 

                                                                                            

     内部时钟原理图  (就是一个自激振荡电路)

在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,晶振的频率取值在1.2MHz~12MHz之间。对于外接时钟电路,要求XTAL1接地,XTAL2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz即可。 

晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。CPU就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作的。

2020-01-09 10:37:35 wusuowei1010 阅读数 19

什么是单片机的上电复位
众所周知,单片机属于数字电路,数字电路里只有0(低电平)和1(高电平)之分,单片机要么是高电平复位,要么是低电平复位。以5V单片机为例,上电的过程其实是一个缓慢爬坡的过程,这个过程要几个微秒或几个毫秒,爬坡时单片机不能正常工作,需要复位电路延时到电压稳定后才开始正常执行程序,这就叫上电复位。

单片机基础入门:什么是上电复位,复位电路怎么设计
单片机系统

单片机高电平复位
51单片机是高电平复位的,在其RST引脚施加几个周期的高电平即可实现51单片机的复位,让其程序从头执行。

单片机基础入门:什么是上电复位,复位电路怎么设计
51单片机高电平复位电路

由于电容两端的电压不会发生突变,在上电瞬间复位引脚上是高电平,随着电容的放电过程,复位引脚上的电压逐渐降低,单片机开始正常工作。由此实现51单片机的上电复位。其上电复位的过程如下图所示。

单片机基础入门:什么是上电复位,复位电路怎么设计
高电平复位引脚电压曲线

单片机低电平复位
STM32的单片机,如Cortex-M3内核的单片机是低电平复位的单片机,在上电瞬间,引脚上低电平,随着电容的充电过程,单片机复位引脚上的电压逐渐上升,单片机正常工作。由此实现单片机的上电复位过程。单片机的低电平复位电路如下图所示。

单片机基础入门:什么是上电复位,复位电路怎么设计
单片机低电平复位电路

低电平复位引脚曲线如下图所示,在上电瞬间可见是一个低电平。

单片机基础入门:什么是上电复位,复位电路怎么设计
低电平复位引脚曲线

从复位电路可以看出,电容在哪一侧就是什么电平的复位。

单片机的软件复位
以上高低电平的复位都叫硬件复位,除此之外,单片机还有软件复位。最常见的形式就是看门狗,单片机每隔一段时间去喂狗,看门狗就不会复位,当长时间不喂狗后,软件复位。

2015-07-20 09:44:21 haowidesky 阅读数 243

问题:最近用一款C8051F380单片机,写一个项目程序,结果奇怪地发现,当我的代码量增加一些后,程序烧录进去后,发现单片机几乎没工作,没有进主函数,串口更是不能工作了。怀疑是内存资源用超了,一看,此单片机4K RAM和64K ROM,资源绰绰有余,而且主函数下第一句就关闭了看门狗。找了好半天原因,无果。

解决:最后,将调试功能的Run to main()勾去掉,发现程序能调试了,但是代码在XDATALOOP这儿就容易产生复位,心想,是不是这个循环上单片机耗费的时间太长了,没有及时关闭看门狗,从而导致单片机复位了。于是,我在单片机的Startup.A51文件里,在STARTUP1下增加了如下代码:

STARTUP1:
;关闭看门狗
MOV A,0D9H
ANL A,#0BFH
MOV 0D9H,A
CLR A


问题成功解决了。

2015-07-31 15:46:06 liangsir_l 阅读数 5141

①PCON       

电源管理寄存器在特殊功能寄存器(SFR)中,字节地址为87H,不能位寻址。PCON用来管理单片机的电源部分,包括上电复位检测、掉电模式等。单片机复位时PCON全部被清0。

位序号 D7 D6 D5 D4 D3 D2 D1 D0
位符号 SMOD SMOD0 LVDF P0F GF1 GF0 PD IDL

      SMOD ---该位与串口通信波特率有关

        SMOD=0;串口方式1,2,3时,波特率正常;

        SMOD=1;串口方式1,2,3时,波特率加倍;

      SMOD0,LVDF,P0F----这三位是STC单片机特有的功能,其他型号单片机未保留

      GF1,GF0----两个通用工作标志位,用户可以自由使用

      PD---掉电模式设定位

      PD=0;单片机进入正常工作状态。

      PD=1;单片机进入掉电模式,可由外部中断低电平触发或下降沿触发或者硬件复位模式唤醒

     IDL----空闲模式设定位

      IDL=0;单片机处于正常工作状态。

      IDL=1;单片机进入空闲模式,除CPU不工作外,其余仍继续工作,在空闲模式下可由任一个中断或硬件复位唤醒

②掉电模式和空闲模式对比

空闲模式

      当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。但假若定时器正在运行,那么计数器寄存器中的值还将会增加。单片机在空闲模式下可由任一个中断或硬件复位唤醒,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。 
      让单片机进入空闲模式的目的通常是为了降低系统的功耗,举个很简单的例子,大家都用过数字万用表,在正常使用的时候表内部的单片机处于正常工作模式,当不用时,又忘记了关掉万用表的电源,大多数表在等待数分钟后,若没有人为操作,它便会自动将液晶显示关闭,以降低系统功耗,通常类似这种功能的实现就是使用了单片机的空闲模式或是掉电模式。以STC89系列单片机为例,当单片机正常工作时的功耗通常为4mA~7mA,进入空闲模式时其功耗降至2mA,当进入掉电模式时功耗可降至0.1μA以下。

掉电模式

        当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。

       之前在使用用液晶显示器和单片机模拟打地鼠有戏等简单位图游戏,要实现游戏“暂停”的功能,则需要单片机进入掉电模式,保持RAM和SFR,外部中断电平触发唤醒:

        代码如下:

void int0 () interrupt 0
{
     /*
      *外部中断零,电平触发模式
      */
      IE0=0;//软件清零
      delay();//防抖动,延迟100-300ms
      
       if( 0x02==pp )
       {
              pp=0;//标志位
              PCON=0x02;//进入掉电模式
       }
        else
              pp=0x02;
              //为下次进入掉电模式做准备
}
    设计编程思想:标志位

51单片机入门篇

阅读数 66

没有更多推荐了,返回首页