以前在进行单片机编程时比较烦恼的时每次下载程序都需要断电,点击下载,再上电才能将程序下载到单片机,如果偶尔一两次这样操作可以忍受,但是往往我们都是需要调试代码,多次进行下载操作,不断的断电上电无疑对单片机来说是一个很大的损伤。
根据stc12c5a60s2(一片增强型的51单片机,兼容stc89c52单片机)的数据手册,可以通过单片机系统软复位,使单片机运行系统启动代码(这部分代码不同于我们的用户代码),我们断电再上电也是这个原理。通过往IAP_CONTR(C7H)写60H实现系统的软复位,然后进行自动下载。单片机复位后有两种启动形式,一种是从用户程序区启动,我们平时按复位键就是这种启动形式,另一种是从ISP程序区启动,断电启动属于这种方式,通过设置IAP_CONTR可以实现这种启动方式,我们需要下载程序,所以需要从ISP程序区启动。具体的寄存器设置请参考官方数据手册。
具体实现步骤如下:
首先将下面的代码通过我们以前的老方式下载到单片机中
IAP_CONTR EQU 0C7H
ORG 0000H
LJMP START
ORG 0023H
LJMP SERIAL
START:
LCALL SERIALINIT
MainLoop:
SJMP MainLoop
SERIALINIT:
MOV SP,#60H
MOV SCON,#50H
MOV TMOD,#20H
MOV TH1,#0FDH
MOV TL1,#0FDH
SETB TR1
SETB ES
SETB EA
SERIAL:
PUSH ACC
PUSH PSW
JNB RI,RIGO
CLR RI
MOV A,SBUF
CJNE A,#0AFH,RIGO;
NOP
NOP
NOP
MOV IAP_CONTR,#60H
RIGO:
POP PSW
POP ACC
RETI
END
然后对stc-isp进行如下设置
自定义命令可以根据自己需要修改,同时代码也要跟着修改。
上面代码的主要原理是打开单片机串口中断,当使用stc-isp下载程序时,软件会先往单片机写AFH命令,单片机通过串口检测到这个命令时就进行系统软复位,系统软复位后,单片机系统代码就将用户代码下载到单片机。
每次下载代码都需要将上面的代码加到自己的代码中去。
当然不止这一种通过串口发送特定命令的方式来使系统软复位,比如也可以设置一个按键,检测到这个按键按下就运行MOV IAP_CONTR,#60H。核心就是MOV IAP_CONTR,#60H这一条命令,但在什么情况下运行这条命令就需要根据自己的想法和实际使用来设计了。
关键字:STC51系列 单片机 自动下载
引用地址:
STC51系列单片机不断电自动下载程序
推荐阅读最新更新时间:2024-03-16 16:23
单片机avr 输入输出(i/o)端口使用介绍
以ATmega16单片机为例,共有32个通用I/O口,分为4个端口PA,PB,PC,PD,每个端口都包含8个I/O口,如图所示,每个端口对应一个8位的二进制,对应的i/o管脚顺序由高到低排列。 每个I/O口都可以单独设为输入或输出,如上图中PA口的8个I/O口全部设为输出,控制8个发光二极管的亮灭。i/o口除作为输入输出口外,还有第二功能,如PA口也作为AD转换的输入口。 每个端口都具有输入,输出,方向控制三个寄存器: 以PA口为例,其他端口相同,方向寄存器DDRA,对应8个的I/O口,1设为输出,0设为输入。 输出寄存器PORTA,对应的I/O口,1输出高电平,0
[单片机]
富士通MCU电子设计竞赛两岸三地齐开赛
您所畅想的未来生活将会有些什么新的概念?近日,由富士通半导体(上海)有限公司(以下简称“富士通半导体” )主办的“两岸三地创意未来”MCU电子设计竞赛拉开帷幕。此次历时近一年的竞赛,将在两岸三地(大陆、台湾和香港)同时展开,旨在通过竞赛的形式,引导两岸三地的大学生充分利用富士通半导体于近日最新推出的MB9BF506 32位 微控制器 ,用自己的智慧和激情畅想并实现对未来生活的种种创意,从而也带动了两岸三地在半导体行业领域的沟通得到进一步加强。
本次富士通半导体杯“两岸三地创意未来”MCU电子设计竞赛立足未来生活概念,基于MB9BF506 32位微控制器将“创新”和“环保”作为重要的评判标准,引导参赛选手充分发挥MB9BF506
[工业控制]
USB接口单片机SL11R的特点及应用
1 USB接口简介 USB总线是通用串行总线(Universal Serial Bus)的简称,已经成为PC机的标准接口。目前586以上的PC机基本上都已经配置了USB接口。USB接口具有数据传输速率高、使用方便等特点。USB1.1协议规定的全速传输速率为12Mbit/s,而USB2.0协议所规定的高速传输速率为480Mbit/s,非常适合有大量数据传输的系统。USB设备即插即用,无需重新启动计算机。 2 SL11R介绍 2.1 SL11R概述 SL11R是Scanlogic公司的SL11产品家族的一员,是一种带USB接口的16位单片机,内部运行频率为48MHz,采用RISC结构,有16位数据总线,32位通用I/O
[单片机]
MCU不外流松下丰田传砸千亿买瑞萨
受日圆飙涨、竞争激烈冲击,导致日本半导体厂商营运亮起红灯、陷入亏损,而为了避免日本代表性的半导体厂商瑞萨电子(Renesas Electronics Corp.)步上尔必达 ( Elpida )后尘(由美企收购)、并避免微控制器( MCU )技术外流,日本产官界决议携手收购瑞萨电子!?
日经新闻22日报导,丰田 ( Toyota )、Panasonic等日本制造业指标性企业将和日本官民基金“产业革新机构(INCJ)”携手对瑞萨出资1,000亿日圆,目标为在今年内取得瑞萨过半股权,以借此避免瑞萨遭美国投资基金Kohlberg Kravis Roberts(KKR)收购。据报导,日本产官界携手收购企业是非
[半导体设计/制造]
单片机常用数字滤波函数
/////////////////////////////////限副滤波/////////////////// #define A 10 //A值可根据实际情况调整 char value; //value为有效值 char filter() { char new_value; //new value为当前采样值 new value= get _ad(); if ((new_value-value A)‖(value-new_value A) return value; return new_value; } /////////////////////////中位值滤波//////////////////
[单片机]
51单片机学习第二天
(1)数字电路中只有两种电平: 高电平和低电平 高电平:5V或者3.3,取决于单片机电源。 低电平:0V (2)RS232电平:计算机串口的电平 高电平:-12V 低电平:+12V 由上面的两个可知,当我们使用单片机跟电脑通信的时候,需要通过各种元器件将单片机的电平转换成计算机可识别的电平才能跟电脑进行通信。 二、进制 二进制 十六进制 三、二进制逻辑运算 四、8051的引脚封装 五、单片机工作的基本时序,一共四种 (1)振荡周期:也称时钟周期,是指为单片机提供时针脉冲信号的振荡源的周期。 (2)状态周期:每个状态周期为时针周期的2倍,是振荡周期经二分频后得到的。 (3)机器周期:一个机器周期包含6个状态周期
[单片机]
不同的电平信号的MCU怎么通信
今天我们来讲讲,下面这个“电平转换”电路,理解后令人心情愉快。电路设计其实也可以很有趣。先说一说这个电路的用途:当两个MCU在不同的工作电压下工作(如MCU1 工作电压5V;MCU2 工作电压3.3V),那么MCU1 与MCU2之间怎样进行串口通信呢?很明显是不能将对应的TX、RX引脚直接相连的,否测可能造成较低工作电压的MCU烧毁!下面的“电平双向转换电路”就可以实现不同VDD(芯片工作电压)的MCU之间进行串口通信。 该电路的核心在于电路中的MOS场效应管(2N7002)。他和三极管的功能很相似,可做开关使用,即可控制电路的通和断。不过比起三极管,MOS管有挺多优势,后面将会详细讲起。下图是MOS管实物3D图和电路图
[单片机]
基于AVR微控制器的蓄电池充放电控制器的设计
摘要: 针对539CH-1型Ni-Cd电池,提出一种基于 AVR 微控制器的蓄电池充、放电控制器。该控制器以Mega16L为核心,根据上位机的命令控制蓄电池的充、放电电流值以及放电电阻的接入时机。 关键词: 蓄电池; AVR 微控制器;TLV5638;电源控制 引言 蓄电池是飞行器电源系统中重要的组成部分,蓄电池的性能直接影响飞行器的安全。因此,正确维护、保养蓄电池就成为一项十分重要的工作。539CH-1型Ni-Cd蓄电池是法国SAFT公司生产的碱性蓄电池,该电池包含20个单体电池,额定电压24V,额定容量53Ah。波音737客机即采用该型蓄电池。 充电和放电是该电池维护、保养中的主要工作。由于该电池为Ni-Cd
[单片机]