嵌入式单片机全知道:发展历程、功能应用与学习窍门

时间:2026-07-07
  在当今科技飞速发展的时代,嵌入式单片机作为电子领域的重要组成部分,发挥着至关重要的作用。MCU,即 Microcontroller Unit,中文名为微控制器,俗称单片机。它是将 CPU 的频率与规格适当缩减,并把内存、计数器、USB、A/D 转换、UART、PLC、DMA 等周边接口,甚至 LCD 驱动电路都整合在单一芯片上,形成芯片级的计算机,能为不同的应用场合进行不同组合控制。无论是手机、PC 外围、遥控器,还是汽车电子、工业上的步进马达、机器手臂的控制等,都能见到 MCU 的身影。
  单片机的发展历程虽然不长,但却十分迅猛。它的产生与发展和微处理器(CPU)大体同步,自 1971 年美国英特尔公司首先推出 4 位微处理器以来,其发展大致可分为 5 个阶段。1971 - 1976 年是单片机发展的初级阶段,英特尔公司推出了集成度为 2000 只晶体管 / 片的 4 位微处理器英特尔 4004,之后又推出了 8 位微处理器英特尔 8008。1976 - 1980 年为低性能单片机阶段,以英特尔公司的 MCS - 48 系列为代表,虽功能有限,但能满足一般工业控制和智能化仪器、仪表等的需求。1980 - 1983 年是高性能单片机阶段,这一阶段的 8 位单片机普遍带有串行口、多级中断处理系统和多个 16 位定时器 / 计数器,片内 RAM、ROM 容量加大,寻址范围可达 64 KB,个别片内还带有 A/D 转换接口。1983 - 80 年代末是 16 位单片机阶段,英特尔公司推出了高性能的 16 位单片机 MCS-96 系列。到了 1990 年代,单片机在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。
  按其存储器类型可分为无片内 ROM 型和带片内 ROM 型两种。无片内 ROM 型的芯片必须外接 EPROM 才能应用,如典型的 8031;带片内 ROM 型的芯片又分为片内 EPROM 型(典型芯片为 87C51)、MASK 片内掩模 ROM 型(典型芯片为 8051)、片内 Flash 型(典型芯片为 89C51)等类型。按用途可分为通用型和专用型;根据数据总线的宽度和可处理的数据字节长度可分为 8、16、32 位 MCU。目前,国内 MCU 应用市场广泛的是消费电子领域,包括家用电器、电视、游戏机和音视频系统等;其次是工业领域,涵盖智能家居、自动化、医疗应用及新能源生成与分配等;还有汽车电子市场,如汽车动力总成和安全控制系统等。
  对于绝大多数 MCU,都具备一些基本功能。定时器(TImer)可分为固定时间间隔的 TImer 和可编程定时器(Programmable Timer)。固定时间间隔的 TImer 定时时间由系统设定,用户程序不可控制,常见于 4 位 MCU,可用于实现时钟、计时等功能;可编程定时器的定时时间可由用户程序控制,可通过选择时钟源、分频数和设定预制数等方式实现,常用于实现 PWM 输出,且一般与事件计数器(Event Counter)合在一起。IO 口是 MCU 与外部沟通的渠道,可分为纯输入或纯输出口、直接读写 IO 口和程序编程设定输入输出方向的 IO 口。使用 IO 口时,输入口必须有明确的电平信号,防止浮空;输出口要考虑外部连接情况,避免在 Standby 或静态状态下存在拉电流或灌电流。外部中断用于信号的实时触发、数据采样和状态检测,中断方式有上升沿、下降沿触发和电平触发等。可用于外部触发信号的检测、信号频率的测量、数据的解码、按键的检测和系统的唤醒等。通讯接口包括 SPI 接口、UART 和 I2C 接口。SPI 接口采用同步时钟控制数据传输,可工作在 Master 或 Slave 方式下;UART 是基本的异步传输接口,可通过程序灵活设定数据位长度、校验方式、停止位长度和波特率,常用于与 PC 机串口通讯;I2C 接口由 Philips 开发,采用 2 根信号实现数据传输,可挂接多个设备,传输速率由 SCLK 控制。看门狗定时器(Watchdog)是绝大多数 MCU 的基本配置,可在 MCU 因意外故障死机时提供自我恢复能力。
  有众多主流单片机制作商,包括欧美、日韩和中国地区。欧美地区有 Freescale + NXP(飞思卡尔 + 恩智浦)、Microchip + Atmel(微芯科技 + 爱特梅尔)、Cypress + Spansion(赛普拉斯 + 飞索半导体)、ADI(亚德诺半导体)、Infineon(英飞凌)、ST Microelectronics(意法半导体)、Qualcomm(高通)、Texas Instruments(德州仪器)、Maxim(美信)等;日韩地区有 Renesas(瑞萨)、Toshiba(东芝)、Fujitsu(富士通)、Samsung Electronics(三星电子)等;中国地区包括中国大陆和中国台湾地区,中国大陆有希格玛微电子、珠海欧比特、兆易创新等众多厂商,中国台湾有宏晶科技、盛群半导体、凌阳科技等。
  在学习单片机时,要了解其 ROM 空间、RAM 空间、IO 口数量、定时器数量和定时方式、外围功能模块、中断源、工作电压及功耗等。将所选 MCU 的功能与实际项目开发的要求进行对比,明确所需资源。对于项目中需要但 MCU 不提供的功能,可用间接方法实现。对于需要用到的资源,要认真阅读其手册,不需要的功能模块可忽略。编程时,初学者可编写验证程序理解功能,有经验者或项目进度紧迫时可按当前理解编写,留到调试时完善。指令系统无需特别花时间理解,编程时根据逻辑查看即可。
  工程师在单片机编程时要养成总结的好习惯,编写程序前要熟悉项目,列好框架,合理布局。对于 c 语言的模块化编程,要按顺序一个模块一个模块地编写,编写好模块后再编写头文件。出现警告要重视,分析来源并解决。
  在单片机开发中,还需要掌握一些技巧。要减少程序中的 bug,需考虑系统运行中的超范围管理参数,如物理参数、资源参数、应用参数和过程参数。提高 C 语言编程代码的效率,要熟悉所使用的 C 编译器,试验每条 C 语言编译后的汇编语句行数,选择编译效率的语句。解决单片机的抗干扰性问题,在提高硬件抗干扰能力的同时,要重视软件抗干扰,处理好复位状态,可通过标志寄存器或在 RAM 中埋标志判断复位原因。测试单片机系统的可靠性,要测试软件功能的完善性、上电和掉电情况、老化情况以及 ESD 和 EFT 等,还可模拟人为破坏情况进行测试。
上一篇:深度解析单片机中晶振的工作原理及特性
下一篇:元器件的封装,你都认识吗?简单介绍下!

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料