STC单片机软复位

合集下载

第 章 STC单片机看门狗及软件复位电路 Compatibility Mode

第 章 STC单片机看门狗及软件复位电路 Compatibility Mode

C51单片机基础及编程应用红河学院张自红编著红河学院第7章STC看门狗及软件复位电路看门狗介绍1看门狗基本原理2STC系列单片机看门狗3应用实例4红河学院7.1看门狗介绍在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)红河学院7.2看门狗基本原理看门狗,又叫watchdog timer,是一个定时器电路一个输入,叫喂狗(kicking the dog or service the dog),一个输出,到MCU的RST端MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗,(程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

红河学院7.2看门狗基本原理系统运行任务1以后也就启动了看门狗的计数器,看门狗就开始自动计数,当该任务执行到一定的时间就必须去把看门狗定时器清零。

如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。

红河学院7.3 STC 系列单片机看门狗 EN_WDT :看门狗允许位, 当设置为1 时,看门狗启动。

CLR_WDT :看门狗清0 位, 当设为1 时,看门狗将重新计数。

硬件将自动清0IDLE_WDT :看门狗I D L E 模式位, 当置1 时, 看门狗定时器在“空闲模式”计数;当清0时, 看门狗定时器在“空闲模式”时不计数Mnemonic 76543210Reset value WDT_CONTR --EN_W DT CLR_WDT IDLE_WDT PS2PS1PS0xx00,0000Watch-Dog-Timer Control register:红河学院7.3 STC系列单片机看门狗看门狗定时器预分频值(Pre-scale ),如下表所示看门狗定时器预分频值,STC特有PS2PS1PS0预分频f=20MHz 12T模式时间000239.3ms001478.6ms0108157.3ms01116314.6ms10032629.1ms10164 1.25s110128 2.5s1112565s看门狗溢出时间= (N x Pre-scale x 32768) / 晶振频率其中N为单片机机器周期,STC提供6T或12T两种周期,烧写程序时修改红河学院7.4 应用实例例:编写程序代码对单片机的看门狗进行喂狗。

单片机复位和冷启动详细介绍

单片机复位和冷启动详细介绍

单片机复位和冷启动详细介绍单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

单片机如何冷启动单片机冷启动很简单,关电,再上电,正常复位后,就冷启动成功。

单片机冷启动其实是一个技术术语,是指单片机从最原始状态启动运行。

实现这一目标视不同的单片机内部结构而有所不同。

接下来我们以STC12系列单片机冷启动、热启动解析一下:冷启动——是指在断电状态下重新上电。

冷启动,是在下载程序开始时,为了是单片检测有无下载信号。

若有则下载;若无则执行原来的程序。

热启动——是指已经处于上电状态,给复位端加复位信号(还有其他类型的复位),程序重新运行。

怎样判断是冷启动、热启动?可通过查询PCON寄存器中的POF位来判断,单片机上电冷启动后,POF位变为1,可由软件清0实际判断流程图:Stc单片机里面有一段出厂时固化的程序,这段程序的作用是检测串口是否要下载程序,不需要则执行单片机内的用户程序。

每次启动时运行这端程序,这就是为什么每次下载时要冷启动。

而复位后单片机是从地址0000H处开始执行,地址0000H又会指向主程序入口,即主函数处,即片内下载的用户程序而不会执行前面已经固化的检测串口那段程序。

这就是为什么单片机每次下载要冷启动,而复位不行。

注意,程序前面的宏定义什么的东西不占用系统时间,所以主程序即主函数处。

有一个办法可以给那些需要加电立刻启动的用户,STC单片机可以设置为加电时只有。

STC系列单片机程序烧录方法

STC系列单片机程序烧录方法

STC系列单片机程序烧录方法STC系列单片机(例如STC89C51系列)是一种广泛使用的单片机系列,它具有低成本、易于使用和良好的性能特点,因此在各种嵌入式系统中都有广泛的应用。

在使用STC系列单片机时,我们需要将程序烧录到芯片中,下面是一种常用的STC系列单片机程序烧录方法。

1.硬件准备在进行STC系列单片机程序烧录之前,首先需要准备相应的硬件设备。

我们需要一个烧录器以及与之相配套的连接线。

常用的烧录器有STC-ISP、USB-ISP等,其中STC-ISP烧录器是STC系列单片机官方推荐的烧录器,使用起来非常方便。

2.确定烧录模式STC系列单片机有两种烧录模式,分别是ISP烧录模式和IAP烧录模式。

ISP烧录模式可以通过外部烧录器直接连接到单片机的烧录口进行烧录。

IAP烧录模式可以通过串口等外部设备来进行烧录。

在进行烧录之前,需要确定使用哪种烧录模式,并将单片机设置为对应的烧录模式。

3.连接烧录器与单片机将烧录器通过连接线连接到单片机的烧录口上。

烧录器的引脚与单片机的烧录口引脚相对应,需要一一对应地连接。

4.打开烧录软件使用STC系列单片机官方提供的烧录软件(STC-ISP烧录器对应的软件为STC-ISP程序),打开烧录软件,进入烧录界面。

5.设置烧录参数在烧录软件的烧录界面上,设置烧录参数。

选择所使用的烧录器型号、芯片型号以及烧录模式等。

确保选择正确的型号和模式。

6.选择待烧录的程序文件在烧录软件的烧录界面上,选择待烧录的程序文件。

通常程序文件的扩展名为.hex。

7.擦除芯片在烧录软件的烧录界面上,选择擦除芯片的操作。

将待烧录的程序文件烧录到芯片之前,需要先擦除芯片中原有的程序。

8.开始烧录在烧录软件的烧录界面上,点击“开始烧录”按钮,开始进行程序的烧录。

烧录过程中,烧录软件会将程序文件的指令逐条发送给烧录器,然后由烧录器将指令写入芯片的存储器中。

9.烧录完成烧录过程完成后,烧录软件会弹出烧录成功的提示框。

stc89c52中EEPROM使用方法

stc89c52中EEPROM使用方法

单片机STC‎89C52R‎C内部EEPR‎O M单片机运行时‎的数据都存在‎于RAM(随机存储器)中,在掉电后RA‎M中的数据是无‎法保留的,那么怎样使数据在掉‎电后不丢失呢‎?这就需要使用‎E EPROM‎或FLASH‎R OM 等存储器来实‎现。

在传统的单片‎机系统中,一般是在片外‎扩展存储器,单片机与存储‎器之间通过I‎I C 或SPI 等接口来进行‎数据通信。

这样不光会增‎加开发成本,同时在程序开‎发上也要花更‎多的心思。

在STC 单片机中内置‎了EEPRO‎M(其实是采用ISP/IAP 技术读写内部‎F LASH 来实现EEP‎R OM),这样就节省了‎片外资源,使用起来也更‎加方便。

下面就详细介绍S‎T C 单片机内置E‎E PROM 及其使用方法‎STC 各型号单片机‎内置的EEP‎R OM 的容量最小有‎2K,最大有16K‎,基本上很好地‎满足项目的需‎要,更方便之处就是‎节省了周边的‎E EPROM‎器件,达到节省成本‎的目的,而且内部EE‎P ROM 的速度比外部‎的EEPROM‎的速度快很多‎。

STC 各型号单片机‎内置的EEP‎R OM 是以512 字节为一个扇‎区,EEPROM‎的起始地址=FALSH 容量值+1,那么STC8‎9C52RC‎的起始地址为‎0x2000‎,第一扇区的起‎始地址和结束‎地址0x20‎00~0x21FF‎,第二扇区的起始地址和‎结束地址0x‎2200~0x23FF‎,其他扇区如此‎类推。

深入重点:�传统的EEP‎R OM 是电可擦可编‎程只读存储一‎种掉电后数据‎不丢失的存储‎芯片。

�STC89C‎52RC 的EEPRO‎M是通过ISP‎/IAP 技术读写内部‎F LASH 来实现EEP‎R OM。

�STC89C‎52RC 的EEPRO‎M起始地址为0‎x2000,以512 字节为一个扇‎区,EERPOM‎的大小为2K‎字节。

STC89C‎52RC 与EEPOR‎M实现的寄存器‎有6 个,分别是ISP‎_DATA、ISP_AD‎D RH、ISP_AD‎D RLISP_TR‎I G、ISP_CM‎D、ISP_CO‎N TR。

第 章 STC单片机时钟 复位和电源模式原理及实现

第 章 STC单片机时钟 复位和电源模式原理及实现
-- 内部低压检测复位
注:在STC-ISP软件中推荐选择“低电压时禁止EEPROM操作”前面的复选框。 下面给出与低压检测有关的电源控制寄存器PCON。该寄存器在特 殊功能寄存器地址为0x87H的位置,当上电复位后该寄存器的值为 00110000。
比特 B7
B6
B5
B4
B3
B2
B1
B0
名字
SMOD
SMOD 0
在低压检测复位结束后,不影响特殊功能寄存器IAP_CONTR中 的 SWBS/IAP_CONTR.6 位 的 值 , 单 片 机 根 据 复 位 前 SWBS/IAP_CONTR.6的值选择从用户应用程序区启动,还是从 系统监控区启动。
STC单片机复位
-- 内部低压检测复位
对于5V和3V供电的单片机都提供了内置8级可选的内部低电压 检测门限电压。对于宽电压供电的STC单片机来说,内置了16级可 选的内部低电压检测门限电压值。用户可以根据工作频率和供电电 压,选择合理的门限电压。典型地: 对于5V供电的单片机来说,常温下工作频率大于20MHz时,可
P47=0;
//P4.7置低,灯亮
for(j=0;j<999999;j++);
//软件延迟
IAP_CONTR=0x60;
//软件复位指令
}
注:读者可以进入本书所提供资料的stc_program_example\例子18-2目录下, 打开并参考该设计。
STC单片机复位
--掉电/上电复位
当电源电压VCC低于掉电复位/上电复位检测门限电压时,将单 片机内的所有电路复位。该复位属于冷启动复位的一种。当内部 VCC电压高于掉电复位/上电复位检测门限电压后,延迟32768个时 钟后结束掉电/上电复位过程。当该过程结束后,单片机将特殊功能 寄存器IAP_CONTR中的SWBS/IAP_CONTR.6位置1,同时从系统 ISP监控区启动程序。

有关STC单片机发热、复位的问题

有关STC单片机发热、复位的问题

有关STC单片机发热、复位的问题
最近有个项目,需要一个继电器,接收到低电平就动作,用的
STC15W104、使用的市面上的开关电源5V/3A.
 本来看似简单到底的一个东西,却花费了将近3天的时间搞定。

 1.现象一
 产品是1U机箱内部一个ARM主板,需要定时硬重启一次。

暂且叫STC 控制板,控制板在不带载的情况下,触发正常,与程序很符合,但是带载后,第一次触发正常,第二次单片机就开始发烫,能到80多度,然后直接冒烟,这个现象100%会出现,控制板的继电器没有使用隔离。

 解决办法:
 在5V电源处并了一个1000UF的大电容。

曾尝试并5.1V稳压管,发现不顶用。

 2.现象二
 板子会误动作,尤其是周围有人,或者是工作一段时间,或者是开关963电烙铁都会让继电器误触发。

STC单片机内部EEPROM的应用

STC单片机内部EEPROM的应用

ISP_IAP_enable()?/* 打开IAP 功能*/
for(i=0?i<len?i++)
{
/* 写一个字节*/
ISP_ADDRH=(unsigned char)(in_addr >> 8)?
ISP_TRIG=0xb9?/* 触发ISP_IAP 命令字节2 */
_nop_()?
}
/*
字节读
*/
unsigned char byte_read(unsigned int byte_addr)
{
ISP_ADDRH=(unsigned char)(byte_addr>>8)? /* 地址赋值*/
stc单片机EEPROM读写(一)
EEPROM 操作函数:
#define RdCommand 0x01
#define PrgCommand 0x02
#define EraseCommand 0x03
#define Error 1
#define Ok 0
#define WaitTime 0x01
#define PerSector 512
unsigned char xdata Ttotal[512]?
/*
打开ISP,IAP 功能
*/
void ISP_IAP_enable(void)
D7 D6 D5 D4 D3 D2 D1 D0
ISPEN SWBS SWRST - - WT2 WT1 WT0
启动到ISP 区或用户程序区,这在“STC 单片机自动下载”一节,亦有所应用。
如:
ISP_CONTR=0x60? 则可以实现从用户应用程序区软件复位到ISP 程序区开始运行

第9章 STC单片机时钟、复位和电源模式原理及实现(1)

第9章 STC单片机时钟、复位和电源模式原理及实现(1)
注:该位必须用软件清0。在清零后,如果内部工作电压VCC继续低于检测 门限电压,则将该位再次自动设置为1。
STC单片机复位
--内部低压检测复位
当进入掉电工作状态前,如果低压检测电路未被允许产生中断,则在 进入掉电模式后,该低压检测电路不工作以降低功耗。如果允许可产 生低压检测中断,则在进入掉电模式后,该低压检测电路将继续工作, 在内部工作电压VCC低于低压检测门限电压时,产生低压检测中断, 可以将MCU从掉电状态唤醒。
STC单片机复位
--看门狗复位
看门狗控制寄存器WDT_CONTR,位于特殊功能寄存器 地址为0xC1的位置。当复位后,该寄存器的值为 0x00000B。
比特
B7
B6
B5
B4
B3
B2
B1
B0
名字 WDT_FLGA --- EN_WDT CLR_WDT IDLE_WDT PS2
PS1
PS0
WDT_FLAG
STC单片机所提供的多种电源工作模式,在满足系统性能要求的 同时,也极大地降低了其系统功耗。
STC单片机时钟
【例】控制STC单片机输出时钟频率C语言描述的例子
#include "reg51.h" sfr CLK_DIV =0x97; void main() {
CLK_DIV=0xc5; while(1); }
STC单片机复位
--内部低压检测复位
IDL
将其置位为1,进入IDLE模式(空闲)。 除系统不给CPU提供时钟,即:CPU不执行指令外,其余功能部件仍然
继续工作,可以由外部中断、定时器中断、低压检测中断及ADC转换中 断的任何一个中断唤醒。
GF1和GF0
两个通用工作标志位,用户可以任意使用。

stc单片机复位电平

stc单片机复位电平

stc单片机复位电平标题:STC单片机复位电平STC单片机的复位电平是指单片机在复位时所需的电平条件。

单片机复位电平是确保单片机正常启动和运行的重要参数之一。

在本文中,我们将深入探讨STC单片机复位电平的相关知识。

首先,我们需要了解什么是复位电平。

复位电平是单片机在重新开始运行之前必须达到的电平条件。

通常情况下,单片机的复位电平是低电平。

当单片机接收到复位信号时,它会自动将所有的寄存器和引脚状态重置为初始状态,并重新开始执行程序。

STC单片机的复位电平是按照其产品规格书中定义的标准来确定的。

根据STC单片机的规格书,复位电平通常为低电平,即当复位信号为低电平时,单片机进入复位状态。

这意味着,当我们需要复位STC单片机时,只需将复位引脚接地即可。

在实际应用中,我们需要注意一些细节。

首先,要确保复位信号的稳定性。

复位信号应该保持足够的时间以确保单片机完全复位,通常建议复位信号持续时间为10ms以上。

此外,复位信号的上升时间和下降时间也需要控制在规定的范围内,以确保复位电平的准确性。

另外,我们还需要注意复位电平的连接。

复位信号应该连接到单片机的复位引脚上,并确保该引脚没有其他的电平信号输入。

在实际连接中,我们可以使用电阻或电容来提供复位信号的稳定性和延时。

需要注意的是,在编写程序时,我们应该避免依赖于复位电平的具体数值。

因为不同型号的STC单片机可能会有不同的复位电平要求,为了保证程序的可移植性,我们应该使用单片机提供的复位功能来实现重启和初始化,而不是依赖于具体的电平数值。

综上所述,STC单片机的复位电平是确保单片机正常启动和运行的重要参数。

我们应该正确连接复位信号,并确保复位电平的稳定性和准确性。

通过遵循规格书中的要求,我们可以确保单片机在复位时能够正确地初始化并开始执行程序。

STC89C52

STC89C52

STC89系列高性能单片机及其应用软件/代码/教程2007-07-06 12:52:08 阅读64 评论0 字号:大中小订阅随着电子技术的迅速发展,单片机技术的出现给现代工业测控领域带来了一次新的技术革命。

目前,单片机以其高可靠性、高性能价格比,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走入家庭,洗衣机、空调等,到处都可见到单片机的踪影。

在单片机家族的众多成员中,MCS51系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。

世界各大单片机厂商都在MCS51上投入了大量的资金和人力,围绕51内核,衍生出许多品种,增强51单片机的各种功能。

MCS51家族是目前在单片机领域发展最快的一个品种。

这里要向大家推荐的是新近由STC公司推出的高性价比的STC89系列单片机。

STC89系列单片机的性能STC89系列单片机是MCS-51系列单片机的派生产品。

它们在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051为pin-to-pin兼容。

STC89系列单片机高速(最高时钟频率90MHz),低功耗,在系统/在应用可编程(ISP,IAP),不占用户资源。

下表是STC89系列单片机资源一览表。

AüSTC89系列单片机另外增加了768字节的片内扩展RAM,以解决众多技术人员在编程时的RAM资源严重缺乏的问题。

768字节的片内扩展RAM(地址:000H2FFH)与外部扩展RAM地址重叠,单片机可通过软件设置AUXR.1,决定是否使用片内扩展RAM,以防止可能的与外部扩展RAM的冲突,默认为使用片内扩展RAM。

片内扩展RAM的访问采用间接寻址,可通过①、MOVX A,@DPTR 或MOVX @DPTR ,A 指令访问片内扩展RAM(00H2FFH,共768字节);②、MOVX A,@Ri 或MOVX @Ri,A 指令访问片内扩展RAM(00HFFH,共256字节)。

第9章 STC单片机时钟、复位和电源模式原理及实现(2)

第9章 STC单片机时钟、复位和电源模式原理及实现(2)

#include "reg51.h"
void wakeup() interrupt 0
//声明外部中断0的中断服务程序
{
}
void main()
{
long int j;
IT0=1;
//只允许下降沿触发
EX0=1;
//允许外部中断0
EA=1;
//CPU允许响应中断
STC单片机电源模式
--空闲模式
while(1)
第9章 STC单片机时钟、复位和 电源模式原理及实现
STC单片机电源模式
STC15系列单片机提供了3种运行模式,以降低系统功 耗,即:
低速模式 空闲模式
空闲模式下,功耗为1.8mA。
掉电模式
功耗为0.1μA;
STC单片机电源模式
--低速模式
低速模式由时钟分频器CLK_DIV中的分频因子控制。
STC单片机电源模式
--掉电模式
掉电唤醒专用寄存器工作原理
当MCU进入掉电模式后,掉电唤醒专用定时器开始工作。
内部掉电唤醒专用定时器{WKTCH_CNT,WKTCL_CNL}就从7FFFH开 始计数,直到与{WKTCH,WKTCL}寄存器所设置的值相等后,唤醒系 统振荡器。
当使用内部振荡器后,MCU将在64个时钟周期后,开始稳定工作;如 果使用外部晶体振荡器或者时钟,则在等待1024个周期后,开始稳定工 作。
和WKTCL的{7:0}构成最长15位的计数值(0~32767)。
WKTCL和WKTCH寄存器各位的含义
比特 地址 复位值
B7 B6 B5 B4 B3 B2 B1 B0
WKTCL 0xAA 11111111
WKTCH 0xAB 01111111 WKTEN

第18章 STC单片机时钟、复位和电源模式原理及实现

第18章 STC单片机时钟、复位和电源模式原理及实现
STC单片机时钟、复位和电源模式 原理及实现
主 讲:何宾 Email:hebin@
2016.03
STC单片机时钟
在前面第三章3.1.3节介绍特殊功能寄存器的时候,已经对STC 单片机系统时钟的分频方法进行了详细的介绍。本节通过例子说明
通过SFR对时钟分频控制的实现。
-- 内部低压检测复位
注:在STC-ISP软件中推荐选择“低电压时禁止EEPROM操作”前面的复选框。
STC单片机复位
下面给出与低压检测有关的电源控制寄存器PCON。该寄存器在特 殊功能寄存器地址为0x87H的位置,当上电复位后该寄存器的值为 00110000。
比特 B7 B6 B5 B4 B3 B2 B1 B0
所机时钟
主时钟频率由STC-ISP软件在烧写程序代码时确定。在硬件选 项标签中,在“输入用户程序运行时的IRC频率”右侧通过下拉框
设置STC单片机内部主时钟频率,也可以手动输入任意频率
STC单片机复位
STC15系列单片机提供了7种复位方式,包括:外部RST引脚复 位、软件复位、掉电复位/上电复位、内部低压检测复位、MAX810 专用复位电路复位、看门狗复位和程序地址非法复位。 对于掉电/上电复位来说,可选择增加额外的复位延迟18mS,也 叫做MAX810复位电路,实质就是在上电复位后增加180mS的额外 复位延时。
STC单片机复位
--外部RST引脚复位
注:IAP15W4K58S4单片机P5.4引脚不可设置为RST引脚,也就是不提供用户
STC单片机复位
在ISP软件中进行相关设置的权限,这样做是为了防止误操作。
如果将P5.4引脚设置为复位输入引脚,在外部复位时,需要将
RST复位引脚拉高并至少维持24个时钟外加20μS后,单片机就会

很给力的STC单片机复位方法总结

很给力的STC单片机复位方法总结

很给力的STC单片机复位方法总结单片机软复位有什么好的方法?如从机收到复位命令(软件命令),程序怎么使机器复位?虽然要使软件始终处于可控状态,最好不要用”复位”,因为复位是纯硬件过程,软件是不可控的.但是我们还是要讨论方法,一般流传的方法如下:1、放狗;2、((void(code *)(void))0x0000)();3、用单片机一个引脚控制点一下RSTRST;4、用单片机一个引脚控制重新加电;5、用单片机自带的软件复位指令或内狗指令;6、goto 大法;方法1:放狗是单片机软复位的最好办法,也基本上是唯一的一个办法。

但并不是所有单片机都具备看门狗的功能,也不是一个万全之策。

办法2:这不是复位,只是把程序转到地址0 去执行,不如用一个JMP 更直接。

目前可能极少数单片机或者用户已经自行添加Boot load 时用户程序的程序开始地址并不为0x0000,所以需要查找这些特定单片机的启动地址。

在keil C51 下面可以这样实现:void soft_reset(void){((void (code *) (void)) 0x0000) ();}在需要软件复位的地方使用语句:soft_reset();一般可实现软件复位。

办法3:用软件实现的硬复位。

需要牺牲一个单片机引脚,且增加了单片机外部电路构造的复杂性,很不可??r办法4:类似办法3,同样需要牺牲一个单片机引脚,且增加了单片机外部电路构造的复杂性.办法5:Atmel 89C 不带内狗,S 的有内狗,只是一条指令就行。

如STC 的单片机有软件复位指令,即ISP_CONTR,地址在0E7H 单元(即str ISP_CONTR=0xE7),MOV ISP_CONTR,#00100000B(C 语言为。

stc单片机电机干扰复位_解释说明以及概述

stc单片机电机干扰复位_解释说明以及概述

stc单片机电机干扰复位解释说明以及概述1. 引言1.1 概述STC单片机是一种广泛应用于嵌入式系统中的微控制器,具有体积小、功能强大、易于使用等特点。

然而,在一些特定的应用场景中,例如工业控制领域,电机干扰会对STC单片机的正常运行造成不利影响。

因此,为了有效应对电机干扰问题,本文将介绍STC单片机电机干扰复位的解释和实现方法。

1.2 文章结构本文主要分为五个部分进行论述。

首先是引言部分,旨在对文章进行概述和介绍,明确研究目的及文章结构。

其次是STC单片机电机干扰复位的解释部分,将详细阐述电机干扰复位的概念,并探讨在STC单片机中存在的电机干扰问题以及复位技术在其中的应用。

接着,在说明和实现方法部分,将提供防止电机干扰传播至单片机系统、采用硬件滤波器抑制电机回馈信号以及使用软件算法检测和处理电机干扰的具体方式。

随后,在实例分析部分将通过工业控制场景来展示STC 单片机电机干扰复位方案的应用,包括应用背景和场景介绍、方案设计和实现以及效果评估和优化。

最后,在结论与展望部分将总结本文所介绍的STC单片机电机干扰复位方案的优点与局限性,并展望未来在该领域中的研究方向与挑战。

1.3 目的本文旨在通过对STC单片机电机干扰复位的解释说明和概述,提供一种有效应对电机干扰问题的方法,并探讨其在工业控制等领域中的应用。

通过本文的阐述,读者将了解到STC单片机面临的电机干扰问题以及如何采取相应措施进行复位处理,从而保证系统稳定运行并提高可靠性。

另外,本文还将为STC单片机电机干扰复位领域的研究者提供一些指导和启示,以便未来进一步深入研究和改进该技术。

2. STC单片机电机干扰复位的解释:2.1 电机干扰复位的概念在工业控制系统中,电机常常会引起一些不可预料的问题,例如电磁干扰、功率波动和噪声等。

这些问题可能会对单片机系统造成干扰,导致其正常运行受到影响甚至发生故障。

为了解决这些问题,并保证单片机系统的稳定性和可靠性,需要进行电机干扰复位。

第11章 复位、电源和时钟

第11章 复位、电源和时钟

11.2.2 省电方式的应用
省电方式的编程举例请参见教材P251-255
单片钟源选择 在对STC12C5410AD单片机进行ISP下载用户程序时,可以在选项中 选择下次冷启动后时钟源为“外部晶体或时钟”
2.时钟分频及分频寄存器
如用户系统希望大幅降低功耗,可对系统时钟进行分频。利用时钟分频寄存器( CLK_DIV),可进行时钟分频,从而使STC12C5410AD单片机在成较低频率工作。
PCON寄存器
地址 87H D7 SMOD D6 SMOD0 D5 LVDF D4 POF D3 GF1 D2 GF0 D1 PD D0 IDL 复位值 30H
1)SMOD:串行口波特率加倍控制位。 0:波特率加倍。 1:波特率不加倍。 2)SMOD0:帧错误检测有效控制。复位时,SMOD0=0。 1:SCON寄存器中的SM0/FE位用于FE(帧错误检测)功能。 0:SCON寄存器中的SM0/FE位用于SM0功能,和SCON中的SM1一起指定串行通信 的工作方式。
单片机应用技术
8/12
11.2 省电方式
11.2.1 省电方式的控制 电源电压为5V时,STC12C5410AD单片机的正常工作电流为 4~20mA。为了尽可能降低系统的功耗,STC12C5410AD单片机可以 运行在两种省电工作方式下:空闲方式和掉电方式。空闲模式下, STC12C5410AD单片机的工作电流为3mA;掉电模式下, STC12C5410AD单片机的工作电流<0.1µ A。
ISP/IAP控制寄存器ISP_CONTR
地址
E7H
D7
ISPEN
D6
SWBS
D5
SWRST
D4
CMD_FAIL
D3

STC单片机的冷启动与复位

STC单片机的冷启动与复位

关于stc51的冷启动下载和复位
Stc单片机里面有一段出厂时固化的程序,这段程序的作用是检测串口是否要下载程序,不需要则执行单片机内的用户程序。

每次启动时运行这端程序,这就是为什么每次下载时要冷启动。

而复位后单片机是从地址0000H处开始执行,地址0000H又会指向主程序入口,即主函数处,即片内下载的用户程序而不会执行前面已经固化的检测串口那段程序。

这就是为什么单片机每次下载要冷启动,而复位不行。

注意,程序前面的宏定义什么的东西不占用系统时间,所以主程序即主函数处。

有一个办法可以给那些需要加电立刻启动的用户,STC单片机可以设置为加电时只有P1.0/P1.1为低电平时开始下载程序,否则直接执行用户程序。

这种办法快,不用等前面检测串口的那段时间。

stc单片机冷启动是必须的而复位电路不是必须的,不管是冷启动还是手动启动。

也就是想下载程序必须冷启动,而有没有复位电路无所谓。

但是最小系统板上必须有复位电路,无论是上电复位,还是上电加手动复位,虽然在一些简单的程序中看不出区别,但是因为复位操作会对一些特殊寄存器产生影响,这样没有复位操作的话再次执行函数的时候会出现错误。

单片机断电后在通电也会从主函数处继续执行,可能是单片机断电后地址自动回到0000H,但是那些特殊寄存器里的值不会改变。

对于上电复位,貌似电路不会有电流流过,但是上电瞬间,有一个给电容充电的过程,这个过程中rst端口会出现一个正脉冲,只要该脉冲保持1ms以上就能使单片机复位。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//*******************stc 单片机不断电下载程序******************
#include <REG52.H> sfr ISP_CONTR=0xe7;
软复位寄存器声明
void main(void)
{ //////////////将这段代码嵌入到程序中//////////////// if((PCON&0x10)==0) //如果 POF 位=0
ISP/IAP 控制寄存器(ISP_CONTR)
STC 单片机 ISP/IAP 控制寄存器在特殊功能寄存器中的字节地址为 E7H,
不能位寻址,该寄存器用来管理和 ISP/IAP 相关的功能设定及是否软件复位
等。单片机复位时该寄存器全部被清 0。其各位的定义如表 4.3.1 所示。
表 1 ISP/IAP 控制寄存器(ISP_CONTR)
在以前的教程中,曾利用单片机串口收到某个有效数据后,执行从 isp 引导区软启动的 命令(ISP_CONTR=0x60;),实现程序不断电下载。但该方法为实现程序不断电下载,占用 了一些单片机资源——串口、中断等,实际应用中有一些不便。下面介绍另一种程序不断电
利用单片机的 reset 复位键下载程序:
单片机上电复位时,POF=1;单片机手动复位时,POF=0 单片机上电运行时对 POF 位进行判断,如果 POF 位=0,将 POF 位置 1,让单片机从 isp 引 导区软复位。如果 POF 位=1,将 POF 位清 0。 将实现以上功能的代码加入到你的程序中,当需要下载程序时,按下复位按钮,此时 POF 位=0,单片机再次从 isp 引导区软复位,从而实现程序下载。 该方法只需在用户程序中嵌入一段判断 POF 标志位的代码就能实现程序不断电下载,无需 占用任何单片机内部资源。
{ PCON=PCON|0x10; ISP_CONTR=0x60;
//将 POF 位置 1 //软复位,从 ISP 监控区启动
}
else
{ PCON=PCON&0xef; //将 POF 位清零
}
//////////////////////////////////////////////
while(1) {
位序 号 位符 号
D7 ISPEN
D6
D5
D4 D3 D2 D1 D0
SWBS
SWRST
--
-- WT2 WT1 WT0
ISPEN:ISP/IAP 功能允许位。0:禁止 ISP/IAP 编程改变 Flash。1:允许编
程改变 Flash。
SWBS:软件选择从用户应用程序区启动(0),还是从 ISP 程序区启动(1)。要
正常情况下,stc 单片机只有在上电复位时才执行 isp 引导程序,其它复位(看门狗复位、 rst 引脚复位)则直接执行用户程序。通过阅读 stc 单片机手册发现,在用户程序运行时,利 用软件复位方式,可以让 stc 单片机复位后从 isp 引导程序处运行,利用该特性,可以模拟 stc 单片机上电复位状态,实现不断电程序下载。STC 单片机有热启动和冷启动两种复位形 式。两种复位方式区别如下:
们通过人为设定可以给 CPU 一个最长的等待时间,若在此时间段内相应的操
作未完成,数据将丢失或错误。以下给出芯片厂商推荐的等待时间关系表,
如表 3.4.2 所示:
表 2 ISP/IAP 编程 CPU 等待时间参考表
设置等待时间 WT2 WT1 WT0 011 010 001 000
读操作 6 11 22 43
CPU 等待时间(机器周期)
写操作 擦除操作 要求系统时钟
30
5741
小于 5MHz
60
10942
小于 10MHz
120
21885
小于 20MHz
240
43769
小于 40MHz
SWBS 与 SWRST 组合情况如下: 从用户应用程序区(AP 区)软件复位并切换到用户应用程序区(AP 区)开始 执行程序: ISP_CONTR=00100000B,SWBS=0(选择 AP 区),SWRST=1(软复位)。 从系统 ISP 监控程序区软件复位并切换到用户应用程序区(AP 区)开始执行 程序: ISP_CONTR=00100000B,SWBS=0(选择 AP 区),SWRST=1(软复位)。 从用户应用程序区(AP 区)软件复位并切换到系统 ISP 监控程序区开始执行 程序: ISP_CONTR=01100000B,SWBS=1(选择 ISP 区),SWRST=1(软复位)。 从系统 ISP 监控程序区软件复位并切换到系统 ISP 监控程序区开始执行程 序: ISP_CONTR=01100000B,SWBS=1(选择 ISP 区),SWRST=1(软复位)。 本复位是整个系统复位,所有的特殊功能寄存器都会复位到初始值,I/O 口 也会被初始化。 用户应用程序区(AP 区)指仅仅是用户自己编写的程序区。 ISP 监控程序区 ISP 区是指芯片出厂时就已经固化在单片机内部的一段程 序,STC 单片机可以进行 ISP 串行下载程序,这就是因为芯片在出厂时已经在 单片机内部固化了 ISP 引导码,程序首次上电时先会从 ISP 区开始执行代码, 体现在实际实验中时,就是我们在下载程序时,先要点击下载软件界面上的下载, 然后再开启单片机电源,当单片机检测到上位机有下载程序的需要时,便启用 ISP 下载功能给单片机下载程序。若经过短暂的时间没有检测到上位机有下载程 序的需求,单片机便会从用户应用程序区(AP 区)开始执行代码。
用户应用程序在运行过程中,有时会有特殊需求,需要实现单片机系统复位(热启动之一), 传统的 8051 单片机由于硬件上未支持此功能,用户必须用软件模拟实现,实现起来较麻烦 。 STC 单片机增加了相应的硬件功能,内部的 ISP/IAP 控制寄存器 ISP_CONTR 便可以实现此功
能。用户只需简单的控制 ISP_CONTR 特殊功能寄存器的其中两位 SWBS 和 SWRST 就可以实 现系统复位。
因学习需要,本人从网上整理了一些 STC 单片机不断电程序下载的方法,拿出来分享一下。 stc 单片机 isp 实现原理如下:
stc 单片机每次上电复位后首先执行 isp 引导程序,如果串口检测到合法的数据流,则进 行 isp 程序下载;串口没有检测的合法的数据流,则跳出 isp 程序,执行用户程序。
` ` ` } }
色代码复制到您的程序中,首次使用时应利用断电下载的方式将含有 红色代码的程序下载到单片机中 2 将hex文件载入stc单片机isp软件,点击下载按钮 3 按下单片机开发板上复位键,单片机进行is程序下载

与 SWRST 直接配合才可以实现。
SWRST:0:不操作;1:产生软件系统复位,硬件自动清零。
WT2、WT1、WT0:ISP/IAP 编程时设定 CPU 等待的最长时间。ISP/IAP 编程时
可对 Flash 进行读操作、写操作、擦除操作,当进行这些操作时,时钟将被
CPU 锁定只进行这些操作,而不同的操作将会耗费 CPU 不同的时间,这里我
相关文档
最新文档