STC单片机简介

  STC单片机是一款增强型51单片机,完全兼容MCS-51,还增加了新的功能,比如新增两级中断优先级,多一个外中断,内置EEPROM,硬件看门狗,具有掉电模式,512B内存等。还支持ISP下载,不用编程器,只要一个MAX232和一些廉价的元件就能写程序,可擦写10万次。因此是一款很好用的单片机。

  

 stc单片机的优缺点

  stc单片机优点:

  1、抗干扰能力强;

  2、保密性能强悍,很难被破解;

  3、单片机时钟有防外部电磁辐射功能;

  stc单片机缺点:

  1、功耗较高,5V供电;

  2、8位,运行速度慢;

  3、无硬件乘法器,乘除法运算都为4周期指令;

  4、单片机内集成资源少。

  为什么STC单片机要冷启动

  stc的程序分引导区和程序区。引导区的代码主要负责ISP在线烧录。而stc的冷启动顺序就是先从引导区然后启动到程序区的。而热启动就是普通的51启动方式,只能从程序区头部开始重新执行。所以你必须冷启动。另外STC提供了一个特殊的寄存器地址,通过设置他能通过软件实现硬复位的功能直接跳转到引导区。

  

  STC单片机冷启动和复位是什么

  STC单片机冷启动和复位是什么,现以STC12系列为例说明。

  冷启动,单片机掉电,电量放光后上电,为冷启动。

  复位,单片机不掉电,使用复位管脚对其复位(还有其他类型的复位:看门狗、IAP_COUNTER控制软复位)。这些属于热启动。

  STC单片机的复位方式

  以STC12C5A60S2系列单片机为例:

  1、外部RST引脚复位。

  2、外部低压检测复位。

  3、软件复位

  4、掉电复位/上电复位

  5、看门狗复位

  

  STC单片机冷启动和复位有什么区别

  区别就是复位启动是强制进行重新启动(前提就是你的电脑必须已经开着),而冷启动就是你关机后重新进行启动,这样是按照电脑(硬盘)的工作原理来进行的。

  还有的是复位启动是不管你的硬盘是否运行,都要强制重启,这样的话,对你的硬盘有一定的损害。而冷启动就等电脑(硬盘)保存好数据后,再一次进行启动,对硬盘没有损害。

  关于stc51的冷启动下载和复位

  Stc单片机里面有一段出厂时固化的程序,这段程序的作用是检测串口是否要下载程序,不需要则执行单片机内的用户程序。每次启动时运行这端程序,这就是为什么每次下载时要冷启动。而复位后单片机是从地址0000H处开始执行,地址0000H又会指向主程序入口,即主函数处,即片内下载的用户程序而不会执行前面已经固化的检测串口那段程序。这就是为什么单片机每次下载要冷启动,而复位不行。注意,程序前面的宏定义什么的东西不占用系统时间,所以主程序即主函数处。

  有一个办法可以给那些需要加电立刻启动的用户,STC单片机可以设置为加电时只有P1.0/P1.1为低电平时开始下载程序,否则直接执行用户程序。这种办法快,不用等前面检测串口的那段时间 。stc单片机冷启动是必须的而复位电路不是必须的,不管是冷启动还是手动启动。也就是想下载程序必须冷启动,而有没有复位电路无所谓。但是最小系统板上必须有复位电路,无论是上电复位,还是上电加手动复位,虽然在一些简单的程序中看不出区别,但是因为复位操作会对一些特殊寄存器产生影响,这样没有复位操作的话再次执行函数的时候会出现错误。单片机断电后在通电也会从主函数处继续执行,可能是单片机断电后地址自动回到0000H,但是那些特殊寄存器里的值不会改变。

  

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

  单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见下表。

  值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。 说明:表中符号*为随机状态; A=00H,表明累加器已被清零;

  

  

  PSW=00H,表明选寄存器0组为工作寄存器组;

  SP=07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;

  Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出; IP=×××00000B,表明各个中断源处于低优先级; IE=0××00000B,表明各个中断均被关断;

  系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。

  51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。

单片机成长之路(51基础篇) - 002 STC单片机冷启动和复位有什么区别的更多相关文章

  1. 单片机成长之路(51基础篇) - 015 关于sdcc的多文件编译范例二

    本文是续 单片机成长之路(51基础篇) - 009 关于sdcc的多文件编译范例(一)编写的. 在实际的工作中,单片机的头文件和功能函数不可能同全部放在同一个文件夹下面,我们把单片机成长之路(51基础 ...

  2. 单片机成长之路(51基础篇) - 009 关于sdcc的多文件编译范例(一)

    本文是续 单片机成长之路(51基础篇) - 006 在Linux下搭建51单片机的开发烧写环境编写的. 本范例主要由(main.c ,delay.h,delay.c,makefile)4个文件组成,s ...

  3. (转)Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...

  4. 单片机成长之路(51基础篇) - 021 STC89C51系列单片机 内部EEPROM 驱动

    最近又看了一下关于stc单片机的知识,感觉在使用中EEPROM是个经常用到的东西,特地学习了一下,给大家分享一下心得,如有不足,多多包涵,废话不多说,一图解千言,先上图: /*------------ ...

  5. 单片机成长之路(51基础篇) - 004 STC89C52MCU 软件实现系统复位

    用户应用程序在运行过程中,有时会有特殊需求,需要实现单片机系统复位(热启动之一),传统的8051单片机由于硬件上未支持此功能,用户必须用软件模拟实现,实现起来较麻烦.STC单片机增加了相应的硬件功能, ...

  6. Sass进阶之路,之一(基础篇)

    Sass 学习Sass之前,应该要知道css预处理器这个东西,css预处理器是什么呢? Css预处理器定义了一种新的语言将Css作为目标生成文件,然后开发者就只要使用这种语言进行编码工作了.预处理器通 ...

  7. python成长之路第三篇(1)_初识函数

    目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...

  8. C++自学成长之路(第一篇)

    今天开始我将开启C++自学成长之路,今天是第一天,在以前就一直在网上查找关于c++的资料,想买一本好一点的,权威一点的资料书,通过努力查找,我选择了c++ primer,在网上这本书的好评如潮.更多的 ...

  9. Java多线程系列--“基础篇”03之 Thread中start()和run()的区别

    概要 Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答.本章内容包括:start() 和 run()的区别说明start() 和 run()的区别示例start( ...

随机推荐

  1. POJ 2531-Network Saboteur(dfs)

    题目链接:https://vjudge.net/problem/POJ-2531 最大流-最小割问题: https://wenku.baidu.com/view/54323c030722192e453 ...

  2. HDU 2888 Check Corners (模板题)【二维RMQ】

    <题目链接> <转载于 >>> > 题目大意: 给出一个N*M的矩阵,并且给出该矩阵上每个点对应的值,再进行Q次询问,每次询问给出代询问子矩阵的左上顶点和右下 ...

  3. POJ 1328 安装雷达 (贪心)

    <题目链接> 题目大意: 以x轴为分界,y>0部分为海,y<0部分为陆地,给出一些岛屿坐标(在海中),再给出雷达可达到范围,雷达只可以安在陆地上,问最少多少雷达可以覆盖所以岛屿 ...

  4. XamarinAndroid组件教程设置动画的设置插值器

    XamarinAndroid组件教程设置动画的设置插值器 为动画设置插值器,可以使用BaseItemAnimator抽象类中的SetInterpolator()方法,其语法形式如下: public v ...

  5. Android视图动画集合AndoridViewAnimations

    Android视图动画集合AndoridViewAnimations Android视图动画是针对视图对象的动画效果,包括对象平移.旋转.缩放和渐变四种类型.通过组合这四种类型,可以创建出无数种动画效 ...

  6. Maya插件开发的几种方式归纳

    目前仅仅是一时兴趣,想要探索一下Maya插件开发的具体方法,但因为没有时间所以只起了个头 首先来到Autodesk Developer Network http://usa.autodesk.com/ ...

  7. ajax中的async属性值之同步和异步及同步和异步区别

    jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步.这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里 ...

  8. 读《31天学会CRM项目开发》记录2 - 企业信息管理系统

    在信息技术的快速推动下,企业如果依然利用传统的管理方式,以人为主,那效率便会大打折扣.在此背景下,企业信息化系统得 到了高速发展.如我们常见的ERP系统.MES系统,都是提高公司运行效率,降低运营以及 ...

  9. mysql:general_log 日志、数据库线程查询、数据库慢查询

    开启general log会将所有到达MySQL Server的SQL语句记录下来.一般不会开启开功能,因为log的量会非常庞大.但个别情况下可能会临时的开一会儿general log以供排障使用.  ...

  10. Python直接控制鼠标键盘

    Python直接控制鼠标键盘 之前因为期末的原因已经很久没写博客了,今天博主发现一个好玩的模块PyAutoGUI,借助它可以使用Python脚本直接控制键盘鼠标,感觉可以解决很多无聊的机械运动.这里记 ...