历史上的今天
返回首页

历史上的今天

今天是:2024年12月13日(星期五)

正在发生

2018年12月13日 | STC12单片机实现自动下载程序

2018-12-13 来源:eefocus

在STC单片机中有两个程序区,用户程序区与ISP程序区。


单片机上电后(冷启动,并非外部手动复位或看门狗复位),先会运行ISP程序,检测是否有合法的下载命令流,占时几十毫秒到几百毫秒, 


如果没有合法的下载命令流,则立即运行用户程序。 


如果有合法的下载命令流,则ISP监控程序开始与ISP下载软件通信,软件也会进入编程模式,向监控程序发送程序码,监控程序接收程序码,并将其写入用户程序区中。 


在编程完毕,对程序校验成功后,用户程序立即生效,开始运行用户程序。


若没有在软件通过串口配合上位机对IAP_CONTR寄存器进行设置(比如下面的程序),那么STC-ISP尝试与MCU握手连接的时候,是以“最低波特率”设置项中的波特率不断的从串口发送“0x7F”信号,直到上电冷启(或者软复位至ISP)经几十毫秒到几百毫秒检测下载命令流后,才停止发送“0x7F”信号。 


若有进行IAP_CONTR的设置,便进行相应的设置相关命令进行。


#include


unsigned char RevData;

//void UartInit()   

//{

//  PCON &= 0x7F;   

//  SCON = 0x50;    

//  AUXR &= 0xBF;   

//  AUXR &= 0xFE;   

//  TMOD &= 0x0F;   

//  TMOD |= 0x20;   

//  TL1 = 0xFD; 

//  TH1 = 0xFD; 

//  ET1 = 0;        

//  TR1 = 1;        

//}

void UartInit()

{

    AUXR &= 0xF7;       

    S2CON = 0x50;       

    AUXR &= 0xFB;       

    BRT = 0xFD; 

    AUXR |= 0x10;   

}



void main()

{

    UartInit();

    EA = 1;

    ES = 1;

    P0 = 0;

    while(1);

}



void Uart() interrupt 4

{

    if(RI)

    {

        RI = 0;

        RevData = SBUF;

        if(RevData == 0x0a)

        {


            IAP_CONTR=0x60; 

        }

    }

    if(TI)

    {}

}

这里写图片描述

推荐阅读

史海拾趣

Diconex公司的发展小趣事

品质是电子行业的生命线。Diconex公司深知品质的重要性,因此从原材料采购到生产制造的每一个环节都严格把控品质。公司建立了完善的质量管理体系,对每一道生产工序都进行严格的检测和评估。这种对品质的执着追求使得Diconex的产品在市场上具有很高的口碑和竞争力。

Datasensor公司的发展小趣事

在汽车制造行业中,DATASENSOR的光电传感器被广泛应用于装配线上的物体检测、定位和计数等任务。这些传感器能够快速而可靠地提供准确的数据,帮助企业避免商品受损或不合格产品进入市场。这一应用案例充分展示了DATASENSOR公司产品的出色性能和广泛适用性,也为其在工业自动化领域的领先地位提供了有力支撑。同时,公司还注重客户需求和售后服务,致力于为客户提供最优质的产品和服务,赢得了广泛的好评和信任。

这些故事只是Datasensor公司发展历程中的一部分,但它们充分展示了公司不断创新、追求卓越的精神和实力。作为一家专注于工业自动化光电检测领域的公司,Datasensor将继续秉持客户至上的理念,不断推出更多优质的产品和服务,为全球工业自动化的发展贡献自己的力量。

Dover Corporation公司的发展小趣事

进入21世纪后,Dover Corporation开始实施多元化发展战略。除了电梯业务外,公司逐渐将业务扩展到其他领域,如工程产品、燃料解决方案、成像和身份识别等。这一战略的实施使Dover能够更好地应对市场变化,实现业务的持续增长。

Clulite公司的发展小趣事
  1. 创业初期
    • 描述Clulite公司的创始人或核心团队如何识别电子行业中的某个市场机遇。
    • 讲述他们是如何筹集初始资金,设立公司,并开发出第一款产品或解决方案的。
    • 可以提及公司在初创阶段面临的挑战,如技术难题、市场竞争等。
  2. 技术创新
    • 讲述Clulite如何通过研发创新,推出了一款颠覆性的产品或技术,从而获得了市场认可。
    • 详细描述这一创新过程,包括研发团队的努力、关键技术的突破等。
    • 提及这一创新如何帮助公司在市场上取得了竞争优势。
  3. 市场拓展
    • 描述Clulite如何逐步扩大市场份额,从地区市场走向全国乃至国际市场。
    • 可以讲述公司如何建立销售网络、与合作伙伴建立合作关系,以及参与行业展会等活动来推广品牌和产品。
    • 提及公司在市场拓展过程中遇到的挑战和应对策略。
  4. 品质管理
    • 讲述Clulite如何注重产品质量和客户体验,通过严格的质量控制流程来提升产品可靠性。
    • 描述公司如何建立完善的售后服务体系,为客户提供及时、专业的支持。
    • 提及这些举措如何帮助公司赢得了客户的信任和口碑。
  5. 可持续发展
    • 讲述Clulite如何关注环境保护和社会责任,推动公司的可持续发展。
    • 描述公司如何采取环保措施,减少生产过程中的污染排放。
    • 提及公司如何参与社会公益事业,回馈社会。

请注意,这些故事需要根据Clulite公司的实际情况进行调整和补充。如果你需要更具体的内容,建议查阅Clulite公司的官方网站、新闻报道或行业分析报告,以获取更详细的信息和数据。

ELANTEC (Renesas )公司的发展小趣事

为了进一步扩大市场份额和提升技术实力,ELANTEC积极寻求收购和整合的机会。2003年,ELANTEC成功收购了美国半导体公司Intersil的移动通信部门,获得了先进的移动通信技术。随后,ELANTEC又陆续收购了多家半导体公司,包括NEC电子的半导体业务部门和三菱电机的半导体业务部门等。这些收购和整合不仅增强了ELANTEC的技术实力,还扩大了其市场份额。

Cypress Industries公司的发展小趣事

为了更好地服务全球客户,Cypress积极实施海外扩张和本土化战略。公司在菲律宾、印尼等地设立了组装和检测工厂,同时在美国、欧洲和亚洲等多个国家和地区设立了设计中心。这种本土化战略使Cypress能够更好地了解当地市场需求,提供定制化的产品和解决方案。

问答坊 | AI 解惑

高性能模/数转换器AD6645及其应用

豪华的单片机开发系统498元 可稳定视频输出的: S3C2410 ARM9开发板780元DSP5402学习开发板II200元 暑期大优惠:S3C44B0开发板(标准版)350元 单片机以太网开发板  180元 DSP5402学习开发板II200元 LABTOOL-48UXP &nb ...…

查看全部问答>

LINUX

电子教案,需要的快下哦…

查看全部问答>

PCB布线的几点经验

1、输入端与输出端的边线应避免相邻平行, 以免产生反射干扰。必要时应加地线隔离;两相邻层的布线要互相垂直,平行容易产生寄生耦合。 2、地线>电源线>信号线,通常信号线宽为:8mil~12mil;电源线为50mil~100mil。对数字电路 ...…

查看全部问答>

EVC中是不是不支持settimer的SLIDER_TIMER参数??

EVC中是不是不支持settimer的SLIDER_TIMER参数??         mSliderTimer = SetTimer(SLIDER_TIMER, 100, NULL); 报错是:error C2065: \'SLIDER_TIMER\' : undeclared identifier…

查看全部问答>

EVC环境下为什么delete对象无法释放内存

我写了一个很简单的程序,窗口上就两个按钮,用于动态分配和释放内存.打开WinCE.net的SystemProperties的Memory选项卡查看内存情况,发现分配可以,但按了释放内存的按钮却不能释放内存,不知原因,望高手指点!…

查看全部问答>

注册公司的步骤

注册公司的步骤一、选择公司的形式: 普通的有限责任公司,最低注册资金3万元,需要2个或2个以上的股东, 从06年1月起新的公司法规定,允许1个股东注册有限责任公司,这种特殊的有限责任公司又称“一人有限公司”(但公司名称中不会有“一人”字 ...…

查看全部问答>

ADI实验室电路DIY项目指南

报名参与:『ADI实验室电路DIY大赛』正式启动!https://bbs.eeworld.com.cn/thread-293726-1-1.html ADI实验室电路品种繁多,涉及面很广,如何选择合适的DIY项目可能是件容易令人困扰的事,但深究起来,其实可玩性是很大的,从今天开始,我将陆续 ...…

查看全部问答>

大家帮看看为什么DeviceIoControl访问OID_802_11_BSSID_LIST老是失败

如题,下面一段程序中,DeviceIoControl访问OID_802_11_BSSID_LIST老是失败(见下面红色),也就是说bResult一直等于0;为什么?请教牛人!!!可能的问题出现在哪?为什么第二个DeviceIoControl失败?#include \"stdafx.h\"#include <windows.h ...…

查看全部问答>

介绍java的接口和原理

       卓跃教育发现随着采用Android系统的谷歌手机、平板电脑等产品逐渐扩大市场占有率,Android平台人才的缺口日益显现。据业内统计,目前国内的3G研发人才缺口有三、四百万,其中Android研发人才缺口至少30万。&n ...…

查看全部问答>