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)计算机,例如ADC,RAM,ROM,DAC等外围设备。
单片机的历史
最初,英特尔公司是第一家制造微控制器的公司。第一个微控制器于1971年在美國(guó)生产。它是一个名為(wèi)i4004的4位微控制器。后来,英特尔当时使用(yòng)8位微控制器生产了更复杂的模型,此后,东芝开发了12位微控制器。
微控制器的应用(yòng)
微控制器在许多(duō)行业中都有(yǒu)许多(duō)应用(yòng),例如汽車(chē),医疗,工业自动化,航空航天,机器人技术。
例如,在汽車(chē)工业中,当今的现代汽車(chē)具有(yǒu)100多(duō)个微处理(lǐ)器,用(yòng)于诸如空调,ABS,EBD和ADAS之类的系统,或者诸如自适应居里控制器和車(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几乎都是关键组件。第一个ARM于1985年开发。
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)此类型将提供硬件级别的抽象
低级
机器码
它是0和1,很(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通道10位ADC
▪片内振荡器
▪开机休息和掉電(diàn)检测
▪内部RC振荡器和中断源
▪電(diàn)压(2.7v至5.5v)