前期教程

  • 【单片机】51单片机使用总结

前言

  最近心血来潮想研究一下51单片机装系统,于是买了一个51单片机最小系统板,如下图所示。

同时也买了一个STC86C52,打算以这个单片机来试验。但是很遗憾,第一步——烧录程序就出现了问题,于是就花了几个小时查找相关的资料,同时顺带研究了一下其他型号51单片机的下载方式。

51单片机到底有几种下载方式?

建议阅读前先看看这篇博客:【嵌入式】一文彻底搞懂单片机程序烧录

  对于这个问题,最重要的是区分型号。先说说比较古老的ATmel的AT89S52,这个型号的单片机是采用SPI协议进行程序写入的,也就是上图中右边那10个引脚。虽然它用的引脚数比SPI多,但其本质还是基于SPI协议。
  而对于目前仍然被广泛使用的STC的51单片机,一般是通过串口下载程序,采用的是引导程序的方式烧录。但是这里细分为两种,一种是冷启动,一种是热启动。

STC89C52

  首先说说冷启动,由于STC的单片机是基于串口进行下载的,而且其内部已固化有引导程序,每次上电复位时,系统首先执行引导程序,检测是否有下载指令,如果没有,继续执行用户程序,如果有,则更新程序,其执行逻辑如下图所示。【图片来自官网手册】

因此,在实际使用时,由于引导程序执行过快,需要先在上位机点击下载的按钮,此时上位机开始不断给单片机传输要下载程序的指令(0x7F),然后再上电使其从引导程序开始执行,这样便能实现冷启动来下载程序。

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

  但是,这里需要注意的是,一般的USB转TTL模块是不能用来给STC的51单片机下载程序的!必须要略微修改一下电路,参考官网手册,如下图所示。

  如果是一般的USB转TTL模块会在只连TXD,RXD,GND时芯片也会有电(因为TXD和RXD都是5V),这种现象称之为串口漏电,这会导致芯片仍然是有电的状态,从而无法冷启动。所以一般来说51单片机冷启动的烧录电路都是已经布置好的,估计也不会有人专门做一个只适用于STC单片机程序烧录的USB转TTL模块。

  找到一篇教程,里面详细介绍了这个下载电路及相关的理论知识,建议想自己画板的可以结合官方手册看看。 附:链接

  这种冷启动方式下载程序略有点复杂,需要重复上电和断电,因此还有一种下载方式能够实现热启动,即不用下电即可完成程序更新操作,这个实现的原理就是STC单片机中有寄存器可以让芯片从引导程序开始执行。如下图所示。

这种方式具体实践方式还待研究,可以看一下以下几个链接

  • STC免冷启烧录器DIY - CSDN
  • STC免断电自动程序下载 - CSDN
  • //2022.7.21更新
    免冷启动的实现原理一般有三种:利用DTR和RTS两个引脚在下载程序时电平的变化实现单片机的下电与上电;再加一个单片机,实现目标单片机下载程序时的下电与上电;最后一种方式是在程序中增加固定的代码(设置寄存器使其跳转到ISP区执行),并结合上位机一起使用。
  • 参考链接

最新试验//2022.7.18

  今天又试了一下STC89C52的串口下载,意外发现又好使了!之前写这篇博客时发现一般买来的USB转串口的模块是不能直接用来给STC89C52下载程序的,但是今天试了一下发现好像是可以的!,虽然还会出现串口漏电的情况,即电源指示灯半亮的状态,但确实可以烧进程序!记录一下。

AT89S52

  说完了比较常用的STC单片机,再来说说比较古老的AT89S52。这种型号的单片机的烧录方式是基于SPI协议,就是那种10针脚的接口。这种单片机需要买一个USBisp或者USBasp设备,如下图所示。

  其对应的上位机是ProgISP,这里给一个软件站的下载链接,还是比较干净的。目前网上流传的版本主要有两个:1.72和2.0,这里推荐使用1.72版的,因为2.0版的不支持USBasp。打开软件,界面如下图所示。

首先要关注那个program state,如果已插入编程器(USBasp或USBisp)且左侧那个PRG的图标是彩色的,那万事大吉,表明你现在的编程器能够使用,如果是灰色的,那就要开始排查问题,首先确定驱动有没有安装,因为USBasp是需要安装驱动的,个人非常不建议找那种别人下载好的驱动文件,然后你用这个去更新驱动程序。有一个更好的方案是使用软件Zadig,这个软件很常见,主要用来安装一些USB的驱动,这里也放一个软件站的下载链接,挺干净的。
  如果已经安装好驱动但不好使,建议先在设备管理器中删除设备,然后再安装驱动。首先打开Zadig,然后再插入USBasp,就可以在其列表中找到USBasp的选项,然后安装如下图所示的驱动即可。

如果列表一个设备都没有,可以点击上面的option,选择List All Devices,如下图所示。

  安装好驱动之后,可以重启ProgISP试试,看那个图标是不是还是灰色,如果还出问题的话,那基本就是硬件问题了,得重买一个。

【单片机】51单片机烧录那些事儿相关推荐

  1. 单片机 | 51单片机原理

    [金善愚] 单片机应用原理篇 笔记整理 课程视频 :https://space.bilibili.com/483942191/channel/collectiondetail?sid=51090 文章 ...

  2. 51单片机——51单片机入门基础知识

    第一部分.单片机简介 MSC-51单片机指以8051为核心的单片机,由美国的Intel公司在1980年推出,80C51是MCS-51系列中的一个典型品种:其它厂商以8051为基核开发出的CMOS工艺单 ...

  3. [STC系列单片机/51单片机]软件延时计算方法详解

    选取12M晶振时,时钟周期为(1 / 12) us,且假如单片机工作在12T模式下,则一个机器周期为12 * (1 / 12) = 1 us. 为表述方便,下文均用T_M表示机器周期,观察KEIL仿真 ...

  4. 单片机 | 51单片机实践【基础篇】

    [金善愚] 单片机应用实践--基础篇 笔记整理 课程视频 :https://space.bilibili.com/483942191/channel/collectiondetail?sid=1440 ...

  5. AutoLeaders控制组—51单片机学习笔记(LED控制、独立按键、数码管)

    本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 根据测试,目 ...

  6. GC9A01-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)

    GC9A01-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于GC9A01 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...

  7. ST7735-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)

    ST7735-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于ST7735 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...

  8. 零基础学习51单片机

    零基础学习51单片机 前言 51单片机是一款非常经典的8位单片机,广泛应用于各种嵌入式系统和电子产品中.本文将从零开始,以简明易懂的方式介绍51单片机的基本原理.基本语法和应用. 什么是单片机 单片机 ...

  9. 51单片机C51程序

    51单片机51单片机 C51程序 C51程序 学习C51程序之前需要对C语言有一定的了解和学习:这里只介绍与C语言有区别的地方: 具体的不同如下: 1.C51中增加了几种针对MSC-51单片机的特有数 ...

  10. 51单片机sht30_基于51单片机和机智云的WIFI智能插座(2019版)

    和大家分享一下我做STC15W4K56S4单片机(51单片机)连接机智云WIFI智能插座的过程,实现了网络时间获取.温湿度采集.定时开关.OLED屏幕显示.定时开关.数据定时保存等功能,供参考和交流. ...

最新文章

  1. 固件安全性—防止内存损坏和注入攻击
  2. HYSBZ - 1798 Seq 维护序列seq 线段树lazy标记
  3. JSP 三 :九大隐式对象
  4. IDEA创建maven项目报错解决:Failed to create a Maven project: 'C:/Users/../IdeaProjects/../pom.xml' already e
  5. Python 三十大实践、建议和技巧(附代码链接)
  6. android wifi布局,如何实现Android状态栏的Wi-Fi搜索周边的列表和周围Wi-Fi强度图标切换?...
  7. 虚拟主机IIS防范入侵常见问答
  8. 普罗米修斯 监控_接近完美的监控系统—普罗米修斯
  9. 程序员必定会爱上的10款软件
  10. maven上传jar到私服
  11. linux编译ios动态库,[Linux] linux下生成静态库和动态库
  12. go的string正则匹配_Golang(四)正则表达式使用
  13. 带你一起一步步推理出RocketMQ的架构
  14. 至商3000服务器信息,至商3000软件
  15. LayUI使用distpicker.js插件实现三级联动
  16. php attr属性,jquery 获取 自定义属性(attr 和 prop)
  17. Typora如何自动生成标题序号
  18. C# web 讯飞语音在线合成 错误10111
  19. 网上书城(搜索页,购物车)
  20. Ae:字符面板与段落面板

热门文章

  1. 机器学习实战 | Python机器学习算法应用实践
  2. 微信开发者工具构建npm
  3. windows系统使用bat命令文件启动redis
  4. 下列符合c语言语法的实型常量,以下各项中,符合C语言语法规定的实型常量是()...
  5. java8 64_【java8下载】Java8最新版下载 64位-七喜软件园
  6. C语言谭浩强第三版例题及课后题汇总
  7. 安川控制器MP3300与C# 上位机通讯
  8. 虚拟IP与arp协议
  9. 虚拟 IP原理(动态 IP 、固定 IP 、实体 IP)
  10. 前端多人开发统一代码格式化工具