跳转到主要内容

单片机

为什么单片机系统中上拉电阻非常有必要?

cathy /

在单片机系统中,上拉电阻逐渐成为最稳定也最可靠的主要组成部分。

大多数人知道上拉电阻在电路中的作用很大,但是同样的,单片机系统也是由电路组成的,所以上拉电阻在单片机系统中的作用也非常重要。

<center><img src="http://mouser.eetrend.com/files/2020-08/wen_zhang_/100050964-104144-1.j…; alt=“” width="600"></center>

下面我们就来看看上拉电阻为什么在单片机系统中如此重要?为什么大部分单片机引脚都要接上拉电阻?

我们知道,上拉电阻就是将不确定的信号通过一个电阻钳位在高电平。输入电流时,电阻同时起到限流作用。阻值的强弱只是上拉电阻的阻值不同而已,实际上并没有什么严格的区分。对于非集电极开路输出型电路或者漏极开路输出型电路来说,上拉电阻在这种类型的电路中对提升电流和电压的能力是有限的,它的主要功能还是为集电极开路输出型线路提供电流通道。

单片机编程:如何喂狗的灵魂拷问...

cathy 提交于

<strong>啥叫看门狗?</strong>

看门狗也称为看门狗定时器,本质上是一种定时电路或者软件定时器机制。

工作原理:

看门狗的硬件基础是一个计数器,该计数器被设置为某个定时初值,然后递减至零。软件负责经常将计数重置为其定时初值,以确保计数永远不会达到零。如果确实达到零,则意味着某种故障发生,该采取对应措施应对,或重启或进入失效安全状态,具体取决于系统的设计。

正常工作时,单片机、处理器或者线程,周期性重置看门狗定时器的定时值,定时器则在后台不断的计数,如果定时时间到了且没有再次喂狗,则狗叫,意味着一些不寻常的事情发生了!此时,狗狗对外发出指令,执行相应的动作。这里所谓的动作究竟是什么?取决于实际系统的设计。常见的看门狗芯片则会发出复位信号给单片机或者处理,对于软件定时器而言,具体会有何种动作,则灵活多变,具体取决于采用何种安全策略。

通俗讲也称为喂狗,这个定时值相当于狗粮,狗狗吃饱了,胃里不断消耗狗粮,如果在消耗完之前没有在喂狗粮,再狗狗饿得直叫唤,发出预警消息。反言之,一个一直正常工作的系统,其看门狗总是被喂养的很好,不会饿了狂叫。

详论单片机固件模块化架构设计(精华)

cathy 提交于

<strong>为啥要讨论架构</strong>

单片机系统开发人员的目标之一是在编程环境中创建固件,以实现低成本系统、软件可靠性以及快速的开发迭代时间。实现这种编程环境的最佳方法实践是使用统一的固件架构体系结构,该体系结构在产品开发过程中充当框架并支持“固件模块化”,或称为子系统。

如果不采用统一的设计架构,那么其业务需求耦合关系复杂,不采用先设计-后开发的方法论,想到哪里写到哪里,则程序后期维护将变得异常艰辛,而引入潜在bug/缺陷的风险也将大大增加,且不具备多人协同开发的可能。

可以结合固件模块化、可测试性和兼容性的正确组合的设计体系架构结构应用于任何固件开发项目,以最大程度地提高代码可复用性,加快固件调试速度并提高固件可移植性。

<strong>模块化架构设计?</strong>

模块化编程将程序功能分解为固件模块/子系统,每个模块执行一个功能,并包含完成该功能所需的所有源代码和变量。

什么是单片机AD转换?单片机AD转换如何处理?

cathy /

<strong>1、什么是AD转换</strong>

A是模拟信号的意思,D是数字信号的意思,AD转换就是模数转换,顾名思义,就是把模拟信号转换成数字信号,例如把电压值转化为数字信号。

<strong>2、为什么要AD转换</strong>

单片机(以及其他处理器)只能处理数字信号,当单片机想要获取电路上某一点的电压值时,就得用到AD转换了,如果你直接把单片机的引脚接到电路这个点上,单片机只知道这个点的电压是低电平还是高电平,又怎么能得到他的电压值呢?例如数字式的万用表,它测量电压时,先有一个AD转换电路,把电压值转换成一个数值,然后把这个值送个单片机(当然万用表里的用的处理芯片不是单片机),单片机经过计算处理后,再把这电压值显示到显示到屏幕上。不过现在有一些比较强的单片机,其内部已经集成了AD转换器,不需要你再外接AD转换芯片。

<strong>3、8位16位的AD转换芯片是什么意思</strong>

8位,16位就代表了AD转换芯片的转换分辨率,数字越大,分辨率越高,同时也反映了它的精度,数字越大,精度相对也越高。8位算是最低了,有些单片机里集成的AD转换器一般是10位的。12位和16位的芯片价格就比较贵了。

单片机的3种时钟电路设计方案,你是在用哪1种?

cathy /

<strong><font color="#004a85">作者 | 芯片哥</font> </strong>
<strong><font color="#004a85">来源 | 今日头条</font> </strong>

工程师在开发一个电路系统,往往会需要用到中央处理器,比如单片机、FPGA、或者DSP等等;当然一些简单的纯硬件电路项目方案例外,如充电器、热水壶等等。

作为单片机研发设计的项目,它的最小电路工作系统包含电源电路、复位电路、时钟频率电路;其中电源电路与复位电路,相信工程师都非常容易理解与设计。然而时钟频率电路,由于不同的开发项目功能需求不一样,设计的方案选择也不尽相同,很难得到有效的统一设计。

<strong>比如:</strong>

单片机内部结构原理,让你豁然开朗!

cathy /

<strong>1、单片机内部结构分析</strong>

我们来思考一个问题,当我们在编程器中把一条指令写进单片机内部,然后取下单片机,单片机就可以执行这条指令,那么这条指令一定保存在单片机的某个地方,并且这个地方在单片机掉电后依然可以保持这条指令不会丢失,这是个什么地方呢?这个地方就是单片机内部的只读存储器即ROM(READ ONLY MEMORY)。为什么称它为只读存储器呢?刚才我们不是明明把两个数字写进去了吗?原来在89C51中的ROM是一种电可擦除的ROM,称为FLASH ROM,刚才我们是用的编程器,在特殊的条件下由外部设备对ROM进行写的操作,在单片机正常工作条件下,只能从那面读,不能把数据写进去,所以我们还是把它称为ROM。

<strong>2、几个基本概念</strong>

1)数的本质和物理现象

万变不离其宗之单片机串口共性问题

cathy 提交于

[导读] 单片机开发串口是应用最为广泛的通信接口,也是最为简单的通信接口之一,但是其中的一些要点你是否明了呢?来看看本人对串口的一些总结,当然这个总结并不能面面俱到,只是将个人认为具有共性以及相对比较重要的点做了些梳理。

<strong>啥是串口?</strong>

首先这玩意儿分两种:

<ul data-tool="mdnice编辑器">
<li><strong>通用异步收发器(UART)</strong>是用于异步串行通信的一种物理层标准,其中数据格式和传输速度是可配置的。</li>
<li><strong>通用同步收发器(USART)<strong>是一种串行接口设备,可以对其进行编程以进行</strong>异步</strong>或<strong>同步</strong>通信。</li>
</ul>

<strong>数据格式</strong>

如何判断晶振的好坏晶振对于单片机有怎么样的影响?

cathy /

晶振的作用日渐突出,本文中,将基于三方面介绍晶振:1.如何判断晶振好坏,2.石英晶振的运用准则,3.晶振对于单片机的影响。

<strong>一、判别晶振好坏</strong>

晶振作为电路中的心脏,具有极其重要的作用,在各种电子产品设备中广泛应用,如果出现不振就会导致整个设备不能正常工作,工程师要懂得辨认晶振好坏,这是必要及首要条件。那么作为采购当然是也能辨认晶振好坏最好,这样可以帮助大家更好的采购晶振。那么要如何辨认判断呢?下面一起来了解下:

1、将电笔插入插座火线中,用一只晶振的脚接触电笔尾,另一只脚用手接触,如果电笔亮,就是好的。

2、用万用表10K挡检测,无穷大为良品。

3、替换法。用数字电容表(或数字万用表的电容档)测量其电容,一般损坏的晶振容量明显减小。不同的晶振其正常容量具有一定的范围,好品一般在几十到几百PF。

4、用替换法。晶振很难用万用表判断的,一般正向电阻是无穷大时反向电阻也是无穷大。

5、如果有条件就用示波器看有无波型。

6、最好的办法就是在电路中用万用表量一下它的两端有没有工作电压,若有的话,再有示波器量一下它的频率,若频率不对的话,很有可能它坏了。

一文教你看懂单片机、ARM、MCU、DSP、FPGA和嵌入式

cathy /

首先,“嵌入式”这是个概念,准确的定义没有,各个书上都有各自的定义。但是主要思想是一样的,就是相比较PC机这种通用系统来说,嵌入式系统是个专用系统,结构精简,在硬件和软件上都只保留需要的部分,而将不需要的部分裁去。所以嵌入式系统一般都具有便携、低功耗、性能单一等特性。

然后,MCU、DSP、FPGA这些都属于嵌入式系统的范畴,是为了实现某一目的而使用的工具。

MCU俗称”单片机“经过这么多年的发展,早已不单单只有普林斯顿结构的51了,性能也已得到了很大的提升。因为MCU必须顺序执行程序,所以适于做控制,较多地应用于工业。而ARM本是一家专门设计MCU的公司,由于技术先进加上策略得当,这两年单片机市场份额占有率巨大。ARM的单片机有很多种类,从低端M0(小家电)到高端A8、A9(手机、平板电脑)都很吃香,所以也不是ARM的单片机一定要上系统,关键看应用场合。

DSP叫做数字信号处理器,它的结构与MCU不同,加快了运算速度,突出了运算能力。可以把它看成一个超级快的MCU。低端的DSP,如C2000系列,主要是用在电机控制上,不过TI公司好像称其为DSC(数字信号控制器)一个介于MCU和DSP之间的东西。高端的DSP,如C5000/C6000系列,一般都是做视频图像处理和通信设备这些需要大量运算的地方。

单片机裸奔之状态机浅谈

cathy /

说到单片机编程,不得不说到状态机,状态机做为软件编程的主要架构已经在各种语言中应用,当然包括C语言,在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。灵活的应用状态机不仅是程序更高效,而且可读性和扩展性也很好。状态无处不在,状态中有状态,只要掌握了这种思维,让它成为您编程中的一种习惯,相信您会受益匪浅。

状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳,主要是出于对状态机的内在因果联系的考虑。“现态”和“条件”是因,“动作”和“次态”是果。详解如下:

①现态:是指当前所处的状态。

②条件:又称为“事件”。当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。

③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。

④次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。

如果我们进一步归纳,把“现态”和“次态”统一起来,而把“动作”忽略(降格处理),则只剩下两个最关键的要素,即:状态、迁移条件。

状态机的表示要领有许多种,我们可以用文字、图形或表格的形式来表示一个状态机。