《普通高校“十二五”规划教材:智能化测量控制仪表原理与设计(第3版)》在第2版的基础上做了修订,全面系统地阐述了基于80C5P单片机的智能化测量控制仪表基本原理与设计方法。介绍了新一代增强型80C5P单片机的基础知识以及汇编语言和KeilC51高级语言应用程序设计方法。详细论述了智能化测量控制仪表的人机接口、过程通道接口、串行通信接口、硬件和软件抗干扰技术、测控算法与数据处理技术、仪表硬件及软件的设计方法。给出了大量实用硬件电路和软件程序。还介绍了一种新型的Proteljs虚拟仿真平台以及与Keil μ Visior、集成开发环境相配合,进行单片机应用系统自我开发的方法。《普通高校“十二五”规划教材:智能化测量控制仪表原理与设计(第3版)》可作为高等院校工业自动化与仪表、电子测量仪器、计算机应用等相关专业的教学用书,也可供从事开发研制智能化测量控制仪表的工程技术人员阅读参考。
第1章 绪 论
1.1 智能化测量控制仪表的基本组成及其发展
1.2 智能化测量控制仪表的功能特点
1.3 智能化测量控制仪表的设计方法
复习思考题
第2章 智能化测量控制仪表中的专用微处理器
2.1 80C51系列单片机的特点
2.2 80C51单片机的结构
2.2.1 基本组成与内部结构
2.2.2 引脚功能
2.3 80C51单片机的存储器结构
2.4 80C51单片机的CPU时序
2.5 80C51单片机的复位信号与复位电路
2.6 80C51单片机的并行I/O口
2.7 80C51单片机的指令系统
2.7.1 指令和助记符
2.7.2 指令的字节数
2.7.3 寻址方式
2.7.4 指令分类详解
2.8 80C51单片机的汇编语言程序设计与实用于程序
2.8.1 汇编语言格式与伪指令
2.8.2 应用程序设计
2.8.3 定点数运算子程序
2.9 80C51单片机的定时器/计数器
2.9.1 定时器/计数器的控制寄存器与逻辑结构
2.9.2 定时器/计数器应用举例
2.10 80C51单片机的串行口
2.10.1 串行通信方式与串行口控制寄存器,
2.10.2 串行口应用举例
2.11 80C51单片机的中断系统
2.11.1 中断的概念
2.11.2 中断申请与控制
2.11.3 中断响应
2.11.4 中断系统应用举例
2.12 80C51单片机的节电工作方式
2.12.1 空闲方式和掉电方式
2.12.2 节电方式的应用
2.13 80C51单片机的系统扩展
2.13.1 程序存储器扩展
2.13.2 数据存储器扩展
2.13.3 并行I/O端口扩展
2.13.4 利用I2C总线进行系统扩展
2.14 新型FLASH单片机简介
2.14.1 Atmel公司的AT89X51
2.14.2 NXP公司的89C51RD2
2.14.3 SST公司的89E564RD
复习思考题
第3章 单片机高级语言Keil C51应用程序设计
3.1 Keil C5l程序设计的基本语法
3.1.1 Keil C51程序的一般结构
3.1.2 数据类型
3.1.3 常量、变量及其存储模式
3.1.4 运算符与表达式
3.2 C51程序的基本语句
3.2.1 表达式语句
3.2.2 复合语句
3.2.3 条件语句
3.2.4 开关语句
3.2.5 循环语句
3.2.6 goto、break、continue语句
3.2.7 返回语句
……
第4章 智能化测量控制仪表的DAC和ADC接口
第5章 智能化测量控制仪表的键盘与显示器接口技术
第6章 智能化测量控制仪表的通信接口
第7章 智能化测量控制仪表的抗干扰技术
第8章 智能化测量控制仪表中的常用测量与控制算法
稍有编程经验的人都会有这样的概念:若程序中某一段落内的任何逻辑部分,可以任意更改而不影响程序的其余部分,这样的一个程序段可以看作为一个可调用的子程序,这就是一个程序模块。把整个程序按照自顶向下的设计来分层,一层一层地分下去,一直分到最下一层的每个模块能够容易地编码时为止。这就是所谓模块化编程,也就是积木式编程法。其优点是:
较之整个程序,单个模块易于编码,也易于调试,易于排除差错和检验、维修。
一个模块往往可用于整个程序的好几个地方,甚至可用于其他程序。
便于程序设计任务的划分,困难的模块让有经验的编程员来承担编写,较容易的模块可以给经验较少的新手来编写。此外,还可利用以前编好的程序模块。
遇到出错时,能够十分方便地诊断出出错的模块。
在进行模块化编程时应遵循两个原则:
模块的独立性,即一个模块应尽可能独立于其他模块,一个模块内部的更改不应影响其他模块。应尽量使模块只有一个人口和一个出口。
一个模块应具有解决一个问题的完整算法,具有容许输入值的范围和容许输出值的范围,当出错时应能给出一个出错信息。
模块化编程的优点是十分明显的,但也有一些缺点。例如,设计时常常需要多方考虑,因此常要额外多做不少工作。程序执行时往往占有较多的内存空间和需要较多的CPU时间,其原因一是通用化的子程序必然比专用于程序效率低一些。其次是由于模块独立性的要求,可能使相互独立的各模块中有重复的功能。此外,由于模块划分时考虑不周,容易使各模块汇编在一起时发生连接上的困难,特别是当各模块分别由几个人编程时尤为常见。
在第一章 中曾经指出,结构化程序设计中有3种基本结构,即顺序结构、选择结构和循环结构。从理论上来说采用这3种基本结构可设计出任意复杂的程序。
……