单片机基础
1.1 单片机的概念和特点
称为MCU微控制器或者SCM单片机
通用计算机的基本部件:
-
CPU
-
程序存储器ROM
-
数据储存器RAM
-
定时器
-
IO接口
-
外部通信接口
-
中断系统
单片机加PCB板得到单片机芯片
单片机的优点:电路可编程,节约经济和人工成本
1.2 单片机的发展和应用领域
-
INTEL的4位单片机
-
低性能8位单片机 1976~1978
-
高性能8位单片机1978~今天
-
其它高性能单片机1982~今天
16,32位单片机太少,8位处在一个又经济又实用的平衡
单片机的应用:
-
工业化的测量
-
智能仪器仪表
-
计算机外设和智能设备
-
家用电器和消费电子产品
1.3 数值在计算机中的表示
8位单片机,位数D7到D0
D7为符号位,D6到D0为数值位
原码 D7 D6~D0 正常数字
反码 D7 D6~D0 原码取反
补码D7 D6~D0 反码加一
8位的范围是-128~+127
补码有回转特性
2 认识51单片机
2.1 51单片机的型号与组成
2.1.1 51单片机的型号
51系列带有128KB储存器
8031芯片不带任何ROM 8051芯片带4KB一次性写入PROM 8751芯片带4KB紫外线擦除EPROM
52系列带有256KB储存器
8032芯片不带任何ROM 8052芯片带4KB一次性写入PROM 8752芯片带4KB紫外线擦除EPROM
厂家前缀-8位机标识-ROM储存器种类-芯片制作工艺-芯片系列-ROM储存容量
2.1.2 51单片机的组成
它由中央处理器,定时器等八部分组成
分别为CPU,ROM,RAM,时钟电路,并行接口,串行接口,定时器,中断系统
2.1.2.1 运算部件CPU
运算部件以8位算术逻辑单元为ALU为核心,包含累加器ACC,B寄存器,标志寄存器PSW等部件,能实现算数运算,逻辑运算,位运算,数据传输等处理
ALU还有一个位运算器,它可以对一位二进制数据进行置位,清零,求反,测试转移,以及位逻辑处理,这对于控制方面很有用
累加器ACC是 CPU中最常用的寄存器
辅助寄存器辅助ACC完成乘法和除法指令
PSW标志寄存器,用来表示指令执行结果的状态
位 | 指令 | 效果 |
---|---|---|
D7 | C | 进位标志位 |
D6 | AC | 辅助进位标志位 |
D5 | F0 | 用户标志位 |
D4 | RS1 | 寄存器组选择位 |
D3 | RS0 | 寄存器组选择位 |
D2 | OV | 溢出标志位 |
D1 | - | |
D0 | P | 奇偶标志位(判断二进制有几个1) |
2.1.2.2 控制部件
单片机的控制中心,包括定时和控制电路,指令寄存器,指令译码器,程序计数器PC,堆栈指针SP,数据指针DPTR等
它先以震荡信号为基准产生CPU的时序,从ROM中取出指令到指令寄存器,然后再指令译码器中对指令译码器进行译码,产生指令执行所需的各种控制信号,送到单片机内部的各功能部件,指挥各功能部件产生相应的操作,完成对应的功能
2.2 单片机的存储结构
和PC的区别:程序和数据储存在两个不同的位置。
2.2.1 程序存储器ROM
存放单片机工作的程序,没有ROM的时候,单片机无法工作
有一个16位程序计数器,用于指示下一时刻CPU要执行的程序在ROM空间中的地址位,从0000H到FFFFH
从物理上区分,有片内存储器和片外存储器
单片机设置了一根控制线EA,EA=1时访问片内存储器,EA=0时访问片外存储器
2.2.2 程序储存器的7个特殊地址
复位后从0000H开始执行
中断源 | 入口地址 |
---|---|
外部中断0 | 0003H |
定时/计数器0 | 000BH |
外部中断1 | 0013H |
定时/计数器1 | 001BH |
串行口 | 0023H |
定时/计数器2 | 0028H |
2.2.3 数据存储器RAM
储存临时生成的数据,需要快速的读出和写入数据。此类储存器掉电后,储存的数据会丢失,不能永久保存。
数据存储器包含很多种不同用途的存储器,特性不同访问方式也不同
从物理上区分,有片内存储器和片外存储器
-
工作寄存器组区:R0到R7就在这里:00H到1FH
-
位寻址区:
-
一般RAM区:用户可使用的RAM区:30H到7FH
-
堆栈区:栈结构的存储区域,使用时应当避开工作寄存器和位寻址区
-
特殊功能寄存器:仅对算术逻辑,并行IO,串行,定时/计数器,中断系统等模块的工作,不能移作他用。分布在80H到FFH
2.3 51单片机的引脚
2.3.1 输入输出IO口
-
P0口:39~32脚,接有片外储存器和IO口的时候,P0口分时复用为低8位地址总线和双向数据总线
-
P1口:1~8脚,双向IO口
-
P2口:21~28脚,接有片外储存器和IO口的时候,P0口分时复用为高8位地址总线
-
P3口:10~17脚,有第二功能
P3口 | 第二功能 |
---|---|
P3.0 | RXD 串行口输入端 |
P3.1 | TXD 串行口输出端 |
P3.2 | INT0 外部中断0请求输入,低电平有效 |
P3.3 | INT1 外部中断1输入端,低电平有效 |
P3.4 | T0 定时/计数器0外部计数脉冲输入端 |
P3.5 | T1 定时/计数器0外部计数脉冲输入端 |
P3.6 | WR 外部数据存储器写信号,低电平有效 |
P3.7 | RD 外部数据储存期读信号,低电平有效 |
2.3.2 控制线
-
ALE 30脚:地址锁存信号输出端
-
PSEN 29脚:片外程序存储器读选通信号输出端
-
RST 9脚:当单片机振荡器工作时,该引脚出现10ms以上高电平可复位
-
EA:EA为片外程序存储器选用端,确定是内储存器还是外储存器
2.3.3 主电源引脚
VCC 40脚:接+5V电源
GND 20脚:接地
2.3.4 冯诺依曼结构和哈佛结构
2.3.4.1 冯诺依曼结构
使用单一总线结构,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行。
当进行高速运算时,不但不能同时进行取指令和区操作数,还会咋总成数据传输通道的瓶颈现象,工作速度慢
2.3.4.2 哈佛结构
该结构采用双存储空间,程序和数据存储器分开,其它和冯诺依曼结构一致,可以更快的进行数据传输。
2.3.5 储存设备的引脚
片外数据储存器的读写都通过RD,WR来控制,而片外程序储存器的读通过PSEN信号控制,通过不同的程序指令来实现。
2.3.6 其它引脚
XTAL1及XTAL2是18,19号外接晶体引脚
再单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器
有源晶体振荡器可以给出更高的精确度
复位方式:时钟电路工作时,出现两个周期以上的高电平,就会系统内部复位。
可以上电自动复位或者手动按钮复位
2.4 单片机并行IO口工作原理
仅了解
2.5 单片机的工作周期和时序
时钟周期分为机器周期和指令周期
机器周期是基本操作周期,每一个机器周期是12个时间周期
分别是S1P1,S1P2,S2P1....S6P2
大多数指令周期都是两个机器周期,乘法和除法是两个机器周期
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!