精华内容
下载资源
问答
  • EM78 系列单片机程序设计 第五章EM78 系列单片机程序设计 5.1. EM78 系列八位微控器特色指令用法 5.1.1. 查表指令与用法 EM78 系列八位微控器是利用 (1)call(2) 改变 PC (或tbl(3)retl k" 三个 步骤来查表的其中retl...
  • 查阅其有关资料发现,其浮点数的格式及其与十进制数之间的转换,与我们常用的MCS-51单片机所提供的三字节、四字节浮点数完全不同,本文将说明其浮点数的格式及其与十进制数之间的转换和程序设计步骤。  1 浮点数的...
  • 关注+星标公众号,不错过精彩内容来源 | 嵌入式技术开发之前给大家分享过IAP升级APP的例子,今天为大家分享一下远程升级单片机设计思路。在物联网应用中,远程IAP升级MCU的程序是一项...

    关注+星标公众,不错过精彩内容

    来源 | 嵌入式技术开发

    之前给大家分享过IAP升级APP的例子,今天为大家分享一下远程升级单片机的设计思路。

    在物联网应用中,远程IAP升级MCU的程序是一项非常有用的功能。当设备出现程序问题或者需要更新程序时,只需要在服务器上对设备进行升级,不需要在有专门的人员去现场进行升级,节省人力物力。

    嵌入式专栏

    1

    远程升级的基础功能

    要实现远程升级,首先要实现以下几个基本功能:

    1.Flash读写

    不管是本地IAP还是远程IAP,这都是最基本的功能。

    2.无线通讯

    可通过WIFI、4G、以太网等多种方式来实现,根据实际项目需求选择。

    3.通讯协议

    常用的通讯协议有TCP、HTTP、FTP、MQTT等。其中HTTP、FTP和MQTT都属于应用层协议,都是基于TCP(传输层)来实现的。用户也可以自己基于TCP编写简单的通讯协议来实现。

    远程IAP与本地IAP的设计思路是一致的,都需要设计BOOT程序和APP程序。但也有一些需要注意的地方。主要是远程升级需要考虑网络延迟甚至网络中断的问题。体现在以下几方面:

    嵌入式专栏

    2

    设计程序缓存区

    在内部或外部存储器开辟一块区域,用于存储分包接收到的程序数据。等到全部数据接收完毕后再一次性写入到Flash进行升级。

    这样做有以下2点好处:

    1.直接升级时间可能会比较长,影响用户正常使用,增加缓存区设计可以大大减少升级时间。

     

    2.直接升级时,如果网络出现问题,可能导致设备无法正常启动变砖。增加缓存区设计后,即使升级数据传输失败,也不影响设备的正常使用。

    嵌入式专栏

    3

    健壮的通讯协议

    本地升级时数据传输出错的概率比较小,但远程设计时就需要多考虑一些,比如前后两包数据可能同时达到等。

    因此,设计通讯协议时,就要更严谨,服务器发送的指令和数据都需要设备的确认回复。

    同时,最好有一定的校验信息。,比较校验和CRC校验等。

    嵌入式专栏

    4

    程序备份设计

    即使有上面的各种设计的保障,也不能保证升级过程不会失败。最好能够设计一个程序备份区,在程序升级失败时运行备份区程序。

     

    下面介绍一种简单的远程升级的步骤:

    1. 服务器发送升级请求指令。

    2. 设备回复收到请求升级指令。

    3. 服务器发送程序升级数据。(一般包含包头、包号、总包数、分包的程序数据、校验)

    4. 设备收到程序数据后,确认校验无误,存储到程序缓存区,并按包号回复服务器,防止出现传输包错乱。

    5. 服务器收到回复后再发送下一包数据,直至结束。

    6. 程序数据发送完成后,服务器发送升级结束指令。

    7. 设备收到结束指令后,回复服务器。并在Flash指定位置写入升级标志,重启进入BOOT程序。

    8. BOOT程序读取升级标志,若需要升级,则读取程序缓存区数据,写入到Flash中。

    9. 升级完毕,跳转到Flash指定地址运行。

    ------------ END ------------

    后台回复『单片机』『嵌入式软件设计与开发』阅读更多相关文章。

    欢迎关注我的公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

    欢迎关注我的视频号:

    点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

    展开全文
  • 猜你感兴趣:新手教程:单片机的学习实践步骤运用单片机便是了解单片机硬件结构,以及内部资源的运用,在汇编或C语言中学会各种功用的初始化设置,以及完成各种功用的程序编制。 运用按钮输入信号,发光二极管显现...

    猜你感兴趣:

    small5b7a2adadb616badf6aacb770c4278a21593517368.png

    新手教程:单片机的学习实践步骤

    运用单片机便是了解单片机硬件结构,以及内部资源的运用,在汇编或C语言中学会各种功用的初始化设置,以及完成各种功用的程序编制。 运用按钮输入信号,发光二极管显现输出

    关键词:51单片机PIC单片机单片机   所属栏目:设计编程

    smallf852ba168d37c5b6bb7392a25c8d3be71579138902.jpg

    应用单片机实现CAN总线与LIN总线间的传输设计方案

    现场总线技术已经广泛应用于工业控制中,尤其是CAN(Controler Area Nerwork)总线由于具有可靠性高、成本低、容易实现等优点,在现场总线实际工程应用中占有了较大份额。

    关键词:单片机   所属栏目:设计编程

    notimg.gif

    学习单片机可不可以只用软件仿真而不做实验

    我的答案是:不可以原因如下:一、软件仿真多用于教学,把更多精力用在软件的实现上由于学生学习时间宝贵,焊接一套单片机实验板又比较花时间,并且实验项目太多,所以为了

    关键词:PIC单片机51单片机单片机   所属栏目:设计编程

    notimg.gif

    怎样选择最适合的单片机

    对于新手来说,首先根据自己学的什么样单片机就选什么类型的单片机,熟悉什么类型的单片机就选什么类型的单片机。因为单片机不仅要设计电路,还要设计控制软件。选自己熟悉的单片机上手最快,也最容易获得成功。下面介绍如何选择最适合的单片机。

    关键词:   所属栏目:设计编程

    small8854f5f8e765c4ea0e0171a1fe6dedf81577433327.jpg

    单片机晶振的作用是什么

    单片机晶振的作用是什么

    在初学单片机的时候,总是伴随很多有关于晶振的问题,其实晶振就是如同人的心脏,是血液的脉搏,把单片机的晶振问题搞明白了,51单片机的其他问题

    关键词:51单片机PIC单片机单片机   所属栏目:设计编程

    small19871dfb1c39f893cac575512a112d1c1575597566.png

    详解51单片机运行过程

    详解51单片机运行过程 注:1.ROM:只读存储器,单片机的只读存储区大多用于存储程序固又称程序存储器。51单片机是EPROM,所谓的EPROM是可擦除的只

    关键词:   所属栏目:设计编程

    smallebb378f2076af020861ba277472855431575597305.jpg

    pic单片机和c51有什么区别

    pic单片机和c51有什么区别(区别1)总线结构:MCS-51单片机的总线结构是冯-诺依曼型,计算机在同一个存储空间取指令和数据,两者不能同时进行;而PIC单片机的总线结构是哈佛结构

    关键词:单片机PIC单片机51单片机   所属栏目:设计编程

    small7d5c18a2608ad4725bde8fc5f48c1acd1575594136.png

    51单片机出现故障及解决办法

    实例分析51单片机出现故障及解决办法。详细如下:

    故障现象:做了一个单片机温度监测系统,仿真机上一切正常,烧写芯片无法工作。相关电路框图: 用51做处理器,外围电路如

    关键词:单片机51单片机   所属栏目:设计编程

    smallcd397900469d8459d47ef31d1a325c531575509325.png

    PIC单片机汇编语言指令详解

    PIC单片机汇编语言指令详解

    pic单片机为最常用单片机之一,许多程序均基于pic单片机进行开发。因此,熟练pic单片机编程尤为重要。为保证大家能准确、熟练掌握pic单片机的使

    关键词:PIC单片机单片机   所属栏目:设计编程

    smalla42a972709cf634de3283279376f863a1575509145.png

    三种51单片机程序下载方法介绍

    三种51单片机程序下载方法介绍

    一般只能通过三种方式下载程序到单片机中:1.JTAG 2.ISP 3.IAP1.JTAG要使用JTAG方式下载程序,不管是使用J-LINK、ULINK、ST-LINK,只需要把

    关键词:PIC单片机51单片机单片机   所属栏目:设计编程

    smallce6411c8a6d9e2462ee5232f367be3b21575508583.png

    单片机的I2C通信设计

    I2C每一位信号的时序流程,而I2C通信在字节级的传输中,也有固定的时序要求。I2C通信的起始信号(Start)后,首先要发送一个从机的地址,这个地址一共有 7位,紧跟着的第 8

    关键词:PIC单片机51单片机单片机   所属栏目:设计编程

    smallf03d26727717bad192523c44d45bc8791575508335.png

    AT89C51单片机的RS232-GPIB控制器设计

    越来越多的测量仪器提供GPIB(General Purpose Intefface Bus)总线接口,通过该总线可以方便快捷地连接带有GPIB接口的仪器及计算机,组成一个GPlB网络。GPIB设备与计算机连

    关键词:PIC单片机51单片机单片机   所属栏目:设计编程

    small075fdb8e13188043f9cebf08aa4849fc1575508148.png

    单片机晶振的作用以及原理解析

    每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立

    关键词:51单片机PIC单片机单片机   所属栏目:设计编程

    68f71c5cf4dc7079f77f18f5c0de0640.jpg

    数字电位器在单片机控制变频器中的应用

    引言变频调速作为交流电机调速的主要手段已经在工业领域中应用的十分广泛,其具有的调速范围宽、稳速精度高、动态响应快、适用范围广、运行可靠等技术性能,已逐步取代直流

    关键词:单片机变频器   所属栏目:设计编程

    aae2ec8c1b453777211ceea8f7fbe6a9.jpg

    如何用单片机制作电子密码锁电路

    电子密码锁按照输入密码方式的不同可分为好多种,其中最常用的一种是用数字键盘输入密码的电子密码锁。这一讲主要介绍用ATmega8和LCD1602液晶显示器等组成的电子密码锁,这

    关键词:单片机   所属栏目:设计编程

    9c0ca91dc4fe5b68328f5123fa20db2a.jpg

    单片机控制LED亮灭电路

    1.实验任务如图所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。2.电路原理图3.系统

    关键词:单片机LEDLED电路图   所属栏目:设计编程

    e741ee9a17f5e32e3a0c78fd2e6a7c00.png

    超详细的FPGA芯片解读(图文)

    近日,有媒体报道称,北京微电子技术研究所日前成功研制出国内首个自主可控的宇航用千万门级高性能高可靠FPGA(现场可编程门阵列)芯片。FPGA一直是国内的短板,市场基本被

    关键词:单片机   所属栏目:设计编程

    93a1b13badc0673815f70bc89af5cdf9.jpg

    单片机要这么学?八条谨记!

    怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学

    关键词:单片机   所属栏目:设计编程

    notimg.gif

    单片机的特殊功能寄存器(图文)

    在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。      <

    关键词:单片机寄存器   所属栏目:设计编程

    9e4bac5bd1e7c8536e98d1bc0114cadd.jpg

    单片机在倒立摆控制系统的应用

    倒立摆作为一种典型的控制系统实验装置,具有非线性、自然不稳定等特性,常用来作为检验某种控制理论或方法是否合理的典型方案。一阶倒立摆系统能用多种理论和方法来实现其

    关键词:单片机   所属栏目:设计编程

    展开全文
  • 章 汇编语言程设计 程序设计单片机应用系统设计的重要组成部分计算机的全部动作都是在程序的控 制下进行的本章用大量的实例来介绍单片机汇编语言程序设计方法 实训?4 信号灯的控制?2 1.实训目的 1掌握汇编语言程序...
  • 我刚参加工作的时候,用的是stc 51单片机的,51单片机不像...那时候基本上没什么资料,就一个dada sheet和demo程序。 在开发之前,老大安排了给我一个任务,就是把这个仿真环境先给搭起来。 相当于是他们原厂没

    我刚参加工作的时候,用的是stc 51单片机的,51单片机不像stm32那样可以通过st-link在keil上面在线仿真。

    有时候出现bug的时候,非常难找问题,要一段一段屏蔽然后测试。

    在刚开始接触开发的时候,我非常不习惯用在线仿真,大概是因为没用过。

    记得有一次进了一家公司做行车记录仪,用的台产GRAIN的单片机。

    那时候基本上没什么资料,就一个dada sheet和demo程序。

    在开发之前,老大安排了给我一个任务,就是把这个仿真环境先给搭起来。

    相当于是他们原厂没有的东西,让我去搞定,这个芯片是基于Fa626TE core的32位控制器。

    网上的资料太少了,光是测试搭建这个环境花了半个多月,最后还没搭建出来。

    那个时候完全是懵逼状态,摸着石头过河,不知道仿真啥原理,反正网上搜到一个我就试一个。

    做这个之前基本都是在做51的东西,所以对我来说太难了,加上资料又少,就是跨级打boss。

    后面我有点不耐烦,就跟老大说:这个我不用仿真了,以前不用仿真照样也能把产品做出来。

    后来老大思考了一下,还是希望能想把仿真搞出来,我有点崩溃,实在想不明白为何他这么固执。

    当我后面慢慢接触32位的单片机多了,开发的产品多了,我才真正体会到了仿真的好处。

    毫不夸张地说,用好仿真,你的开发效率至少提高3倍,这里说的不是仿真软件。

    拿stm32单片机举例,用st-link+keil在线硬件仿真,不但能监控程序怎么跑的,还能监控跑过程中变量的值的变化,指针地址的变化。

    用熟了你就知道,特别是做指针的应用,实在太香了,有时候指针指来指去,你的理解可能只是在自己的理论层面上,而用仿真你可以监控到指针的指向变化。

    那像51这种,不能像stm32那样用st-link在线仿真怎么办?(现在51好像也有了,具体没用过)

    大家别小看51单片机,有些51内核的ROM都有几十K,最终产品程序的大小并不会比stm32的小。

    这种如果没仿真,那出现一个BUG,够你调半天了。

    在过去的开发中,我也总结了一些经验,大家可以借鉴下。

    我一般是借助产品硬件上一切能作为提示的东西,比如说:

    1.数码管

    2.LCD

    3.LED灯

    4.串口

    我在开发程序的时候,第一个做的肯定是点亮一个LED灯。

    点亮LED能够最快地让你验证硬件核心部分(单片机最小系统)有没有问题,

    点亮以后,我再开一个定时器它每秒闪烁1次,直到产品大多数功能完成。

    这样做的好处就是可以验证你程序有没有跑着跑着死机之类的问题,如果有,那就及时解决,不然后面程序大了找起来会更难。

    如果有数码管和LCD,调试起来会更加得心应手,直接在数码管和LCD上显示要调试的数据即可,虽然没仿真这么方便,但是总比都没有好。

    还有就是串口,一般硬件在第一次打板的时候,我都会把串口预留出来,方便调试,特别是做物联网产品,串口调试可以说是必备的。

    主要作用就是用来监控MCU和WiFi模组之间的通讯数据。

    最后,还有一种情况就是产品啥都没有,连LED都没有,这种情况该怎么办?

    这种情况就只能听天由命了,完全靠你的开发经验。

    一般第一板硬件设计成这样的,都是初级水平工程师,经验不足。

    即便你产品用不到那些资源,好歹把串口或者LED预留出来,把整体功能调试完以后最终一板把它去掉不就行了?

    展开全文
  • ARM单片机程序设计

    一、 实验目的与要求

    1.掌握C语言程序设计的方法;

    2.通过编程调试,熟悉单片机开发环境,学习程序调试技巧;

    3.学习软件仿真的方法。

     

    二、 实验设备

    计算机

    编译软件KeilC51  uVision

     

    三、 实验原理

    程序调试方法:

    1)按照实验一的步骤建立工程并输入源程序;

    2)完成源程序的编辑之后,进入调试状态,即Debug/Start debug

     

    3)打开观察窗口,View/Memory Window

     

     

     

    4)选择观察范围:程序存储器ROMC:0X0000

    内部数据存储器RAMI:0X00

    外部数据存储器RAMX:0X0000

     

    四、 实验内容与步骤

    1.熟悉建立工程、源程序的方法步骤;

    2.完成程序的调试,并用观察窗口观察寄存器值的变化,并记下结果;

    3.根据所讲内容进行简单程序、循环程序、分支结构程序的设计(每种类型1例);

    3.1通过指定的坐标点,判断该坐标点处于第几象限 。(注意象限用z表示)

     

    五、 实验报告要求

    1.分别列出三个完整的实验程序清单;

    2.在每个程序清单后写出实验结果。

     

    main(){

           int z,x,y;

    x=-3;

    y=5;

    if(x>0&&y>0)z=1;

    else if(x>0&&y<0)z=2;

    else if(x<0&&y<0)z=3;

    else if(x<0&&y>0)z=4;

    else z=0;

     }

    结果:

     

    3.2输入一个格式为 x+y 的二元算术运算表达式,输出这个表达式的计算结果(填完空)。

         

    3.3已知某个班级10名学生的某门课程的考试成绩。请编写一个程序,统计在这个班级中优、良、中、及格、不及格五等成绩的人数。(用循环结构编写)。

    main()

    {

           int a=0,b=0,c=0,d=0,e=0,i=0;

           int s[10]={80,90,60,70,80,75,85,88,63};

           while(i<10)

           {

                  if (s[i]>=90&&s[i]<=100) a++;

                  else if(s[i]>=80&&s[i]<90) b++;

                  else if(s[i]>=70&&s[i]<80)c++;

                  else if(s[i]>=60&&s[i]<70) d++;

                  else e++;

                  i++;

           }

    }

     

     

     

    展开全文
  • 单片机编程设计的学习方法和步骤.pdf
  • 通过对单片机开发实例的剖析,可以使初学者迅速掌握单片机程序开发的方法和技巧,使已有一定单片机经验的读者得心应手地调用某些子程序,以组成具有特定功能的应用程序。 本书可作为大专院校学生和在职技术人员学习...
  • 在学习单片机之前,要先清楚单片机程序是如何烧写到单片机内部的,在烧写的过程中需要用到什么工具?因为不通用的烧写工具可能价格较贵,比如说Micorchip单片机使用的ICD系列编程器,单台价格在60...
  • 第五章 MCS-51单片机的程序设计 5.1 程序设计基本方法 5.1.1 单片机程序设计语言 5.1.2 程序设计步骤 5.1.3 程序流程图 5.2 汇编语言程序设计的基本概念 5.2.1 MCS-51伪指令 5.2.2 汇编语言程序的格式 5.2.3 汇编...
  •  在《PIC 单片机C 语言程序设计(10)》中,我们以C 语言程序pic07.C 为例,介绍了SIM 软件仿真调试的基本手段和方法,下面介绍SIM 软件仿真的技巧,包括用跑表直接测试C 程序运行的耗时(包括秒值)、快速观察C ...
  • 这也是为初学单片机的同学的一点指导,其中处理数组的方式是很值得提倡的,相互借鉴,相互学习!
  • 文章目录交通灯控制系统一、生成.hex文件二、在Proteus中进行仿真1、Proteus新建工程步骤2、交通灯仿真测试 交通灯控制系统 目的:设计一个十字路口的交通灯控制系统,四组灯(红黄绿)对应十字路口的四个方向,用两...
  • 本节书摘来异步社区《例说8051:单片机程序设计案例教程》一书中的第1章,第1.4节,作者:张义和,陈敌北,更多章节内容可以访问云栖社区“异步社区”公众号查看 1-4 实例演练 例说8051:单片机程序设计案例教程...
  • 单片机应用设计配套程序设计,有详细设计步骤。哈工大出版社
  • 之前的文章中介绍过串口和U盘的IAP程序设计。在物联网应用中,远程IAP升级MCU的程序是一项非常有用的功能。当设备出现程序问题或者需要更新程序时,只需要在服务器上对设备进...
  •  在《PIC 单片机C 语言程序设计(10)》中,我们以C 语言程序pic07.C 为例,介绍了SIM 软件仿真调试的基本手段和方法,下面介绍SIM 软件仿真的技巧,包括用跑表直接测试C 程序运行的耗时(包括秒值)、快速观察C ...
  •  《PIC 单片机C 语言程序(7)》一文介绍MPLAB IDE7.40 的安装时, 我们已将光盘中的PICC 编译器的压缩软件PICC8.05.rar( 见该文图12)粘贴到“我的电脑”的E 盘中。所以安装PICC 编译器时,只需按以下步骤操作。 ...
  • 本节书摘来异步社区《例说8051:单片机程序设计案例教程》一书中的第1章,第1.3节,作者:张义和,陈敌北,更多章节内容可以访问云栖社区“异步社区”公众号查看 1-3 8051的开发流程与工具 例说8051:单片机程序设计...
  • 内容为单片机程序代码及硬件外设电路图,有交通灯系统等代码。
  • 第十二章 单片机汇编语言程序设计本章内容单片机汇编语言程序设计步骤 程序的开发调试过程单片机汇编语言程序设计方法及技巧 学习目的掌握汇编语言程序设计的一般步骤了解程序的开发调试过程掌握简单程序分支程序...
  •  《PIC 单片机C 语言程序(7)》一文介绍MPLAB IDE7.40 的安装时, 我们已将光盘中的PICC 编译器的压缩软件PICC8.05.rar( 见该文图12)粘贴到“我的电脑”的E 盘中。所以安装PICC 编译器时,只需按以下步骤操作。 ...
  • h0如何编写单片机应用程序,这是一个实践性很强的题目,也是1项艰苦而细致的工作。如果按照一定的步骤并且找出难点,事先对这些难点加以处理,能够收到事半功倍的效果。下面根据实际工作中的经验,谈谈实
  • 51单片机程序存储器最大空间为64KB,在一个实际的应用系统中,程序存储器的分布情况可能有以下几种:(1)只使用了片内程序空间。而没有使用片外的程序空间。其硬件特征为:/EA引脚接VCC;/PSEN引脚为空脚。这种...
  • 《PIC 单片机C 语言程序(七)》一文介绍MPLAB IDE7.40 的安装时, 我们已将光盘中的PICC 编译器的压缩软件PICC8.05.rar粘贴到“我的电脑”的E 盘中。所以安装PICC 编译器时,只需按以下步骤操作。
  • 分层的思想  分层的思想,并不是什么神秘的东西,事实上很多做项目的工程师本身自己也会在用。...但是如果不懂程序设计的思想的话,会给你做项目的过程中带来很多很多的困惑。 参考了市面上各种各样
  • C51单片机项目式教程 作者:徐海峰,叶钢C51单片机项目式教程 ...其内容包括:C51语言及语法、MCS-51单片机硬件结构、设计制作流水灯、设计制作时钟、设计制作红外报警器、设计制作单片机点阵、设计制作数字电压表...
  • 学习单片机的动机不外乎有四种:一是为兴趣爱好而学,二是为专业而学;三是为饭碗而学;四是在工作中被逼而学。不管是哪种动机,因主修专业的不同以及电子基础的深浅不同,对于不同的人可能采用不同的学习方法,根据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,274
精华内容 3,309
关键字:

单片机程序设计的步骤