跳转到主要内容

单片机

ARM与单片机到底有啥区别?

judy /

<strong>1、软件方面</strong>

这应该是最大的区别了。引入了操作系统。为什么引入操作系统?有什么好处?

1)方便。主要体现在后期的开发,即在操作系统上直接开发应用程序。不像单片机一样一切都要重新写。前期的操作系统移植工作,还是要专业人士来做。

2)安全。这是LINUX的一个特点。LINUX的内核与用户空间的内存管理分开,不会因为用户的单个程序错误而引起系统死掉。这在单片机的软件开发中没见到过。

3)高效。引入进程的管理调度系统,使系统运行更加高效。在传统的单片机开发中大多是基于中断的前后台技术,对多任务的管理有局限性。

<strong>2、硬件方面</strong>

现在的8位单片机技术硬件发展的也非常得快,也出现了许多功能非常强大的单片机。但是与32arm相比还是有些差距吧。

arm芯片大多把SDRAM,LCD等控制器集成到片子当中。在8位机,大多要进行外扩。

总的来说,单片机是个微控制器,arm显然已经是个微处理器了。

单片机选型有诀窍:根据数值选择低功耗MCU

judy /

根据数据手册列出的电流消耗规格来比较和选择低功耗单片机(MCU)是一项比较困难的任务。在大多数情况下,选择MCU的开发人员会先初步看看数据手册第一页,作为快速获得器件信息的参考点,其中包括外设、运行速度、封装信息、GPIO引脚数量和供电特性等。这种方法对于获得器件的整体性能很有效,但是在评估低功耗特性时却不实用。

为了对低功耗操作有全面了解,开发人员还要考虑电流消耗、状态保持、唤醒时间、唤醒源,以及低功耗模式下可运行的外设等。开发人员在相同操作模式下对比同类低功耗MCU,以获得客观的逐项比较结果。另外,易用的评估工具也非常重要,因为能评估整体系统功耗的额外功能和外设,使工程师的工作更加容易。

<center><img src="http://mcu.eetrend.com/files/2018-03/wen_zhang_/100010830-38005-8.jpg&q…; alt="单片机选型有诀窍:根据数值选择低功耗MCU"></center>

单片机嵌入式编程的五个注意事项

judy /

在单片机编程的过程中,如果一名设计者能够同时掌握多门编程语言,那么这名设计者肯定是一位非常优秀的人才。但是想要同时精通汇编、C语言、C++这三门语言实在是太难了,很多初学者在其中一门的学习中就已经到处碰壁,苦不堪言。本文特意为大家整理了拥有嵌入式编程领域多年工作经验的工程师意见,汇总成了一篇能够对嵌入式编程经验有着指导意义的注意事项,感兴趣的朋友快来看一看吧。

在单片机嵌入式编程中,最难的两部分是interrupt和MM(memory manage),之所以有人觉得并不困难,那是因为太多数情况下芯片制造商都已经直接写好,但是如果设计者本身就在为芯片制造商工作,那就必须自己会写配置文件。

这两个东西之所以比较难是因为要用汇编或类C来写,属于比较低层的东西,中断有外部中断和内部中断,外部中断有两种实现模式,硬件中断模式和软件中断模式,相对来说比较简单,属于应用层面的,相比之下,内部中断就要复杂得多,内部中断主要是发生重起,总线出错、溢出、校验出错等情况产生的,很多软件开发人员基本上不写对应的中断服务程序,因为它太难了而且一般也用不到。但是一旦发生,那就是致命错误,因此从整个系统健壮性来考虑必须要有相应的ISR才行,这也是freescale的专家建议的,因所以下面就谈一下嵌入式编程应该注意的问题。

利用单片机系统可靠性设计

judy /

单论单片机硬件系统设计解决方案,一般从三个方面分析:优选设计方案、增加冗余和容错率、采用硬件抗干扰。本文详细的介绍了优化这三个方面对单片硬件可靠性带来的好处。

<strong>1、选优设计</strong>

在系统硬件设计和加工时,应该选用质量好的接插件,设计好工艺结构;选用合格的元器件,进行严格的测试、筛选和老化;设计时技术参数(如负载)要留有一定的余量或降额使用元器件;提高印制板和组装的质量。

<strong>2、采用硬件抗干扰措施</strong>

精妙的单片机非阻塞延时程序设计

judy /

对于每个单片机爱好者及工程开发设计人员,在刚接触单片机的那最初的青葱岁月里,都有过点亮跑马灯的经历。从看到那一排排小灯按着我们的想法在跳动时激动心情。到随着经验越多,越来又会感觉到这个小灯是个好东西,尤其是在调试资源有限的环境中,有时会帮上大忙。

但对于绝大多数人,我们在最最初让灯闪烁起来时大约都会用到阻塞延时实现,会像如下代码的样子:
<img src="http://mcu.eetrend.com/files/2018-02/wen_zhang_/100010200-35159-1.jpg&q…; alt="精妙的单片机非阻塞延时程序设计">
然后,在我们接触到定时器,我们会发现,原来用定时中断来处理会更好。比如我们可以500ms中断一次,让灯亮或灭,其余的时间系统还可以做非常之多的事情,效率一下提升了很多。

单片机扩展中断的4种方法

judy /

MCS—51系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时,就必须进行扩展,下面介绍两种简单的扩展方法:

<strong>一、采用硬件请求和软件查询的方法:</strong>

这种方法是:把各个中断源通过硬件“或非(高有效,如CD4002)”(与,低有效)门引入到单片机外部中断源输入端(INT0或INT1),同时再把外部中断源送到单片机的某个输入输出端口,这样当外部中断时,通过“或非”(与)门引起单片机中断,在中断服务程序中再通过软件查询,进而转相应的中断服务程序。显然,这种方法的中断优先级取决于软件查询的次序。其硬件连接和软件编程如下:

Void zhongduan (void) interrupt 0 using 3 //中断函数

{

EX0=0;//关中断

If(P0_0=1) { *****}//中断查询

If(P0_1=1) { *****}//中断查询

If(P0_2=1) { *****}//中断查询

EX0=1;开中断

}

ucos ii在单片机使用中的一些特点

judy /

ucos ii是由Labrosse先生编写的一个开放式内核,最主要的特点就是源码公开。这一点对于用户来说可谓利弊各半,好处在于,一方面它是免费的,另一方面用户可以根据自己的需要对它进行修改。缺点在于它缺乏必要的支持,没有功能强大的软件包,用户通常需要自己编写驱动程序,特别是如果用户使用的是不太常用的单片机,还必须自己编写移植程序。

单片机定时/计数器的四种工作方式

judy /

<strong>方式1</strong>

当TMOD中的M0=0,M1=0时,为13位计数或定时方式,其中TLi使用低5位,其结构如图4.2所示。
<center><img width="500" src="http://mcu.eetrend.com/files/2018-01/wen_zhang_/100009939-33986-1.jpg&q…; alt="单片机定时/计数器的四种工作方式"></center><center><i>图4.2 方式0时T0、T1的结构图</i></center>

<strong>方式2</strong>

单片机串口通信基础概述

judy /

串口通信是非常重要的,首先了解下基础

<font size="3"><strong>计算机串口通信基础</strong></font>

• 随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能越越显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。

• 通信有并行通信和串行通信两种方式。在多微机系统以及现代化测控系统中信息的交换多采用串行通信方式。

• 计算机通信是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换。可以分为两大类:并行通信与串行通信。

单片机 时间周期、机器周期、指令周期详解

judy /

<strong>时钟周期</strong>

时钟周期也称为振荡周期,定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。

在一个时钟周期内,CPU仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,工作速度就越快。

8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。

<strong>机器周期</strong>

计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。8051系列单片机的一个机器周期由6个S周期(状态周期)组成。 一个S周期=2个节拍(P),所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。

例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒;

<strong>指令周期</strong>