24小(xiǎo)时联系電(diàn)话:18217114652、13661815404

中文(wén)

您当前的位置:
首页>
電(diàn)子资讯>
技术专题>
单片机编程分(fēn)步指南

技术专题

单片机编程分(fēn)步指南


单片机编程分(fēn)步指南

对于那些希望从微控制器编程开始的人,这是一个循序渐进的指南。本文(wén)首先介绍了将在本指南中使用(yòng)的一些基本术语,一系列工具,编程语言,最后是可(kě)下载代码的示例以及逐步指南,可(kě)用(yòng)于实践微控制器编程。 

但是在进入微控制器编程之前。让我们定义前两个基本术语:硬件和软件。 

硬件由系统中的物(wù)理(lǐ)组件组成,例如芯片,键盘,鼠标,监视器,内存,I / O设备。与软件相比,硬件更难开发,必须针对非常特定的应用(yòng)程序进行设计,并且它是高速系统中非常有(yǒu)效且完美的解决方案。 

软件是在硬件上运行的非物(wù)理(lǐ)组件或应用(yòng)程序,例如操作系统,计算机游戏和网络应用(yòng)程序。软件是高度可(kě)配置的,易于开发且开发速度较快,与硬件相比也非常便宜。 

什么是微控制器 

要了解什么是微控制器,我们首先需要了解什么是微处理(lǐ)器或CPU(中央处理(lǐ)单元)。CPU是任何计算机系统的心脏,就像执行任務(wù)时的人脑一样。我们基本上可(kě)以将其分(fēn)為(wèi)两个基本部分(fēn):

控制单元:该单元用(yòng)于从内存中获取数据。

执行单元:该单元用(yòng)于执行或运行数据。 

处理(lǐ)器类型 

处理(lǐ)器有(yǒu)很(hěn)多(duō)类别,例如通用(yòng)处理(lǐ)器,专用(yòng)系统处理(lǐ)器和多(duō)处理(lǐ)器系统。通用(yòng)处理(lǐ)器有(yǒu)多(duō)种类型:

▪微处理(lǐ)器

▪单片机

▪嵌入式处理(lǐ)器

▪数字信号处理(lǐ)器 

微处理(lǐ)器是半导體(tǐ)设备或芯片上的计算机,而不是功能(néng)齐全的计算机。其中央处理(lǐ)器单元包含 

ALU

▪程序计数器

▪寄存器

▪其他(tā)電(diàn)路(时钟时间,中断)

微控制器是一种IC,其中包含微处理(lǐ)器和一些外围设备,这些外围设备将构成完整的功能(néng)计算机,例如ADCRAMROMDAC等外围设备。 

 

单片机的历史 

最初,英特尔公司是第一家制造微控制器的公司。第一个微控制器于1971年在美國(guó)生产。它是一个名為(wèi)i40044位微控制器。后来,英特尔当时使用(yòng)8位微控制器生产了更复杂的模型,此后,东芝开发了12位微控制器。 

微控制器的应用(yòng) 

微控制器在许多(duō)行业中都有(yǒu)许多(duō)应用(yòng),例如汽車(chē),医疗,工业自动化,航空航天,机器人技术。 

例如,在汽車(chē)工业中,当今的现代汽車(chē)具有(yǒu)100多(duō)个微处理(lǐ)器,用(yòng)于诸如空调,ABSEBDADAS之类的系统,或者诸如自适应居里控制器和車(chē)道辅助系统之类的高级驾驶辅助系统,以下是ECU的图像或電(diàn)子控制单元。 

在医疗领域,有(yǒu)些医疗设备包括微控制器,例如MRI,葡萄糖测试仪,便携式EKG。下图是葡萄糖测试设备。 

 

在航空航天领域,大多(duō)数飞机都采用(yòng)微控制器设计了新(xīn)的航空電(diàn)子系统。此外,还有(yǒu)所有(yǒu)基于微控制器的飞行控制系统,空中交通控制系统,导航和气象系统。  

流行的微控制器 

微控制器的类型和平台很(hěn)多(duō),但是选择微控制器取决于许多(duō)因素: 

▪申请

▪预算

▪表现

GPIO引脚数

▪内存大小(xiǎo)

▪工作环境温度

▪耗電(diàn)量 

AVR微控制器 

下图包含AVE12DA的框图,AVE12DA是最流行的微控制器之一-AVR微控制器: 

  

AVR微控制器由Atmel公司(现為(wèi)Microchip)生产。Atmel拥有(yǒu)6个系列的AVR微控制器,4个系列的通用(yòng)微控制器和2个专用(yòng)的微控制器。通用(yòng)微控制器是:

8大型AVR

8– AT Tiny

8位和16– AVR Xmega

32– AVR 

专用(yòng)微控制器是: 

▪汽車(chē)AVR

▪電(diàn)池管理(lǐ) 

車(chē)载AVR,顾名思义,是為(wèi)汽車(chē)应用(yòng)而开发的。它可(kě)以在高达150摄氏度的高温下工作,并且包括用(yòng)于短路问题的保护系统。 

電(diàn)池管理(lǐ)微控制器是為(wèi)電(diàn)池管理(lǐ)系统开发的,以确保充電(diàn)和放電(diàn)操作的安全。 

AVR平台示例 

Arduino UNO

Adafruit蓝色水果微

Raspduino

Digispark Pro

ARM微处理(lǐ)器/微控制器 

ARM微处理(lǐ)器是世界上最受欢迎的处理(lǐ)器,尤其是在消费类应用(yòng)中。您可(kě)能(néng)拥有(yǒu)基于ARM处理(lǐ)器的设备,但您不知道!在大多(duō)数成功的32位嵌入式系统中,ARM几乎都是关键组件。第一个ARM1985年开发。 

RISC技术 

ARM使用(yòng)了RISC技术,RISC代表精简指令集计算机,这是一种在单个周期内交付简单指令的设计理(lǐ)念。它更多(duō)地依赖于软件。另一方面,CISC技术更多(duō)地依赖于硬件。 

 RISC技术致力于减少处理(lǐ)器的指令集。另一方面,CISC处理(lǐ)器具有(yǒu)指令集的非固定编号。 

ARM功能(néng)

Arm具有(yǒu)每个嵌入式系统设计人员想要的许多(duō)功能(néng),例如,由于其紧凑的尺寸而降低了功耗,而且由于我们正在开发嵌入式系统,因此高代码密度是另一个功能(néng),在大多(duō)数情况下,我们的资源将有(yǒu)限。 

基于ARM的微控制器的内部结构   

该图显示了大多(duō)数基于ARM的设备的内部结构: 

 

框代表功能(néng),線(xiàn)代表总線(xiàn)。让我们详细讨论每个组件: 

ARM处理(lǐ)器是它负责处理(lǐ)操作的核心组件

▪控制器用(yòng)于协调系统功能(néng),如存储和中断控制器

▪外围设备用(yòng)于提供系统输入和输出

▪总線(xiàn)用(yòng)于在系统中不同组件之间交换数据  

ARM平台的例子 

有(yǒu)许多(duō)具有(yǒu)手臂微处理(lǐ)器的设备和嵌入式平台,例如 

Arduino到期

▪树莓派

STM32F103C8T6

▪恩智浦LPC1768 

其他(tā)微控制器和平台 

正如我们在选择微控制器或平台之前所说的,这取决于许多(duō)因素(预算,引脚数等)。还有(yǒu)其他(tā)微控制器和平台,例如 

PIC微控制器

8051

ESP32

▪摩托罗拉微控制器 

单片机软件和硬件工具 

自从创建微控制器以来,已经有(yǒu)许多(duō)类型的软件和硬件开发工具。当然,某些工具可(kě)以在各种微控制器类型中使用(yòng),但是某些工具对于每个微控制器来说都是非常特定的。在开始微控制器编程之前,您可(kě)能(néng)需要熟悉微控制器编程工具以及最后但并非最不重要的开发过程。 

使用(yòng)嵌入式开发工具,我们可(kě)能(néng)需要以下工具: 

组装工 

它是一个软件工具,可(kě)以将汇编中的源代码转换為(wèi)机器代码,例如(GNU汇编器)。 

编译器 

它是一个软件程序,可(kě)以将高级编程语言的源代码转换為(wèi)汇编语言或机器代码。编译可(kě)以是: 

▪本机:这意味着您在同一台计算机上运行编译器和生成的代码

▪交叉:这意味着您在计算机上运行编译器,而生成的代码在另一台计算机(处理(lǐ)器體(tǐ)系结构)上运行。 

链接器和定位器 

链接器是一个程序,它收集和链接编译和汇编操作并生成单个exe 

定位器是一种程序工具,可(kě)用(yòng)于更改链接器输出的内存映射。 

仿真器 

它是一个模拟真实场景的程序,它产生实时系统的近似值。使用(yòng)模拟器:

▪如果实际硬件不可(kě)用(yòng)

▪在危险的测试环境和场景中  

调试器 

它是一种软件程序和硬件设备,可(kě)以与我的PC连接到嵌入式目标。使用(yòng)调试器:

▪设置断点

▪跟踪执行

▪转储内存

硬件调试器可(kě)以

▪在線(xiàn)调试器

▪调试板载代理(lǐ)软件 

闪存装载器 

它是一种程序和硬件设备,可(kě)用(yòng)于: 

▪程序ROM /闪存

▪观察变量

▪擦除ROM /闪存 

探查器 

Profiler是监视软件代码性能(néng)的工具 

集成开发环境 

它是一个软件程序,其中包含大多(duō)数工具。它可(kě)能(néng)包括 

▪文(wén)字编辑器

▪编译器

▪调试器

▪分(fēn)析器

▪模拟器

▪链接器 

单片机软件语言

我们可(kě)以将它们分(fēn)為(wèi)两种类型: 

高水平

C / C ++

Java

▪艾达 

使用(yòng)此类型将提供硬件级别的抽象 

低级 

机器码 

它是01,很(hěn)难被人写,但是很(hěn)容易让计算机理(lǐ)解 

集会 

它是一个助记码和伪指令,以提高可(kě)读性

例子:

一条指令由助记符(操作码)+操作数组成

操作码是机器处理(lǐ)器执行的操作

操作数是最终目标;操作码必须执行一个操作。 

汇编语言比机器代码更具可(kě)读性和可(kě)理(lǐ)解性,但是您需要在特定的处理(lǐ)器上使用(yòng)汇编语言并了解其體(tǐ)系结构。 

C / C ++编程语言 

高级语言具有(yǒu)以下功能(néng)

▪易于编写

▪灵活

▪独立于处理(lǐ)器

▪高生产率 

使用(yòng)AVR ATMEGA16的单片机编程示例 

ATmega 16具有(yǒu)以下功能(néng): 

16 Kb系统内自可(kě)编程闪存

512字节EEPROM

1 KB内部SRAM

▪编程锁的安全性 

外围功能(néng) 

▪带有(yǒu)独立振荡器的实时计数器

▪可(kě)编程串行USART

▪四个PWM通道

8通道10ADC

▪片内振荡器

▪开机休息和掉電(diàn)检测

▪内部RC振荡器和中断源

▪電(diàn)压(2.7v5.5v

请输入搜索关键字

确定