单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
ARM指令集中,LDR通常都是作加载指令的,但是它也可以作伪指令。
LDR伪指令的形式是“LDR Rn,=expr”。下面举一个例子来说明它的用法。
COUNT EQU 0x40003100
……
LDR R1,=COUNT
MOV R0,#0
STR R0,[R1]
COUNT是我们定义的一个变量,地址为0x40003100。这中定义方法在汇编语言中是很常见的,如果使用过单片机的话,应该都熟悉这种用法。
LDR R1,=COUNT是将COUNT这个变量的地址,也就是0x40003100放到R1中。
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
这一套Proteus教学视频是由up主wangxinmingqq花时间录制的,内容很全,既适合初学者,又适合对proteus有一定基础的人。
在单片机的BCD增量算式、线性化处理等过程中,都会遇到一个共同的问题,那就是小数的运算。在单片机当中,对于小数的表现方法一般只有两种,一种是浮点数,一种是定点数。本文就将对单片机中的浮点数进行概述并对其汇编程序设计进行介绍。
浮点数结构有其自身的优点,其能够以固定的字节长度保持相对精度不变,用较少的字节表示很大的数的范围,便于存储和运算,在处理的数据范围较大和要求精度较高时,采用浮点数。
<strong>浮点数概念</strong>
常用科学计数法来表示一个十进制数如:
l234.75=1.23475E3=1.23475×103(10的3次方)
作为一名电子技术从业人员,你学过单片机吗?你会运用单片机吗?我想你一定学过,但不一定会运用。因为学习单片机比学习其他学科需要付出更多的努力和代价,不仅要学习理论知识还要练习实际操作,而且主要是在实际操作中才能真正学到单片机技术。
此外,学习单片机还需要投入一定的学习成本,随着你学习知识的扩展成本还会增加。学习单片机的动机不外乎有四种:一是为兴趣爱好而学,二是为专业而学;三是为饭碗而学;四是在工作中被逼而学。不管是哪种动机,因主修专业的不同以及电子基础的深浅不同,对于不同的人可能采用不同的学习方法,根据笔者的亲身学习经验和教授徒弟学习的感受,提出笔者的学习方法和步骤。
<strong>第一步:基础理论知识学习</strong>
<strong>一、Cortex M3的GPIO口特性</strong>
在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置。
<center><img src="http://mm32.eetrend.com/files/2016-08/wen_zhang_/100002619-8432-1.jpg&q…; alt=""></center>
随着物联网和智能硬件的兴起,市场对MCU需求呈现井喷式增长!据IC Insights市场研究报告显示,2015年全球MCU市场规模达到168亿美元,较2014年增长5.6%,出货量255亿颗比2014年提升12.4%,而2016年全球MCU市场出货还将大幅度增长,预计出货将突破300亿颗大关!不过这个300亿颗出货量,很大部分都是国外品牌,尤其在32位MCU领域,基本99%是国外品牌!市场呼唤本土品牌!
我们来了!灵动微电子在2016年5.20深情告白宣告进入32位MCU领域以后就受到业界强烈关注!我们向业界献上“MM32”系列32位MCU产品获得了客户的热捧!
灵动微电子2016秋季新品发布会将于8月23日在深圳召开,这一次,我们不是一个人在告白,我们已经有了很多懂我们的芯的小伙伴!希望更多懂我们芯的人和我们站在一起,共襄本土MCU大业!
简介:
逐次比较式AD转换器由N位寄存器、N位DA转换器、比较器、逻辑控制电路、输出缓冲器五部分组成。
双积分式AD转换器又称双斜式AD转换器,其转换过程在逻辑控制电路的控制下按以下三个阶段进行:1.预备阶段;2.定时积分阶段T1;3.定值积分阶段T2。
简介:
伪操作又称为伪指令,它不像机器指令那样是在程序运行期间由计算机来执行的,它是在汇编程序对源程序汇编期间由汇编程序处理的操作,它们可以完成如数据定义、分配存储区、指示程序结束等功能。
宏指令是一段独立的程序代码,它通过伪操作来定义。宏通过宏名来调用,并可以设置相应的参数。宏定义本身不会产生代码,只是在调用它时把宏体插入到源程序中。
一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备。而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零。如何设置非初始化数据变量不被零初始化,这是本篇文章所要探讨的。
在给出方法之前,先来了解一下代码和数据的存放规则、属性,以及复位后为何默认非初始化变量所在RAM都被初始化为零了呢。
什么是初始化数据变量,什么又是非初始化数据变量?(因为我的文字描述不一定准确,所以喜欢举一些例子来辅助理解文字。)
定义一个变量:int nTimerCount=20;变量nTimerCount就是初始化变量,也就是已经有初值;
预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。
在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。
预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。下面是部分预处理指令:
本文将介绍Keil提供各种窗口如输出窗口、观察窗口、存储器窗口、反汇编窗口、串行窗口等的用途,以及这些窗口的使用方法,并通过实例介绍这些窗口在调试中的使用。
一、程序调试时的常用窗口
Keil软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows)、观察窗口(Watch&Call Statck Windows)、存储器窗口(Memory Window)、反汇编窗口(Dissambly Window)串行窗口(Serial Window)等。进入调试模式后,可以通过菜单View下的相应命令打开或关闭这些窗口。
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
这一套Proteus教学视频是由up主wangxinmingqq花时间录制的,内容很全,既适合初学者,又适合对proteus有一定基础的人。
其实,IAR 编译环境的配置是相当重要的,没配置正确或者不符合自己的习惯的话,使用起来就会很麻烦。下面
我根据网上的经验和资料,以及自己摸索和大家共同探讨下 IAR 的配置。
我第一次打开 IAR 环境的时候,发现工作区有明显分层现象。如图一所示:
<center><img src="http://mm32.eetrend.com/files/2016-08/wen_zhang_/100002586-8311-buhuo.j…; alt=""></center>
我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性。
同时,这里面用到了一些分层的思想,在单片机当中也是相当有用的,也是本文的另外一个重点。
对于老鸟,我建议直接看那两个表达式,然后自己想想就会懂的了,也不需要听我后面的自吹自擂了,我可没有班门弄斧的意思,hoho~~但是对于新手,我建议将全文看完。因为这是实际项目中总结出来的经验,学校里面学不到的东西。
以下假设你懂C语言,因为纯粹的C语言描述,所以和处理器平台无关,你可以在MCS-51,AVR,PIC,甚至是ARM平台上面测试这个程序性能。当然,我自己也是在多个项目用过,效果非常好的。
如何建立工程、汇编、连接工程,并获得目标代码,这仅仅代表你的源程序没有语法错误,至于源程序中存在着的其它错误,必须通过调试才能发现并解决,事实上,除了极简单的程序以外,绝大部份的程序都要通过反复调试才能得到 正确的结果,因此,调试是软件开发中重要的一个环节,本文将介绍常用的调试命令、利用在线汇编、各种设置断点进行程序调试的方法,并通过实例介绍这些方法的使用。
1958年国内首次研制成功锗合金扩散高频晶体管,1963年中国首先研制成硅平面器件,1978年一种集成高速模糊逻辑电路DYL使中国集成8位D/A转换器转换时间由80ns缩短至4ns以下....这些重大成果的幕后英雄,就是王守武的弟弟王守觉,他也是我们国家赫赫有名的半导体专家。
王守觉,原名王守平,1925年6月27日生于上海,原籍江苏苏州,他从小思维敏捷,天资聪慧而且特别顽皮大胆,好吵闹,父亲练字,他要在一旁静静观看,母亲坐禅念佛,他要掀门偷偷去瞧瞧,哥姐们讨论问题,他也要去参和,这个深得父亲与哥姐们喜爱的孩童就是王守觉。
<strong>1、基本概念(CMSIS):</strong>
Cortex Micro-controller Software Interface Standard,微控制器软件接口标准。
<strong>2、CMSIS标准的文件结构:</strong>
a) core_cm.c (stdint.h)
b) system_.c (core_cm, system_)
c) startup_.s
其中core_cm.c以及core_cm中为内核外设访问层,其中定义了内核中的外设以及一些内核的访问及控制函数。
startup_.s文件是系统的启动文件,其包括堆和栈的初始化配置、中断向量表的配置以及将程序引导到main()函数等功能。
正如汽车代替了马车,电子邮件代替了普通邮件一样,32位微控制器(MCU)让8位MCU变得黯然失色。尽管未来8位MCU朝向32位MCU发展将会成为现实,但目前还没那么容易实现。事实证明8位MCU和32位MCU仍是互补的技术,在一些方面各有千秋,而在其它方面的表现却同样出色。这其中的窍门在于厘清何种应用适合哪种MCU架构。
本文比较了8位MCU和32位MCU的使用案例,可作为如何选择这两种MCU架构的指南使用。
本文大部分32位范例将关注于ARM Cortex-M装置,Cortex-M在不同MCU供货商产品组合中表现非常相似。由于8位MCU有很多种架构,所以很难对8位供货商之间进行类似的产品比较。为了进行比较,本文将使用广泛应用、易于理解的8051 8位架构。
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。





