前 言
“微机原理”课程旨在引导学生运用面向机器的汇编语言,从底层深入理解微型计算
机的基本工作原理及其与外部的接口方式,是普通高校计算机、自动化、电子、电气、人
工智能与机械等专业的重要基础课程。通过本课程的学习,学生可为计算机应用、软件编
程、软硬件协同开发奠定扎实的基础。
在“微机原理”课程教学中,需要一种既能体现微型计算机及接口基本原理,又具
备较强可操作性、便于实验的微型计算机系统,以突出该课程的基础性、实践性和发展
性。当前,部分高校仍采用早已停产的8086 芯片及相关外围器件进行教学,由于硬件
难以获取,实验环节往往只能依赖软件仿真,甚至无法开展,导致理论教学与实践严重
脱节。
如何既系统透彻地讲解微机原理,又使学生能够在贴近实际项目的环境中进行实践,
是本书着力解决的问题。结合微处理器的最新发展趋势,本书选用基于32 位RISC-V 架
构的CH573 微控制器作为教学载体,以简洁清晰、深入浅出、注重实践的方式,阐述微
型计算机系统的基本原理。主要内容包括:CPU 基本功能、CPU 外围工作电路、三总线
结构及作用、中断系统,以及通用输入输出、定时器、串行通信、模数转换等多种接口的
工作原理,并涵盖汇编语言入门实践与直接操控硬件的编程开发方法。
RISC-V 架构微处理器属于面向电子系统的智能化微型计算机,与早期Intel 微处理器
的设计目标一致,旨在实现电子设备的智能控制。其结构简洁、性能优异,有助于从底
层厘清计算机运行的基本脉络,符合课程的基础属性要求。为强化实践环节,本书配套
以RISC-V 微处理器为核心的Hulu-CH573 教学实验套件(也称通用嵌入式计算机或葫芦
套件),该套件不仅有助于深入理解计算机底层原理,还可为实际产品开发提供基础支持,
具备真实工程体验,满足课程的实践属性要求。此外,RISC-V 架构已广泛应用于智能家
电、物联网、工业控制、汽车电子等领域,并正向人工智能终端延伸,体现了课程的发展
属性。本书还将结合软件工程思想,提供可移植、可复用的工程模板,便于读者“照葫芦
画瓢”开展实验。
Hulu-CH573 实验套件的软件开发环境为运行于PC(personal computer,个人计算
机)的MounRiver Studio(简称MRS)。这是一款国产免费的嵌入式集成开发环境,支持
RISC-V 与ARM 内核,提供C 编译器、宏汇编、链接器、库管理、仿真调试及下载等完
整功能。配合葫芦硬件,可实现程序的直接运行与调试。本书涉及的例程、电路原理图等
资源均可从清华大学出版社官方网站下载。
全书共10 章:第1~4 章介绍微型计算机基本结构及信息表示、硬件系统、指令系统
与汇编语言程序设计、通用输入输出接口;第5 章讲解底层驱动构件的制作方法;第6~
9 章分别阐述串行通信接口与中断系统、存储器、定时器与PWM、模数转换与数模转换;
第10 章概述通用计算机的基本结构及启动过程。
本书的编写与出版得到了山东大学、苏州大学、清华大学出版社、南京沁恒微电子股
份有限公司等单位的大力支持。苏州大学王进教授、武夷学院刘长勇副教授为本书提出了
宝贵建议,在此一并致以诚挚的谢意。
由于时间仓促,作者水平有限,书中难免存在疏漏之处,恳请广大读者批评指正。
编 者
2025 年12 月
目 录
第1 章 微型计算机概述及信息表示 ……………………………………… 1
1.1 微型计算机概述 ………………………………………………………………1
1.1.1 计算机的种类 …………………………………………………………1
1.1.2 微型计算机的发展简史 ………………………………………………2
1.1.3 微型计算机的冯·诺依曼结构 ………………………………………3
1.1.4 微型计算机中的三总线 ………………………………………………5
1.1.5 计算机执行指令的简明过程 …………………………………………7
1.2 微型计算机的发展方向 ………………………………………………………7
1.2.1 CPU 的结构与速度 ……………………………………………………8
1.2.2 存储器的容量与速度 …………………………………………………9
1.2.3 指令系统的发展方向 ……………………………………………… 12
1.2.4 编译技术的发展 …………………………………………………… 13
1.2.5 微型计算机其他新技术 …………………………………………… 14
1.3 “微机原理”课程的实践选型 …………………………………………… 15
1.3.1 “微机原理”课程实践选型的基本原则 ………………………… 15
1.3.2 口袋式Hulu-CH573 微机原理实验套件概述 …………………… 16
1.4 数制及数制之间的转换方法 ……………………………………………… 17
1.4.1 数制 ………………………………………………………………… 17
1.4.2 数制之间的转换方法 ……………………………………………… 19
1.5 计算机中信息的基本表示方式 …………………………………………… 21
1.5.1 计算机中信息表示的相关基本概念 ……………………………… 21
1.5.2 整数在计算机中的补码表示方法 ………………………………… 22
1.5.3 实数在计算机中的浮点数表示方法 ……………………………… 31
1.6 文字在计算机中的存储方式——字符编码 ……………………………… 34
1.6.1 英文编码——ASCII 码 …………………………………………… 34
1.6.2 中文编码——GB 2312 及GBK …………………………………… 35
习题1 …………………………………………………………………………… 36
第2 章 微型计算机的硬件系统 ………………………………………… 38
2.1 微型计算机的硬件共性结构及基本性能指标 …………………………… 38
2.1.1 微型计算机的硬件共性结构 ……………………………………… 38
2.1.2 CH573 芯片的内部结构 …………………………………………… 39
2.1.3 微型计算机基本性能指标 ………………………………………… 40
2.2 通用嵌入式计算机的提出、定义及组成 ………………………………… 40
2.2.1 嵌入式终端开发方式存在的问题与解决办法 …………………… 40
2.2.2 通用嵌入式计算机的概念与特点 ………………………………… 41
2.2.3 GEC 基本硬件系统的组成 ………………………………………… 42
2.3 基于RISC-V 架构的CH573 芯片构建GEC …………………………… 43
2.3.1 芯片最小硬件系统的电路组成 …………………………………… 43
2.3.2 CH573 的硬件最小系统 …………………………………………… 45
习题2 …………………………………………………………………………… 50
第3 章 指令系统与汇编语言程序设计 ………………………………… 51
3.1 RISC-V 架构概述 ………………………………………………………… 51
3.1.1 RISC 与ISA 名词解释 …………………………………………… 51
3.1.2 RISC-V 简介 ……………………………………………………… 52
3.2 寄存器与寻址方式 ………………………………………………………… 53
3.2.1 寄存器的通用基础知识 …………………………………………… 53
3.2.2 RISC-V 架构主要寄存器 ………………………………………… 54
3.2.3 指令保留字与寻址方式 …………………………………………… 55
3.2.4 机器码的获取方法 ………………………………………………… 57
3.3 RISC-V 基本指令 ………………………………………………………… 60
3.3.1 数据传送类指令 …………………………………………………… 60
3.3.2 数据操作类指令 …………………………………………………… 61
3.3.3 跳转类指令 ………………………………………………………… 63
3.3.4 控制状态寄存器类指令 …………………………………………… 64
3.3.5 其他指令 …………………………………………………………… 64
3.4 汇编语言的基本语法 ……………………………………………………… 65
3.4.1 汇编语言的格式 …………………………………………………… 65
3.4.2 常用伪指令简介 …………………………………………………… 66
3.5 RISC-V 汇编语言工程框架 ……………………………………………… 68
3.6 汇编程序设计实例 ………………………………………………………… 70
3.6.1 程序流程控制 ……………………………………………………… 70
3.6.2 代码转换程序设计 ………………………………………………… 75
3.6.3 冒泡排序程序设计 ………………………………………………… 77
【实验3-1】 基于构件方法的汇编程序设计 ………………………………… 80
习题3 …………………………………………………………………………… 81
第4 章 通用输入输出接口 ……………………………………………… 85
4.1 GPIO 基础知识 …………………………………………………………… 85
4.1.1 GPIO 的概念 ……………………………………………………… 85
4.1.2 输出引脚的基本电路接法 ………………………………………… 86
4.1.3 上拉/ 下拉电阻与输入引脚的基本接法 ………………………… 86
4.1.4 CH573 芯片的GPIO ……………………………………………… 87
4.2 软件干预硬件的方法 ……………………………………………………… 91
4.2.1 底层驱动构件的概念 ……………………………………………… 91
4.2.2 GPIO 构件的API ………………………………………………… 93
4.2.3 GPIO 构件的使用 ………………………………………………… 94
【实验4-1】 基于汇编程序理解软件如何干预硬件 ………………………… 97
习题4 …………………………………………………………………………… 98
第5 章 底层驱动构件的制作 …………………………………………… 99
5.1 软件构件的基本概念 ……………………………………………………… 99
5.1.1 软件构件的定义 …………………………………………………… 99
5.1.2 软件构件的分类 ……………………………………………………100
5.1.3 构件设计的基本思想与原则 ………………………………………101
5.1.4 基于构件的软件设计步骤 …………………………………………103
5.2 底层驱动构件制作的通用知识 ……………………………………………104
5.2.1 底层驱动构件的概念及作用 ………………………………………104
5.2.2 底层驱动构件制作的基本知识 ……………………………………104
5.2.3 构件制作的基本要求与一般步骤 …………………………………105
5.3 GPIO 构件的制作 …………………………………………………………106
5.3.1 与GPIO 相关的寄存器及编程步骤 ………………………………106
5.3.2 通过直接地址控制LED ……………………………………………107
5.3.3 封装成GPIO 构件 …………………………………………………109
习题5 …………………………………………………………………………… 116
第6 章 串行通信及中断系统 …………………………………………… 117
6.1 串行通信的基础知识 ……………………………………………………… 117
6.1.1 串行通信的相关概念 ……………………………………………… 117
6.1.2 RS232 和RS485 总线标准 ………………………………………… 119
6.1.3 TTL-USB 串口 ……………………………………………………120
6.1.4 串行通信编程模型 …………………………………………………120
6.2 基于构件的串行通信编程方法 ……………………………………………121
6.2.1 CH573 芯片UART 对外引脚 ……………………………………121
6.2.2 CH573 芯片UART 的寄存器 ……………………………………121
6.2.3 UART 构件API ……………………………………………………122
6.2.4 UART 构件API 的发送测试 ………………………………………128
6.3 中断机制及中断编程步骤 …………………………………………………130
6.3.1 中断基本概念及处理过程 …………………………………………130
6.3.2 CH573 中断源与RISC-V3A 中断结构 ……………………………132
6.3.3 CH573 中断编程实例 ………………………………………………135
【实验6-1】 基于串行通信构件的汇编程序设计 ……………………………144
习题6 ……………………………………………………………………………145
第7 章 存储器 …………………………………………………………… 146
7.1 存储器的功能与分类 ………………………………………………………146
7.2 随机存储器与只读存储器 …………………………………………………147
7.2.1 RAM ………………………………………………………………147
7.2.2 ROM ………………………………………………………………150
7.2.3 Flash 存储器 ………………………………………………………152
7.3 SD 卡与高速缓存 …………………………………………………………153
7.3.1 SD 卡 ………………………………………………………………153
7.3.2 高速缓存 ……………………………………………………………154
7.4 CH573 的存储空间 …………………………………………………………157
7.4.1 CH573 的存储器映射 ………………………………………………157
7.4.2 用户非易失数据存储区的操作 ……………………………………158
【实验7-1】 存储器实验 ………………………………………………………160
习题7 ……………………………………………………………………………161
第8 章 定时器与PWM ………………………………………………… 162
8.1 定时器 ………………………………………………………………………162
8.1.1 定时器的基本概念 …………………………………………………162
8.1.2 系统定时器SysTick ………………………………………………162
8.1.3 通用定时器TMRx …………………………………………………169
8.2 PWM ………………………………………………………………………180
8.2.1 PWM 的基础知识 …………………………………………………181
8.2.2 CH573 的PWM 功能实现 …………………………………………182
【实验8-1】 理解中断与定时器 ………………………………………………198
习题8 ……………………………………………………………………………199
第9 章 模数转换与数模转换 …………………………………………… 200
9.1 ADC 的基础知识 …………………………………………………………200
9.1.1 与模数转换编程相关的概念 ………………………………………200
9.1.2 与模数转换编程关联度较弱的概念 ………………………………202
9.1.3 模数转换采样电路举例 ……………………………………………203
9.2 CH573 芯片的ADC 模块 …………………………………………………204
9.2.1 CH573 芯片的ADC 简介 …………………………………………204
9.2.2 CH573 芯片的ADC 寄存器 ………………………………………205
9.2.3 CH573 芯片的ADC 应用 …………………………………………209
9.3 DAC …………………………………………………………………………215
【实验9-1】 AD 转换模块实验 …………………………………………………216
习题9 ……………………………………………………………………………216
第10 章 通用计算机的基本结构及启动过程 ………………………… 217
10.1 PC 系统的基本结构 ………………………………………………………217
10.1.1 PC 的基本硬件组成 ……………………………………………217
10.1.2 USB 设备 …………………………………………………………220
10.2 PC 系统的启动流程 ………………………………………………………222
10.2.1 启动固件 …………………………………………………………223
10.2.2 PC 系统中的硬盘 ………………………………………………225
10.2.3 从固件到硬盘的启动流程 ………………………………………230
10.3 PC 的操作系统 ……………………………………………………………232
10.3.1 PC 操作系统的鼻祖 ……………………………………………232
10.3.2 现代PC 的操作系统 ……………………………………………233
10.3.3 PC 操作系统的共性 ……………………………………………234
习题10 ……………………………………………………………………………235
参考文献 …………………………………………………………………… 236
附录A Hulu-CH573 用户手册 ………………………………………… 237