描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121343353丛书名: 电子系统EDA新技术丛书
第1章单片机和嵌入式系统基础知识
1.1嵌入式系统基本概念
1.1.1嵌入式系统的主要特点
1.1.2嵌入式技术的构成
1.2 8051单片机内部结构
1.3 8051单片机硬件开发平台
1.4 运行个8051单片机程序
1.5 8051单片机编程语言
1.6 小结
第2章 STC单片机硬件知识
2.1 STC单片机发展历史
2.2 STC单片机IAP和ISP
2.3 STC8系列单片机命名规则及封装
2.3.1 命名规则
2.3.2 封装类型
2.3.3 引脚定义
2.4 STC8系列单片机主要性能
2.5 STC8系列单片机硬件下载电路设计
2.5.1通过USB-串口芯片的下载电路
2.5.2通过USB直接下载编程电路
2.6 STC8系列单片机电源系统设计
第3章STC单片机软件开发环境
3.1 Keil μVision集成开发环境介绍
3.1.1软件功能介绍
3.1.2软件的下载
3.1.3软件的安装
3.1.4导入STC单片机元件库
3.1.5软件的启动
3.2Keil μVision5软件开发流程
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 μVision5基本的开发流程
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.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单片机处理器内核功能单元
5.1.1控制器
5.1.2运算器
5.1.3特殊功能寄存器
5.2STC单片机的存储器结构和地址空间
5.2.1程序存储器
5.2.2内部数据存储器
5.2.3外部数据存储器
第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程序硬件仿真
第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程序中内嵌汇编语言
第9章STC单片机I/O端口原理及驱动
9.1STC8系列单片机的I/O驱动原理
9.2I/O端口控制寄存器组
9.3汇编语言程序驱动端口的实现
9.3.1设计原理
9.3.2建立新的工程
9.3.3添加汇编语言源文件
9.3.4建立设计和下载
9.4C语言驱动端口的实现
9.4.1设计原理
9.4.2建立新的工程
9.4.3添加C语言源文件
9.4.4建立并下载设计
9.5汇编和C混合编程驱动端口
9.5.1添加和处理C语言与汇编语言源文件
9.5.2建立并调试设计
第10章STC单片机中断系统原理及实现
10.1中断原理
10.2中断系统结构
10.3中断向量表
10.4中断寄存器组
10.4.1中断使能寄存器组
10.4.2中断请求寄存器
10.5编写汇编语言实现中断功能
10.5.1设计原理
10.5.2建立新的工程
10.5.3添加汇编语言文件
10.5.4分析“.lst”文件
10.5.5建立设计
10.5.6下载设计
10.5.7硬件仿真
10.6编写C语言实现中断功能
10.6.1C语言中断程序实现原理
10.6.2C语言中断具体实现过程
10.7中断优先级原理和中断嵌套的实现
10.7.1不同的中断条件及处理方式
10.7.2中断优先级控制寄存器
10.7.3修改中断优先级的实现
第11章STC8系列单片机时钟、复位和电源模式原理及实现
11.1STC8系列单片机时钟
11.2STC8系列单片机复位
11.2.1外部RST引脚复位
11.2.2软件复位
11.2.3掉电/上电复位
11.2.4MAX810专用复位电路复位
11.2.5内部低压检测复位
11.2.6看门狗复位
11.3STC单片机电源模式
11.3.1低速模式
11.3.2空闲模式
11.3.3掉电模式
第12章STC单片机比较器原理及实现
12.1STC单片机比较器结构
12.2STC单片机比较控制寄存器组
12.2.1比较控制寄存器1
12.2.2比较控制寄存器2
12.3STC单片机比较器应用:产生PWM信号
第13章STC单片机计数器和定时器原理及实现
13.1定时器/计数器模块概述
13.2定时器/计数器寄存器组
13.2.1定时器/计数器T0和T1控制寄存器TCON
13.2.2定时器/计数器T0和T1工作模式寄存器TMOD
13.2.3辅助寄存器AUXR
13.2.4T0~T2时钟输出寄存器和外部中断允许INT_CLKO(AUXR2)寄存器
13.2.5定时器计数器T3和T4控制寄存器T4T3M
13.2.6定时器中断控制寄存器
13.3计数器/定时器工作模式原理及实现
13.3.1定时器/计数器T0工作模式
13.3.2定时器/计数器T1工作模式
13.3.3定时器/计数器T2工作模式
13.3.4定时器/计数器T3工作模式
13.3.5定时器/计数器T4工作模式
第14章STC单片机串行异步收发器原理及实现
14.1RS-232标准概述
14.1.1RS-232传输特点
14.1.2RS-232数据传输格式
14.1.3RS-232电气标准
14.1.4RS-232参数设置
14.1.5RS-232连接器
14.2STC单片机串口模块概述
14.2.1串口模块结构
14.2.2串口引脚
14.3串口1寄存器及工作模式
14.3.1串口1寄存器组
14.3.2串口1工作模式
14.3.3串口1通信实例:LED灯的控制
14.3.4串口1通信实例:键盘扫描按键的显示
14.4串口2寄存器及工作模式
14.4.1串口2寄存器组
14.4.2串口2工作模式
14.5串口3寄存器及工作模式
14.5.1串口3寄存器组
14.5.2串口3工作模式
14.6串口4寄存器及工作模式
14.6.1串口4寄存器组
14.6.2串口4工作模式
14.7红外接收的设计与实现
14.7.1红外收发器的电路原理
14.7.2红外通信波形捕获
14.7.3红外通信协议
14.7.4红外检测原理
14.7.5设计实现
第15章STC单片机ADC原理及实现
15.1STC单片机内ADC的结构原理
15.2STC单片机内ADC寄存器组
15.3直流电压的测量和串口显示
15.3.1软件设计流程
15.3.2具体实现过程
15.4直流电压的测量和1602字符LCD的显示
15.4.1硬件电路设计
15.4.21602字符LCD的原理
15.4.3软件设计流程
15.4.4具体实现过程
15.5交流电压参数测量和12864 LCD显示
15.5.1硬件电路设计
15.5.212864图形点阵LCD原理
15.5.3软件设计流程
15.5.4具体实现过程
第16章STC单片机增强型PWM发生器原理及应用
16.1脉冲宽度调制原理
16.2增强型PWM发生器模块
16.2.1增强型PWM发生器功能
16.2.2增强型PWM发生器寄存器集
16.2.3PWM中断的声明方式
16.3生成单路PWM信号
16.4生成两路互补PWM信号
16.5步进电机的驱动和控制
16.5.1五线四相步进电机工作原理
16.5.2步进电机的驱动
16.5.3使用软件驱动步进电机
16.5.4使用PWM模块驱动步进电机
第17章STC单片机I2C原理及实现
17.1I2C总线规范概述
17.2I2C总线时序
17.3PCA9555的结构功能
17.3.1寄存器映射
17.3.2设备地址
17.3.3控制寄存器和控制字节
17.3.4寄存器描述
17.3.5总线交易
17.4STC8系列I2C控制器内的寄存器组
17.4.1I2C主机模式
17.4.2I2C从机模式
17.4.3I2C数据1
21世纪,全球全面进入了计算机智能控制与计算的时代,而其中的一个重要方向就是以单片机为代表的嵌入式计算机控制与计算。由于适合中国读者入门的8051单片机有30多年的应用历史,绝大部分工科院校均开设该课程,目前有几十万名对该单片机十分熟悉的工程师可以相互交流开发经验,有大量的经典电路和程序可以直接移植,从而极大地降低了开发风险,提高了开发效率——这也是STC宏晶科技(南通国芯微电子有限公司)生产STC系列单片机的巨大优势。
Intel 8051技术诞生于20世纪70年代,所以如果不对其进行大规模创新,国内的单片机教学与应用就会陷入被动局面。为此,STC宏晶科技对8051单片机进行了全面的技术升级与创新,相继开发了STC89/90、STC10/11、STC12、STC15和STC8系列,累计发布上百种产品,这些产品全部采用Flash技术(可反复编程10万次以上)和ISP/IAP(在系统可编程/在应用可编程)技术;针对抗干扰进行了专门设计,超强抗干扰;进行了特别加密设计(如STC15系列现仍无法解密);对传统的8051单片机进行了全面提速,指令速度甚至提高了24倍;大幅度提高了片内集成外设的种类和数量,如ADC、CCP/PCA/PWM 、高速同步串行通信接口SPI、高速异步串行通信接口UART、定时器、看门狗、内部高精准时钟(±1%温飘,-40 ~ 85℃之间,可彻底省掉昂贵的外部晶振)、内部高可靠复位电路(可彻底省掉外部复位电路)、大容量SRAM、大容量E2PROM、大容量Flash程序存储器等。针对高校单片机教学,STC8系列的单片机就是一个仿真器,定时器改造为支持16位自动重载(学生只需学一种模式);极大地简化了教学方式。针对实时操作系统RTOS推出了不可屏蔽的16位自动重载定时器,并且在的STC-ISP烧录软件中提供了大量易用的工具,如范例程序、定时器计算器、软件延时计算器、波特率计算器、头文件、指令表、Keil仿真设置等。此外,单片机的芯片封装也从传统单一的PDIP40发展到能够满足不同应用要求的多种封装形式,包括DIP8/DIP16/DIP20/SKDIP28、SOP8/SOP16/SOP20/SOP28、TSSOP20/TSSOP28、DFN8/QFN28/QFN32/QFN48/QFN64、LQFP32/LQFP48/LQFP64S/LQFP64L。
STC宏晶科技于2017年重磅推出了以STC8A8K64S4A12为代表的STC8系列超高速8051单片机,该款单片机的价格仅有34元。目前,该系列是STC价格、功耗、速度快的单片机(比传统的8051单片机快12倍以上)。与前一代STC15系列的单片机相比,新增加的特性主要包括:(1)增强了中断嵌套能力;(2)增强了I/O口的控制能力;(3)片内SRAM容量增加到8KB;(4)ADC的分辨率增加到12位,并且支持多15个通道;(5)CCP/PCA/PWM模块增加到4组;(6)增强型PWM模块增加到8路;(7)新集成了I2C模块。并且,该系列单片机同时支持Keil μVision环境下的纯软件仿真和硬件在线仿真与调试功能(该单片机本身就是一个仿真芯片)。此外,进一步增强了STC-ISP在线编程软件的功能(目前版本为V686L),该软件包含了项目发布、脱机下载、RS-485下载、程序加密后传输下载等功能。
STC全力支持我国的单片机/嵌入式系统教育事业,STC大学推广计划正在如火如荼地进行中,陆续开展向普通高等学校电子信息、自动化等相关专业赠送可仿真的STC系列实验箱,共建STC高性能单片机联合实验室的项目。部分已建或在建STC高性能单片机联合实验室的高校有:北京航空航天大学、南京航空航天大学、北京理工大学、上海交通大学、同济大学、中山大学、天津大学、哈尔滨工业大学、哈尔滨工业大学〈威海〉、东北大学、吉林大学、兰州大学、山东大学、湖南大学、西北农林科技大学、中国石油大学、华北电力大学、深圳大学、杭州电子科技大学、桂林电子科技大学、西安电子科技大学、电子科技大学、北京化工大学等高等学校,以及深圳职业技术学院等著名的职业院校。
1对大学计划与单片机教学的看法
STC公司正有步骤地推动大学计划向前推进:相继支持国内多个采用STC系列单片机的电子设计竞赛活动和学生的创新活动;在国内数十所高校成立了联合实验室;与国内高校教师进行密切的产学研合作,出版了多部STC系列单片机相关的教材和著作。
现在学校的学生应该首先学习32位的微控制器还是8位的8051单片机呢?个人觉得还是8051单片机比较合适。因为高校的嵌入式课程一般只有48个学时,学生如果能够充分利用这些学时,把8051单片机学懂,真正做出产品,工作以后就能触类旁通了。但是,如果只给他们48个学时学习ARM,学生是不能够完全学懂的,多只能搞些函数调用,培养不出真正动手的能力。所以,还是应该以8位单片机入门。C语言好与8051单片机融合教学,尽早开始此课程(比如在一年级开始学习)。等到大学三年级,学有余力的学生可以再选修32位的嵌入式课程。
2对大学工科非计算机专业C语言教学的看法
现在工科非计算机专业讲C语言的课程多是“在空中飘着,落不着地”,学完之后不知道干什么。以前我们学习BASIC/C语言,学完后在DOS系统下开发软件。而现在的学生学完C语言,还要从Windows返回DOS运行,所学的C语言也不能在8051单片机上运行。嵌入式C语言有多个版本,国内流行Keil C;现在我们也在开发自己的C编译器。我们现在推动教学改革,将单片机和C语言(嵌入式C语言、面向控制的C语言)安排在同一门课程中学习,在大学一年级的学期就开设,学生学完后就知道将来能够干什么了,大学一年级的第二学期再开设Windows下的C 语言开发课程,正好利用单片机 C语言奠定的基础。学习过模电/数电(FPGA)/数据结构/ 实时操作系统(RTOS)/自动控制原理/数字信号处理等课程后,在大学三年级时再开一门综合电子系统设计课程,这样就能够循序渐进地培养出真正动手实践的人才了。我们现在的主要工作是推动工科非计算机专业高校的教学改革,何宾老师的这本教材就是我们教学改革研究成果的优秀代表。
感谢Intel公司发明了经久不衰的8051体系结构,感谢何宾老师采用STC8系列单片机撰写这本具备改革特色的新书,保证了中国30年来的单片机教学和应用与世界同步。
我们将本书确定为STC公司大学计划推荐教材和STC单片机大赛指定教材。采用本书作为教材的院校将优先免费获得我们提供的可仿真的STC8系列实验箱(主控芯片STC8A8K64S4A12)。
后,希望广大教师和学生“明知山有虎,偏向虎山行!”
Andy姚(STC MCU Limited)2018年4月前言
前言
本书以STC公司的STC8系列单片机为平台,以8051处理器架构、指令集、汇编和C语言程序设计为主线,从外设到μC/OS-II操作系统全方位、多角度系统地介绍了STC8系列单片机的硬件和软件开发流程。
从某种意义上而言,STC8系列单片机开启了8051单片机的崭新时代。与STC公司前一代的STC15系列8051增强型单片机相比,STC8系列单片机呈现出以下新的特点:
(1)增强了双数据指针DPTR的选择和控制功能。通过程序控制,可实现数据指针自动递增或递减功能,以及对两组数据指针的自动切换功能。
(2)将传统8051单片机内特殊功能寄存器SFR扩展到了扩展特殊功能寄存器XSFR,进一步增强了处理器对单片机集成外设的控制能力,这也增强了C语言指针的应用。
(3)进一步增强了中断优先级的控制能力,为STC8系列单片机的每个中断源设置了多达4个的中断优先级,这样可以实现更复杂的中断嵌套能力。
(4)进一步增强了I/O的能力,增加了上拉电阻及施密特触发器的控制能力。此外,为单片机内所集成的外设提供了更多的I/O引脚可选位置。
(5)新集成了I2C控制器模块,使得单片机可以与更多的I2C设备直接接口。以后读者无须再通过模拟I2C时序来与I2C设备通信。这样,进一步释放了8051内CPU的潜力。
(6)进一步提高了片内所集成的ADC模块的性能,其分辨率从10位提高到12位,并且采样率也有了很大的提高。
(7)进一步增加了PWM的通道数量,满足在复杂电机驱动和控制中的应用。
(8)进一步增加了CCP模块的通道数量,以满足复杂捕获、比较和PWM的应用功能。
(9)将片内扩展SRAM的容量由4KB增加到了8KB。
与STC8系列单片机增强功能相对应,在编著者已经出版的《STC单片机原理及应用》教材的基础上,修改和增加以下内容,使得该书能更全面系统地反映单片机在不同领域中的应用:
(1)增加了单片机和嵌入式系统基础知识一章,目的在于帮助读者理解单片机与嵌入式系统之间的联系和区别。
(2)将STC单片机开发所需的基础知识分为STC单片机硬件知识和STC单片机软件开发环境两章,目的是帮助读者从整体上认识开发单片机所需的知识,以及初步熟悉基于Keil μVision 5集成开发环境的STC单片机软件开发流程。
(3)将STC单片机I/O端口原理及驱动单独编写为一章,以帮助读者深入理解I/O驱动原理、驱动模式设置、上拉电阻设置以及施密特触发器设置等内容。
(4)将STC单片机中断系统原理及实现单独编写为一章,增加了4个中断优先级的设置内容,并中断嵌套的实现方法之处。
(5)在STC单片机增强型PWM发生器原理及应用一章中,增加了使用软件和硬件PWM模块驱动步进电机的方法,以帮助读者掌握增强型PWM模块在电机驱动和控制中的应用,并理解软件和硬件PWM原理的不同之处。
(6)增加了STC单片机I2C原理及实现一章,详细介绍STC8系列单片机所集成I2C模块的原理,以及通过I2C模块扩展I/O引脚的
评论
还没有评论。