微控制器原理及应用
评分:0.0
课程名称: 微控制器原理及应用 课程类别: 专业核心课 / 专业基础课 学时/学分:40学时 / 2.5学分(理论28+实验12) 课程概述: 本课程是电子信息类、电气类、自动化及计算机等专业的核心技术课程。微控制器(单片机)作为智能控制系统的核心,已广泛渗透到工业控制、智能仪器仪表、物联网终端、消费电子及汽车电子等各个领域。本课程以典型的MCS-51内核为切入点,系统讲授微控制器的硬件结构、工作原理、接口技术及应用系统设计方法。课程遵循“理论够用、实践为主、重在应用”的原则,旨在帮助学生建立计算机系统的
开始学习
知识图谱
|
练习评测
|
能力图谱
|
错题本
|
课件下载
课程简介
教师简介
课程目录
讨论区
课程评价

课程名称: 微控制器原理及应用

课程类别: 专业核心课 / 专业基础课

学时/学分:40学时 / 2.5学分(理论28+实验12

 

课程概述:

本课程是电子信息类、电气类、自动化及计算机等专业的核心技术课程。微控制器(单片机)作为智能控制系统的核心,已广泛渗透到工业控制、智能仪器仪表、物联网终端、消费电子及汽车电子等各个领域。本课程以典型的MCS-51内核为切入点,系统讲授微控制器的硬件结构、工作原理、接口技术及应用系统设计方法。课程遵循“理论够用、实践为主、重在应用”的原则,旨在帮助学生建立计算机系统的整体概念,掌握嵌入式系统开发的基本流程  。

1章 概述

【本章学习目标】

了解微控制器(单片机)的基本概念、发展历程及发展趋势。

 

掌握单片机的基本结构组成及其特点。

 

熟悉单片机的典型应用领域,建立“嵌入式系统”的整体概念。

 

理解单片机在智能电子产品中的核心控制作用。

 

1.1 单片机基本结构

单片机,又称微控制器,是指在一片集成电路芯片上集成了中央处理器、存储器、输入/输出接口电路以及定时/计数器等部件,从而形成一个完整的微型计算机系统。

 

3章 指令系统

【本章学习目标】

1. 理解MCS-51指令系统的格式与分类。

2. 掌握七种寻址方式的概念及适用场景。

3. 熟练掌握五大类指令(数据传送、算术运算、逻辑运算、控制转移、位操作)的功能与应用。

4. 能够阅读和理解汇编语言程序。

5. 初步掌握常用指令的编程技巧。

3.1 指令格式

3.1.1 指令的表示方法

MCS-51系列单片机指令系统共有111条指令。每条指令通常由两部分组成:

• 操作码: 指示计算机执行什么操作(如加法、传送等)。

• 操作数: 指示参与操作的数据或数据所在的地址。

指令格式:[标号:] 操作码 [目的操作数] [,源操作数] [;注释]

例如:

assembly

复制

下载

START: MOV A, #40H   ; 将立即数40H送入累加器A

其中:

START是标号

MOV是操作码

A是目的操作数

#40H是源操作数

• 分号后的内容是注释

3.1.2 指令的分类

按指令字节数分类:

• 单字节指令: 49条,操作码和操作数在一个字节内

• 双字节指令: 45条,一个字节操作码,一个字节操作数

• 三字节指令: 17条,一个字节操作码,两个字节操作数

按指令执行时间分类:

• 单周期指令: 64

• 双周期指令: 45

• 四周期指令: 2条(乘法和除法)

3.2 寻址方式

寻址方式是指寻找操作数地址的方式。MCS-51共有七种寻址方式。

3.2.1 立即寻址

操作数直接写在指令中,前面加#号表示立即数。

assembly

复制

下载

MOV A, #30H      ; 将立即数30H送入AA=30H

MOV DPTR, #1234H ; 16位立即数1234H送入DPTR

特点: 速度快,但只能用于源操作数,不能用于目的操作数。

3.2.2 直接寻址

指令中直接给出操作数的地址。

assembly

复制

下载

MOV A, 30H       ; 将内部RAM 30H单元的内容送入A

MOV 40H, A       ; A的内容送入内部RAM 40H单元

适用对象: 内部RAM的低128字节和特殊功能寄存器。

3.2.3 寄存器寻址

操作数存放在寄存器中,指令中给出寄存器名。

assembly

复制

下载

MOV A, R0        ; R0的内容送入A

ADD A, R1        ; A + R1 A

适用寄存器: ABDPTRR0~R7

3.2.4 寄存器间接寻址

操作数的地址存放在寄存器中,指令中通过该寄存器间接找到操作数,用@表示。

assembly

复制

下载

MOV A, @R0       ; R0指向的RAM单元内容送入A

MOVX A, @DPTR    ; DPTR指向的外部RAM单元内容送入A

适用寄存器: R0R1(用于内部RAM)、DPTR(用于外部RAM)。

3.2.5 变址寻址

DPTRPC作为基址寄存器,累加器A作为变址寄存器,两者之和为操作数地址。

assembly

复制

下载

MOVC A, @A+DPTR  ; 从程序存储器读取数据,地址=DPTR+A

MOVC A, @A+PC    ; 从程序存储器读取数据,地址=PC+A

应用场景: 查表操作。

3.2.6 相对寻址

主要用于转移指令,以当前PC值为基址,加上指令中给出的相对偏移量形成新的PC值。

assembly

复制

下载

SJMP LOOP        ; 相对跳转到LOOP标号处

3.2.7 位寻址

对内部RAMSFR中的可寻址位进行操作。

assembly

复制

下载

SETB 20H.0       ; 将位地址20H.01

CLR P1.0         ; P1.0清零

这是MCS-51的特色功能,非常适合逻辑控制。

3.3 数据传送类指令

数据传送指令是最常用的一类指令,共28条。

3.3.1 内部RAM传送指令(MOV

基本格式:MOV <目的操作数>, <源操作数>

指令格式

操作说明

字节数

周期数

MOV A, Rn

寄存器内容送A

1

1

MOV A, direct

直接地址内容送A

2

1

MOV A, @Ri

间接RAM内容送A

1

1

MOV A, #data

立即数送A

2

1

MOV Rn, A

A送寄存器

1

1

MOV Rn, direct

直接地址内容送寄存器

2

2

MOV Rn, #data

立即数送寄存器

2

1

MOV direct, A

A送直接地址

2

1

MOV direct, Rn

寄存器送直接地址

2

2

MOV direct, direct

直接地址送直接地址

3

2

MOV direct, @Ri

间接RAM送直接地址

2

2

MOV direct, #data

立即数送直接地址

3

2

MOV @Ri, A

A送间接RAM

1

1

MOV @Ri, direct

直接地址内容送间接RAM

2

2

MOV @Ri, #data

立即数送间接RAM

2

1

MOV DPTR, #data16

16位立即数送DPTR

3

2

3.3.2 外部RAM传送指令(MOVX

assembly

复制

下载

MOVX A, @DPTR    ; 从外部RAM读数据到A

MOVX @DPTR, A    ; A的内容写入外部RAM

MOVX A, @R0      ; 从外部RAM读数据到A8位地址)

MOVX @R1, A      ; A的内容写入外部RAM8位地址)

3.3.3 程序存储器传送指令(MOVC

assembly

复制

下载

MOVC A, @A+DPTR  ; 查表指令,常用于读取常数表

MOVC A, @A+PC    ; 查表指令,PC基址方式

3.3.4 堆栈操作指令

assembly

复制

下载

PUSH direct      ; 将直接地址内容压入堆栈(SP+1,再存入)

POP direct       ; 从堆栈弹出到直接地址(先读出,SP-1

3.3.5 数据交换指令

assembly

复制

下载

XCH A, Rn        ; A与寄存器交换

XCH A, direct    ; A与直接地址交换

XCH A, @Ri       ; A与间接RAM交换

XCHD A, @Ri      ; A的低4位与间接RAM的低4位交换

SWAP A           ; A的高4位与低4位交换

3.4 算术运算类指令

3.4.1 加法指令

assembly

复制

下载

ADD A, Rn        ; A + Rn A

ADD A, direct    ; A + (direct) A

ADD A, @Ri       ; A + @Ri A

ADD A, #data     ; A + data A

 

ADDC A, Rn       ; A + Rn + CY A(带进位加法)

ADDC A, direct

ADDC A, @Ri

ADDC A, #data

影响标志位: CYOVAC

3.4.2 减法指令

assembly

复制

下载

SUBB A, Rn       ; A - Rn - CY A

SUBB A, direct   ; A - (direct) - CY A

SUBB A, @Ri      ; A - @Ri - CY A

SUBB A, #data    ; A - data - CY A

注意: MCS-51没有不带借位的减法指令,如果需要不带借位减法,需先清CY

3.4.3 1/1指令

assembly

复制

下载

INC A            ; A + 1 A

INC Rn           ; Rn + 1 Rn

INC direct       ; (direct) + 1 direct

INC @Ri          ; @Ri + 1 @Ri

INC DPTR         ; DPTR + 1 DPTR

 

DEC A            ; A - 1 A

DEC Rn           ; Rn - 1 Rn

DEC direct       ; (direct) - 1 direct

DEC @Ri          ; @Ri - 1 @Ri

3.4.4 乘除法指令

assembly

复制

下载

MUL AB           ; A × B BAA存低8位,B存高8位)

DIV AB           ; A ÷ B A(商),余数→B

影响标志位: CY总是清零,OV在除法中表示除数为0,在乘法中表示积大于255

3.5 逻辑运算类指令

3.5.1 逻辑与指令

assembly

复制

下载

ANL A, Rn        ; A Rn A

ANL A, direct    ; A (direct) A

ANL A, @Ri       ; A @Ri A

ANL A, #data     ; A data A

ANL direct, A    ; (direct) A direct

ANL direct, #data ; (direct) data direct

3.5.2 逻辑或指令

assembly

复制

下载

ORL A, Rn        ; A Rn A

ORL A, direct    ; A (direct) A

ORL A, @Ri       ; A @Ri A

ORL A, #data     ; A data A

ORL direct, A    ; (direct) A direct

ORL direct, #data ; (direct) data direct

3.5.3 逻辑异或指令

assembly

复制

下载

XRL A, Rn        ; A Rn A

XRL A, direct    ; A (direct) A

XRL A, @Ri       ; A @Ri A

XRL A, #data     ; A data A

XRL direct, A    ; (direct) A direct

XRL direct, #data ; (direct) data direct

3.5.4 循环移位指令

assembly

复制

下载

RL A             ; A循环左移

RR A             ; A循环右移

RLC A            ; A带进位循环左移

RRC A            ; A带进位循环右移

应用技巧: 循环移位常用于乘2、除2运算以及串行数据的收发。

3.6 控制转移类指令

3.6.1 无条件转移指令

assembly

复制

下载

LJMP addr16      ; 长转移,转移范围64KB

AJMP addr11      ; 绝对转移,2KB范围内

SJMP rel         ; 相对转移,-128~+127字节

JMP @A+DPTR      ; 间接转移,常用于多分支跳转

3.6.2 条件转移指令

assembly

复制

下载

JZ rel           ; A=0则转移

JNZ rel          ; A0则转移

JC rel           ; CY=1则转移

JNC rel          ; CY=0则转移

JB bit, rel      ; bit=1则转移

JNB bit, rel     ; bit=0则转移

JBC bit, rel     ; bit=1则转移,并清零该位

3.6.3 比较转移指令

assembly

复制

下载

CJNE A, direct, rel   ; A(direct)则转移

CJNE A, #data, rel    ; Adata则转移

CJNE Rn, #data, rel   ; Rndata则转移

CJNE @Ri, #data, rel  ; @Ridata则转移

3.6.4 循环转移指令

assembly

复制

下载

DJNZ Rn, rel     ; Rn-1Rn,若Rn0则转移

DJNZ direct, rel ; (direct)-1direct,若结果≠0则转移

3.6.5 子程序调用与返回

assembly

复制

下载

LCALL addr16     ; 长调用子程序

ACALL addr11     ; 绝对调用子程序

RET              ; 子程序返回

RETI             ; 中断返回

3.7 位操作类指令

这是MCS-51的特色指令集,专门用于布尔处理。

3.7.1 位传送指令

assembly

复制

下载

MOV C, bit       ; 可寻址位→CY

MOV bit, C       ; CY→可寻址位

3.7.2 位修正指令

assembly

复制

下载

CLR C            ; 0 CY

CLR bit          ; 0 可寻址位

SETB C           ; 1 CY

SETB bit         ; 1 可寻址位

CPL C            ; CY取反

CPL bit          ; 可寻址位取反

3.7.3 位逻辑运算指令

assembly

复制

下载

 


1.1.1 单片机的基本组成

如图1-1所示,一个典型的单片机内部主要包含以下五个组成部分:

 

中央处理器: 单片机的“大脑”,负责执行程序指令、进行算术逻辑运算以及控制数据的传输。

 

存储器:

 

程序存储器: 用于存放用户编写的程序代码和常数。通常为只读存储器,断电后信息不丢失。

 

数据存储器: 用于存放程序运行过程中的中间数据、变量等。通常为随机存取存储器,读写速度快,但断电后数据丢失。

 

输入/输出端口: 单片机与外部世界进行信息交换的通道。通过I/O口,可以接收外部开关、传感器等输入信号,也可以驱动LED、继电器等输出设备。

 

定时器/计数器: 用于产生精确的时间延迟、对外部事件进行计数,是实现时序控制的核心部件。

 

总线系统: 包括数据总线、地址总线和控制总线,用于连接CPU、存储器和I/O口,实现数据的高速传输。

 

知识拓展: 随着技术的发展,现代单片机内部还集成了越来越多的功能模块,如模数转换器、数模转换器、脉宽调制模块、看门狗电路、串行通信接口等,真正实现了“单片即系统”。

 

1.1.2 单片机与通用微处理器的区别

很多初学者容易混淆单片机和通用微处理器。表1-1清晰地列出了二者的主要区别:

 

对比项 单片机 通用微处理器

集成度 芯片上集成了CPU、存储器、I/O口等全部部件 仅为单一的CPU芯片

存储器 内置ROMRAM 需要外接ROMRAM

I/O接口 内置可编程I/O 需要外接专用接口芯片

应用领域 嵌入式控制、智能仪表、家电等 个人电脑、服务器、工作站等

功耗 通常较低 相对较高

成本

体积

1.2 单片机的发展

单片机的诞生和发展与微电子技术、计算机技术的发展紧密相连。自1971Intel公司推出世界上第一款微处理器4004以来,单片机经历了从4位到32位、从简单到复杂的发展历程。

 

1.2.1 4位单片机

时间阶段: 20世纪70年代初至70年代中期。

代表产品: Intel 4004TMS 1000等。

主要特点:

 

这是单片机的雏形阶段,主要面向计算器、电子玩具等简单应用。

 

处理能力有限,只能执行简单的算术运算。

 

采用PMOS工艺,速度慢、功耗大、集成度低。

 

历史意义: 虽然现在看来性能很弱,但4位单片机的出现开创了将计算机系统集成到单芯片上的先河。

 

1.2.2 8位单片机

时间阶段: 20世纪70年代中期至80年代末。

代表产品: Intel 80488051MCS-51系列)、Motorola 6805Zilog Z8等。

主要特点:

 

性能飞跃: 处理能力大幅提升,指令集更加丰富。

 

工艺进步: 采用NMOSCMOS工艺,速度提高,功耗降低。

 

体系成熟: 形成了程序存储器和数据存储器分离的哈佛体系结构。

 

影响深远: Intel1980年推出的MCS-51系列单片机,以其强大的功能、完善的体系结构和灵活的应用方式,成为8位单片机的经典代表,其架构影响至今。

 

1.2.3 16位单片机

时间阶段: 20世纪80年代末至90年代中期。

代表产品: Intel 8096/8098MCS-96系列、Motorola 68HC12等。

主要特点:

 

运算能力增强: 字长从8位扩展到16位,运算精度和速度进一步提高。

 

集成更多外设: 片内集成了A/D转换器、PWM输出等更适合工业控制的功能模块。

 

应用升级: 开始应用于汽车电子、工业自动化、电机控制等复杂控制场合。

 

1.2.4 32位单片机

时间阶段: 20世纪90年代中期至今。

代表产品: ARM Cortex-M系列、Infineon TriCoreNXP LPC系列、STMicroelectronics STM32系列等。

主要特点:

 

高性能: 处理能力媲美低端微处理器,主频可达数百MHz

 

低功耗: 采用先进的电源管理技术,广泛应用于便携式设备和物联网终端。

 

丰富生态: 拥有成熟的开发工具、丰富的软件库和活跃的社区支持。

 

百花齐放: ARM Cortex-M内核为核心的32位单片机成为市场主流,占据中高端应用市场。

 

1.2.5 单片机的发展方向

展望未来,单片机将朝着以下几个方向发展:

 

更高性能: 不断提升CPU主频和处理能力,引入多核架构,以满足图像处理、人工智能等复杂应用的需求。

 

更低功耗: 面向物联网和可穿戴设备,超低功耗设计是永恒的主题,包括更精细的电源管理、更低电压工作等。

 

更强集成度: 将更多的模拟外设、无线通信模块等集成到单芯片上,实现真正的“片上系统”。

 

更安全可靠: 随着汽车电子、工业控制对安全性要求的提高,内置硬件加密引擎、功能安全机制的单片机将越来越普及。

 

更易开发: 提供更友好的开发环境、更丰富的软件库,降低开发门槛,缩短产品上市周期。

 

1.3 单片机的特点

单片机之所以能够广泛应用于各行各业,得益于其独特的优点:

 

集成度高,体积小: 将计算机系统的主要部件集成在一块芯片上,大大缩小了系统的体积,便于嵌入到各种设备内部。

 

可靠性高,抗干扰能力强: 芯片设计时就考虑了工业环境的应用,内部集成了看门狗等抗干扰措施,且芯片引脚少,外部连线少,故障率低。

 

控制功能强: 指令系统丰富,尤其擅长位操作和逻辑控制,可以方便地实现各种复杂的控制算法。

 

功耗低: 采用CMOS工艺的单片机,在空闲模式和掉电模式下功耗极低,非常适合电池供电的便携式产品。

 

性价比高: 单片机的批量生产成本很低,几元钱到几十元钱就能买到功能相当强大的芯片,具有极高的性能价格比。

 

易于产品化: 开发周期短,系统扩展灵活,可以快速形成产品,抢占市场先机。

 

1.4 单片机的应用

单片机已经渗透到国民经济和日常生活的各个角落,以下是几个典型的应用领域:

 

1. 工业控制

应用场景: 工业机器人、数控机床、PLC(可编程逻辑控制器)、电机驱动器、过程控制仪表等。

 

作用: 实时采集传感器数据(温度、压力、流量),执行复杂的控制算法,驱动执行机构(电机、阀门),实现自动化生产。

 

2. 智能仪器仪表

应用场景: 智能电表、水表、燃气表、数字万用表、示波器、医疗监护仪等。

 

作用: 实现数据的自动采集、处理、存储和显示,具备通信功能,实现远程抄表和监控。

 

3. 消费电子与智能家居

应用场景: 洗衣机、空调、冰箱、微波炉、智能音箱、智能门锁、扫地机器人、电视遥控器等。

 

作用: 作为家电的“大脑”,接收用户指令,控制各项功能,实现智能化、网络化。

 

4. 汽车电子

应用场景: 发动机控制单元、ABS防抱死系统、安全气囊、车载娱乐系统、胎压监测、电动车窗等。

 

作用: 一辆现代汽车上可能装有几十甚至上百个单片机,分别负责不同的控制任务,共同保障车辆的安全、舒适和高效运行。

 

5. 物联网与通信

应用场景: 无线传感器网络节点、智能穿戴设备、RFID读写器、物联网网关等。

 

作用: 作为物联网终端的数据采集和控制核心,连接传感器与网络,实现万物互联。

 

6. 国防与航空航天

应用场景: 导弹制导系统、无人机飞行控制器、卫星姿态控制系统、雷达信号处理等。

 

作用: 在极端环境下可靠运行,完成关键的控制和数据处理任务。

 

【本章小结】

单片机是将CPU、存储器、I/O接口等集成在一块芯片上的微型计算机系统。

 

单片机的发展经历了4位、8位、16位到32位的演进,未来将向高性能、低功耗、高集成度方向发展。

 

单片机具有集成度高、可靠性好、控制功能强、功耗低、性价比高等特点。

 

单片机广泛应用于工业控制、智能仪器、消费电子、汽车电子、物联网等众多领域。

 

【思考题解析】

什么是单片机?它与我们日常使用的电脑(PC)中的CPU有何本质区别?

 

参考答案: 单片机是一个完整的微型计算机系统,它在一个芯片上集成了CPU、存储器和I/O接口。而PC中的CPU只是一个中央处理器,它需要外接主板上的内存条、硬盘、接口卡等才能构成一台完整的计算机。单片机更强调“嵌入”和“专用”,而PCCPU强调“通用”和“高性能”。

 

查阅资料,列举三个你身边可能用到单片机的设备,并简要说明其可能实现的功能。

 

参考答案:

 

智能手机: 触摸屏控制、电源管理、传感器数据处理(加速度计、陀螺仪)。

 

空调遥控器: 扫描按键、红外编码发射、温度显示。

 

智能手环: 计步算法、心率监测、蓝牙通信、屏幕显示。

 

8位单片机至今仍在广泛使用,你认为原因是什么?

 

参考答案: 对于大量简单的控制任务(如电风扇、玩具、简单的开关控制),8位单片机性能足够、功耗低、价格极其便宜、开发工具成熟、开发人员熟悉,具有极高的性价比。并不是所有场合都需要高性能的32位单片机

第2章 硬件基础

【本章学习目标】

  1. 熟悉STC89C51/MCS-51单片机的内部总体结构及核心部件功能。

  2. 掌握40个引脚的功能分类,特别是第二功能的使用。

  3. 重点掌握四个并行I/O口(P0、P1、P2、P3)的结构特点与工作原理。

  4. 理解程序存储器和数据存储器的地址分配与访问方法。

  5. 掌握时钟电路、复位电路的设计方法及低功耗模式的配置。


2.1 体系结构

2.1.1 内部结构框图

STC89C51系列单片机的内部结构如图2-1所示,它采用了经典的哈佛体系结构,即程序存储器空间和数据存储器空间是分离的。

核心组成部分包括:

  1. CPU: 由运算器和控制器组成,是单片机的核心。

  2. 数据存储器: 内部256字节的RAM,用于存放临时变量。

  3. 程序存储器: 内部4KB/8KB/16KB的Flash ROM,用于存放用户程序。

  4. 并行I/O口: 4个8位并行口(P0~P3),用于数据的输入和输出。

  5. 串行口: 全双工UART,用于串行通信。

  6. 定时器/计数器: 2个16位定时器/计数器(T0和T1)。

  7. 中断系统: 5个中断源(外部中断0/1、定时器0/1、串行口),2级优先级。

  8. 特殊功能寄存器: 用于控制片内各功能部件的运行。

2.1.2 中央处理器

CPU是单片机的“大脑”,主要包括:

  • 运算器: 以算术逻辑单元为核心,可执行加、减、乘、除、与、或、异或等操作。特别值得一提的是,MCS-51系列具有强大的位处理功能,专门有位处理器,可以方便地对某一位进行操作。

  • 控制器: 负责从程序存储器中读取指令,进行指令译码,并产生一系列控制信号,控制各部件协调工作。主要包括程序计数器、指令寄存器、指令译码器、定时与控制电路等。

知识加油站: 程序计数器是CPU中一个至关重要的寄存器,它始终存放着下一条要执行指令的地址。CPU每取出一个指令字节,PC自动加1;当遇到转移指令、子程序调用或中断时,PC会被强制修改为目标地址。


2.2 引脚功能

STC89C51单片机采用标准的40引脚DIP封装。图2-2展示了引脚排列图,我们将引脚分为三类:电源引脚、时钟引脚、I/O引脚。

2.2.1 电源引脚

  • Vcc(40脚): 主电源,接+5V。

  • Vss(20脚): 接地。

2.2.2 时钟引脚

  • XTAL1(19脚): 反向振荡放大器的输入端,即内部时钟电路的输入端。

  • XTAL2(18脚): 反向振荡放大器的输出端,即内部时钟电路的输出端。

2.2.3 控制引脚

  • RST/Vpd(9脚): 复位信号输入端,高电平有效。当此引脚保持两个机器周期以上的高电平时,单片机复位。此外,该引脚还有第二功能,可作为备用电源输入端。

  • ALE/PROG(30脚): 地址锁存允许输出端。访问外部存储器时,ALE输出脉冲用于锁存低8位地址。在不访问外部存储器时,ALE端以固定的频率(1/6振荡频率)输出脉冲,可作为外部时钟或定时脉冲使用。

  • PSEN(29脚): 外部程序存储器读选通信号,低电平有效。读取外部ROM时,PSEN有效。

  • EA/Vpp(31脚): 外部访问允许控制端。当EA保持高电平时,CPU访问内部程序存储器;当EA保持低电平时,CPU只访问外部程序存储器。

2.2.4 输入/输出引脚

  • P0.0 ~ P0.7(39~32脚): P0口,8位双向I/O口。

  • P1.0 ~ P1.7(1~8脚): P1口,8位准双向I/O口。

  • P2.0 ~ P2.7(21~28脚): P2口,8位准双向I/O口。

  • P3.0 ~ P3.7(10~17脚): P3口,8位准双向I/O口,且每个引脚都有第二功能。

实用技巧: 初学时可以背诵一句口诀:“P3口个个身怀绝技”。这是因为P3口的每一位都有特殊的第二功能,例如P3.0是RXD(串行接收)、P3.1是TXD(串行发送)、P3.2和P3.3是外部中断输入等。


2.3 输入/输出端口结构

并行I/O口是单片机与外界交换信息的通道。理解这四个口的结构,是进行硬件设计的基础。

2.3.1 P0口

P0口是一个双向的I/O口,也是四个口中最特殊的一个。

1. 结构特点

P0口的每一位都由一个输出锁存器、两个三态缓冲器、一对场效应管和一个多路开关组成。

2. 工作原理

  • 作为通用I/O口使用时:

    • 此时多路开关打向锁存器的反相输出端,输出级的上拉场效应管截止。

    • 当P0口作为输出时,由于漏极开路,内部无上拉电阻,因此必须外接上拉电阻才能输出高电平。

    • 当P0口作为输入时,分为“读锁存器”和“读引脚”两种方式。读引脚前,必须先向锁存器写1,以关断输出级的场效应管,否则可能读错数据。

  • 作为地址/数据总线使用时:

    • 当访问外部存储器时,多路开关打向地址/数据线,此时P0口分时输出低8位地址和输入/输出数据。此时内部的上拉场效应管工作,无需外接上拉电阻。

3. 应用要点

  • P0口做普通输出:必须外接上拉电阻(典型值4.7kΩ~10kΩ)。

  • P0口做普通输入:必须先写1。

2.3.2 P1口

P1口是一个准双向I/O口,通常只用作通用I/O口。

1. 结构特点

P1口的内部集成了上拉电阻,因此不需要外接上拉电阻即可输出高电平。

2. 工作原理

  • 作为输出: 可直接驱动负载,高电平时由上拉电阻提供电流。

  • 作为输入: 同样需要先向锁存器写1,以关闭输出驱动场效应管,然后读取引脚状态。

3. 应用要点

  • P1口最简单,初学者通常从控制P1口的LED灯开始学习。

2.3.3 P2口

P2口也是一个准双向I/O口,但它具有双重功能。

1. 结构特点

P2口同样内部有上拉电阻。

2. 工作原理

  • 作为通用I/O口: 与P1口类似。

  • 作为高8位地址总线: 当访问外部存储器时,P2口输出高8位地址(A8~A15)。

2.3.4 P3口

P3口是准双向I/O口,但每个引脚都有第二功能。

1. 第二功能定义

引脚第二功能说明
P3.0RXD串行数据接收
P3.1TXD串行数据发送
P3.2INT0外部中断0输入
P3.3INT1外部中断1输入
P3.4T0定时器0外部输入
P3.5T1定时器1外部输入
P3.6WR外部数据存储器写选通
P3.7RD外部数据存储器读选通

2. 工作原理

  • 当作为通用I/O口使用时,第二功能输出端保持高电平,P3口与P1口类似。

  • 当启用第二功能时,内部电路会自动配置引脚的输入/输出方向。

口诀记忆:
P0口,三态口,地址数据分时走,做I/O要上拉。
P1口,专用口,带上拉,最简单。
P2口,地址口,高位地址它来送。
P3口,双功能,个个都是特种兵。


2.4 存储器体系结构

MCS-51系列单片机采用哈佛结构,即程序存储器和数据存储器在物理上和逻辑上都是分开的,各有自己的寻址方式和地址空间。

2.4.1 程序存储器

程序存储器用于存放用户程序、表格和常数。

  • 寻址空间: 64KB,地址范围为0000H ~ FFFFH。

  • 内部与外部:

    • 当EA=1(高电平)时,CPU从内部程序存储器开始执行,当PC值超出内部ROM范围时,自动转向外部程序存储器。

    • 当EA=0(低电平)时,CPU只从外部程序存储器取指令。

  • 特殊入口地址:

    • 0000H: 系统复位后,PC指向0000H,程序从这里开始执行。

    • 0003H: 外部中断0入口。

    • 000BH: 定时器0溢出中断入口。

    • 0013H: 外部中断1入口。

    • 001BH: 定时器1溢出中断入口。

    • 0023H: 串行口中断入口。

    • 通常在0000H地址存放一条跳转指令,跳转到主程序入口,避免与中断向量区冲突。

2.4.2 数据存储器

数据存储器用于存放中间运算结果、数据暂存等。

1. 内部数据存储器

内部RAM共256字节,分为三个区域(图2-6):

  • 工作寄存器区(00H ~ 1FH): 共32字节,分为4组(0~3组),每组8个寄存器(R0~R7)。通过PSW中的RS1、RS0位可选择当前工作寄存器组。

  • 位寻址区(20H ~ 2FH): 共16字节,128位。这片区域的每一位都有一个位地址(00H ~ 7FH),可以单独进行位操作。这是MCS-51的特色,非常适合逻辑控制。

  • 通用RAM区(30H ~ 7FH): 共80字节,用于存放用户数据(堆栈、变量等)。

  • 高128字节(80H ~ FFH): 对于52子系列,这片区域也是RAM;对于51子系列,这片区域是特殊功能寄存器区。

2. 特殊功能寄存器

SFR是用于控制片内各功能部件的寄存器,地址范围为80H ~ FFH。常用的SFR包括:

  • ACC: 累加器

  • B: B寄存器

  • PSW: 程序状态字

  • SP: 堆栈指针

  • DPTR: 数据指针(16位)

  • P0 ~ P3: 端口锁存器

  • TCON、TMOD: 定时器控制寄存器

  • SCON、SBUF: 串行口控制寄存器

  • IE、IP: 中断控制寄存器

3. 外部数据存储器

  • 寻址空间: 最大可扩展64KB,地址范围0000H ~ FFFFH。

  • 访问指令: 使用MOVX指令访问。


2.5 时钟电路

单片机是一个复杂的同步时序电路,需要时钟信号驱动才能工作。

2.5.1 内部时钟方式

在XTAL1和XTAL2引脚之间连接一个晶振和两个电容,即可构成自激振荡器(图2-7)。

  • 晶振频率: 常见为6MHz、12MHz、11.0592MHz(用于波特率发生)。

  • 电容C1、C2: 典型值20pF ~ 30pF,用于频率微调和稳定。

2.5.2 外部时钟方式

如果系统中已有现成的时钟信号,可以从XTAL1引脚输入,XTAL2悬空(对于HMOS工艺)或反过来(对于CHMOS工艺)。


2.6 指令时序

单片机执行一条指令所需的时间称为指令周期。MCS-51的一个指令周期由1~4个机器周期组成,而一个机器周期又包含6个状态周期(每个状态周期2个时钟周期)。

  • 时钟周期: 晶振频率的倒数,是时序的最小单位。

  • 状态周期: 两个时钟周期称为一个状态周期,用S表示。

  • 机器周期: 由6个状态周期(12个时钟周期)组成。若晶振12MHz,则一个机器周期为1μs。

  • 指令周期: 执行一条指令所需的时间。

举例: 单周期指令(如MOV A, #data)需要1μs(12MHz晶振),双周期指令(如NOP)需要2μs,四周期指令(如乘除法)需要4μs。


2.7 复位电路

复位是单片机的初始化操作。复位后,PC指向0000H,大部分SFR被赋予初值,单片机从0000H开始重新执行程序。

2.7.1 复位条件

在RST引脚上保持两个机器周期以上的高电平,即可实现复位。

2.7.2 复位电路类型

  1. 上电自动复位(图2-8):

    • 利用电容两端电压不能突变的原理,在通电瞬间,RST引脚获得高电平复位信号。随着电容充电,RST逐渐降为低电平。

    • 参数:电容10μF,电阻10kΩ。

  2. 手动复位(图2-9):

    • 分为按键电平复位和按键脉冲复位。最常用的是在复位电容上并联一个按键,按下按键强制RST为高电平。

2.7.3 复位状态

复位后,主要SFR的状态如下:

  • PC = 0000H

  • P0 ~ P3 = FFH(各I/O口为高电平)

  • SP = 07H(堆栈指针指向07H)

  • SBUF 不定IP、IE 等中断寄存器清零

  • TMOD、TCON 清零


2.8 低功耗模式

STC89C51系列单片机提供两种低功耗模式:空闲模式掉电模式,通过设置PCON寄存器(电源控制寄存器)来进入。

2.8.1 空闲模式

  • 进入方式: 置位PCON.0(IDL位)。

  • 工作状态: CPU停止工作,但RAM、定时器/计数器、串行口和中断系统继续工作。

  • 唤醒方式: 任何中断请求或硬件复位都可以唤醒CPU。

  • 特点: 功耗降低到正常工作时的15%~40%。

2.8.2 掉电模式

  • 进入方式: 置位PCON.1(PD位)。

  • 工作状态: 振荡器停振,CPU、所有外设全部停止工作,只有RAM的内容被保存。

  • 唤醒方式: 只能通过硬件复位唤醒。

  • 特点: 功耗极低,RAM内容保存,I/O口状态锁定。


【本章小结】

  1. MCS-51单片机内部由CPU、存储器、I/O口、定时器、中断系统等构成,采用哈佛体系结构。

  2. 40个引脚中,需要重点掌握P3口的第二功能以及EA、ALE、PSEN、RST等控制引脚的作用。

  3. 四个I/O口中,P0口是双向口,做I/O需外接上拉电阻;P1、P2、P3是准双向口,内部有上拉电阻

  4. 内部RAM分为工作寄存器区、位寻址区和通用RAM区;SFR用于控制片内外设。

  5. 时钟电路决定单片机的工作节拍;复位电路是系统启动的起点,有上电复位和手动复位两种形式。

  6. 低功耗模式包括空闲模式和掉电模式,适合电池供电的便携设备。


【思考题】

  1. 为什么P0口作为通用I/O输出时必须外接上拉电阻,而P1口不需要?

  2. 假设晶振频率为12MHz,请计算一个机器周期的时间。若执行一条双周期指令,需要多少微秒?

  3. MCS-51单片机内部RAM的位寻址区有什么实际应用价值?试举例说明。

  4. 当系统需要扩展外部32KB的RAM时,P0口和P2口分别承担什么功能?

  5. 复位后,SP的初值是07H,如果程序中需要使用较多的嵌套调用,为什么通常要在初始化时重新设置SP的值?


【练习题】

  1. 填空题:

    • MCS-51单片机PO口作为输出口使用时,必须外接________。

    • 当单片机复位后,程序计数器PC的内容为________H。

    • 访问外部数据存储器时,使用的指令助记符是________。

    • P3口的第二功能中,TXD对应的引脚是________。

  2. 判断题:

    • MCS-51单片机的所有I/O口都可以作为通用I/O口使用。( )

    • 在空闲模式下,CPU停止工作,但定时器仍在计数。( )

    • 只要RST引脚出现高电平,单片机立即复位。( )

  3. 简答题:

    • 简述MCS-51单片机如何区分内部程序存储器和外部程序存储器?

    • 画出一个典型的手动复位电路原理图,并说明其工作原理。



张蔓

毕业院校:哈尔滨理工大学

专业:电机与电器

研究方向:机电创新设计

教改科研:主持省级教学研究项目2个,参与省级教学改革项目1项。

公开发表论文十多篇,其中EI国际会议(EI收录)1篇,获得实用新型专利18项,主编教材2部。多年来指导学生参加各类比赛并取得优异成绩,如2022中国智能机器人格斗及竞技大赛全国二等奖;2016年参加全国应用型人才综合技能大赛获得一项全国二等奖等;2015年全国应用型人才综合技能大赛获得一项全国一等奖,2014年第九届全国信息技术应用水平大赛全国一等奖


第1章概述
第2章硬件基础
第3章指令系统
第4章汇编语言程序设计
第5章中断
第6章定时与计数
第7章串行通信
第8章按键与显示
第9章A-D与D-A转换
第10章存储器扩展
第11章输入/输出接口扩展
第12章应用系统设计
讨论区
对该课程进行评价吧
其他用户评价
联系教师
AI助教
联系教师
教师头像
张蔓
课程名字:微控制器原理及应用
讨论主题
联系内容
知识图谱
练习评测
选择章节进行练习
上次练习到:
开始练习
开始答题
取消答题
倒计时:
能力图谱
课件下载
评论回复
回复
: