本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
☆ 提供配套电子课件、程序代码、实验和习题参考结果等。☆ 附大量实例及详细说明与注释。☆ 硬件设计实例可在Keil和Proteus软件平台上直接运行。◎ 单片机的C语言(C51)概述◎ 51系列单片机硬件与C51编程基础◎ P0~P3口输入/输出、中断系统、定时器/计数器、串行口、并行扩展、外部串行扩展的C51编程◎ μVision2与Proteus使用基础
本书是普通高等教育\\\\\\\\\\\\\\\"十一五” 规划教材,以51系列单片机和C语言为基础,全面系统地介绍单片机的C语言程序设计与应用的基本问题。本书主要内容包括:单片机的C语言概述,51系列单片机硬件与C语言编程基础,P0~P3口输入/输出、中断系统、定时器/计数器、串行口、并行扩展、串行扩展的C51编程,?Vision2与Proteus使用基础等。本书提供大量实例及详细说明与注释,硬件设计实例均可在Keil和Proteus软件平台上直接运行,每章后附本章小结、习题、实验与设计等,提供电子课件、Proteus仿真电路及程序代码、习题参考答案。
姜志海,男,山东理工大学教授,长期从事高等学校电子信息领域相关课程一线教学,主持和参与多项 和省部级科研和教研项目,教学和科研经验丰富。出版多部著作,是 的 高等教材作者。
目 录
第1章 单片机的C语言概述1
1.1 单片机的C语言1
1.1.1 单片机的C语言(C51)的特点1
1.1.2 单片机的C语言和标准C语言的
比较2
1.1.3 单片机的C语言与汇编语言的优
势对比2
1.2 硬件及软件环境6
1.2.1 硬件环境6
1.2.2 软件环境8
本章小结8
习题8
第2章 51系列单片机硬件及C51编程
基础9
2.1 51单片机的总体结构9
2.1.1 内部结构9
2.1.2 外部引脚说明10
2.1.3 CPU的时序周期13
2.2 51单片机的存储器14
2.2.1 程序存储器14
2.2.2 数据存储器15
2.2.3 特殊功能寄存器17
2.3 C51语言的数据20
2.3.1 常量20
2.3.2 变量22
2.4 C51语言对单片机主要资源的
控制25
2.4.1 特殊功能寄存器的C51语言
定义25
2.4.2 地址的访问27
2.5 C51语言的基本运算与流程控制
语句28
2.5.1 基本运算28
2.5.2 分支判断——if、switch语句30
2.5.3 循环控制——while、for语句32
2.5.4 break、continue、return和goto
语句34
2.6 C51语言的数组、指针、函数36
2.6.1 数组36
2.6.2 指针38
2.6.3 函数39
2.7 C51语言的预处理命令及汇编语句
的嵌入42
2.7.1 文件包含、宏定义、条件编译42
2.7.2 C51中汇编语句的嵌入44
2.8 C51程序45
2.8.1 C51的程序结构45
2.8.2 C51编程规范及注意事项47
2.8.3 C51的标识符与关键字48
本章小结50
习题50
第3章 P0~P3口输入/输出的C51编程52
3.1 51单片机的P0~P3口基础知识52
3.1.1 P0~P3口结构52
3.1.2 P0~P3口特点总结53
3.2 输出操作54
3.2.1 基本输出操作举例——字节输出
与位输出54
3.2.2 扩展输出操作举例——流水灯与
霹雳灯55
3.2.3 扩展输出操作举例——8段LED
数码显示器57
3.3 输入操作62
3.3.1 闸刀型开关输入信号63
3.3.2 单个按钮型开关输入信号64
3.3.3 多个按钮型开关输入信号——
键盘66
3.4 实验与设计72
实验1 闸刀型开关输入/8段LED静态
显示输出72
实验2 按钮型开关输入/8段LED静态
显示输出72
设计1:计时秒表的设计74
设计2:模拟交通信号灯控制装置的
设计74
本章小结74
习题75
第4章 中断系统的C51编程76
4.1 中断系统结构与中断控制76
4.1.1 中断系统结构76
4.1.2 特殊功能寄存器77
4.2 中断优先级与中断函数78
4.2.1 中断优先级78
4.2.2 中断函数的结构形式80
4.3 外部中断源的C51编程80
4.3.1 外部中断源初始化80
4.3.2 编程示例81
4.4 实验与设计84
实验1 按钮型开关模拟外部中断
实验84
实验2 外部中断优先级实验85
设计:出租车计价器里程计量装置的
设计87
本章小结87
习题88
第5章 定时器/计数器的C51编程89
5.1 51单片机的定时器/计数器89
5.1.1 结构89
5.1.2 特殊功能寄存器90
5.2 定时器/计数器工作模式91
5.3 定时器/计数器的应用举例94
5.3.1 定时器/计数器的初始化95
5.3.2 应用举例96
5.4 实验与设计102
实验1 按钮型开关模拟计数器实验102
实验2 定时器实验103
设计1:出租车计价器里程计量装置
的设计104
设计2:计时钟的设计( )104
本章小结104
习题105
第6章 串行口的C51编程106
6.1 51单片机串行口基础知识106
6.1.1 串行口的结构原理106
6.1.2 串行口的应用控制107
6.2 51单片机串行口的工作方式108
6.2.1 串行口工作方式0108
6.2.2 串行口工作方式1112
6.2.3 串行口工作方式2116
6.2.4 串行口工作方式3119
6.3 51单片机串行口的应用举例122
6.3.1 串行口编程基础122
6.3.2 串行口应用举例124
6.4 实验与设计127
实验1 串行口控制的流水灯实验127
实验2 两个单片机通信实验127
本章小结129
习题130
第7章 外部并行扩展的C51编程131
7.1 51单片机并行I/O口扩展基础131
7.1.1 系统扩展总线结构图131
7.1.2 数据线、控制线的连接132
7.1.3 译码信号的形成——系统扩展
的寻址132
7.2 可编程的I/O接口芯片8255A的
C51编程135
7.2.1 8255A简介135
7.2.2 利用8255A扩展并行的输入/输出
口示例139
7.2.3 利用Intel 8255A作为8段LED
静态显示输出口的示例140
7.2.4 利用Intel 8255A作为8段LED
动态显示输出口的示例141
7.3 D/A与A/D转换器的C51编程143
7.3.1 D/A转换器基础143
7.3.2 8位并行D/A转换器DAC0832145
7.3.3 A/D转换器基础150
7.3.4 8位并行A/D转换器ADC0809151
7.4 液晶显示器的C51编程155
7.4.1 字符型LCD1602液晶显示模块
的C51编程155
7.4.2 点阵式带汉字库12864液晶显示
模块接口技术160
7.5 实验与设计168
实验1 DAC0832单缓冲实验168
实验2 ADC0809实验169
设计1:电子密码锁的设计171
设计2:波形发生器的设计171
本章小结171
习题172
第8章 外部串行扩展的C51编程173
8.1 I2C总线器件的C51编程173
8.1.1 认识I2C总线接口173
8.1.2 I2C总线典型器件AT24C02
应用举例175
8.2 SPI总线器件的C51编程180
8.2.1 认识SPI总线181
8.2.2 SPI总线典型器件X25045应用
举例182
8.3 单总线的C51编程186
8.3.1 认识单总线186
8.3.2 单总线典型器件DS18B20应用
举例187
8.4 串行A/D接口芯片TLC2543的
C51编程193
本章小结196
习题197
第9章 μVision2与Proteus使用基础198
9.1 μVision2集成开发环境198
9.1.1 File、Edit和View菜单199
9.1.2 Project、Debug和Flash菜单201
9.1.3 Peripherals、Tools和Window
菜单202
9.2 用μVision2建立与调试工程203
9.2.1 工程创建、设置、编译与链接203
9.2.2 用μVision2调试工程207
9.2.3 C51程序调试举例说明——
HELLO.C211
9.2.4 Keil C51的调试技巧及举例213
9.3 Proteus快速入门216
9.3.1 集成Proteus ISIS环境216
9.3.2 电路原理图设计221
9.4 Proteus仿真工具介绍226
9.4.1 探针226
9.4.2 虚拟仪器226
9.4.3 信号发生器227
9.4.4 仿真图表227
9.5 Proteus软件中的C51程序运行与
调试228
9.5.1 驱动的安装228
9.5.2 Keil和Proteus的配置228
9.5.3 Keil和Proteus的调试过程229
本章小结229
习题230
附录A ASCII码字符表231
附录B 单片机应用资料查询方法232
附录C Proteus常用分离器件名称233
参考文献234