【规则1】设计满足要求的最精简的系统。
正确估计单片机的能力,知道单片机能做什么,最大程度的挖掘单片机的潜力对一个单片机系统设计者来说是至关重要的。我们应该有这样一个认识,即单片机的处理能力是非常强大的。早期的PC机,其CPU(8086)处理能力和8051相当,却能处理相当复杂的任务。单片机的能力的关键就在软件设计者编写的软件上。只有充分地了解到单片机的能力,才不会做出“冗余”的系统设计。而采用许多的外围芯片来实现单片机能实现的功能。这样做,即增加了系统成本,也可能会降低了系统的可靠性。
【规则2】使用看门狗。
看门狗电路通常是一块在有规律的时间间隔中进行更新的硬件。更新一般由单片机来完成,如果在一定间隔内没能更新看门狗,那看门狗将产生复位信号,重新复位单片机。更新看门狗的具体形式多是给看门狗芯片相关引脚提供一个电平上升沿或读写它的某个寄存器。使用看门狗电路将在单片机发生故障进行死机状态时,重新复位单片机。当前有多种看门狗的芯片,如MAXIM 公司的MAX802,MAX813等。而且,有好多种单片机中本身就集成有看门狗。一个外部的看门狗是最好的,因为它不依赖于单片机。如果可能的话,看门狗更新程序不应该放在中断或是子程序中,原则上应该放在主程序中。我曾经见过一个工程师,他所调试的程序在运行时偶而会引起看门狗的复位动作,于是他干脆在每10ms就中断一次的时钟中断程序中清看门狗。我相信他也知道使看门狗失去作用,可他却没有不是去查明引起这个现象的真正原因。因此,我想提醒大家:不论什么理由,绝对不要忽略系统故障的真正原因。高质量的产品来自于高素质的工程师,高质量的产品造就高素质的工程师。
【规则3】确定系统的复位信号可靠。
这是一个很容易忽略的问题。当你在设计单片机系统时,你脑中有这个概念吗?什么样的复位信号才是可靠的吗?你用示波器查看过你设计的产品的复位信号吗?不稳定的复位信号可能会产生什么样的后果?你有没有发现过你所设计的单片机系统,每次重新上电启动后,数据变得乱七八糟,并且每一次现象并不相同,找不出规律,或者有时候干脆不运行,或者有时候进入一种死机状态,有时候又一点事都没有正常运行?在这种情况下,你应该查一下你的系统的复位信号。一般在单片机的数据手册(Datasheet)中都会提到该单片机需要的复位信号的要求。一般复位信号的宽度应为。复位电平的宽度和幅度都应满足芯片的要求,并且要求保持稳定。还有特别重要的一点就是复位电平应与电源上电在同一时刻发生,即芯片一上电,复位信号就已产生。不然,由于没有经过复位,单片机中的寄存器的值为随机值,上电时就会按PC寄存器中的随机内容开始运行程序,这样很容易进行误操作或进入死机状态。
【规则4】确定系统的初始化有效。
系统程序开始应延时一段时间。这是很多单片机程序设计中的常用方法,为什么呢?因为系统中的芯片以及器件从上电开始到正常工作的状态往往有一段时间,程序开始时延时一段时间,是让系统中所有器件到达正常工作状态。究竟延时多少才算合适?这取决于系统的各芯片中到达正常工作状态的时间,通常以最慢的为准。一般来说,延时20-100毫秒已经足够。对于系统中使用嵌入式MODEM等“慢热”型的器件来说,则应更长。当然,这都需要在系统实际运行中进行调整。
【规则5】上电时对系统进行检测。
上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。很多有经验的单片机设计者都会在系统上电时(特别是第一次上电时)进行全面的检测,或者更进一步,将系统的运行状态中分为测试模式和正常运行模式,通过加入测试模式对系统进行详细的检测,使得系统的批量检测更为方便容易。另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。比如:系统的外部RAM(数据存储器)是单片机系统中常用的器件。外部RAM
如果存在问题,程序通常都会成为一匹脱缰的野马。因此,程序在启动时(至少在第一次上电启动时)一定要对外部RAM进行检测。检测内容包括:1)检测RAM 中的单元。这主要通过写入和读出的数据保持一致。2)检测单片机与RAM 之间的地址数据总线。总线即没有互相短路,也没有连接到“地”上。另外,很多芯片,都提供了测试的方法。如串行通信芯片UART,都带环路测试的功能。
【规则6】按EMC 测试要求设计硬件。
EMC 测试要求已经成为产品的必需。有很多的文章关于这方面的。
【规则7】尽可能使用Small 模式编译
对比起Large模式和Compact 模式,Small 模式能生成更为紧凑的代码。在Small 模式下,C51 编译器将没有使用关键词,如idata、pdata、xdata特殊声明的变量通通放在data单元中。在编程中,对于在的数据区,可以指定放在外部存储器中。
关键字:单片机 开发规则
引用地址:
单片机开发规则
推荐阅读最新更新时间:2024-03-16 15:47
瑞萨科技投资Key Stream 合作开发无线LAN解决方案
2007年1月22日,瑞萨科技(Renesas Technology Corp.)宣布与无线LAN芯片组供应商Key Stream公司签署了一项合作协议,将由瑞萨投资Key Stream,双方合作开发无线LAN解决方案。 随着网络移动设备的持续增长,市场对有助于降低功耗和成本的无线 LAN解决方案出现了迫切的需求。瑞萨拥有世界领先的微控制器(MCU)制造能力,以及先进的系统级芯片(SoC)技术,且已应用于移动通信、数字消费电子和汽车电子等产品中。Key Stream的无线LAN芯片组是最先进的超低功耗产品,在其所处的领域占有绝对的优势。这些产品广泛应用于便携式音频播放器和移动VoIP手机 (注1) 中。此次瑞萨和Key
[焦点新闻]
51单片机学习——4--数码管显示
数码管静态显示原理 显示器及其接口 单片机系统中常用的显示器有: 发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、TFT液晶显示器等。LED显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。 LED数码管根据LED的不同接法可以分为2类:共阴和共阳。 使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。我们实验板用共阴LED显示器,根据电路连接图显示16进制数的编码已列在下表。 0x
[单片机]
8051单片机指令系统的用法介绍
一个计算机的指令系统就是它能执行的全部指令的集合。8051的指令系统共有111条指令,由42种助记符和7种寻址方式组合而成。 8051的指令通常包括操作码,和操作数两部分。操作码规定指令进行什么操作,采用助记表示;操作数表示指令的操作对象。 汇编语言指令的基本形式是:操作码助记符 目的操作数,源操作数。 操作码助记符与操作数分开书写,操作数中目的操作数在前,源操作数在后,操作数之间用逗号分隔。 如指令MOV B,#23H中符号MOV就是操作码助记符,这个助记符的意义为将源操作数传入目的操作数地址中,累加器A是目的操作数,寄存器B是源操作数。 8051的机器语言指令根据长度有一字节、二字节、三字节三种。一字节指令操作码中
[单片机]
51单片机学习笔记———14.LCD1602工业显示屏
LCD1602工业显示屏 LCD工业显示屏解读: 共有16个引脚,其中D0~D7为收发数据引脚,为双向并行数据接口。 16代表每一行能够显示16个空格 2代表总共两行 因为每一个字节能够显示0和1,有两种可能,所以要将32位全部显示完全的话,至少需要2^5,也就是5位,所以我们可以设置8位,也就是一个字节来发送数据,这样比较方便 其中第四脚比较特殊,用来决定是用来确定位置还是发送我们想要显示的数据 RS=0确定位置 RS=1确认数据 显示数据的步骤: 初始化LCD1602 发送指令(RS=0) ----确定位置 发送数据(RS=1)-----确认数据 `RS`为低电平时为发送指令 指令:决定
[单片机]
计算机控制智能小车的软件设计
0 引言 随着多微机系统的应用和微机网络的发展,通信功能越来越显得重要。在工业控制系统(尤其是多点现场工业控制系统)设计实践中,单片机与PC机组合构成分布式控制系统便是一个重要的应用;主控计算机通过485网络监督管理下位分机的运行状况。在以单片机为基础的数据采集和实时控制系统中,通过计算机中的RS-232接口进行计算机与单片机之间的命令和数据传送,就可以利用计算机对生产现场进行监测和控制。本文设计是以单片机AT89C51为控制核心,附以外围电路,采用反射光耦(1550-01)检测黑白线,霍尔传感器(A04E)+磁钢来实现智能车行驶的计程,采用四位共阴LED实现行驶计程和时间的交替计数显示。同时还充分利用单片机的串口、并口资源和运
[单片机]
抢行动商机 NXP强推双电压Cortex-M0 MCU
恩智浦(NXP)Cortex-M0微控制器(MCU)将大举压境行动市场。着眼于各种行动装置对尺寸及功耗表现的苛求,恩智浦在2月14日发布基于安谋国际(ARM)Cortex-M0核心的32位元MCU,并将于4月导入量产;除以独特的双电压供应模式降低功耗外,更同时兼顾高运算效能及迷你尺寸优势,有助客户实现轻薄、长效操作的产品设计圭臬。 恩智浦MCU产品线市场行销总监Jan Jaap Bezemer表示,尽管恩智浦一直以来着重研发工控领域的MCU解决方案,然而,值此行动装置市场蓬勃发展之际,该公司亦透过Cortex-M0核心开发尺寸仅2毫米×2毫米,且运算时脉最高可达50MHz的32位元MCU系列产品--LPC
[手机便携]
蓝牙遥控智能车制作 单片机+SG90舵机扫描
遥控车是基于STC89C52RC单片机开发,车体组成有底盘,直流电机33GB-520-18.7,L298N电机驱动模块,LM2596降压模块,12V DC电源,HC-05蓝牙模块。其中HC-05蓝牙模块与单片机是串口通信所以要注意连线,STC89C52RC中P3^0,P3^1为串口引脚,具体连线如下示意图: 本次制作目的是:通过手机蓝牙调试器发送信号控制车辆的前进,后退,原地左转,原地右转,单独左转,单独右转,舵机扫描以及寻迹模式的切换(在这里声明一下,本次代码的寻迹模式切换模式还不太完善,未达到理想效果,电子发烧友们可以多多指点。在下学艺不精,在接下来的解说中如有错误望大佬纠正。)手机采用蓝牙调试器,需要自己进行按键编辑以及字
[单片机]
用单片机实现DSP在线调试的一种方法
通常情况下,进行DSP系统开发调试时,都要配备一片SRAM芯片作为片外程序RAM。调试时,使用相应的仿真板将程序下载到SRAM中,这样DSP系统通过运行SRAM中的程序代码来实现相应的操作。可以看到,DSP系统调试时,关键是要将程序下载到SRAM中,因此如果能将程序代码通过单片机写入 SRAM中,则同样可以完成对DSP系统的调试。下面具体介绍在不使用仿真板的情况下,如何运用单片机AT89S5l对DSP芯片 TMS320LF2407进行在线调试。 1 硬件设计 1.1 TMS320LF2407在线调试的实现过程 完成DSP系统的调试,首先要将程序的源代码写入片外SRAM中。此时,单片机与SRAM组成一个系统,单片机可将分离出来
[应用]