认识单片机

本文介绍了单片机的基本概念,包括其作为集成电路芯片的特性,以及与Intel 8031指令系统的关系。单片机分为51系列、PIC系列、AVR系列和ARM系列,各自有其特色和适用场景。文章还探讨了单片机的发展趋势,如CMOS化、低功耗化、低电压化和高性能化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单片机基础知识

一、单片机概述
1、单片机基本概念

        单片机,单片微型计算机(Single Chip Microcomputer,SCM)微控制器(MCU)

        是一种集成电路芯片,采用超大规模集成电路技术把中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、并行输入/输出(I/O)口、串行口、中断系统、定时/计数器(T/C)、总线控制器、片内时钟等电路,集成到一块硅片上构成的一个微型计算机系统,即一块芯片就是一台微型计算机。

        对所有兼容Intel 8031指令系统的单片机的统称。

Intel(英特尔):i80C31、i80C51、i87C51、i80C32、i80C52、i87C52等。

ATMEL(艾德梅尔):AT89C51、AT89C52、AT89C2051、AT89S51(RC)、AT89S52(RC)等。

STC(国产宏晶):STC89C51、STC89C52、STC89C516、STC90C516等。

Philips(飞利浦)、Winbond(华邦)、Dallas(达拉斯)、Siemens(西门子)等。

Intel(英特尔)公司早年研发的MCS-51单片机的内部结构和40引脚的80C51外形
Intel(英特尔)公司早年研发的MCS-51单片机的内部结构和40引脚的80C51外形


2、单片机的分类

                         1、字节:4、8、16、32位等。

                         2、指令类型:精简指令集、复杂指令集。

                         3、内核:51系列、PIC系列、AVR系列、ARM系列、Motorola系列、Zilog系列、NSC系列等。

(1)51系列
MCS-51单片机经典型号
型号片内ROM(B)片内RAM(B)定时器/计数器并行口串行口中断源ROM类型
80C31128+1282415--------
80C514K128+1282415不可擦除
80C528K256+1283416不可擦除
87C514K128+1282415光可擦除
87C528K256+1283416光可擦除
89C514K128+1282415电可擦除
89C528K256+1283416电可擦除

        目前51单片机中性能远超MCS-51单片机的国际知名品牌,例如,Atmel的AT89C51、AT89C52、AT89S52、AT89C2051等,Winbond的78C52、77E58等,宏晶的STC15W201S、STC15W401AS等,Cygnal的C8051F020、C8051F340等

在单片机的发展进程中,51单片机形成了一道独特的风景线,长盛不衰且不断更新,是一个既具有经典性又不乏生命力的优秀典范。

(2)PIC系列

        美国Microchip(微芯)公司的产品,也是当前市场份额增长最快的单片机之一。

        目前右8、16、32位系列,即基本级、中级、高级。基本级系列,如PIC16C5X,价格低廉,适用于对成本要求严格的家电产品;中级系列,PIC12C6XX,适用于各种档次的电子产品;高级系列,PIC17CXX,具有丰富的I/O控制功能,并可外接扩展EPROM和RAM,适用于中、高档的电子产品。

        最大特点:重视产品的性能和价格比,靠发展多种型号来满足不同层次的应用要求。

(3)AVR系列

        1997年Atmel公司挪威设计中心的Alf-Egil Bogen和Vegard Wollan,在公司的Flash新技术基础上研发的RISC(精简指令集)型高性能单片机。

        目前有3个系列产品。低档Tlny系列,主要有Tlny11/12/13/15/26/28等,中档 AT90S
系列,主要有AT90S1200/2313/8515/8535 等:高科 ATmega 系列,主要有ATmega8/16/32 64/128及 ATmega8515/8535 等。

        特点:在相同系统时钟下,AVR单片机的运行速度较其他单片机更快:芯片内部的 Flash、EEPROM、SRAM 容量较大:所有型号的 Flash、BEPROM 都可以反复烧写、全都支持在线编程 (ISP):具有多种频率的内部RC 振荡器、上电自动复位、看门狗、启动延时等功能,甚至零外国电路也可以工作,每个 I/O 口都可以推挽驱动的方式输出高、低电平,驱动能力强:内部资源丰富,一般都集成了 A/D 转换器、D/A 转换器、PWM(脉宽调制器)、SPI(串行外设接口)、USART(全双工通用同步/异步串行收发器)、PC总线接口;还有丰富的中断源数量等。

(4)ARM系列

        ARM 单片机是英国 Acorn 公司设计的低功耗、低成本 RISC 型微处理器,其全称为 Acorn RISC Machine。

        特点:耗电少且功能强、具有16/32位双指令集和拥有众多合作伙伴。

        主要有6个系列:ARM7、ARM9、ARM9E、ARM10B、SecureCore和最新的ARM11.市场流行的 ARM7 和 ARM9 系列,两者功能、性能上虽有差异,但基本结构大同小异,且都是 32 位嵌入式微处理器,都同时支持 32 位的ARM指令集和 16 位的Thumb指令集。


3、单片机发展趋势
 (1)发展趋势

  CMOS(Complementary Metal-Oxide-Semiconductor,互补金属-氧化物-半导体)化

        具有很多优点,动态功耗低、工作电压范围宽、抗干扰能力强、温度稳定性好、抗辐射能力强、驱动同类逻辑门的能力强等。虽然CMOS起步晚于TTL(Transistor-Transistor Logic,晶体管-晶体管逻辑),但已实现了对后者的全面赶超,CMOS化成为趋势。

低功耗化

        功耗电流已降到毫安、微安级,供电电压可在 3-6V 之间,不仅功耗低,还带来了产品的高可靠性、高抗干扰能力及产品的便携性。

低电压化

        几乎所有的单片机都有WAIT和STOP省电运行模式。

高性能化

        采用RISC结构和流水线技术,目前指令速度已超过 100MIPS(百万条指令每秒),比普通的单片机高出 10 倍以上;加强了位处理功能、中断和定时控制功能、实时响应能力大幅提高。加上芯片集成度的提高,已成功实现了多种外围电路的内装化。

大容量化

        以往片内ROM为 1-4KB ,RAM为 64-128 B,目前单片机片内ROM 已达 64KB ,RAM也已达 2 KB.

(2)发展阶段

SCM(单片微型计算机)阶段

        8位单片机为主流地位。

        Atmel的AT80C51、AT80C52、AT87C51、AT88C52、AT89C2051等。

        Philips的P80C51、P80C52、P87C51、P89C51、P89C52等。

        Winbond的W77L32、W77E58、W78E51B、W78C52、W78E54B等。

MCU(微控制器)阶段

        在SCM基础上,速度、功耗等基础性能提升,还集成了许多外围电路,即外围电路内装化,大幅提高了嵌入式系统的可靠性。

SoC(片上系统)阶段

        从MCU到SoC的发展,体现在寻求应用系统在芯片上的解决方案,即将单片微控制器延伸到单片机应用系统------在单片机内核基础上集成嵌入式系统所需的主要功能模块。

### PyCharm 打开文件显示全的解决方案 当遇到PyCharm打开文件显示全的情况时,可以尝试以下几种方法来解决问题。 #### 方法一:清理缓存并重启IDE 有时IDE内部缓存可能导致文件加载异常。通过清除缓存再启动程序能够有效改善此状况。具体操作路径为`File -> Invalidate Caches / Restart...`,之后按照提示完成相应动作即可[^1]。 #### 方法二:调整编辑器字体设置 如果是因为字体原因造成的内容显示问题,则可以通过修改编辑区内的文字样式来进行修复。进入`Settings/Preferences | Editor | Font`选项卡内更改合适的字号大小以及启用抗锯齿功能等参数配置[^2]。 #### 方法三:检查项目结构配置 对于某些特定场景下的源码视图缺失现象,可能是由于当前工作空间未能正确识别全部模块所引起。此时应该核查Project Structure的Content Roots设定项是否涵盖了整个工程根目录;必要时可手动添加遗漏部分,并保存变更生效[^3]。 ```python # 示例代码用于展示如何获取当前项目的根路径,在实际应用中可根据需求调用该函数辅助排查问题 import os def get_project_root(): current_file = os.path.abspath(__file__) project_dir = os.path.dirname(current_file) while not os.path.exists(os.path.join(project_dir, '.idea')): parent_dir = os.path.dirname(project_dir) if parent_dir == project_dir: break project_dir = parent_dir return project_dir print(f"Current Project Root Directory is {get_project_root()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值