STC单片机程序是怎么下载进单片机的

发布时间:2021-12-22 14:10:16 作者:柒染
来源:亿速云 阅读:1367

本篇文章给大家分享的是有关STC单片机程序是怎么下载进单片机的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

这个问题我们分两部分来说,一部分是单片机端是如何实现的,另一部分是电脑端是如何实现的,下面我们慢慢讨论。

一、单片机端是如何实现下载程序的?

要说清这个问题,就需要说说STC单片机的存储器,STC单片机的存储器包含数据存储器SRAM,程序存储区ROM,EEPROM和ISP程序监控区,以下以STC15w448s4为例说明:

A. 数据存储器SRAM4K大小,内部RAM256字节<idata>,内部扩展的3840字节<xdata>,这部分就是用来给我定义变量,常量的区域。

B. 程序存储区ROM48K大小,今天的重点,程序下载后就是存在这部分区域里了。

C. EEPROM:13K大小,此部分就是类似于24C02这样的芯片,掉电存储区,用于保存密码等一些掉电后不能丢失的数据。

D. ISP程序监控区STC官方在芯片出厂前就通过特殊方式固化了程序在内部,我们用户是没法操作和使用本区域的。

ISP程序监控区的作用:

   在ISP监控区里,STC官方出厂芯片的时候就已经烧写进去一段特殊的代码,我们用户是没法修改和查看的,这里说的烧写也不是我们给单片机下载程序这样简单的烧写,是通过特殊的方式特殊的接口写进特殊的程序,总之不要想着去搞懂它,要懂的接下来我们慢慢说。

STC单片机在上电的很短一段时间内是不去执行我们用户的程序的,单片机是首选去执行ISP监控区域的代码,此时这里面的代码只干一件事,就是不断去检测P30引脚上的数据。

a、如果P30引脚上的数据是连续的合法的下载命令,那ISP监控区域内的程序就去擦除程序存储区ROM内的我们上一次烧写进去的代码,再把我们当前这次需要下载的程序存储到程序存储区ROM内,最后在复位PC指针,使得PC=0000H。完成这些后,CPU就不断的通过PC指针去读取我们刚才烧写进去程序存储区ROM内的代码来执行,到这里一次完整的程序下载(烧写)就完成了。

b、如果P30引脚上没有连续的合法的下载命令,那ISP监控区域的程序就去复位PC指针,使得PC=0000H,CPU就不断的通过PC指针去读取程序存储区ROM内的代码来执行。

二、电脑端(STC_ISP软件端)是如何实现程序下载的?

STC单片机程序是怎么下载进单片机的

如上图所示,当我们点击STC_ISP软件中的下载/编程按钮(上图中红圈部分)后,电脑就不断发送下载命令到CH 340G,芯片内部转换电平后得到标准的串口信号,再发送给单片机的P30口。此时,单片机是不会执行下载程序的,需要我们给单片机断电一下,再上电实现冷启动,冷启动后,上面我们说到ISP监控区域就起作用了,上面我们说了,在单片机上电的很短一段时间里,单片机是去执行ISP监控区域的程序的。ISP识别出此时单片机P30引脚上的信号是电脑发送的下载命令,那ISP监控程序就在单片机P31引脚上返回一个信号,信号再通过CH340G转换后传输到STC_ISP软件,软件识别出返回的信号是单片机给的,此说说明电脑端STC_ISP软件和单片机之间通过“密码”连接成功,也就是下载时候STC_ISP右侧监控区域里显示的“握手成功”。接下来通信就正常化了,STC_ISP不断的发送我们要下载的程序到单片机的P30引脚,单片机从P31引脚不断返回“接收正常”,不断的这样重复下去,直到程序下载完。

程序下载完后,单片机ISP监控区域代码还在一直识别,但是STC_ISP 软件已经不再发送数据,此时单片机ISP区域代码检测不到下载命令后,直接使PC复位,使得PC=0000H,CPU就不断的从程序存储区ROM里读取程序来执行,此时我们直观看到的就是单片机程序下载成功了,而已单片机已经在执行我们的程序,只要程序没问题,那自然能看到我们想要的效果啦。

下面,简单总结下载程序的全过程:

1、电脑端点击“下载”按钮,STC_ISP 软件发送下载命令到单片机P30引脚,此时单片机需要冷启动

2、单片机冷启动后,P30引脚收到下载命令,再从P31引脚返回自身的基本信息,此时单片机和STC_ISP已经捂手成功

3、STC_ISP发送程序数据到单片机P30引脚

4,、单片机接收程序数据并保存在程序存储区ROM里,并从P31引脚返回“接收成功”信号到STC_ISP

5、STC_ISP接收到单片机返回的“接收成功”后,重复第3步,知道需要下载的程序数据发送完毕

6、程序数据发送完毕后,单片机P30引脚不再收到下载数据,过一小段时间后,ISP监控区域复位PC指针,使得PC=0000H,单片机开始从程序存储区ROM里读取程序来执行。

最后我们来总结一下,STC单片机下载程序的几个关键点:

1、单片机要和电脑采用串口方式建立连接

2、电脑端串口要能正常通讯

3、单片机要能断电冷启动

4、单片机要能返回自身的一些基本信息回到电脑端。

以上就是STC单片机程序是怎么下载进单片机的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. STM32单片机程序下载方式汇总
  2. 单片机蜂鸣器掌握程序和驱动电路

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

stc

上一篇:怎么使用ScalikeJDBC操作MySQL数据库

下一篇:mysql中出现1053错误怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》