demi的博客

单片机数码管的8个段显示效果分析

demi的头像

数码管的 8 个段,我们直接当成 8 个 LED 小灯来控制,那就是 a、b、c、d、e、f、g、dp 一共 8 个 LED 小灯。我们通过图 5-3 可以看出,如果点亮 b 和 c 这两个 LED 小灯,也就是数码管的 b 段和 c 段,其他的所有的段都熄灭的话,就可以让数码管显示出一个数字 1,那么这个时候实际上 P0 的值就是 0b11111001,十六进制就是 0xF9。那么我们写一个程序进去,来看一看数码管显示的效果。

#include
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
void main(){
ENLED = 0; //使能 U3,选择数码管 DS1
ADDR3 = 1;
ADDR2 = 0;
ADDR1 = 0;
ADDR0 = 0;
P0 = 0xF9; //点亮数码管段 b 和 c
while (1);
}

电路板电镀中,有4种特殊的电镀方法

demi的头像

本文主要介绍的是电路板焊接中的4中特殊电镀方法。

第一种,指排式电镀

常常需要将稀有金属镀在板边连接器、板边突出接点或金手指上以提供较低的接触电阻和较高的耐磨性,该技术称为指排式电镀或突出部分电镀。常将金镀在内层镀层为镍的板边连接器突出触头上,金手指或板边突出部分采用手工或自动电镀技术,目前接触插头或金手指上的镀金已被镀姥、镀铅、镀钮所代替。其工艺如下所述:

1)剥除涂层去除突出触点上的锡或锡-铅涂层

2) 清洗水漂洗

3) 擦洗用研磨剂擦洗

4) 活化漫没在10% 的硫酸中

5) 在突出触头上镀镍厚度为4 -5μm

6) 清洗去除矿物质水

7) 金渗透溶液处理

8) 镀金

9) 清洗

10) 烘干

第二种,通孔电镀

必知的电源技巧:小小的疏忽就能毁掉EMI性能

demi的头像

从开关节点到输入引线的少量寄生电容(100毫微微法拉)会让您无法满足电磁干扰(EMI)需求。那100fF电容器是什么样子的呢?在Digi-Key中,这种电容器不多。即使有,它们也会因寄生问题而提供宽泛的容差。

不过,在您的电源中很容易找到作为寄生元件的100fF电容器。只有处理好它们才能获得符合EMI标准的电源。

图1是这些非计划中电容的一个实例。图中的右侧是一个垂直安装的FET,所带的开关节点与钳位电路延伸至了图片的顶部。输入连接从左侧进入,到达距漏极连接1cm以内的位置。这就是故障点,在这里FET的开关电压波形可以绕过EMI滤波器耦合至输入。

必知的电源技巧:小小的疏忽就能毁掉EMI性能
图1. 开关节点与输入连接临近,会降低EMI性能

注意,漏极连接与输入引线之间有一些由输入电容器提供的屏蔽。该电容器的外壳连接至主接地,可为共模电流提供返回主接地的路径。如图2所示,这个微小的电容会导致电源EMI签名超出规范要求。

单片机中的CY与OV详细解析

demi的头像

CY(Carry): 用于表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位则CY位置1,否则为0

OV: 表示运算过程中是否发生了溢出,若运算结果超过了8位二进制数所能表示数据的范围即有符号数-128~+127,则标志位置1。

对无符号数的运算,判断只需CY即可,OV无作用。

对有符号数的运算,OV位是有用的。“OV位是C6位进位与C7位进位的异或”,说法对的(对51单片机而言),但不同的计算机说法不一

CY位是累加器的进位、借位标志。下文的叙述按16位机来举例说明,如果是8位机或其它字长,则可换一个例子,但道理相似。

对于无符号数的运算,CY位就可以表示其是否溢出。但如果是有符号数,则不能按CY标志来判断了。为此,设了另一个标志OV,其含义就是“假如是有符号数运算,是否出现了溢出”。

例如对于16位运算器,65534 + 3,(即二进制的1111111111111110 + 0000000000000011),

本该得65537,(即二进制的10000000000000001),但因为寄存器只有16位,最高位的那个1丢掉了(进入了CY标志)。结果寄存器中只剩下了1,(即二进制的0000000000000001)。

ARM芯片选型简易指南

demi的头像

目前国内市场常见的ARM有NXP(Philips)、Samsung、Atmel、TI、ADI等,根据用户要求及应用领域,可从如下几个方面选型:

1、速度(常规应用):ARM7的主时钟为20~133M,ARM9为100~233M,ARM10高达700M,如果速度要求更高,还可使用多核ARM,如MinSpeed公司的ARM系列芯片。

2、内存(常规应用):一般ARM都内带Flash(程序)和SRAM(数据),Atmel公司的ARM自带内存容量最大。如果要扩充外部SDRAM,Atmel、Samsung、NXP均可。

3、MCU升级(常规应用):如果是从原来的单片机系统升级(速度、GPIO等),可选择NXP的ARM,该公司的ARM性价比最高,有些型号30元以内就可买到,且有周立功单片机技术支持,开发工具、技术资料较丰富。

4、USB接口(特殊应用):Samsung公司的多款ARM内置了USB2.0 Host/Device接口,NXP的ARM也有内置USB2.0(全速)接口的。

5、AD/DA(数据采集、工业控制):ADI公司主要是做模拟芯片的,因此该公司的ARM芯片基本上都内置了AD、DA,且位数、、速度均是最好的。

电机与电气控制技术的60个知识点(下)

demi的头像

31、变频调速

异步电动机调速中,改变电源频率的调速方法。

32、三相异步电机能耗制动的原理

能耗制动是在电动机停止切除定子绕组三相电源的同时,定子绕组接通直流电源,产生静止磁场,利用转子感应电流与静止磁场的相互作用,产生一个制动转矩进行制动。

33、三相异步电机反接制动的工作原理

反接制动是在电动机停止时,改变定子绕组三相电源的相序,使定子绕组旋转磁场反向,转子受到与旋转方向相反的制动转矩作用而迅速停车。

34、短路保护和过载保护有什么区别?

短路时电路会产生很大的短路电流和电动力而使电气设备损坏。需要迅速切断电源。常用的短路保护元件有熔断器和自动开关。

电机允许短时过载,但长期过载运行会导致其绕组温升超过允许值,也要断电保护电机。常用的过载保护元件是热继电器。

35、电机起动时电流很大,为什么热继电器不会动作?

由于热继电器的热元件有热惯性,不会变形很快,电机起动时电流很大,而起动时间很短,大电流还不足以让热元件变形引起触点动作。

36、在什么条件下可用中间继电器代替交流接触器?

触点数量相同、线圈额定电压相同、小电流控制时可以替换。

37、常用继电器按动作原理分那几种?

电机与电气控制技术的60个知识点(上)

demi的头像

电机就是我们平时俗称的“马达”,电机是依据电磁感应定律实现电能转换或传递的一种电磁装置。电机的主要作用是产生驱动转矩,作为用电器或各种机械的动力源。而电机与电气控制技术的一些基础的知识点是不论是在学习还是工作中都是需要牢记的。“科创在线”今天分享的就是关于电机与电气控制基础的一些基本的知识点。

1、低压电器

是指在交流额定电压1200V,直流额定电压1500V及以下的电路中起通断、保护、控制或调节作用的电器。

2、主令电器

自动控制系统中用于发送控制指令的电器。

3、熔断器

是一种简单的短路或严重过载保护电器,其主体是低熔点金属丝或金属薄片制成的熔体。

4、时间继电器

一种触头延时接通或断开的控制电器。

5、电气原理图

电气原理图是用来表示电路各电气元器件中导电部件的连接关系和工作原理的电路图。

6、联锁

“联锁”电路实质上是两个禁止电路的组合。K1动作就禁止了K2的得电,K2动作就禁止了K1的得电。

STM32单片机常见的工作异常现象分析及解决方案

demi的头像

贴了两块样板,烧写同样的固件。其中一块工作正常,但是另外一块出现了很奇怪的现象:在线调试正常;每次烧写完后工作正常;重新上电有时候工作正常,有时候工作不正常;工作不正常时,按下复位按键,恢复正常。

工作异常现象:main函数中的系统运行指示灯不闪烁,但是初始化过程中点的一个灯是亮的!说明程序运行一段时间后,不工作了。

由于在线调试模式,板子工作正常,无法通过在线调试的方式判断程序运行的异常状态。

分析可能的原因:

1、初始化过程中,程序陷入死循环。但程序初始化过程中,没有while(1)死循环的代码。

2、板子上电后不断复位,导致无法进入main函数中的while(1)循环。

问题查找:

硬件:

1、确认BOOT0管脚接10kΩ欧电阻下拉到地;

2、RC上电延时复位电路中,R为10kΩ,C由0.1uF改为10uF,现象依旧;

3、MCU3.3V电源纹波很小,排除电源问题。

好像从硬件上查不出什么问题。只能从板子上唯一点亮的灯下手了。

软件:

学习单片机必须掌握的技巧,你还有多少不了解?

demi的头像

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着工程师。为帮助工程师解决单片机设计上的难题,纳出单片机开发中应掌握的几个基本技巧。

一、 如何提高C语言编程代码的效率?

用C语言进行单片机程序设计是单片机开发与应用的必然趋势。如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。 先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句。

各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长 5-20%。

对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统 所能支持的数据类型和算法。

虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作 上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。

二、 如何减少程序中的bug?

页面

订阅 RSS - demi的博客