STC不断电下载
来源:互联网 发布:mind map软件 编辑:程序博客网 时间:2024/05/16 00:30
STC每次烧录都要重新断开电源再次打开,十分麻烦,于是想要实现不断电下载。我们知道,STC单片机中有两个数据存储区,一个是固化好的ISP程序数据区,另一块是用户数据区。STC是通过ISP来下载。ISP的作用就是将上位机发送来的数据写到用户区,即将上位机发来的程序写到ROM中。stc启动分为两种一种是冷启动就是从断电在上电,另一种就是普通的复位启动。第一种启动是从单片机出场就固化好的ISP启动区来启动程序,如果此时串口没有检测到有合法的下载流就会跳到用户代码区如果检测到合法的下载流就会执行ISP开始下载程序。
/* 通过串口来烧录程序。开启串口中断,实时监测上位机是否有发送合法的下载流,如果收到合法的下载流就跳到ISP去开始执行ISP程序*/#include "reg51.h"#define FSOC 11059200L#define BAUD 115200#define RELOAD (65536 - FSOC / 4 / BAUD)#define ISPPROGRAM() ((void (code*)())0xf000)sfr AUXR = 0x8e;void uart() interrupt 4 using 1{ static char cnt7f = 0; if(TI) TI = 0; if(RI) { if(SBUF == 0x7f)//检测下载流,上位机不断向串口发送0x7f,如果检测到多次,那么就可以下载 { if(++cnt7f >= 16) { ISPPROGRAM(); } } }}void main(){ SCON = 0X50; AUXR = 0X40; TH1 = RELOAD >> 8; TL1 = RELOAD; TR1 = 1; ES = 1; EA = 1; while(1) { //User Code }}/*通过复位按键来烧录程序。ISP_CONTR有一个位是用来表示是否复位到ISP,还是用户区的,通过设定ISP_CONTR来选择复位时从哪里启动程序。*/#include "reg51"sfr ISP_CONTR=0xe7; //软复位寄存器声明void main(void){ //复位后执行程序,当执行到这句时,就会跳到ISP区域,这样就可以直接烧录程序了 ISP_CONTR = 0x60; //软复位,从ISP监控区启动 while(1) { //用户程序 }}
0 0
- STC不断电下载
- stc单片机不断电下载程序
- stc不断用串口向外发送数据,如何下载程序
- STC51系列单片机不断电自动下载程序
- 动力火车-UPS_不断电
- STC 下载 自动波特率 设计
- STC单片机的下载协议
- 使用STC-ISP下载程序
- STC8951单片机不断电下载的方法(亲自测试过)
- STC8951单片机不断电下载的方法(亲自测试过)
- STC
- stc
- 单片机STC-ISP下载线学习板
- STC单片机程序下载问题汇总
- STC单片机无法下载故障总结
- STC单片机程序下载失败总结
- stc单片机“全自动下载”(程序版)
- STC单片机使用RS485下载程序方法
- 题目1153:括号匹配问题
- How to make a sprite from URL in cocos2d-x
- LeetCode Unique Paths II
- Maven的pom.xml介绍
- Maven简介(六)——Dependency
- STC不断电下载
- 黑马程序员-OC语言-创建一个对象并访问成员变量(听课笔记)
- Maven简介(二)——使用Maven
- github android 项目地址
- 详解android:scaleType属性
- ViewPager(1)
- c和c指针学习1
- mac mysql 修改密码
- HALCON中的算子大全(中英对照)