设计与开发

arm单片机编程 MCU程序的编写方式,以及各型号单片机的区别和用途

小编 2025-06-18 设计与开发 23 0

MCU程序的编写方式,以及各型号单片机的区别和用途

MCU程序的编写方式,以及各型号单片机的区别和用途

单片机的程序编写

MCU的程序的编写与PC下的程序的编写存在很大的区别,虽然现在基于C的MCU开发工具越来越流行,但对于一个高效的程序代码和喜欢使用汇编的设计者来讲,汇编语言仍然是最简洁、最有效的编程语言。

对于MCU的程序编写,其基本的框架可以说是大体一致的,一般分为初始化部分(这是MCU程序设计与PC最大的不同),主程序循环体和中断处理程序三大部分,其分别说明如下:

初始化:对于所有的MCU程序的设计来讲,出世化是最基本也是最重要的一步,一般包括如下内容:

屏蔽所有中断并初始化堆栈指针:初始化部分一般不希望有任何中断发生。

清除系统的RAM区域和显示Memory:虽然有时可能没有完全的必要,但从可靠性及一致性的角度出发,特别是对于防止意外的错误,还是建议养成良好的编程习惯。

阅读累了可以先关注我,不迷路,打开头像关注查看个人主页以及简介,更多优秀内容,叫“林老师”分享给大家

IO口的初始化:根据项目的应用的要求,设定相关IO口的输入输出方式,对与输入口,需要设定其上拉或下拉电阻;对于输出口,则必须设定其出世的电平输出,以防出现不必要的错误。

中断的设置:对于所有项目需要用到的中断源,应该给予开启并设定中断的触发条件,而对于不使用的多余的中断,则必须给予关闭。

其他功能模块的初始化:对于所有需要用到的MCU的外围功能模块,必须按项目的应用的要求进行相应的设置,如UART的通讯,需要设定Baud Rate,数据长度,校验方式和Stop Bit的长度等,而对于Programmer Timer,则必须设置其时钟源,分频数及Reload Data等。

参数的出世化:完成了MCU的硬件和资源的出世化后,接下来就是对程序中使用到的一些变量和数据的初始化设置,这一部分的初始化需要根据具体的项目及程序的总体安排来设计。对于一些用EEPROM来保存项目预制数的应用来讲,建议在初始化时将相关的数据拷贝到MCU的RAM,以提高程序对数据的访问速度,同时降低系统的功耗(原则上,访问外部EEPROM都会增加电源的功耗)。

主程序循环体:大多数MCU是属于长时间不间断运行的,因此其主程序体基本上都是以循环的方式来设计,对于存在多种工作模式的应用来讲,则可能存在多个循环体,相互之间通过状态标志来进行转换。对于主程序体,一般情况下主要安排如下的模块:

计算程序:计算程序一般比较耗时,因此坚决反对放在任何中断中处理,特别是乘除法运算。

显示传输程序:主要针对存在外部LED、LCD Driver的应用。

中断处理程序:中断程序主要用于处理实时性要求较高的任务和事件,如,外部突发性信号的检测,按键的检测和处理,定时计数,LED显示扫描等。

一般情况下,中断程序应尽可能保证代码的简洁和短小,对于不需要实时去处理的功能,可以在中断中设置触发的标志,然后由主程序来执行具体的事务――这一点非常重要,特别是对于低功耗、低速的MCU来讲,必须保证所有中断的及时响应。

对于不同任务体的安排,不同的MCU其处理的方法也有所不同。

例如,对于低速、低功耗的MCU(Fosc=32768Hz)应用,考虑到此类项目均为手持式设备和采用普通的LCD显示,对按键的反应和显示的反应要求实时性较高,应此一般采用定时中断的方式来处理按键的动作和数据的显示;而对于高速的MCU,如Fosc》1MHz的应用,由于此时MCU有足够的时间来执行主程序循环体,因此可以只在相应的中断中设置各种触发标志,并将所有的任务放在主程序体中来执行。

在MCU的程序设计中,还需要特别注意的一点就是:要防止在中断和主程序体中同时访问或设置同一个变量或数据的情况。有效的预防方法是,将此类数据的处理安排在一个模块中,通过判断触发标志来决定是否执行该数据的相关操作;而在其他的程序体中(主要是中断),对需要进行该数据的处理的地方只设置触发的标志。――这可以保证数据的执行是可预知和唯一的。

在学校里学了这些知识,并没有时间思考这些之间概念之间的区别,一直注重渴望技术的提升,却忘了这些基础才是根本。蹭着在家的这一段时间,准备好好梳理一下之间的关系,这是一个宏大的框架,写下这些,也是因为在求职的时候对于这些涉及到了,加深一下自己的印象吧。不说了,直接入主题吧。

ARM

在嵌入式领域里,ARM本意是微处理器行业的一家知名企业,英国ARM公司是全球领先的半导体知识产权提供商。全球超过95%的智能手机采用ARM架构,ARM设计了大量的高性价比、耗能低的精简指令集计算(RISC)处理器。这里的ARM指的是处理器。处理器也是CPU的意思,所以ARM处理器就是CPU的意思。ARM公司不生产芯片、生产CPU.是一个32位精简指令集处理器架构,ARM处理器包含以下几个系列的处理器产品以及其它厂商实现的基于ARM体系结构的处理器。如ARM7 系列、ARM9系列、ARM9E系列、ARM10E系列等等。这些处理器广泛应用于实时嵌入式应用,如存储设备、汽车、工业和网络设备。

STM32

上面说了ARM处理器核当前ARM7、ARM9、ARM9E、ARM10E、SecurCore以及最新的ARM11系列。而STM32使用的其中的Cortex-M3内核。当时由于arm7能效低,arm9的硬件和编程过于复杂。为了满足消费电子的需求而改进arm7,代号为cortex -m,这样st或nxp等产家以这个新的核心来加自己的外设就得到了stm32或lpc系列的单片机了。可以清楚得到stm32是基于ARM Cortex-M3内核的,但不属于ARM。因为ARM公司只提供了处理器,st(意法半导体)还有nxp(恩智浦半导体)厂家以此内核为核心添加外设得到了stm32或lpc系列单片机。只能说stm32是基于ARM Cortex -M3内核的,但是不属于ARM。ARM Cortex-M3内核具有高性能、低成本、低功耗等特点,属于ARM7架构中的一员。

51单片机

谈谈51单片机与stm32单片机的区别,先介绍一下,什么是单片机。单片机全称单片微型计算机,简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入输出设备(串口、并口等)和中断系统处于同一芯片的器件。在我们个人电脑中CPU、RAM、ROM、I/O这些都是单独的芯片,然后这个芯片被安装一个主板上,这样就构成了我们的PC主板,进而组装成电脑,而单片机只是将这所有的集中在一个芯片上而已。

51单片机是对所有兼容Intel8031指令系统的单片机的统称,这一系列的单片机的始祖是Intel的8031单片机,后来随着flash ROM技术的发展,8031单片机取得了长足的进展成为了应用最广泛的8bit单片机之一,他的代表型号是ATMEL公司的AT89系列。STM32单片机则是ST(意法半导体)公司使用arm公司的cortex-M为核心生产的32bit系列的单片机,它的内部资源(寄存器和外设功能)较8051、AVR和PIC都要多的多,基本接近于计算机的CPU了,适用于手机、路由器等等。

开发板与单片机的区别

经过之前的总结,ARM处理器内核加上外设模块(如UART、IIC)组成了芯片(如STM32),也就是单片机,单片机芯片再加上

一些常用的电子器件构成的电路板便是开发板。方便初学者使用,上面常用的外设有led灯、数码管、独立按键、矩阵按键、液晶显示屏、红外线接收头等。而单片机只是上面的核心芯片。

开发板、单片机、ARM傻傻分不清楚?模块厂家亿佰特给你答案

要弄清楚这三者之间的区别和关系,我们首先的弄清楚开发板、单片机、ARM是什么。

1、开发板

开发板(demoboard)是用于嵌入式系统开发的电路板,包括一系列硬件组件,例如中央处理器,内存,输入设备,输出设备,数据路径/总线和外部资源接口。

开发板通常由嵌入式系统开发人员根据开发需要定制,也可以由用户进行研究和设计。开发板供初学者了解和学习系统的硬件和软件。同时,一些开发板还提供了基本的集成开发环境以及软件源代码和硬件原理图。常见的开发板包括51,ARM,FPGA和DSP开发板。

简而言之,它指的是用于学习的许多单芯片外围设备的集成,例如LED灯,数字管,按钮,行和行按钮,步进电机,伺服电机,LCD显示器等。实验,开发等。开发板是一种实验设备(SCM编程)。

2、单片机

单片机不是执行特定逻辑功能的芯片,而是将计算机系统集成到芯片上的芯片。它等效于微型计算机。与计算机相比,单芯片计算机仅缺少I/O设备。

简而言之:芯片变成了计算机。它体积小,重量轻,价格低廉,为学习,应用和开发提供了便利的条件。同时,学习使用单片机是理解计算机原理和结构的最佳选择。

MCU开发板在官方ARM开发板的基础上增加了外围设备后,配备了许多功能接口,例如扩展的TFT-LCD,LVDS接口,触摸屏,VGA,矩阵键盘,外部总线接口,CAN,SPI,PWM,高速USBHOST\Device,SD卡、RS232\RS485串行端口,音频,MIC等常用接口,国内领先的嵌入式解决方案制造商经常使用具有多个核心平台的ARM开发板,因此各种技术公司的研发工程师可以轻松测试ARM开发板,而R&D公司产品可以通过开发板中的数据文件快速开发公司产品并缩短研发周期。

在批量生产产品之前,单片机就用于产品的设计和开发,当我们有一定的理论基础研究知识时,单片机开发板就是我们的实用工具(PIC单片机)),通过单片机开发板,我们可以做一些实验来掌握学到的知识。

单片机的应用领域非常广泛,例如智能仪表,实时工业控制,通讯设备,导航系统,家用电器等。一旦将单片机用于各种产品中,它就可以起到升级产品的作用。它通常在产品名称前加上形容词“智能”,例如智能洗衣机。

3、ARM开发板

ARM开发板在基于CPU添加外围设备之后具有许多功能接口,例如扩展TFT-LCD,LVDS接口,触摸屏,VGA,矩阵键盘,外部总线接口,CAN,SPI,PWM,高速USBHOST\设备,SD卡,RS232\RS485串行端口,音频,MIC等通用接口,国内领先的嵌入式解决方案制造商经常使用具有多个核心平台的ARM开发板,从而使各种技术公司的研发工程师都可以轻松地测试ARM开发板和R&D。公司公司的产品可以通过开发板上的数据文件快速开发公司的产品,并缩短研发周期。

常用的嵌入式开发板是ARM和单片机。许多人对MCU和ARM之间的区别感到困惑。从总体比较来看,ARM开发板就像一家大型跨国公司,每个部分都有明确的分工,多功能处理问题,非常高的稳定性,很高的总体运行效率和相对较高的成本。单片机就像一个小型私人车间。尽管麻雀虽小且具有所有的内脏器官,但它具有单个处理问题,快速的操作速度和相对较低的成本。

4、ARM和单片机的区别

4.1软件

1)方便。主要体现在以后的开发中,即直接在操作系统上开发应用程序。一切都不会像微控制器那样被重写。在操作系统移植工作的早期,专业人员仍然必须这样做。

2)安全性。这是LINUX的功能。林UX的内核与用户空间的内存管理是分离的,不会因为用户的单个程序错误而导致系统崩溃。在微控制器的软件开发中还没有看到这一点。

3)效率高。引入流程管理和调度系统以使系统更高效地运行。在传统单片机的发展中,大多数都是基于中断的前端和后端技术,并且在多任务管理方面存在局限性。

4.2硬件

当前8位微控制器的技术和硬件发展也很快,有许多功能强大的微控制器。但是与32ARM相比仍然存在一些差距。

大多数ARM芯片将SDRAM,LCD和其他控制器集成到该芯片中。在8位计算机中,大多数都需要扩展。一般来说,单芯片计算机是微控制器,ARM显然已经是微处理器。

引入嵌入式操作系统后,可以实现许多单芯片系统无法完成的功能。例如:嵌入式Web服务器,java虚拟机等。换句话说,有许多可用的免费资源。以上两个服务是示例。如果您在微控制器上开发这些功能,则可以想象到困难。

从应用比较来看,单片机与ARM嵌入式开发板的应用领域相对相似。简而言之,可以更好地完成可以由单个芯片完成的ARM,而不能完成可以由ARM完成的功能。因此,在市场上的移动智能控制终端中,ARM嵌入式开发板已逐渐取代了微控制器的主导地位。

总而言之,微控制器是微控制器,而ARM显然是微处理器。ARM是各种模块的集成。无需购买任何芯片所需的功能,例如51单片机。ARM本身是集成的,可以直接写入寄存器。

5、开发板与单片机的区别

单片机是一个8位微控制器芯片,它是51开发板的核心设备。单片机开发板将单片机常用的外围设备集成到电路板上,并与单片机一起形成开发系统。通过编写程序来控制周围的设备来实现相应的功能,以达到学习单片机的目的。

具有不同特定用途的开发板将有所不同,但通常需要连接到计算机,并且有些需要具有串行端口驱动程序(使用串行端口将程序下载到微控制器)

相关问答

arm单片机 烧录方法?

你好,烧录ARM单片机的方法通常有以下几种:1.使用单片机烧录器:将所需程序通过USB或串口连接到烧录器上,然后将烧录器与目标单片机连接,使用烧录器软件将程...

如何在ucos下进行 arm编程 ?

8、学习Linux操作系统。(1)、《UNIX环境高级编程》(2)、细读“joyfire笔记”,可在“qianrushi.com”网站的好书下载栏目获取(3)、细读《linux内核......

单片机 有初步了解,如何快速掌握 ARM 32位开发呢?

当你对8位的单片机有一定的了解后,你对寄存器已经有了一个非常清晰的概念。8位机寄存器较少,平常使用到某些功能,直接自己写寄存器设置的相关代码,也能很快捷...

arm 和51 单片机编程 一样吗?

编程一样的,不管是ARM,还是51。从系统设计来看,ARM和51在很多模块的核心设计理念上都是一致的,要到芯片的寄存器级才体现出不同。当然设计水平和寄存器的多少...

请问学习 ARM 嵌入式开发应该准备些什么开发工具和要求?

感谢邀请。这个问题相信是困扰所有嵌入式初学者的难题,下面课内容是嵌入式学习必学的:C语言;C++;操作系统;计算机组成原理;linux编程;51单片机;arm;硬件...

ARM 编译器是款什么样的软件?

ARM汇编语言是一种功能很强大的程序设计语言,目前在嵌入式开发、单片机开发、系统软件设计、直接访问硬件设备等高效程序的设计方面有较多应用。ARM源代码由...

单片机 控制无线串口模块该怎样去 编程 ?

串口WiFi模块是由具备WiFi外设的ARM组成的系统,它们上电后会启动自己的系统然后等待与你的单片机进行串口通信,主动权还是掌握在你的单片机上,远程控制甚至是...

ARM单片机 优缺点?

优点:arm单片机采用了新型的32位arm核处理器,使其在指令系统,总线结构,调试技术,功耗以及性价比等方面都超过了传统的51系列单片机。同时arm单片机在芯片内...

arm单片机 的启动方式?

ARM单片机的启动方式主要分为两种:硬件启动和软件启动。硬件启动是通过外部引脚或者复位电路使芯片进入复位状态,然后根据芯片内部的复位向量表执行初始化程...

单片机 keil51 编程 方法?

1.先安装KeilC51并破解,再安装MDK5并破解。2.分别打开KeilC51和MDK5的安装目录。将KeilC51安装目录下的C51文件夹复制到MDK5的安装目录文件夹下。3.分别...

猜你喜欢