本书第2版3级目录
第2版前言
第1版前言
第1篇 5工单片机开发的背景、环境和工具
第1章 单片机与5P单片机
1.1 单片机概述
1.2 51单片机概述
1.3 Atmel公司的51单片机
1.4 宏晶公司的5l单片机
1.4.1 STC89和S7C90系列
1.4.2 STCl0和S7C11系列
1.4.3 STCl2系列
第2章 uVision集成开发环境
2.1 uVision的配置方案和安装目录
2.2 uVision的主要构成
2.3 uVision中的主要软件工具
2.3.1 项目管理器
2.3.2 编辑器
2.3.3 宏汇编器
2.3.4 C51编译器
2.3.5 连接定位器
2.3.6 调试器和软件模拟器
2.3.7 仿真监控程序和高级GDI界面
2.3.8 文件转换器
2.3.9 库管理器
2.4 uVision中的其他资源
2.4.1 函数库
2.4.2 头文件
2.4.3 RTX51多任务实时操作系统
2.4.4 样例程序
2.4.5 说明和帮助文件
2.5 uVision的两种工作状态
2.6 菜单和uVision的其他操作手段
2.7 工具栏和工具按钮
2.8 主要工作窗口和对话框
2.8.1 项目工作区及其中的5个页面
2.8.2 用户区、源文件窗口和反汇编窗口
2.8.3 输出窗口及其中的3个页面
2.8.4 项目/文件组/文件选项设置对话框
2.8.5 源浏览窗口
2.8.6 存储器窗口
2.8.7 监视与堆栈调用窗口
2.8.8 外围设备对话框
2.8.9 串口窗口
2.8.10 符号窗口
2.8.11 代码覆盖分析窗口
2.8.12 性能分析器窗口
2.8.13 逻辑分析仪窗口
第3章 单片机应用系统的开发及工具
3.1 概述
3.2 Keil仿真器
3.2.1 Keil仿真器的结构与使用
3.2.2 仿真芯片及其中的固件
3.2.3 在实验主板上直接使用仿真芯片
3.3 编程下载装置
3.3.1 廉价编程下载装置概述
3.3.2 在实验主板上直接用STC单片机进行程序下载
3.4 ISD51在线调试器及其使用
3.4.1 ISD51在线调试概述
3.4.2 ISD51在线调试的工作机制
3.4.3 ISD51提供的调试函数和调试实现步骤
3.4.4 ISD51在线调试举例
3.5 STC仿真器
第4章 51实验板介绍
4.1 板上的实验资源
4.2 总体结构和元器件布局
4.3 各跳线器和插孔的功能
4.4 各单元电路的结构及使用
4.4.1 CPU及周边电路
4.4.2 存储器资源
4.4.3 LED显示
4.4.4 数码显示
4.4.5 按键和开关输入
4.4.6 一批串行连接的芯片
4.4.7 输出机构
4.4.8 两种串行异步通信电路及其接口
4.4.9 外引总线
4.4.10 供电
4.5 实验板的常态设置和使用注意
第2篇 C51程序设计及程序处理
第5章 从标准C到C51
5.1 C51与标准C的简单比较
5.2 C51扩展的关键字
5.3 C51中的代码和数据
5.3.1 存储区域和访问方式
5.3.2 编译模式
5.3.3 数据的分类和构成
5.3.4 定义变量的绝对地址
5.3.5 指针
5.4 C51中的函数
5.4.1 函数定义的一般形式
5.4.2 函数参数与返回值的传递
5.4.3 工作寄存器组的使用
5.4.4 中断函数
5.4.5 可重入函数
5.4.6 代码优化
第6章 库函数和头文件
6.1 概述
6.2 在头文件中定义的数据和数据类型
6.2.1 头文件REG52.H
6.2.2 头文件ABSACC.H
6.2.3 头文件STDARG.H
6.2.4 头文件FLOAT.H
6.2.5 头文件STDDEF.H
6.2.6 头文件ASSERT.H
6.3 头文件CTYPE.H和字符操作函数
6.4 头文件STRING.H和串操作函数
6.5 头文件STDIO.H和标准输入输出函数
6.5.1 scanf()函数
6.5.2 printf()函数
6.5.3 _getkey()函数
6.5.4 putchar()函数
6.6 头文件STDLIB.H和标准杂函数
6.7 头文件MATH.H和数学函数
6.8 头文件INTRINS.H和内联函数
6.9 头文件SETJMP.H和全程跳转函数
6.10 C51的启动文件和初始化文件
6.10.1 启动文件STARTUP.A51
6.10.2 初始化文件INIT.A51
第7章 编译预处理和编译控制
7.1 编译预处理
7.2 编译控制
7.2.1 编译的文件产物
7.2.2 编译控制命令的分类和实现
7.2.3 编译控制命令的具体描述
第8章 混合编程
8.1 C51程序的制作过程
8.2 段的属性和段名前缀
8.3 数据目标
8.4 程序目标
8.4.1 程序目标中的3种段
8.4.2 程序目标中的函数参数
8.5 在C51程序中插入汇编行
8.6 编写带C51接口的汇编模块
8.6.1 一个具体例子
8.6.2 汇编模块制作方法讨论
第9章 RTX51实时操作系统及其使用
9.1 多任务系统概述
9.2 任务的状态和任务的调度
9.3 RTX51-TINY提供的主要文件
9.4 RTX51-TINY提供的功能函数
9.4.1 任务管理函数
9.4.2 事件等待函数和事件
9.4.3 信号控制函数和信号
9.5 RTX51-TINY的系统配置
9.6 RTX51-TINY的应用举例
第3篇 uVision下的典型操作和程序调试
第10章 uVision下的典型设置和典型操作
10.1 项目的创建、打开和关闭
10.2 项目选项的设置
10.3 项目中的文件及文件操作属性的设置
10.4 项目制作
10.5 项目调试
10.6 项目管理
10.7 编辑器设置和编辑辅助功能
10.7.1 编辑器配置
10.7.2 uVision提供的编辑辅助功能
第11章 uVision中的程序调试
11.1 两种调试模式的应用特点及适用范围
11.2 存储器映射
11.2.1 uVision提供的仿真存储空间
11.2.2 映射方案及映射项目的访问属性
11.2.3 存储器映射对话框及其操作
11.3 程序运行控制及断点操作
11.3.1 uVision对程序运行的控制
11.3.2 断点分类及抵达断点时的判断和操作
11.3.3 断点对话框及其操作
11.4 基于图形界面的调试操作
11.5 uVision表达式、表达式命令及其构成
11.5.1 常量
11.5.2 符号概述
11.5.3 地址与地址符号
11.5.4 系统定义的变量和符号
11.5.5 用户定义的变量和符号
11.5.6 运算符及其操作属性
11.5.7 表达式命令及其应用
11.6 uVision中的调试命令
11.6.1 调试命令的分类概述
11.6.2 断点命令及其应用
11.6.3 程序命令及其应用
11.6.4 存储器命令及其应用
11.6.5 监视点命令及其应用
11.6.6 一般命令及其应用
11.7 uVision中的调试函数
11.7.1 调试函数概述
11.7.2 调试命令与调试函数的比较
11.7.3 调试函数与用户程序中C函数的比较
11.7.4 调试函数的编辑、编译和运行
11.7.5 调试函数中的预定义函数
11.7.6 调试函数中的信号函数
11.7.7 调试函数中的用户函数
11.8 在uVision中调用外部程序并向它传递参数
11.8.1 在uVision中何时会用到对外部程序的调用
11.8.2 通过命令行中的键序列向外部程序传递参数
11.8.3 通过自定义工具菜单访问外部程序
11.8.4 通过安装配置VSS 6.0实现软件版本控制
11.9 调试手段综合应用举例
11.9.1 软件模拟调试——串口输入输出
11.9.2 软件模拟调试——并口输入输出
11.9.3 软件模拟调试——定时/计数器操作和外中断操作
11.9.4 软件模拟调试——用A/D转换通道作键盘接口
第4篇 C51程序设计实践与实例
第12章 软件模拟实验
12.1 实验R1——代码转换
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R1.1】分离多字节压缩BCD码(汇编)
【例R1.2】采用直接地址访问分离多字节压缩BCD码(C51)
【例R1.3】采用变量操作分离多字节压缩BCD码(C51)
【例R1.4】分离多字节压缩BCD码并用标准I/O函数输入/输出(C51)
12.2 实验R2——多字节数加减
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R2.1】3字节二进制数相加(汇编)
【例R2.2】3字节BCD码数相加(汇编)
【例R2.3】3字节BCD码数相减(C51)
12.3 实验R3——批量数据的统计和排序
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R3.1】统计批量数据中的正数、零和负数(汇编)
【例R3.2】统计批量数据中的正数、零和负数(C51)
【例R3.3】将一批单字节无符号数从小到大排序(汇编)
【例R3.4】将一批单字节无符号数从小到大排序(C51)
12.4 实验R4——查表程序
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R4.1】用指令movc a,@a+dptr查单字节表求菲波那奇数(汇编)
【例R4.2】用指令movc a,@a+pc查单字节表求菲波那奇数(汇编)
【例R4.3】查双字节表求正弦函数(汇编)
【例R4.4】查双字节表求正弦函数(C51)
11.5 实验R5——软件延时及子程序调用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R5.1】编写延时10ms子程序并对其进行调用(汇编)
【例R5.2】编写延时函数并对其进行调用(C51)
12.6 实验R6——模拟定时器的计数操作和外中断事件
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R6.1】通过软件仿真模拟定时器的计数操作(汇编)
【例R6.2】通过软件仿真模拟定时器的计数操作(C51)
【例R6.3】通过软件仿真模拟外中断事件(C51)
第13章 针对实验主板的硬件实验
13.1 实验Y1——单个I/O引脚的输入输出
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y1.1】INT1按键控制有源蜂鸣器鸣响(C51)
【例Y1.2】发光数码管循环显示十六进制数码0~F(C51)
13.2 实验Y2——P0口操作和LED显示
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y2.1】用P0口I/O操作实现8位LED左流水点亮(C51)
【例Y2.2】用总线操作方式实现16位LED右流水点亮(C51)
13.3 实验Y3——开关量输入和键盘操作
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y3.1】用LED显示拨动开关的状态(C51)
【例Y3.2】带换档功能的8键键盘的识别(C51)
13.4 实验Y4——外部RAM的读写
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y4.1】读写外部扩展的静态RAM芯片6264(C51)
13.5 实验Y5——中断应用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y5.1】用外中断按键INT1改变LED流水显示的方向(C51)
【例Y5.2】使用外中断INT1键和INT0键分别进行计数和清0操作(C51)
13.6 实验Y6——定时器应用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y6.1】用查询定时器溢出标志的方法控制流水灯显示的节奏(C51)
【例Y6.2】用定时器中断控制流水灯显示的节奏(C51)
【例Y6.3】用定时器和无源蜂鸣器演奏新疆民歌“美丽的姑娘”(C51)
【例Y6.4】用无源蜂鸣器演奏带半音的转调乐曲“在银色的月光下”(C51)
13.7 实验Y7——串口应用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y7.1】通过实验板上的RS-232串口实现串行数据的自发自收(C51)
【例Y7.2】通过RS-232串口实现PC机与实验板之间的双向通信(C51)
13.8 实验Y8——用脉宽调制实现D/A转换
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y8.1】利用PWM原理实现分档键控D/A转换(C51)
【例Y8.2】利用PWM原理实现近似的锯齿波输出(C51)
13.9 实验Y9——风扇转速的测量和控制
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y9.1】通过霍尔器件和INT0中断测试直流风扇的每秒转速(C51)
【例Y9.2】用按键实现对风扇转速的分档控制(C51)
【例Y9.3】采用简单控制策略将风扇转速控制在设定值(C51)
13.10 实验Y10——脉冲参数的测量
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y10.1】测试霍尔器件产生的脉冲周期、高电平持续时间和占空比(C51)
13.11 实验Y11——串口实时时钟芯片DS1302的使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y11.1】对串口实时时钟芯片DS1302进行多种操作(C51)
【例Y11.2】利用16键扩展键盘设置DS1302中的时间数据(C51)
13.12 实验Y12——I2C口E2PROM芯片AT24C02的使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y12.1】对带I2C口的E2PROM芯片AT24C02进行写/读操作(C51)
13.13 实验Y13——SPI口E2PROM芯片AT93C46的使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y13.1】对带SPI口的E2PROM芯片93C46进行8位写/读操作(C51)
13.14 实验Y14——SPI口A/D转换芯片0832的使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y14.1】对带SPI串口的A/D转换芯片ADC0832进行操作(C51)
13.15 实验Y15——单总线数字测温芯片DS18B20的使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y15.1】对1片单总线数字测温芯片DS18B20进行相关操作(C51)
【例Y15.2】针对1片18B20设置数据/读取数据并进行CRC校验(C51)
【例Y15.3】搜索总线上所有DS18B20并进行相关操作(C51)
13.16 实验Y16——键控数字钟
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y16.1】用4个按键实现键控24小时整点报时数字钟(C51)
13.17 实验Y17——C51与汇编语言的混合编程
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y17.1】在程序中嵌入汇编行(混合)
【例Y17.2】在程序中嵌入汇编模块,实现RS-485单工通信(混合)
13.18 实验Y18——自建函数库及其使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y18.1】用自制函数库实现“带换档功能的8键键盘的识别”(C51)
13.19 实验Y19——实时操作系统RTX51-Tiny及多任务编程
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y19.1】蜂鸣器奏乐、数码管循环显示、LED流水显示的并行操作(C51)
【例Y19.2】用RTX51-Tiny和多任务编程实现键控数字钟(C51)
第14章 针对扩展板的硬件实验
14.1 实验K1——8255/矩阵键盘/数码动态显示扩展板实验
【实验目的】
【实验内容和要求】
【实验电路】
【实验指导及说明】
【例K1.1】8255扩展板上8个数码管的动态扫描显示(C51)
【例K1.2】8255扩展板上16键键盘的逐行扫描识别和键值显示(C51)
14.2 实验K2——液晶显示扩展板实验
【实验目的】
【实验内容和要求】
【实验电路】
【实验指导及说明】
【例K2.1】通过I/O访问在1602A液晶屏上显示西文字符(C51)
【例K2.2】通过总线访问在1602A液晶屏上显示动态时间数据(C51)
【例K2.3】通过总线访问在12232A液晶屏上显示粗细不断变化的线条(C51)
【例K2.4】通过I/O访问在12864C液晶屏上显示汉字和动态测温数据(C51)
14.3 实验K3——语音录放扩展板实验
【实验目的】
【实验内容和要求】
【实验电路】
【实验指导及说明】
【例K3.1】用APR9600随机存取模式进行8段键控录音和放音(C51)
【例K3.2】用APR9600录音带模式实现顺序录音和顺序放音(C51)
【例K3.3】用ISD1420和两个程序分别实现录音及语音播报当前温度(C51)
【例K3.4】用ISD4002实现录音和语音播报直流风扇的每秒转速(C51)
14.4 实验K4——步进电机扩展板实验
【实验目的】
【实验内容和要求】
【实验电路】
【实验指导及说明】
【例K4.1】两相微型步进电机的4拍驱动和8拍驱动(C51)
14.5 实验K5——单片机操作U盘文件和目录
【实验目的】
【实验内容和要求】
【实验电路】
【实验指导及说明】
【例K5.1】单片机对U盘文件/目录的管理和操作(C51)
14.6 实验K6——汉字菜单、数码输入和键盘功能的典型配置
【实验目的】
【实验内容和要求】
【实验电路】
【实验指导及说明】
【例K6.1】一个演示汉字菜单、数码输入和键盘功能典型配置的程序(C51)
附录A 51单片机分类指令表
附录B 7位ASCII码表
附录C 系统配置及检测/演示芯片的使用
附录D 关于本书电路图的几点说明
参考文献
本书第1版3级目录
前言
上篇 51单片机开发的背景、环境和工具
第1章 51单片机与AT89S51/52
1.1 单片机概述
1.2 51单片机
1.3 AT89S51/52单片机
第2章 μVision集成开发环境
2.1 μVision的配置方案和安装目录
2.2 μVision的主要构成
2.3 μVision中的主要软件工具
2.3.1 项目管理器
2.3.2 编辑器
2.3.3 宏汇编器
2.3.4 C51编译器
2.3.5 连接定位器
2.3.6 调试器和软件模拟器
2.3.7 仿真监控程序和高级GDI界面
2.3.8 文件转换器
2.3.9 库管理器
2.4 uVision中的其他资源
2.4.1 函数库
2.4.2 头文件
2.4.3 RTX51多任务实时操作系统
2.4.4 样例程序
2.4.5 说明和帮助文件
2.5 μVision的两种工作状态
2.6 菜单和μVision的其它操作手段
2.7 工具栏和工具按钮
2.8 主要工作窗口和对话框
2.8.1 项目工作区及其中的5个页面
2.8.2 用户区、源文件窗口和反汇编窗口
2.8.3 输出窗口及其中的3个页面
2.8.4 项目/文件组/文件选项设置对话框
2.8.5 源浏览窗口
2.8.6 存储器窗口
2.8.7 监视与堆栈调用窗口
2.8.8 外围设备对话框
2.8.9 串口窗口
2.8.10 符号窗口
2.8.11 代码覆盖窗口
2.8.12 性能分析器窗口
2.8.13 逻辑分析仪窗口
第3章 仿真器和编程下载装置
3.1 Keil仿真器
3.1.1 Keil仿真器的结构与使用
3.1.2 仿真芯片及其中的固件
3.1.3 在实验主板上直接使用仿真芯片
3.2 编程下载装置
3.2.1 一款简易编程器
3.2.2 在实验主板上直接使用UART串口下载芯片
第4章 51实验板介绍
4.1 板上的实验资源
4.2 总体结构和元器件布局
4.3 各跳线器和插孔的功能
4.4 各单元电路的结构及使用
4.4.1 CPU及周边电路
4.4.2 存储器资源
4.4.3 LED显示
4.4.4 数码显示
4.4.5 按键和开关输入
4.4.6 一批串行连接的芯片
4.4.7 输出机构
4.4.8 两种串行异步通信电路和接口
4.4.9 外引总线
4.4.10 供电
4.5 实验板的常态设置和使用注意
中篇 C51程序设计及程序处理
第5章 从标准C到C51
5.1 C51与标准C的简单比较
5.2 C51扩展的关键字
5.3 C51中的代码和数据
5.3.1 存储区域和访问方式
5.3.2 编译模式
5.3.3 数据的分类和构成
5.3.4 定义变量的绝对地址
5.3.5 指针
5.4 C51中的函数
5.4.1 函数定义的一般形式
5.4.2 函数参数与返回值的传递
5.4.3 工作寄存器组的使用
5.4.4 中断函数
5.4.5 可重入函数
5.4.6 代码优化
第6章 库函数和头文件
6.1 概述
6.2 在头文件中定义的数据和数据类型
6.2.1 头文件REG52.H
6.2.2 头文件ABSACC.H
6.2.3 头文件STDARG.H
6.2.4 头文件FLOAT.H
6.2.5 头文件STDDEF.H
6.2.6 头文件ASSERT.H
6.3 头文件CTYPE.H和字符操作函数
6.4 头文件STRING.H和串操作函数
6.5 头文件STDIO.H和标准输入输出函数
6.5.1 scanf()函数
6.5.2 printf()函数
6.5.3 _getkey()函数
6.5.4 putchar()函数
6.6 头文件STDLIB.H和标准杂函数
6.7 头文件MATH.H和数学函数
6.8 头文件INTRINS.H和内联函数
6.9 头文件SETJMP.H和全程跳转函数
6.10 C51的启动文件和初始化文件
6.10.1 启动文件STARTUP.A51
6.10.2 初始化文件INIT.A51
第7章 编译预处理和编译控制
7.1 编译预处理
7.2 编译控制
7.2.1 编译的文件产物
7.2.2 编译控制命令的分类和实现
7.2.3 编译控制命令的具体描述
第8章 混合编程
8.1 C51程序的制作过程
8.2 段的属性和段名前缀
8.3 数据目标
8.4 程序目标
8.4.1 程序目标中的3种段
8.4.2 程序目标中的函数参数
8.5 在C51程序中插入汇编行
8.6 编写带C51接口的汇编模块
8.6.1 一个具体例子
8.6.2 汇编模块制作方法讨论
第9章 RTX51实时操作系统及其使用
9.1 多任务系统概述
9.2 任务的状态和任务的调度
9.3 RTX51-Tiny提供的主要文件
9.4 RTX51-Tiny提供的功能函数
9.4.1 任务管理函数
9.4.2 事件等待函数和事件
9.4.3 信号控制函数和信号
9.5 RTX51-Tiny的系统配置
9.6 RTX51-Tiny的应用举例
下篇 C51程序设计实践与实例
第10章 μVision下的典型设置和典型操作
10.1 项目的创建、打开和关闭
10.2 项目选项的设置
10.3 项目中的文件及文件操作属性的设置
10.4 项目制作
10.5 项目调试
10.6 项目管理
10.7 编辑器设置
第11章 软件模拟实验
11.1 实验R1——代码转换
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R1.1】分离多字节压缩BCD码(汇编)
【例R1.2】采用直接地址访问分离多字节压缩BCD码(C51)
【例R1.3】采用变量操作分离多字节压缩BCD码(C51)
【例R1.4】分离多字节压缩BCD码并用标准I/O函数输入/输出(C51)
11.2 实验R2——多字节数加减
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R2.1】3字节二进制数相加(汇编)
【例R2.2】3字节BCD码数相加(汇编)
【例R2.3】3字节BCD码数相减(C51)
11.3 实验R3——批量数据的统计和排序
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R3.1】统计批量数据中的正数、零和负数(汇编)
【例R3.2】统计批量数据中的正数、零和负数(C51)
【例R3.3】将一批单字节无符号数从小到大排序(汇编)
【例R3.4】将一批单字节无符号数从小到大排序(C51)
11.4 实验R4——查表程序
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R4.1】用指令movc a,@a+dptr查单字节表求菲波那奇数(汇编)
【例R4.2】用指令movc a,@a+pc查单字节表求菲波那奇数(汇编)
【例R4.3】查双字节表求正弦函数(汇编)
【例R4.4】查双字节表求正弦函数(C51)
11.5 实验R5——软件延时及子程序调用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R5.1】编写延时10ms子程序并对其进行调用(汇编)
【例R5.2】编写延时函数并对其进行调用(C51)
11.6 实验R6——模拟定时器的计数操作和外中断事件
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例R6.1】通过软件仿真模拟定时器的计数操作(汇编)
【例R6.2】通过软件仿真模拟定时器的计数操作(C51)
【例R6.3】通过软件仿真模拟外中断事件(C51)
第12章 针对实验主板的硬件实验
12.1 实验Y1——单个I/O引脚的输入输出
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y1.1】INT1按键控制有源蜂鸣器鸣响(C51)
【例Y1.2】发光数码管循环显示十六进制数码0~F(C51)
12.2 实验Y2——P0口操作和LED显示
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y2.1】用P0口I/O操作实现8位LED左流水点亮(C51)
【例Y2.2】用总线操作方式实现16位LED右流水点亮(C51)
12.3 实验Y3——开关量输入和键盘操作
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y3.1】用LED显示拨动开关的状态(C51)
【例Y3.2】带换档功能的8键键盘的识别(C51)
12.4 实验Y4——外部SRAM芯片的读写
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y4.1】读写外部扩展的静态RAM芯片6264(C51)
12.5 实验Y5——中断应用
【例Y5.1】用外中断按键INT1改变LED流水显示的方向(C51)
【例Y5.2】使用外中断INT1键和INT0键分别进行计数和清0操作(C51)
12.6 实验Y6——定时器应用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y6.1】用查询定时器溢出标志的方法控制流水灯显示的节奏(C51)
【例Y6.2】用定时器中断控制流水灯显示的节奏(C51)
【例Y6.3】用定时器和无源蜂鸣器演奏新疆民歌“美丽的姑娘”(C51)
【例Y6.4】用无源蜂鸣器演奏带半音的转调乐曲“在银色的月光下”(C51)
12.7 实验Y7——串口应用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y7.1】通过实验板上的RS-232串口实现串行数据的自发自收(C51)
【例Y7.2】通过RS-232串口实现PC机与实验板之间的双向通信(C51)
12.8 实验Y8——用脉宽调制实现D/A转换
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y8.1】利用PWM原理实现分档键控D/A转换(C51)
【例Y8.2】利用PWM原理实现近似的锯齿波输出(C51)
12.9 实验Y9——风扇转速的测量和控制
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y9.1】通过霍尔器件和INT0中断测试直流风扇的每秒转速(C51)
【例Y9.2】用按键实现对风扇转速的分档控制(C51)
【例Y9.3】采用简单控制策略将风扇转速控制在设定值(C51)
12.10 实验Y10——脉冲参数的测量
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y10.1】测试霍尔器件产生的脉冲周期、高电平持续时间和占空比(C51)
12.11 实验Y11——串口实时时钟芯片DS1302的使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y11.1】对串口实时时钟芯片DS1302进行多种操作(C51)
12.12 实验Y12——I2C口E2PROM芯片AT24C02的使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y12.1】对带I2C口的E2PROM芯片AT24C02进行写/读操作(C51)
12.13 实验Y13——SPI口E2PROM芯片AT93C46的使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y13.1】对带SPI口的E2PROM芯片93C46进行8位写/读操作(C51)
12.14 实验Y14——SPI口A/D转换芯片0832的使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y14.1】对带SPI口的A/D转换芯片ADC0832进行操作(C51)
12.15 实验Y15——单总线数字测温芯片DS18B20的使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y15.1】对1片单总线数字测温芯片DS18B20进行相关操作(C51)
【例Y15.2】针对1片18B20设置数据、读取数据,并进行CRC校验(C51)
【例Y15.3】搜索总线上所有DS18B20并进行相关操作(C51)
12.16 实验Y16——键控数字钟
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y16.1】用4个按键实现键控24小时整点报时数字钟(C51)
12.17 实验Y17——C51与汇编语言的混合编程
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y17.1】在程序中嵌入汇编行(混合)
【例Y17.2】在程序中嵌入汇编模块,实现RS-485单工通信(混合)
12.18 实验Y18——自建函数库及其使用
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y18.1】用自建函数库实现“带换档功能的8键键盘的识别”(C51)
12.19 实验Y19——实时操作系统RTX51-Tiny及多任务编程
【实验目的】
【实验内容和要求】
【实验指导及说明】
【例Y19.1】蜂鸣器奏乐、数码管循环显示、LED流水显示的并行操作(C51)
【例Y19.2】用RTX51-Tiny和多任务编程实现键控整点报时数字闹钟(C51)
第13章 针对扩展板的硬件实验
13.1 实验K1——8255/矩阵键盘/数码动态显示扩展板实验
【实验目的】
【实验内容和要求】
【实验电路】
【实验指导及说明】
【例K1.1】8255扩展板上8个数码管的动态扫描显示(C51)
【例K1.2】8255扩展板上16键键盘的逐行扫描识别和键值显示(C51)
13.2 实验K2——液晶显示扩展板实验
【实验目的】
【实验内容和要求】
【实验电路】
【实验指导及说明】
【例K2.1】通过I/O访问在1602A液晶屏上显示西文字符(C51)
【例K2.2】通过总线访问在1602A液晶屏上显示动态时间数据(C51)
【例K2.3】通过总线访问在12232A液晶屏上显示粗细不断变化的线条(C51)
【例K2.4】通过I/O访问在12864C液晶屏上显示汉字和动态测温数据(C51)
13.3 实验K3——语音录放扩展板实验
【实验目的】
【实验内容和要求】
【实验电路】
【实验指导及说明】
【例K3.1】用APR9600随机存取模式进行8段键控录音和放音(C51)
【例K3.2】用APR9600录音带模式实现顺序录音和顺序放音(C51)
【例K3.3】用ISD1420和两个程序分别实现录音及语音播报当前温度(C51)
【例K3.4】用ISD4002实现录音和语音播报直流风扇的每秒转速(C51)
13.4 实验K4——步进电机扩展板实验
【实验目的】
【实验内容和要求】
【实验电路】
【实验指导及说明】
【例K4.1】两相微型步进电机的4拍驱动和8拍驱动(C51)
附录A 51单片机分类指令表
附录B 7位ASCII码表
附录C 系统配置和检测/演示芯片的使用
参考文献


