51、AVR、PIC、MSP430等单片机的复位电路详解
51单片机复位电路
复位是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。
80C51复位结构如上图所示,此处的复位引脚只是单纯地称为RST而不是RST/VPD,因为CHMOS型单片机的备用电源也是由VCC引脚提供的。
无论是HMOS型还是CHMOS型的单片机,在振荡器正在运行的情况下,复位是靠在RST/VPD引脚加持续2个机器周期(即24个振荡周期)的高电平来实现的。在RST引脚出现高电平后的第二个周期执行内部复位,以后每个周期重复一次,直至RST端变低电平。
51单片机复位电路及复位操作
单片机的复位有上电复位和按钮手动复位两种。如下图2所示为上电复位电路,图(b)所示为上电按键复位电路。
上电复位是利用电容充电来实现的,即上电瞬间RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。图2 (a)中的R是施密特触发器输入端的一
个10K?下拉电阻,时间常数为10×10-6×10×103=100ms。只要VCC的上升时间不超过1ms,振荡器建立时间不超过10ms,这个时间常数足以保证完成复位操作。上电复位所需的最短时间是振荡周期建立时间加上2个机器周期时间,在这个时间内RST的电平应维持高于施密特触发器的下阈值。
上电按键复位2(b)所示。当按下复位按键时,RST端产生高电平,使单片机复位。
在复位有效期间(即高电平),80C51单片机的ALE引脚和PSEN引脚均为高电平,且内部RAM不受复位的影响。
AVR单片机复位电路
Mega16已经内置了上电复位设计。并且在熔丝位里,可以控制复位时的额外时间,故AVR 外部的复位线路在上电时,可以设计得很简单:直接拉一只10K的电阻到VCC即可(R0)。为了可靠,再加上一只0.1uF的电容(C0)以消除干扰、杂波。D3(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V 左右,另一作用是系统断电时,将R0(10K)电阻短路,让C0快速放电,让下一次来电时,能产生有效的复位。当AVR在工作时,按下S0开关时,复位脚变成低电平,触发AVR芯片复位。
重要说明:实际应用时,如果你不需要复位按钮,复位脚可以不接任何的零件,AVR芯片也能稳定工作。即这部分不需要任何的外围零件。
PIC单片机复位电路
当PIC16F87X系列单片机使用低频振荡方式时,单片机的外接引脚MCLR连接如图所示中(a)和(b)所示。
其中,MCLR引脚的漏电流最大值为5μA,电阻R取值应小于40kΩ,以保证其压降不大于0.2V;R1用作限流电阻,取值1.0Ω,用于保护MCLR引脚内部电路。
PIC单片机复位电路
二极管D使电容C能够在电源掉电时快速放电。电容C的充电过程对于我们有用,而放电过程不仅无用,而且在一次掉电之后,C还有积累电荷时,如果再次上电,就会造成RC延时电路失去延时作用,从而不能可靠复位。
MSP430单片机复位电路
只要电源接通,那么这个电容就会“逐渐充满电”,这个过程必须要有,正是这个过程保证了CPU正确地“RESET”。
当电容充满电之后我们把电源开关断开了,这个电容中的电“何去何从”呢?VCC和GND之间接了N多的器件,所有的器件都对它说:“把你那点电给我吧,我还能坚持一下。”电容说:“给你们没问题,可是我他娘脑袋上有个电阻挡我的财路,你们先别急,我慢慢把电放给你们。”
当电容刚刚要把电通过那个上拉电阻放出来,电源开关突然又接通了。CPU开始冲电容吼:“孙子!你Y的那个充电过程怎么没啦?我还要复位呢!”电容不干了:“废话,我上次充的电还没放呢这他妈电源又通啦!”CPU急了:“那我怎么办?我得复位啊!”电容眼珠一翻:“管你Y怎么办,死去吧你!”
如果有了这个二极管就可以快速将电容上的电压释放,保证复位信号正确无误。这个才是该二极管起到的真正作用。
avr单片机编程入门精品,新手学习必看(有典型实例哦)
单片机分为很多种,有什么avr单片机,stm32单片机等,随着单片机被广泛的使用,这些都是在单片机学习中需要接触的,有很多人问我:对于avr单片机编程来说,学习这个的时候很是迷茫,死活入不了门,到底avr单片机编程如何入门,这里就让我这个老鸟教会你。
首先要知道,avr单片机是什么?不然不了解这个,那接下来的学习也是白瞎,AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。
AVR单片机特点(ATmega16):
1、131条机器指令,且大多数指令的执行时间为单个系统时钟周期;
2、32个8位通用工作寄存器;
3、工作在16MHz时具有16MIPS的性能;
4、配备只需要2个时钟周期的硬件乘法器。
AVR单片机优势:
AVR单片机是Atmel公司推出的较为新颖的单片机,其显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期为指令周期,实行流水作 业。AVR单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用4~8MHz,故 最短指令执行时间为250~125ns。
了解了这些,那接下来就通过一系列的实例,让你对avr单片机了解透彻
系统时钟:
ATmega16的片内含有4种频率(1/2/4/8M)的RC振荡源,可直接作为系统的工作时钟使用。同时片内还设有一个由反向放大器所构成的OSC(Oscillator)振荡电路,外围引脚XTAL1和XTAL2分别为OSC振荡电路的输入端和输出端,用于外接石英晶体等,构成高精度的或其它标称频率的系统时钟系统。
为ATmega16提供系统时钟源时,有三种主要的选择:(1)直接使用片内的1/2/4/8M的RC振荡源;(2)在引脚XTAL1和XTAL2上外接由石英晶体和电容组成的谐振回路,配合片内的OSC(Oscillator)振荡电路构成的振荡源;(3)直接使用外部的时钟源输出的脉冲信号。方式2和方式3的电路连接见图2-6(a)和2-6(b)。
内部看门狗:
在AVR片内还集成了一个1MHz独立的时钟电路,它仅供片内的看门狗定时器(WDT)使用。因此,AVR片内的WDT是独立硬件形式的看门狗,使用AVR可以省掉外部的WDT芯片。使用WDT可以有效的提高系统的可靠行。
avr单片机的工作流程:
AVR CPU的工作是由系统时钟直接驱动的,在片内不再进行分频。图2-7所示为Harvard结构和快速访问寄存器组的并行指令存取和指令执行时序。CPU在启动后第一个时钟周期T1取出第一条指令,在T2周期便执行取出的指令,并同时又取出第二条指令,依次进行。这种基于流水线形式的取指方式,使AVR可以以非常高的速度执行指令,获得高达1MIPS/MHz的效率。
存储器:
所有的I/O寄存器可以通过IN(I/O口输入)和OUT(输出到I/O口)指令访问,这些指令是在32个通用寄存器与I/O寄存器空间之间传输交换数据,指令周期为1个时钟周期。此外,I/O寄存器地址范围在$00-$1F之间的寄存器(前32个)还可通过指令实现bit位操作和bit位判断跳转。SBI(I/O寄存器中指定位置1)和CBI(I/O寄存器中指定位清零)指令可直接对I/O寄存器中的每一位进行位操作。使用SBIS(I/O寄存器中指定位为1跳行)和SBIC(I/O寄存器中指定位为0跳行)指令能够对这些I/O寄存器中的每一位的值进行检验判断,实现跳过一条指令执行下一条指令的跳转。
在I/O寄存器专用指令IN、OUT、SBI、CBI、SBIS和SBIC中使用I/O寄存器地址$OO~$3F。
当以SRAM方式寻址I/0寄存器时,必须将该其地址加上$0020,映射成在数据存储器空间的地址。
两个重要的寄存器:状态寄存器SREG和堆栈指针寄存器SP
堆栈是数据结构中所使用的专用名词,它是由一块连续的SRAM空间和一个堆栈指针寄存器组成,主要应用于快速便捷的保存临时数据、局部变量和中断调用或子程序调用的返回地址。堆栈在系统程序的设计和运行中起者非常重要的作用,只要程序中使用了中断和子程序调用,就必须正确的设置堆栈指针寄存器SP,在SRAM空间建立堆栈区。
处在I/O地址空间的$3E($005E)和$3D($005D)的两个8位寄存器构成了AVR单片机的16位堆栈指针寄存器SP。AVR单片机复位后堆栈寄存器的初始值为SPH=$00、SPL=$00,因此建议用户程序必须首先对堆栈指针寄存器SP进行初始化设置。
AVR的堆栈区是建立在SRAM空间的,16位的SP寄存器可以寻址的空间为64K。
由于AVR的堆栈是向下增长的,即新数据进入堆栈时栈顶指针的数据将减小(注意:这里与51不同,51的堆栈是向上增长的,即进栈操作时栈顶指针的数据将增加),所以尽管原则上堆栈可以在SRAM的任何区域中,但通常初始化时将SP的指针设在SRAM最高处。
对于具体的ATmega16芯片,堆栈指针必须指向高于$0060的SRAM 地址空间,因为低于$0060的区域为寄存器空间。ATmega16片内集成有1K的SRAM,不支持外部扩展SRAM,所以堆栈指针寄存器SP的初始值应设在SRAM的最高端:$045F处。
根据上面所讲述,AVR的SP堆栈指针寄存器指示了在数据SRAM中堆栈区域的栈顶地址,一些临时数据、局部变量,以及子程序返回地址和中断返回地址将被放置在堆栈区域中。在数据SRAM中,该堆栈空间的顶部地址必须在系统程序初始化时由初始化程序定义和设置。
当执行PUSH指令,一个字节的数据被压入堆栈,堆栈指针(SP中的数据)将自动减1;当执行子程序调用指令CALL或CPU响应中断时,硬件会自动把返回地址(16位数据)压入堆栈中,同时将堆栈指针自动减2。反之,当执行POP指令,从堆栈顶部弹出一个字节的数据,堆栈指针将自动加1;当执行从子程序RET返回或从中断RETI返回指令时,返回地址将从堆栈顶部弹出,堆栈指针自动加2。
通过这些原理及实例,你是否对avr单片机编程有了更深入的了解呢,其实avr单片机学习并不难,只要你认真去学,把每一步每一个流程都掌握透彻,那你就在avr单片机编程方面就已经入门了,这些你是否get到了呢?
相关问答
avr 是什么 单片机 ?AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(ReducedInstructionSetComputer)精简指令集高速8位单片机。AVR的单片机可以广泛应用...
51单片机和 AVR单片机 的区别?这个区别不少,最主要的当然是寄存器和IO端口啦!avr在51的基础上扩充了大量的寄存器和大量的引脚功能,几乎每个引脚都有第二功能,还有如:4路PWM波的输出、I^2...
单片机 烧写软件 AVR _fighter (图标是七星瓢虫的),在另外一台...Win764位和32位之间可能存在软件运行环境的微妙差别,试着更新AVR_fighter到最新版本,或者检查一下你的电脑是否满足最低系统要求5条回答:【推荐答案】你试试这...
我在烧录 avr单片机 的时候烧录不了-ZOL问答单片机配置写入是你对这片芯片下次再写或程序上电启动时的要求,数据校验是你这片芯片写完后是否还要校验一次(这提高了可靠性可要多花时间)9条回答:【推荐答案...
proteus元件库里面,都有那些系列的 单片机 ?MCS51全系列,PIC12/16系列,AVR的ATMEGA8/16/32系列,ARM的2104、2105、2106、2114、2124;MOTO的68HC系列等。MCS51全系列,PIC12/16...
175度高温 AVR单片机 价格是多少?[回答]175度高温AVR单片机的价格都是不一样的,我知道有个网站,网站里边都是一些有保障的大公司,你可以去看一下。175度高温AVR单片机的价格受多方面影响,...
初学者选择哪种 单片机 学习比较好?单片机的种类很多,若基础知识扎实,不论选择哪款单片机入门皆可,但对于普通的单片机初学者建议还是以简单的AT89S51单片机入门较好。选用该单片机入门有以下优...
AVR单片机 ldi赋值问题?,ldi性能如何??[回答]更新,还免费给我们这些老客户升级,真的专业。我们和立格生信以前合作过,后来找了其他家做,现在还是觉得他们做的比较好,去年又重新合作了ldi代码...
单片机 什么书最好?51:《单片机的C语言应用程序设计》作者:马忠梅PIC:《PIC单片机入门与实战》作者:张明峰AVR:《AVR单片机嵌入式系统原理与应用实践》作者:马潮这就是我...
单片机 有多少种?有三种。第一种:51系列单片机,第二种:NY系列单片机,第三种:AVR系列单片机。单片机(Single-ChipMicrocomputer)是一种集成电路芯片,是采用超大规模集成...有...