单片机入门(更新ing)
单片机是一种集成电路芯片,采用超大规模集成电路技术把中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。
一、认识单片机
1、单片机是什么?
单片机是微型计算机,英文简称MCU,全称Microcontrller Unit,又称单片微型计算机(Single Chip Microcomputer)。
2、定义
单片机是一种集成电路芯片,采用超大规模集成电路技术把中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。
3、单片机的特点
实用性强,体积小,功耗低,价格低,应用广泛,软件更贴近硬件,无自开发能力,需要借用开发系统进行软硬件仿真调试。
4、单片机的基本组成
5、单片机常见英文缩写
随机存储器----RAM 只读存储器----ROM
可编程只读存储器----PROM,现在也称OTP
可改写的只读存储器----EPROM
可电擦写存储器----EEPROM
闪存存储器----FLASH MEMORY
中央处理器----CPU 输入输出----I/O
模数转换----ADC 数模转换----DAC
脉冲宽度调制----PWM 总线----BUS
程序计数器----PC 堆栈指针----SP
6、单片机的应用
仪器仪表、工业控制、家用电器、网络通信、汽车电子、电子玩具、医疗设备、航空航天等。
7、单片机的分类
①按位数分类:4位 8位 16位 32位等等
②按处理器内核分类:51单片机 PIC单片机 AVR单片机 MSP430单片机 ARM单片机等
③按不同厂家分类:ST Microchip Atmel Ti Freescale GigaDevice等
④按功能分类:通用型 专用型(比如电机控制专用、音乐播放专用等)
8、单片机的选型
①选级别:民用、工业还是汽车级
②引脚数目和功能:满足设计使用要求
③选性价比高的单片机:商业角度
④选主流单片机:使用的人多好交流
⑤熟悉的单片机:开发时间短
⑥最新的单片机:防淘汰
⑦货源方便的单片机:先到手才是最好的
⑧开发工具好的单片机:工具好才是真的好
⑨以上需综合考虑
9、单片机的最小系统
单片机的最小系统是指用最少的元件组成的单片机可以工作的系统。
二、硬件基础知识
1、电阻
电阻(Resistor)是电子电路中最基础的被动元件之一,主要用于限制电流、分压、分流、调节信号电平等。以下是电阻的详细作用及分类:
(1)电阻的主要作用
①限流:限制电流大小,防止元器件因电流过大而损坏(如LED限流电阻)。
②分压 :与其它电阻组成分压电路,提供不同的电压(如电位器调节电压)。
③分流:并联在电路中,分担部分电流(如电流检测电阻)。
④信号调节:用于阻抗匹配、信号衰减或增益控制(如音频电路中的音量调节)。
⑤上拉/下拉:在数字电路中,确保信号线的稳定状态(如I²C总线的上拉电阻)。
⑥发热(特殊用途):利用电阻的发热特性,用于电热设备(如电热丝、加热电阻)。
(2)电阻的分类
①按材料分类
类型 |
特点 |
典型应用 |
碳膜电阻 |
成本低,精度一般(±5%),温度稳定性一般 |
通用电路、消费电子 |
金属膜电阻 |
精度高(±1%~±0.1%),温度稳定性好,噪声低 |
精密仪器、音频电路 |
金属氧化膜电阻 |
耐高温、功率大,适用于大电流场合 |
电源电路、功率电子 |
线绕电阻 |
高功率、低温度系数,但体积大,有电感效应 |
大功率负载、工业设备 |
厚膜/薄膜电阻 |
高精度(±0.01%),用于精密测量 |
测试设备、医疗电子 |
贴片电阻(SMD) |
体积小,适用于高密度PCB |
手机、电脑、现代电子设备 |
②按阻值是否可变分类
固定电阻:阻值不可调整(如碳膜电阻、金属膜电阻)。
可变电阻(电位器):阻值可手动调节(如音量旋钮)。
敏感电阻(特殊电阻):阻值随环境变化(如热敏电阻、光敏电阻)。
③按用途分类
类型 |
特点 |
典型应用 |
通用电阻 |
标准阻值,用于一般电路 |
电源、信号处理 |
精密电阻 |
耐高温、大功率(1W~100W+) |
低温度漂移 测量仪器、ADC/DAC电路 |
功率电阻 |
耐高温、大功率(1W~100W+) |
电源、电机驱动 |
高压电阻 |
耐高压(>1kV),用于高压电路 |
电源、医疗设备 |
保险电阻 |
过流时熔断,保护电路 |
电源保护 |
④敏感电阻(特殊电阻)
类型 |
特点 |
典型应用 |
热敏电阻 |
阻值随温度变化(NTC/PTC) |
温度传感器、过流保护 |
光敏电阻 |
阻值随光照强度变化 |
光控开关、自动亮度调节 |
压敏电阻 |
阻值随电压变化,用于过压保护 |
防雷击、电源保护 |
湿敏电阻 |
阻值随湿度变化 |
湿度传感器 |
(3)关键参数
①阻值(R):单位欧姆(Ω),决定电流限制能力。
②功率(W):决定电阻能承受的最大功率(如1/4W、1W、5W)。
③精度(%):如±5%、±1%、±0.1%。
④温度系数(ppm/℃):衡量阻值随温度变化的稳定性。
(4)选型建议
①普通电路:碳膜电阻或金属膜电阻(低成本)。
②精密电路:金属膜电阻或薄膜电阻(高精度)。
③大功率应用:金属氧化膜电阻或线绕电阻。
④高频电路:低寄生电感的贴片电阻(如SMD)。
⑤传感器应用:热敏、光敏等敏感电阻。
(5)欧姆定律
①定义:欧姆定律 是电学中的基本定律之一,描述了 电压(U)、电流(I) 和 电阻(R) 三者之间的关系。其核心内容为:
公式表达: U=I×R
其中:U 表示电压(单位:伏特,V), I 表示电流(单位:安培,A),R 表示电阻(单位:欧姆,Ω)。
②欧姆定律的变形式
求电流:I=U/R
求电阻:R=U/I
③适用范围: 适用于 纯电阻电路(如金属导体),但对半导体、气体导电等非线性元件可能不适用。
④物理意义: 电阻一定时,电流与电压成正比; 电压一定时,电流与电阻成反比。
⑤功率计算: 结合功率公式 P=V×I,可推导出:或
。
⑥注意事项
单位必须统一(伏特、安培、欧姆)。
实际电路中需考虑温度对电阻的影响(如金属电阻随温度升高而增大)。
2、电容
电容是电子电路中常用的被动元件,其核心作用是储存电荷和电能,并在电路中实现多种功能。以下是电容的详细作用、分类及应用说明:
(1)电容的主要作用
①储能与滤波
充放电特性:在电源电路中平滑电压波动(如整流后滤除交流纹波)。
为瞬时大电流需求提供能量(如相机闪光灯)。
②耦合与隔直
耦合:传递交流信号,阻断直流分量(如音频放大器的级间连接)。
隔直:防止直流偏置影响前后级电路。
③旁路(去耦)
为高频噪声提供低阻抗通路,稳定局部电压(如IC电源引脚旁的0.1μF电容)。
④调谐与选频
与电感组成LC谐振电路,用于射频选频或振荡器(如收音机调台)。
⑤时间常数控制
与电阻构成RC电路,决定延时或波形生成(如定时器、积分电路)。
⑥功率因数校正
在交流系统中补偿无功功率(如电机启动电容)。
(2)电容的分类
①按介质材料分类
类型 |
特点 |
典型应用 |
陶瓷电容 |
小体积、高频特性好,但容量小(pF~μF) |
高频滤波、去耦、射频电路 |
电解电容 |
容量大(μF~F),有极性,寿命有限 |
电源滤波、低频耦合 |
-铝电解 |
成本低,耐压高,但ESR较大 |
电源稳压 |
-钽电解 |
体积小、稳定性高,但耐压较低 |
精密设备、军工电子 |
薄膜电容 |
高频性能优,无极性,容量稳定(pF~μF) |
音频电路、脉冲电路 |
超级电容 |
超大容量(法拉级),充放电快,但电压低 |
储能备份、电动车能量回收 |
云母电容 |
高精度、耐高压,成本高 |
高频振荡、高压电路 |
安规电容 |
失效时不会短路,符合安全标准(X/Y电容) |
电源EMI滤波 |
②按极性分类
有极性电容:如电解电容,需注意正负极接反会导致损坏。
无极性电容:如陶瓷、薄膜电容,适用于交流信号。
③按调节方式分类
固定电容:容量不可变(绝大多数电容)。
可变电容:容量可手动调节(如收音机调谐)。
微调电容:小范围调整(用于电路校准)。
(3)关键参数
①容量(C):单位法拉(F),决定储能大小。
②耐压值:超过可能击穿。
③等效串联电阻(ESR):影响高频性能。
④温度系数:稳定性指标(如NP0陶瓷电容低温漂)。
(4)选型建议
①高频电路:优先选NP0陶瓷电容。
②大容量需求:铝电解或超级电容。
③精密场合:钽电容或薄膜电容。
④高压环境:云母或陶瓷高压电容。
3、电感
电感(Inductor)是电子电路中的重要被动元件,主要基于电磁感应原理工作,用于储能、滤波、谐振、阻抗匹配等。以下是电感的详细作用及分类:
(1)电感的主要作用
①储能(磁场能量)
电流通过电感时,电能转换为磁能存储,断电时释放(如开关电源中的储能电感)。
②滤波(抑制高频噪声)
低频扼流:阻止高频信号通过,允许直流或低频信号通过(如电源滤波)。
高频滤波:与电容组成LC滤波器,滤除特定频率噪声(如射频电路)。
③谐振(选频)
与电容组成LC谐振电路,用于选频或振荡(如收音机调谐、无线充电)。
④阻抗匹配
在高频电路中调整阻抗,提高信号传输效率(如天线匹配网络)。
⑤电流平滑
在DC-DC转换器中平滑电流,减少纹波(如Buck/Boost电路中的功率电感)。
⑥电磁干扰(EMI)抑制
抑制高频噪声,防止电磁干扰(如共模电感用于USB/HDMI信号滤波)。
(2)电感的分类
①按结构分类
类型 |
特点 |
典型应用 |
空心电感 |
无磁芯,电感量小,高频特性好 |
射频电路、高频振荡器 |
磁芯电感 |
带铁氧体/铁粉磁芯,电感量大,适用于功率电路 |
电源转换器、滤波电感 |
铁氧体磁珠 |
高频损耗大,专用于抑制EMI |
信号线滤波、PCB噪声抑制 |
多层片式电感(MLCC电感) |
体积小,适用于高频SMD电路 |
手机、射频模块 |
②按用途分类
类型 |
特点 |
典型应用 |
功率电感 |
大电流、低损耗,用于DC-DC转换 |
开关电源、CPU供电电路 |
高频电感 |
低寄生电容,适用于射频(RF)电路 |
天线匹配、无线通信 |
共模电感 |
抑制共模噪声,用于差分信号滤波 |
USB、以太网、HDMI接口 |
可调电感 |
电感量可手动调节 |
射频调谐、老式收音机 |
③按封装形式分类
类型 |
特点 |
典型应用 |
直插式(THT) |
引脚插入PCB通孔,适用于大功率电路 |
电源模块、工业设备 |
贴片式(SMD) |
体积小,适用于高密度PCB |
手机、笔记本电脑、现代电子设备 |
屏蔽电感 |
带磁屏蔽,减少电磁干扰(EMI) |
精密仪器、高频电路 |
④特殊电感
类型 |
特点 |
典型应用 |
色环电感 |
类似电阻色环标注电感量 |
老式电子设备 |
平面电感 |
集成在PCB上,适用于高频电路 |
射频IC、微波电路 |
超导电感 |
接近零电阻,用于高能物理和量子计算 |
科研、MRI设备 |
(3)关键参数
①电感量(L):单位亨利(H),决定储能能力(常用μH、mH)。
②额定电流:电感能承受的最大电流(超过可能饱和)。
③直流电阻(DCR):影响效率,越小越好。
④自谐振频率(SRF):超过该频率,电感可能变成电容特性。
⑤Q值(品质因数):衡量电感的效率,越高损耗越小。
(4)选型建议
①电源电路:选择大电流、低DCR的功率电感(如铁氧体磁芯)。
②高频/RF电路:选择高Q值、低寄生电容的空心或高频电感。
③EMI抑制:使用共模电感或磁珠。
④SMD应用:多层片式电感(MLCC)或屏蔽电感。
4、二极管
二极管(Diode)是一种基础的半导体器件,具有单向导电性,即只允许电流从阳极(正极)流向阴极(负极),而反向时几乎不导通。以下是关于二极管的核心要点:
(1)基本结构
PN结:由P型半导体(空穴多)和N型半导体(电子多)结合形成,交界处形成耗尽层,阻碍电流扩散。
电极:阳极(A,P型端)和阴极(K,N型端)。
(2)工作原理
正向偏置(阳极电压 > 阴极电压): 外部电压削弱耗尽层,电流通过(导通状态)。 硅二极管需超过开启电压(约0.7V),锗二极管约0.3V。
反向偏置(阴极电压 > 阳极电压): 耗尽层变宽,仅微弱的反向漏电流(截止状态)。 电压超过击穿电压时,可能发生雪崩或齐纳击穿(特殊二极管如稳压管利用此特性)。
(3)主要特性
伏安特性曲线: 正向导通后电流急剧上升,反向仅微小漏电流。
开关速度: 普通二极管(如1N4007)适用于低频,高频应用需快恢复二极管或肖特基二极管。
温度敏感性: 导通电压随温度升高而降低。
(4)常见类型
类型 | 特点 |
整流二极管 | 用于交流转直流(如1N4007),耐高压/大电流。 |
稳压二极管 | 反向击穿时稳定电压(如5.1V稳压管),用于电压保护。 |
肖特基二极管 | 低导通压降(0.2V)、超快开关,用于高频电路(如开关电源)。 |
发光二极管 | 正向导通时发光(LED),需限流电阻。 |
TVS二极管 | 瞬态电压抑制,防静电/浪涌。 |
(5) 典型应用
整流:将交流电转为脉动直流(如电源适配器)。
保护:防止反接(如电池电路中串联二极管)、吸收浪涌(TVS管)。
信号处理:检波(提取高频信号)、钳位(限制电压幅值)。
发光:LED用于指示灯、显示屏。
(6)关键参数
最大正向电流(IF):允许通过的最大持续电流。
反向击穿电压(VR):反向截止的极限电压。
反向漏电流(IR):反向偏置时的微小电流。 开关时间:从导通到截止的恢复时间。
(7)注意事项
极性不可接反(除双向TVS管外)。
高频电路需选择快恢复二极管。
大电流应用需考虑散热(如加散热片)。
5、三极管
三极管(Transistor)是一种半导体放大与开关器件,通过小电流(或电压)控制大电流,是现代电子电路的核心元件之一。以下是关于三极管的系统总结:
(1)基本结构与类型
①类型:
BJT(双极型晶体管):通过两种载流子(电子和空穴)导电,分NPN和PNP型。
FET(场效应管):单极型(仅电子或空穴),如MOSFET(绝缘栅型)、JFET(结型)。
②BJT三极:
发射极(E):高掺杂,发射载流子。
基极(B):极薄且低掺杂,控制载流子。
集电极(C):收集载流子,面积较大。
(2)BJT工作原理(以NPN为例)
放大状态(发射结正偏,集电结反偏):
发射极电子注入基极,少量与基极空穴复合(形成基极电流 ),大部分被集电极电场吸引(形成集电极电流
)。 电流关系:
,放大系数
(典型值20~200)。
截止状态(发射结反偏): ,
。
饱和状态(发射结和集电结均正偏):不受
控制,CE间电压极低(约0.2V)。
(3)特性曲线
输入特性: 与
关系(类似二极管正向特性)。
输出特性: 随
变化,分三个区:
截止区: ,
。
放大区: ,与
几乎无关。
饱和区: 很低,
受外电路限制。
(4)主要参数
参数 | 说明 |
电流放大系数(β) | 集电极电流与基极电流之比( |
最大集电极电流(IC_max) | 允许通过C极的最大电流 |
击穿电压(VCEO) | CE间最大耐压(基极开路时) |
功耗(PCM) | 最大允许耗散功率,需考虑散热 |
(5)典型应用
①放大电路:
共射放大:电压/电流放大(如音频放大)。
共集放大(射极跟随器):高输入阻抗、低输出阻抗。
②开关电路: 饱和状态(导通)与截止状态(关断),用于数字逻辑、继电器驱动。
③电流源:利用恒流特性为电路提供稳定电流。
(6)FET与BJT对比
特性 | BJT | FET(如MOSFET) |
控制方式 | 电流控制( |
电压控制( |
输入阻抗 | 低(需驱动电流) | 极高(几乎无输入电流) |
开关速度 | 较慢(存在载流子复合) | 更快(多数载流子导电) |
功耗 | 较高(基极电流损耗) | 低(静态时几乎无功耗) |
(7)选型与注意事项
BJT选型: 高频选高频管(如2SC3356),大电流选功率管(如TIP31)。 NPN(如2N2222)和PNP(如2N2907)需配对使用。
FET选型: 开关电源选低导通电阻( � � � ( � � ) R DS(on) )的MOSFET(如IRF540N)。
(8)注意事项:
防止热击穿(加散热片或降额使用)。 避免静电损坏(尤其是MOSFET)。
(9)关键区别:放大 vs 开关
放大模式:工作于放大区, 适中,
随
线性变化。
开关模式:在截止区与饱和区之间切换,快速响应需减小存储时间。
三、单片机
1、模拟信号与数字信号
模拟信号和数字信号是电子系统中两种基本的信号形式,它们在表示、传输和处理信息时有根本区别。以下是它们的核心特性和对比:
(1)模拟信号(Analog Signal)
①定义:连续变化的物理量,在时间和幅度上均无限细分。 示例:声音波形、温度传感器输出、传统电视信号。
②特点:
连续性:任意时刻都有确定的值(如电压从0V平滑升至5V)。
抗干扰性差:噪声会直接叠加在信号上(如通话中的杂音)。
无限分辨率:理论上可表示无限小的变化(但受实际器件精度限制)。
③典型应用:
音频/视频传输(如模拟麦克风、老式收音机)。
传感器信号(如热电偶、压力传感器)。
(2)数字信号(Digital Signal)
①定义:离散的、量化的信号,仅取有限个数值(通常为0和1)。 示例:计算机数据、数字音频(MP3)、USB通信。
②特点:
离散性:按固定间隔(采样周期)取值,幅度被量化(如ADC转换)。
抗干扰性强:通过阈值判断高低电平(如TTL中>2.4V为“1”,<0.4V为“0”)。
有限分辨率:取决于量化位数(如8位ADC将电压分为256级)。
③典型应用:
计算机系统(CPU、内存)。
数字通信(Wi-Fi、5G)。
数字控制(PLC、微控制器)。
(3)核心对比
特性 | 模拟信号 | 数字信号 |
表示方式 | 连续波形(正弦波、电压等) | 离散数值(二进制、脉冲) |
抗噪声能力 | 弱(噪声直接叠加) | 强(可通过编码纠错) |
存储与处理 | 需模拟电路(放大器、滤波器) | 依赖数字逻辑(CPU、FPGA) |
带宽效率 | 高(直接利用连续频谱) | 低(需采样和编码) |
精度损失 | 传输中逐渐衰减 | 仅量化时损失一次 |
(4)转换与混合系统
①ADC(模数转换): 将模拟信号转为数字信号,步骤:
采样:按奈奎斯特定理(采样频率≥2倍信号最高频率)离散化。
量化:将幅度分为有限等级(如12位ADC=4096级)。
编码:转为二进制(如PCM编码)。
芯片示例:ADS1115(16位ADC)。
②DAC(数模转换): 将数字信号还原为模拟信号,通过电阻网络或PWM实现。
芯片示例:DAC8563(16位DAC)。
③混合信号系统: 结合两者优势(如智能手机): 麦克风(模拟)→ ADC → 数字处理(降噪)→ DAC → 扬声器(模拟)。
(5)为什么数字化?
可靠性:数字信号易存储、复制(如CD vs 磁带)。
灵活性:可通过软件算法处理(如数字滤波、压缩)。
集成度:数字电路(如CMOS)更易微型化。
(6)关键问题
采样失真:若采样率不足,会出现混叠(Aliasing),需加抗混叠滤波器。
量化误差:位数越低,信号细节丢失越多(如8位音频有明显阶梯噪声)。
2、进制
(1)二进制
进制是计算机和数字电子系统的基础,是一种仅使用 0 和 1 两个数字来表示所有信息的数制系统。以下是关于二进制的核心知识点:
①基本概念
基数为2:每一位只能是 0 或 1(对比十进制的0~9)。
位(Bit):二进制的最小单位,1 bit 可以表示 0 或 1。
字节(Byte):8 bits = 1 Byte(如 01011010
)。
字(Word):通常指 CPU 处理的数据单位(如 32-bit、64-bit)。
②二进制与十进制的转换
二进制 → 十进制(按权展开),每一位的权重是 2ⁿ(n 从右到左,从 0 开始):
十进制 → 二进制(除2取余法),将十进制数不断除以 2,记录余数(从下往上读):
那么:
(2)十六进制
十六进制(简称 Hex)是一种基数为 16 的数字系统,广泛用于计算机科学、编程和底层硬件开发。它比二进制更紧凑,便于人类阅读和书写。
①基本概念
基数:16(使用 0-9
和 A-F
表示 10-15)。
1 位十六进制 = 4 位二进制(直接映射)。
常见用途:
内存地址表示(如 0xFFFF
);颜色编码(如 #FF0000
表示红色);机器码和汇编语言。
②十六进制 ↔ 十进制 ↔ 二进制转换
十六进制 → 十进制
每位乘后相加。
十进制 → 十六进制
除 16 取余法(余数 ≥10 时用 A-F
)。
十六进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
十进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
十六进制 ↔ 二进制
直接按 4 位一组转换。
示例:2D
(十六进制)→ 0010 1101
(二进制)1101 0110
(二进制)→ D6
(十六进制)
3、逻辑运算
逻辑运算(Logical Operations)是计算机科学、数学和数字电子中的基本操作,用于处理布尔值(True
/False
或 1
/0
)。它们广泛应用于编程、电路设计、数据库查询和算法逻辑中。
(1)逻辑与(AND,∧
)
①规则:仅当所有输入为 True
时,输出才为 True(有0为0)
。
②真值表:
A | B | A AND B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
③应用:
条件判断(如 if (A && B)
)
权限检查(用户同时满足多个条件)
(2)逻辑或(OR,∨
)
①规则:只要有一个输入为 True
,输出即为 True(有1为1)
。
②真值表:
A | B | A OR B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
③应用:
多条件满足其一即可(如 if (A || B)
)
错误处理(多个条件触发同一操作)
(3)逻辑非(NOT,¬
或 !
)
①规则:取反输入值。
②真值表:
A | NOT A |
---|---|
0 | 1 |
1 | 0 |
③应用:
条件取反(如 if (!isError)
)
状态切换(开关逻辑)
(4)异或(XOR,⊕
)
①规则:输入相同时输出 False
,不同时输出 True
。
②真值表:
A | B | A XOR B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
③应用:
加密算法(如位运算)
奇偶校验(判断数据是否变化)
(5)复合逻辑运算
通过组合基本运算实现更复杂的逻辑:
①与非(NAND):NOT (A AND B)
②或非(NOR):NOT (A OR B)
③同或(XNOR):NOT (A XOR B)
(即输入相同输出 True
)
总结:
运算 | 符号 | 说明 |
---|---|---|
AND | ∧ , && |
全真为真 |
OR | ∨ , || |
有真即真 |
NOT | ¬ , ! |
取反 |
XOR | ⊕ |
不同为真 |
NAND | ↑ |
AND + NOT |
NOR | ↓ |
OR + NOT |
4、原码、补码与反码
在计算机中,原码、反码和补码 是表示有符号整数的三种方式,主要用于处理正数和负数的存储与运算。它们的核心目的是解决计算机如何表示和计算负数的问题。
(1)原码(Sign-Magnitude)
①定义:
最高位表示符号(0
为正,1
为负),其余位表示数值的绝对值。
例如,8位二进制中:
-
+5
→00000101
-
-5
→10000101
②特点:
直观,符合人类习惯。
存在问题:
-
+0
和-0
不唯一:-
+0
=00000000
-
-0
=10000000
(导致计算混乱)
-
-
加减运算复杂:需要判断符号位,硬件实现麻烦。
(2)反码(Ones' Complement)
①定义:
正数:与原码相同。
负数:符号位不变,其余位按位取反(0
变1
,1
变0
)。
例如,8位二进制中:
-
+5
→00000101
-
-5
→11111010
③特点:
解决了加减运算的部分问题(减法可转换为加法)。
仍存在 +0
和 -0
:
-
+0
=00000000
-
-0
=11111111
-
跨零计算可能出错(如
-1 + 1
需额外处理进位)。
(3)补码(Two's Complement)
①定义(现代计算机标准):
正数:与原码相同。
负数:反码 + 1(即符号位不变,数值位取反后加 1
)。
例如,8位二进制中:
-
+5
→00000101
-
-5
的计算步骤:-
原码:
10000101
-
反码:
11111010
-
补码:
11111011
(最终表示)
-
③特点
解决 +0
和 -0
问题:-0
的补码仍是 00000000
(与 +0
相同)。
统一加减法:减法可直接用加法实现(如 A - B = A + (-B)
)。
表示范围更广:
-
8位补码范围:
-128
(10000000
)到+127
(01111111
)。 -
原码和反码的范围是
-127
到+127
。
(4) 对比总结
表示法 | 示例(8位,-5 ) |
优点 | 缺点 |
---|---|---|---|
原码 | 10000101 |
直观 | 存在 ±0 ,运算复杂 |
反码 | 11111010 |
减法转加法 | 仍存在 ±0 |
补码 | 11111011 |
无 ±0 ,运算统一 |
负数表示需额外计算 |
(5)有符号数与无符号数
在计算机中,数值的存储和解释方式主要分为有符号数(Signed)和无符号数(Unsigned),它们的核心区别在于最高位是否表示符号,以及能表示的数值范围不同。
①有符号数(Signed)
最高位(MSB, Most Significant Bit)表示符号:
-
0
→ 正数 -
1
→ 负数
存储方式:通常使用补码(Two's Complement)表示负数(现代计算机标准)。
-
示例(8位):
-
+5
→00000101
-
-5
→11111011
(补码)
-
②无符号数(Unsigned)
所有位均表示数值,没有符号位,只能表示非负数(≥0)。
-
示例(8位):
-
5
→00000101
-
255
→11111111
(最大无符号8位数)
-
③表示范围对比
位数 | 有符号数范围 | 无符号数范围 |
---|---|---|
8位 | -128 到 +127 |
0 到 255 |
16位 | -32768 到 +32767 |
0 到 65535 |
32位 | -2³¹ 到 2³¹-1 |
0 到 2³²-1 |
④关键区别:
-
有符号数的正数范围减半(因为最高位用于符号)。
-
无符号数的最小值为
0
,无法表示负数。 -
存储与读取的区别,同一二进制,解释不同。
⑤总结
特性 | 有符号数(Signed) | 无符号数(Unsigned) |
---|---|---|
符号位 | 最高位表示正负 | 无符号位 |
范围 | 正负均衡(如 -128~127 ) |
全正数(如 0~255 ) |
溢出行为 | 回绕到相反极值 | 回绕到 0 或最大值 |
用途 | 需要负数的场景 | 仅需非负值的场景 |
核心原则:
-
如果需要负数,用有符号数;
-
如果确定数值非负,用无符号数(可扩大范围)。
-
避免混用,防止隐式转换导致逻辑错误!
5、BCD码与ASCII码
(1)BCD码
BCD码是一种用二进制编码表示十进制数字的方法。
①特点:
-
每个十进制数字(0-9)用4位二进制表示
-
例如:十进制数"23"的BCD码是
0010 0011
-
常见的BCD码类型:
-
8421码(最常用)
-
5421码
-
2421码
-
余3码
-
②优点:
-
便于十进制数字的显示和输入
-
转换计算简单
③缺点:
-
存储效率较低(比纯二进制表示多占用空间)
(2)ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)
ASCII码是一种字符编码标准,用于表示文本字符。
①特点:
-
使用7位二进制数表示128个字符(标准ASCII)
-
扩展ASCII使用8位,可表示256个字符
-
包括:
-
数字0-9(编码48-57)
-
大写字母A-Z(65-90)
-
小写字母a-z(97-122)
-
控制字符(0-31和127)
-
标点符号和特殊字符
-
②ASCII数字表示:
-
数字'0'的ASCII码是48(十六进制0x30)
-
数字'1'是49,依此类推到'9'是57
(3)BCD码与ASCII码的比较
特性 | BCD码 | ASCII码 |
---|---|---|
用途 | 主要用于数值计算和显示 | 用于文本表示和通信 |
编码范围 | 仅编码十进制数字(0-9) | 编码字母、数字、符号和控制字符 |
存储效率 | 较低(4位/数字) | 较高(7-8位/字符) |
转换复杂度 | 与十进制转换简单 | 需要查表或计算 |
典型应用 | 电子计算器、数字显示 | 计算机文本处理、通信协议 |
①转换示例:
-
数字"5":
-
BCD码:
0101
-
ASCII码:
00110101
(十六进制0x35)
-
-
数字串"23":
-
BCD码:
0010 0011
-
ASCII码:
00110010 00110011
(十六进制0x32 0x33)
-
②ASCII码表(0-127)
十进制 | 十六进制 | 字符 | 描述 |
---|---|---|---|
0 | 0x00 | ^@ | 空字符 (Null) |
1 | 0x01 | ^A | 标题开始 (Start of Header) |
2 | 0x02 | ^B | 正文开始 (Start of Text) |
3 | 0x03 | ^C | 正文结束 (End of Text) |
4 | 0x04 | ^D | 传输结束 (End of Transmission) |
5 | 0x05 | ^E | 查询 (Enquiry) |
6 | 0x06 | ^F | 确认 (Acknowledge) |
7 | 0x07 | ^G | 响铃 (Bell) |
8 | 0x08 | ^H | 退格 (Backspace) |
9 | 0x09 | ^I | 水平制表符 (Horizontal Tab) |
10 | 0x0A | ^J | 换行 (Line Feed) |
11 | 0x0B | ^K | 垂直制表符 (Vertical Tab) |
12 | 0x0C | ^L | 换页 (Form Feed) |
13 | 0x0D | ^M | 回车 (Carriage Return) |
14 | 0x0E | ^N | 移出 (Shift Out) |
15 | 0x0F | ^O | 移入 (Shift In) |
16 | 0x10 | ^P | 数据链路转义 (Data Link Escape) |
17 | 0x11 | ^Q | 设备控制1 (Device Control 1) |
18 | 0x12 | ^R | 设备控制2 (Device Control 2) |
19 | 0x13 | ^S | 设备控制3 (Device Control 3) |
20 | 0x14 | ^T | 设备控制4 (Device Control 4) |
21 | 0x15 | ^U | 否定应答 (Negative Acknowledge) |
22 | 0x16 | ^V | 同步空闲 (Synchronous Idle) |
23 | 0x17 | ^W | 传输块结束 (End of Trans. Block) |
24 | 0x18 | ^X | 取消 (Cancel) |
25 | 0x19 | ^Y | 媒体结束 (End of Medium) |
26 | 0x1A | ^Z | 替换 (Substitute) |
27 | 0x1B | ^[ | 转义 (Escape) |
28 | 0x1C | ^\ | 文件分隔符 (File Separator) |
29 | 0x1D | ^] | 组分隔符 (Group Separator) |
30 | 0x1E | ^^ | 记录分隔符 (Record Separator) |
31 | 0x1F | ^_ | 单元分隔符 (Unit Separator) |
32 | 0x20 | (空格) | 空格 (Space) |
33 | 0x21 | ! | 感叹号 |
34 | 0x22 | " | 双引号 |
35 | 0x23 | # | 井号 |
36 | 0x24 | $ | 美元符号 |
37 | 0x25 | % | 百分号 |
38 | 0x26 | & | 与符号 |
39 | 0x27 | ' | 单引号 |
40 | 0x28 | ( | 左括号 |
41 | 0x29 | ) | 右括号 |
42 | 0x2A | * | 星号 |
43 | 0x2B | + | 加号 |
44 | 0x2C | , | 逗号 |
45 | 0x2D | - | 减号/连字符 |
46 | 0x2E | . | 句号 |
47 | 0x2F | / | 斜杠 |
48 | 0x30 | 0 | 数字0 |
49 | 0x31 | 1 | 数字1 |
50 | 0x32 | 2 | 数字2 |
51 | 0x33 | 3 | 数字3 |
52 | 0x34 | 4 | 数字4 |
53 | 0x35 | 5 | 数字5 |
54 | 0x36 | 6 | 数字6 |
55 | 0x37 | 7 | 数字7 |
56 | 0x38 | 8 | 数字8 |
57 | 0x39 | 9 | 数字9 |
58 | 0x3A | : | 冒号 |
59 | 0x3B | ; | 分号 |
60 | 0x3C | < | 小于号 |
61 | 0x3D | = | 等于号 |
62 | 0x3E | > | 大于号 |
63 | 0x3F | ? | 问号 |
64 | 0x40 | @ | at符号 |
65 | 0x41 | A | 大写字母A |
66 | 0x42 | B | 大写字母B |
... | ... | ... | ... |
90 | 0x5A | Z | 大写字母Z |
91 | 0x5B | [ | 左方括号 |
92 | 0x5C | \ | 反斜杠 |
93 | 0x5D | ] | 右方括号 |
94 | 0x5E | ^ | 插入符 |
95 | 0x5F | _ | 下划线 |
96 | 0x60 | ` | 反引号 |
97 | 0x61 | a | 小写字母a |
98 | 0x62 | b | 小写字母b |
... | ... | ... | ... |
122 | 0x7A | z | 小写字母z |
123 | 0x7B | { | 左花括号 |
124 | 0x7C | | | 竖线 |
125 | 0x7D | } | 右花括号 |
126 | 0x7E | ~ | 波浪号 |
127 | 0x7F | ^? | 删除 (Delete) |
关键点总结:
0-31 和 127 是 控制字符(不可见,用于通信和设备控制)。
32 是 空格(Space)。
48-57 对应数字 0-9。
65-90 对应 大写字母 A-Z。
97-122 对应 小写字母 a-z。
扩展ASCII(128-255) 包含特殊符号、制表符等,但不同编码(如ISO-8859-1、Windows-1252)可能不同。
6、数据长度与存放
最小单位:位(Bit),0或1
字节(Byte):1 Byte = 8 Bit,00H-FFH
ARM单片机特别定义:
半字(HalfWord):1 HalfWord = 2 Byte,0000H-FFFFH
字(Word):1 Word = 4 Byte,00000000H-FFFFFFFFH
双字(DoubleWord):1 DoubleWord = 8 Byte
千字节(KB):1 KB = 1024 Byte,000H-3FFH
兆字节(MB):1 MB = 1024 KB,00000000H-3FFFFFFFH
1 GB = 1024MB,1 TB = 1024 GB
数据在计算机中的存放涉及多种方式和层次,主要包括以下几个方面:
(1)按存储介质分类
①主存储器(内存)
-
RAM (Random Access Memory)
-
DRAM (动态RAM)
-
SRAM (静态RAM)
-
-
ROM (Read Only Memory)
-
PROM
-
EPROM
-
EEPROM
-
Flash Memory
-
②辅助存储器(外存)
-
硬盘(HDD/SSD)
-
光盘(CD/DVD/Blu-ray)
-
磁带
-
U盘/存储卡
(2)按数据组织方式分类
①位(bit)存储
-
计算机最小存储单位(0或1)
-
8位=1字节(Byte)
② 字节序(Endianness)
-
大端序(Big-endian): 高位字节存储在低地址
-
小端序(Little-endian): 低位字节存储在低地址
-
例如0x12345678的存储方式:
-
大端序:12 34 56 78
-
小端序:78 56 34 12
-
-
③对齐方式(Alignment)
-
数据按特定边界(如4字节、8字节)对齐存储
-
提高访问效率,避免跨边界访问
(3)常见数据类型的存储
①基本数据类型
数据类型 | 典型大小 | 存储方式 |
---|---|---|
char | 1字节 | 直接存储ASCII码 |
short | 2字节 | 补码表示 |
int | 4字节 | 补码表示 |
long | 4/8字节 | 补码表示 |
float | 4字节 | IEEE 754标准 |
double | 8字节 | IEEE 754标准 |
②复合数据类型
-
数组: 连续存储相同类型元素
-
结构体: 按成员声明顺序存储,可能有填充字节
-
联合体: 所有成员共享同一内存空间
(4)文件存储方式
①文本文件
-
以ASCII/Unicode编码存储字符
-
每行通常以换行符(\n或\r\n)结束
②二进制文件
-
直接存储内存中的数据表示
-
无格式转换,效率更高
(5) 数据库存储
①行存储
-
将整行数据连续存储
-
适合OLTP(联机事务处理)
②列存储
-
将每列数据连续存储
-
适合OLAP(联机分析处理)
(6)数据压缩存储
-
无损压缩(ZIP, RAR, GZIP等)
-
有损压缩(JPEG, MP3等)
-
字典压缩
-
游程编码
(7)网络传输中的数据存放
-
大端序网络字节序(Network Byte Order)
-
协议头部+数据体的封装方式
-
序列化/反序列化(JSON, XML, Protobuf等)
更多推荐
所有评论(0)