由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高99元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
正版新书]STC单片机原理及应用——从器件、汇编、C到操作系统的
¥ ×1
目录
第1章单片机和嵌入式系统基础知识
1.1嵌入式系统的基本概念
1.1.1嵌入式系统的主要特点
1.1.2嵌入式技术的构成
1.28051微控制器的内部架构
1.38051单片机硬件开发平台
1.4运行第一个8051单片机程序
1.58051单片机编程语言
第2章STC单片机硬件知识
2.1STC单片机发展历史
2.2STC单片机IAP和ISP
2.3STC单片机命名规则及封装
2.3.1命名规则
2.3.2封装类型
2.3.3引脚定义
2.4STC单片机的架构及功能
2.4.1单片机实现的功能
2.4.2STC单片机的架构
2.5STC单片机的I/O驱动原理
2.6STC单片机硬件下载电路设计
2.6.1USB串口芯片下载电路
2.6.2USB直接下载编程电路
2.7STC单片机电源系统设计
第3章STC单片机软件开发环境
3.1Keil μVision集成开发环境介绍
3.1.1软件功能介绍
3.1.2软件的下载
3.1.3软件的安装
3.1.4导入STC单片机元件库
3.1.5软件的启动
3.2Keil μVision软件开发流程介绍
3.2.1明确软件需求
3.2.2创建设计工程
3.2.3编写汇编/C程序代码
3.2.4汇编器对汇编语言的处理
3.2.5C编译器对C语言的处理
3.2.6库管理器生成库文件
3.2.7链接器生成绝对目标模块文件
3.2.8目标到HEX转换器
3.2.9调试器调试目标代码
3.3Keil μVision基本开发流程的实现
3.3.1建立新的设计工程
3.3.2添加新的C语言文件
3.3.3设计建立
3.3.4下载程序到目标系统
3.3.5硬件在线调试
第4章数值表示及转换
4.1常用码制
4.1.1二进制码制
4.1.2十进制码制
4.1.3八进制码制
4.1.4十六进制码制
4.1.5BCD码
4.2正数表示方法
4.2.1正整数的表示
4.2.2正小数的表示
4.3正数码制转换
4.3.1十进制整数转换成其他进制数
4.3.2十进制小数转换成二进制数
4.4负数表示方法
4.4.1符号幅度表示法
4.4.2补码表示法
4.5负数补码的计算
4.5.1负整数补码的计算
4.5.2负小数补码的计算
4.6定点数表示
4.7浮点数表示
第5章STC单片机架构
5.1STC单片机CPU内核功能单元
5.1.1控制器
5.1.2运算器
5.1.3特殊功能寄存器
5.2STC单片机存储器结构和地址空间
5.2.1程序Flash存储器
5.2.2数据Flash存储器
5.2.3内部数据RAM存储器
5.2.4外部数据存储器
5.3STC单片机中断系统原理及功能
5.3.1中断原理
5.3.2中断系统结构
5.3.3中断优先级处理
5.3.4中断优先级控制寄存器
5.3.5中断向量表
第6章STC单片机CPU指令系统
6.1STC单片机CPU寻址模式
6.1.1立即数寻址模式
6.1.2直接寻址模式
6.1.3间接寻址模式
6.1.4寄存器寻址模式
6.1.5相对寻址模式
6.1.6变址寻址模式
6.1.7位寻址模式
6.2STC单片机CPU指令集
6.2.1算术指令
6.2.2逻辑指令
6.2.3数据传送指令
6.2.4布尔指令
6.2.5程序分支指令
第7章STC单片机汇编语言编程模型
7.1汇编语言程序结构
7.2汇编代码中段的分配
7.2.1CODE段
7.2.2BIT段
7.2.3IDATA段
7.2.4DATA段
7.2.5XDATA段
7.3汇编语言符号及规则
7.3.1符号的命名规则
7.3.2符号的作用
7.4汇编语言操作数描述
7.4.1数字
7.4.2字符
7.4.3字符串
7.4.4位置计数器
7.4.5操作符
7.4.6表达式
7.5汇编语言控制描述
7.5.1地址控制
7.5.2条件汇编
7.5.3存储器初始化
7.5.4分配存储器空间
7.5.5过程声明
7.5.6程序链接
7.5.7段控制
7.5.8杂项
7.6Keil μVision5汇编语言设计流程
7.6.1建立新的设计工程
7.6.2添加新的汇编语言文件
7.6.3设计建立
7.6.4分析.m51文件
7.6.5分析.lst文件
7.6.6分析.hex文件
7.6.7程序软件仿真
7.6.8程序硬件仿真
7.7单片机端口控制汇编语言程序设计
7.7.1设计原理
7.7.2建立新的工程
7.7.3添加汇编语言程序
7.7.4设计建立
7.7.5下载设计
7.8单片机中断汇编语言程序设计
7.8.1设计原理
7.8.2建立新的工程
7.8.3添加汇编语言文件
7.8.4分析.lst文件
7.8.5设计建立
7.8.6下载设计
7.8.7硬件仿真
第8章STC单片机C语言编程模型
8.1常量和变量
8.1.1常量
8.1.2变量
8.2数据类型
8.2.1标准C语言所支持的类型
8.2.2单片机扩充的类型
8.2.3自定义数据类型
8.2.4变量及存储模式
8.3运算符
8.3.1赋值运算符
8.3.2算术运算符
8.3.3递增和递减运算符
8.3.4关系运算符
8.3.5逻辑运算符
8.3.6位运算符
8.3.7复合赋值运算符
8.3.8逗号运算符
8.3.9条件运算符
8.3.10强制类型转换符
8.3.11sizeof运算符
8.4描述语句
8.4.1输入/输出语句
8.4.2表达式语句
8.4.3条件语句
8.4.4开关语句
8.4.5循环语句
8.4.6返回语句
8.5数组
8.5.1一维数组的表示方法
8.5.2多维数组的表示方法
8.5.3索引数组元素的方法
8.5.4动态输入数组元素的方法
8.5.5数组运算算法
8.6指针
8.6.1指针的基本概念
8.6.2指向指针的指针
8.6.3指针变量输入
8.7函数
8.7.1函数声明
8.7.2函数调用
8.7.3函数变量的存储方式
8.7.4函数参数和局部变量的存储器模式
8.7.5基本数据类型传递参数
8.7.6数组类型传递参数
8.7.7指针类型传递参数
8.8预编译指令
8.8.1宏定义
8.8.2文件包含
8.8.3条件编译
8.8.4其他预处理指令
8.9复杂数据结构
8.9.1结构
8.9.2联合
8.9.3枚举
8.10C程序中使用汇编语言
8.10.1内嵌汇编语言
8.10.2调用汇编程序
8.11C语言端口控制实现
8.12C语言中断程序实现
8.12.1C语言中断程序实现原理
8.12.2外部中断电路原理
8.12.3C语言中断具体实现过程
第9章STC单片机时钟、复位和电源模式原理及实现
9.1STC单片机时钟
9.2STC单片机复位
9.2.1外部RST引脚复位
9.2.2软件复位
9.2.3掉电/上电复位
9.2.4MAX810专用复位电路复位
9.2.5内部低压检测复位
9.2.6看门狗复位
9.2.7程序地址非法复位
9.3STC单片机电源模式
9.3.1低速模式
9.3.2空闲模式
9.3.3掉电模式
第10章STC单片机比较器原理及实现
10.1STC单片机比较器结构
10.2STC单片机比较器寄存器组
10.2.1比较器控制寄存器1
10.2.2比较器控制寄存器2
10.3STC单片机比较器应用
第11章STC单片机计数器和定时器原理及实现
11.1计数器/定时器模块简介
11.2计数器/定时器寄存器组
11.2.1定时器/计数器0/1控制寄存器TCON
11.2.2定时器/计数器工作模式寄存器TMOD
11.2.3辅助寄存器AUXR
11.2.4T0~T2时钟输出寄存器和外部中断允许INT_CLKO(AUXR2)
11.2.5定时器T0和T1中断允许控制寄存器IE
11.2.6定时器T0和T1中断优先级控制寄存器IP
11.2.7定时器T4和定时器T3控制寄存器T4T3M
11.2.8定时器T2、T3和T4的中断控制寄存器IE2
11.3计数器/定时器工作模式原理和实现
11.3.1定时器/计数器0工作模式
11.3.2定时器/计数器1工作模式
11.3.3定时器/计数器2工作模式
11.3.4定时器/计数器3工作模式
11.3.5定时器/计数器4工作模式
第12章STC单片机异步串行收发器原理及实现
12.1RS232标准简介
12.1.1RS232传输特点
12.1.2RS232数据传输格式
12.1.3RS232电气标准
12.1.4RS232参数设置
12.1.5RS232连接器
12.2STC单片机串口模块简介
12.2.1串口模块结构
12.2.2串口引脚
12.3串口1寄存器及工作模式
12.3.1串口1寄存器组
12.3.2串口1工作模式
12.3.3人机交互控制的实现
12.3.4按键扫描与串口显示
12.4串口2寄存器及工作模式
12.4.1串口2寄存器组
12.4.2串口2工作模式
12.5红外通信的原理及实现
12.5.1红外收发器的电路原理
12.5.2红外通信波形捕获
12.5.3红外通信协议
12.5.4红外检测原理
12.5.5串口通信原理
12.5.6设计实现
第13章STC单片机ADC原理及实现
13.1模数转换器原理
13.1.1模数转换器的参数
13.1.2模数转换器的类型
13.2STC单片机内ADC的结构原理
13.2.1STC单片机内ADC的结构
13.2.2ADC转换结果的计算方法
13.3STC单片机内ADC寄存器组
13.3.1P1口模拟功能控制寄存器
13.3.2ADC控制寄存器
13.3.3时钟分频寄存器
13.3.4ADC结果高位寄存器
13.3.5ADC结果低位寄存器
13.3.6中断使能寄存器
13.3.7中断优先级寄存器
13.4直流电压测量及串口显示
13.4.1直流分压电路原理
13.4.2软件设计流程
13.4.3具体实现过程
13.5直流电压测量及LCD屏显示
13.5.1硬件电路设计
13.5.21602字符LCD原理
13.5.3软件设计流程
13.5.4具体实现过程
13.6交流电压测量及LCD屏显示
13.6.1硬件电路设计
13.6.212864图形点阵LCD原理
13.6.3软件设计流程
13.6.4ADC外部输入信号要求
13.6.5具体实现过程
13.7温度测量及串口显示
第14章STC单片机增强型PWM发生器原理及实现
14.1脉冲宽度调制原理
14.2增强型PWM发生器模块
14.2.1增强型PWM发生器功能
14.2.2增强型PWM发生器寄存器集
14.3生成单路PWM信号
14.4生成两路互补PWM信号
14.5步进电机的驱动和控制
14.5.1五线四相步进电机的工作原理
14.5.2步进电机的驱动
14.5.3使用软件驱动步进电机
14.5.4使用PWM模块驱动步进电机
14.5.5设计下载和验证
第15章STC单片机SPI原理及实现
15.1SPI模块结构及功能
15.1.1SPI传输特点
15.1.2SPI模块功能
15.1.3SPI接口信号
15.1.4SPI接口的数据通信方式
15.1.5SPI模块内部结构
15.2SPI模块寄存器组
15.2.1SPI控制寄存器
15.2.2SPI状态寄存器
15.2.3SPI数据寄存器
15.2.4中断允许寄存器
15.2.5中断优先级寄存器
15.2.6控制SPI引脚位置寄存器
15.3SPI模块配置及时序
15.3.1SPI配置模式
15.3.2主/从模式的注意事项
15.3.3通过SS修改模式
15.3.4写冲突
15.3.5数据模式时序
15.47段数码管的驱动与显示
15.4.1系统控制电路原理
15.4.27段数码管原理
15.4.374HC595原理
15.4.4系统软件控制流程
15.4.5程序具体实现
第16章STC单片机CCP/PCA/PWM模块原理及实现
16.1CCP/PCA/PWM结构
16.2CCP/PCA/PWM寄存器组
16.2.1PCA工作模式寄存器
16.2.2PCA控制寄存器
16.2.3PCA比较捕获寄存器
16.2.4PCA的16位计数器
16.2.5PCA捕获/比较寄存器
16.2.6PCA模块PWM寄存器
16.2.7PCA模块引脚切换寄存器
16.3CCP/PCA/PWM工作模式
16.3.1捕获模式
16.3.216位软件定时器模式
16.3.3高速脉冲输出模式
16.3.4脉冲宽度调制模式
第17章RTX51操作系统原理及实现
17.1操作系统的必要性
17.1.1单任务程序
17.1.2轮询程序
17.2操作系统基本知识
17.2.1操作系统的作用
17.2.2操作系统的功能
17.3RTX51操作系统的任务
17.3.1定义任务
17.3.2管理任务
17.3.3切换任务
17.4RTX51操作系统内核函数
17.5RTX51操作系统实现
17.5.1RTX51操作系统实现1
17.5.2RTX51操作系统实现2
17.5.3RTX51操作系统实现3
附录ASTC单片机考试样题
附录BSTC单片机选型表
附录CSTC学习板原理图477
第5章CHAPTER5STC单片机架构本章详细介绍了STC单片机的架构。本章的内容主要包括STC单片机CPU内核功能单元、STC单片机存储器结构和地址空间、STC单片机中断系统原理及功能等。
本章是学习单片机最重要的内容之一。通过本章内容的学习,读者将系统学习8051CPU核内部结构及功能,以帮助学习后续内容。
5.1STC单片机CPU内核功能单元8051单片机自诞生的那天开始,到现在已经持续了30多年。在这期间,人们对其性能不断地进行改进,使得其整体性能提高了10倍以上。目前,以8051CPU内核为核心的单片机仍然发挥着其巨大的生命力。虽然8051CPU的内核比较简单,但是以其为核心的单片机系统却包含了构成计算机系统的全部要素。图5.1给出了经典8051CPU的结构图。
图5.1经典8051单片机内部结构在单片机中,包含了运算器、控制器、存储器、外设和时钟系统共5个子系统。在这5个子系统中,运算器和控制器构成了8051中央处理单元(CentralProcessingUnit,CPU)。在8051CPU中,运算器和控制器通过CPU内部的总线连接在一起。这样,在CPU内控制器的控制下,运算器内的各个功能部件有条不紊地按顺序工作(这里的按顺序是指按给定的时钟节拍)。在8051单片机中,CPU、存储器和外设通过CPU外部的、单片机片内的总线连接在一起。通过总线,一方面,在CPU、存储器和外设之间传输数据、地址和控制信息;另一方面,CPU、存储器和外设共享总线。因此,这种结构是典型的共享总线结构。
常说的总线是一组逻辑信号的集合。在传统计算机体系结构中,这些逻辑信号包括数据信号、地址信号和控制信号,这就是所谓的三总线结构。之所以将以8051CPU为核心的单片机称为8位单片机,这是由于在该单片机中数据信号的宽度是8位。
STC内的8051CPU核是高性能、运行速度经过优化的8位中央处理单元(CPU)。它100%兼容工业标准的8051CPU。8051CPU外围主要包括:(1)内部数据RAM。
(2)外部数据空间。
(3)特殊功能寄存器。
(4)CPU时钟分频器。
STC8051CPU的特性主要包括:(1)采用流水线RISC结构,其执行速度比工业标准8051快十几倍。
(2)与工业标准8051指令集100%兼容。
(3)大多数指令使用1个或2个时钟周期执行。
(4)256字节的内部数据RAM。
(5)使用双DPTR扩展标准8051结构。
(6)提供了片外扩展的64KB外部数据存储器。
注意:封装在40引脚以上的STC单片机提供此扩展功能。
(7)提供了多达21个中断源。
(8)新特殊功能寄存器可以快速访问STC单片机I/O端口,以及控制CPU时钟频率。
任何一个中央处理单元(CPU)都包含有控制器和运算器两大基本模块。下面将通过STC单片机分析8051CPU的功能。
思考与练习51:8051CPU内包含和两大功能部件。
思考与练习52:请读者仔细分析8051CPU内的各个部件与总线的连接关系,划分出控制器单元和运算器单元。
5.1.1控制器控制器是CPU中最重要的功能部件之一,其作用是控制CPU内的各个组成部件协调地工作,保证CPU的正常运行。例如,控制器根据指令要求发出正确的控制信号,实现加法运算。
1.程序计数器单片机最重要的特点之一就是采用了存储程序的体系结构,即需要执行的代码保存在一个称为程序存储器的单元中。通过程序计数器(ProgramCounter,PC)从程序存储器中源源不断地取出所要执行的指令。因此,程序计数器(PC)是CPU中最基本的控制部分。
程序计数器的特点就是总是指向下一条所要执行指令的地址空间。下面对程序计数器的原理进行分析。如图5.1所示,程序计数器、PC递增器、缓冲区、程序地址寄存器都挂在其结构右侧的一条总线上。程序地址寄存器的输出连接到程序存储器上,而程序存储器连接到内部总线上。
前面已经提到在程序存储器中,保存的是程序的机器代码,即机器指令。从图5.1中可以知道,程序地址寄存器的输出用于给程序存储器提供地址,而程序存储器的输出用于提供机器指令的内容。因此,程序计数器其实质就是实现递增功能的计数器,只不过是计数器的计数值作为程序存储器的地址。在图5.1中,程序计数器的宽度为16位。也就是说,地址深度为216,地址的范围为0~65536,即64KB。因此,程序存储器的容量最大为64KB。很明显,所编写的程序通过软件处理翻译成机器代码后,其机器代码的长度不能超过64KB。
程序计数器并不能总是让程序地址寄存器递增。这是因为,机器指令可以分成顺序执行和非顺序执行,如图5.2所示。
图5.2机器指令的执行顺序1)顺序执行顺序执行是指按机器指令的前后顺序,顺序地执行指令,即把PC+1后的值送给程序地址寄存器,作为程序存储器的地址。然后,从程序存储器读出指令。这就是所说的程序计数器总是指向下一条要执行的指令。
2)非顺序执行在编写的软件代码中,经常出现条件判断语句、跳转语句、程序调用语句和中断调用等。因此,当运行程序代码的过程中遇到这些指令时,程序的执行顺序并不是按照PC+1->PC来执行程序,而是将这些语句所指向新指令所在的新目标地址赋给程序地址寄存器。
思考与练习53:在单片机中,PC总是指向。
思考与练习54:请说明程序计数器的宽度和程序代码长度之间的关系。
思考与练习55:在单片机中,CPU执行指令的顺序靠控制。
思考与练习56:在单片机中,程序的执行顺序可以通过代码中的进行控制。
提示:运算的标志位,条件判断语句、程序调用语句和中断服务语句等,在学习完后面的8051指令集后进行进一步的详细说明。
2.指令通道指令通道包含取指单元、译码单元、执行指令单元。本质上,取指、译码和执行指令的过程就是一个有限自动状态机(FiniteStateMachine,FSM),也就是经常所说的微指令控制器。
1)取指单元根据PC所指向的存放指令程序存储器的地址,取出指令。在8051单片机中,程序存储器的宽度为8位。由于8051的机器指令有8位、16位或24位,即1字节、2字节或3字节,所以,对于不同的指令来说,取指令所需要的时钟周期并不相同,可能需要几个时钟周期才能完成取指操作。
2)译码单元根据取出指令的操作码部分,对指令进行翻译。这个翻译过程就是将机器指令转换成一系列的逻辑控制序列,这些控制序列将直接控制CPU内的运算单元。
3)执行指令单元当完成译码过程后,根据逻辑控制序列(微指令)所产生的逻辑行为,控制运算器单元,从而完成指令需要实现的操作行为。
例如,假设此时取出一条机器指令(汇编助记符表示):ADDA,Rn其机器指令的格式为:0010,1rrr注意:rrr表示寄存器的编号。
该指令完成寄存器Rn和累加器A数据相加的操作。其译码和执行指令的过程应该包含:(1)从寄存器Rn中取出数据送入ALU的一个输入端口TMP1,表示为(Rn)->(TMP1)(2)从累加器ACC中取出数据送入ALU的另一个输入端口TMP2,表示为(ACC)->(TMP2)(3)将TMP1和TMP2的数据送到ALU进行相加,产生结果,表示为(TMP2)+(TMP1)->(总线)(4)将ALU产生的结果,通过内部总线送入到ACC累加器中,表示为(总线)->(ACC)注意:虽然通常将指令通道的译码和执行指令的过程进行这样细致的划分,但实际上,译码产生控制序列的过程就是在执行指令。
思考与练习57:请说明单片机中,指令通道包含、和;它们的作用分别是、和。
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格
