
本书从实际应用入手,以实验过程和实验现象为主导,循序渐进地讲述51单片机C语言编程方法以及51单片机的硬件结构和功能应用。全书共分5篇,分别为入门篇、内外部资源操作篇、提高篇、实战篇和拓展篇。本书内容丰富,实用性强,书中大部分内容均来自科研工作及教学实践,许多C语言代码可以直接应用到工程项目中。本书配套光盘提供13讲近30学时的教学视频和本书实例代码,可使读者更快更好地掌握单片机知识和应用技能。本书作者还可提供与本书配套的单片机实验板。 本书可作为大学本、专科单片机课程教材,适合于51单片机的初学者和使用51单片机从事项目开发的技术人员,也可供从事自动控制、智能仪器仪表、电力电子、机电一体化等专业的技术人员参考。
前 言 本书从实际工程应用入手,以实验过程和实验现象为主导,由浅入深、循序渐进地讲述使用C语言为51单片机编程的方法、51单片机的硬件结构和各种功能应用。 本书不同于传统的讲述单片机的书籍,本书中的所有例程均以实际硬件实验板实验现象为根据,由C语言程序来分析单片机工作原理,使读者知其然,又能知其所以然,从而帮助读者从实际应用中彻底理解和掌握单片机。另外,本书中大部分内容均来自作者科研及教学工作实践,内容涵盖作者多年来项目经验总结的精华,并且贯穿一些学习方法的建议。 本书内容丰富,实用性强,许多C语言代码可以直接应用到工程项目中。本书配套附一张光盘,提供近30小时的单片机教学视频。同时,作者还开发了与本书配套的TX-1C单片机实验板,可帮助读者边学边练,达到学以致用的目的。读者在学习过程中可以将视频和书互为参考,配合学习,并用单片机实验板进行实践,这样可以更快更好地掌握单片机应用知识和技能。 本书适合作为大学电子信息类和机电类各专业本、专科单片机课程教材,或高校大学生创新基地培训教材,也适合51单片机的初学者和使用51单片机从事项目开发的技术人员,还可供从事自动控制、智能仪器仪表、电力电子、机电一体化等专业的技术人员参考。 本书内容组织 本书内容共分5篇,分别为入门篇、内外部资源操作篇、提高篇、实战篇和拓展篇。 第1,2篇与本书配套光盘内容基本对应,内容组织上循序渐进、由浅入深;在知识介绍上,从原理到实践,再从实验现象进一步分析原理,对51单片机的主要功能及硬件结构做了详细介绍。 第3篇在前两篇的基础上通过实验进一步扩展讲解了51单片机的其他功能应用,而且还特别将STC单片机与传统51单片机相比扩展了的功能逐一讲解。 第4篇是作者教学和实际项目中精选出的具有代表性的真实项目,其知识涉及面广,内容丰富,是作者开发经验的精华总结。 第5篇为拓展部分,详细讲解了使用Protell软件绘制原理图、PCB图、元件库和元件封装的过程;详细介绍了常用的ISD400X系列语音芯片;分别讲解了直流电机、步进电机和舵机的原理及驱动方法;介绍了设计电路常用的元件;详细介绍了如何设计直流稳压电源及开关电源;最后介绍运放的应用知识。 本书实例程序 作者在编写本书时,使用的操作系统是英文版Windows XP SP2,开发工具是Keil V6.12,抓图工具是红蜻蜓抓图精灵V1.24,单片机下载软件是STC-ISP V3.9,使用的硬件实验设备是天祥电子的TX-1C单片机实验板,本书中单片机部分的所有实例程序都在该环境中调试通过,并且在TX-1C实验板上得以验证。 本书学习建议 配套光盘提供的视频与本书前两篇基本对应,建议读者在学习本书之前,最好有一块与本书中相同的实验板。学习时先看视频,对单片机有一个初步的印象,视频中互动部分读者可亲自做实验,在学习过程读者要多动脑,多动手,单片机是实实在在的硬件,只有在不断实践中才能领悟它的工作原理。读者在对实验原理理解的前提下,要尝试独立编写出书中每章的例子程序,当有困惑时再查看书中代码,反思自己的失误在哪里,进而积累更多的经验。 本书配套光盘说明 本书配套光盘中提供两部分内容:本书所有实例代码和13讲视频教程。 视频教程内容列表 讲 次 内 容 细 节 第1讲 学习单片机预备知识 如何点亮一个发光管 单片机能做什么,基本电子知识,如何用TX-1C单片机学习板学习单片机,C51知识简介,如何申请免费芯片样品。点亮一个发光管 第2讲 流水灯设计 蜂鸣器发声 继电器控制 简单延时程序、子程序调用、带参数子程序设计、流水灯同时蜂鸣器响、如何驱动蜂鸣器,及如何驱动继电器,集电极开路的概念及应用 第3讲 数码管显示的原理 数码管的静态显示 共阳、共阴数码管显示原理、定时器工作方式介绍、重点讲述工作方式2、中断概念及中断函数写法、外部中断试验、定时器中断应用 第4讲 数码管的动态显示原理及应用实现 动态扫描概念、定时器、中断加深 用单片机的定时器及中断设计一个60秒定时器 第5讲 独立键盘、矩阵键盘的检测原理及实现 键盘用来做什么、如何检测键盘、消抖、键盘编码、带返回值函数写法及应用 第6讲 A/D、D/A的工作原理及实现、运放电路 模拟电压与数字电压的关系、为什么要使用A/D及D/A、ADC0804的操作方法、DAC0832的操作方法 第7讲 串口通信原理及操作流程 串口通信工作方式、10位数据通信、波特率概念、如何根据波特率计算定时器初值 第8讲 1602液晶显示原理及实现 最简单液晶工作原理、如何开始对一个没有任何概念的芯片开始单片机的操作 第8讲 I2C总线AT24C02芯片工作原理 I2C总线工作原理、目前非常通用的一种通信机制 第10讲 利用51单片机的定时器设计一个时钟 综合运用51单片机知识设计一个可以随意调节时间、带整点闹铃的时钟(其中用到定时器、中断、按键、蜂鸣器、数码管或串口通信) 第11讲 用DS12C887时钟芯片设计一个高精度时钟 DS12C887内部带有锂电池,系统掉电情况下可自行精确走10年,并带有闹钟功能、年、月、日、时、分、秒等(本节由学生自己设计电路) 第12讲 使用Protell 99绘制电路图全过程 Protell 99软件使用、元件库、封装库设计、绘制原理图、错误检查、生成PCB、手动、自动布线、送去加工 第13讲 Altium designer 6.5绘制电路图全过程 最顶级电路板设计软件Altium Designer使用、元件库、封装库设计、绘制原理图、错误检查、生成PCB、手动、自动布线、送去加工 在这里对配套视频中讲解三极管和场效应管部分的一点错误给予更正: 作者在讲课时说:三极管是压控流型器件,场效应管是压控压型器件。 正确结论应该是:三极管是流控流型器件,场效应管是压控流型器件。 作者在编写本书的过程中,得到了哈尔滨工程大学国家电工电子教学基地和信息与通信工程学院郭黎利教授、刁鸣教授、赵旦峰教授、付永庆教授、王松武教授、刘文智老师和李海波老师的大力支持。本书的部分章节由我的同学叶大鹏、李健编写,另外我的同学张勇、宋宝森、钟双、于振南、郭天宇、李名祺也十分关心本书的编写进度,为提高书稿的质量提出了许多宝贵的建议和修改意见。在此,对他们一并表示衷心的感谢。 由于作者的水平有限,错误和疏漏之处在所难免,欢迎广大技术专家和读者指正。作者的联系方式是txmcu@163.com,读者也可以登录天祥电子网站发表意见,或联系购买单片机实验板,网址是http://www.txmcu.com。 郭天祥 于哈尔滨工程大学 2008年11月
第1篇 入 门 篇 1.1 单片机概述 1.1.1 什么是单片机 1.1.2 单片机标号信息及封装类型 1.1.3 单片机能做什么 1.1.4 如何开始学习单片机 1.2 51单片机外部引脚介绍 1.3 电平特性 1.4 二进制与十六进制 1.4.1 二进制 1.4.2 十六进制 1.5 二进制的逻辑运算 1.5.1 与 1.5.2 或 1.5.3 非 1.5.4 同或 1.5.5 异或 1.6 单片机的C51基础知识介绍 1.6.1 利用C语言开发单片机的优点 1.6.2 C51中的基本数据类型 1.6.3 C51数据类型扩充定义 1.6.4 C51中常用的头文件 1.6.5 C51中的运算符 1.6.6 C51中的基础语句 1.6.7 学习单片机应该掌握的主要内容 2.1 Keil工程建立及常用按钮介绍 2.1.1 Keil工程的建立 2.1.2 常用按钮介绍 2.2 点亮第一个发光二极管 2.3 while语句 2.4 for语句及简单延时语句 2.5 Keil仿真及延时语句的精确计算 2.6 不带参数函数的写法及调用 2.7 带参数函数的写法及调用 2.8 利用C51库函数实现流水灯 第2篇 内外部资源操作篇 3.1 数码管显示原理 3.2 数码管静态显示 3.3 数码管动态显示 3.4 中断概念 3.5 单片机的定时器中断 4.1 独立键盘检测 4.2 矩阵键盘检测 5.1 模拟量与数字量概述 5.2 A/D转换原理及参数指标 5.3 ADC0804工作原理及其实现方法 5.4 D/A转换原理及其参数指标 5.5 DAC0832工作原理及实现方法 5.6 DAC0832输出电流转换成电压的 方法 第6章 串行口通信原理及操作流程 6.1 并行与串行基本通信方式 6.2 RS-232电平与TTL电平的转换 6.3 波特率与定时器初值的关系 6.4 51单片机串行口结构描述 6.5 串行口方式1编程与实现 6.6 串行口打印在调试程序中的应用 第7章 通用型1602,12232,12864液晶 操作方法 7.1 液晶概述 7.2 常用1602液晶操作实例 7.3 常用12232液晶操作实例 7.4 常用12864液晶操作实例 第8章 I2C总线AT24C02芯片应用 8.1 I2C总线概述 8.2 单片机模拟I2C总线通信 8.3 E2PROM AT24C02与单片机的通信 实例 第9章 基础运放电路专题 9.1 运放概述及参数介绍 9.2 反相放大器 9.3 同相放大器 9.4 电压跟随器 9.5 加法器 9.6 差分放大器 9.7 微分器 9.8 积分器 第3篇 提 高 篇 第10章 定时器/计数器应用提高 10.1 方式0应用 10.2 方式2应用 10.3 方式3 应用 10.4 52单片机定时器2介绍 10.5 计数器应用 第11章 串行口应用提高 11.1 方式0应用 11.2 方式2和方式3应用 11.3 单片机双机通信 11.4 单片机多机通信 第12章 指针 12.1 指针与指针变量 12.1.1 内存单元、地址和指针 12.1.2 指针变量的定义、赋值与 引用 12.2 指针变量的运算 12.3 指针与数组 12.3.1 指针与一维数组 12.3.2 指针与多维数组 12.4 指针与函数 12.4.1 指针作为函数的参数 12.4.2 指向函数的指针 12.4.3 指针型函数 12.5 指针与字符串 12.5.1 字符串的表达形式 12.5.2 字符指针作为函数参数 12.5.3 使用字符指针与字符数组的 区别 12.6 指针数组与命令行参数 12.6.1 指针数组的定义和使用 12.6.2 指向指针的指针 12.6.3 指针数组作为main()函数的命令行 参数 12.7 指针小结 12.7.1 指针概念综述 12.7.2 指针运算小结 12.7.3 等价表达式 12.8 C51中指针的使用 12.8.1 指针变量的定义 12.8.2 指针应用 第13章 STC系列51单片机功能介绍 13.1 单片机空闲与掉电模式应用 13.2 “看门狗”概念及其应用 13.3 用软件实现系统复位 13.4 内部扩展RAM的应用 13.5 扩展P4口的应用 13.6 内部E2PROM的应用 13.7 STC89系列单片机内部A/D应用 13.8 STC12系列单片机内部A/D应用 13.9 STC12系列单片机的PCA/PWM 介绍 13.10 STC12系列单片机的SPI接口 介绍 13.11 STC12系列单片机的“576MHz”超速 运行 第4篇 实 战 篇 第14章 利用51单片机的定时器设计一个 时钟 14.1 如何从矩阵键盘中分解出独立按键 14.2 原理图分析 14.3 实例讲解 第15章 使用DS12C887时钟芯片设计 高精度时钟 15.1 时钟芯片概述 15.2 DS12C887时钟芯片介绍 15.3 如何用TX-1C实验板扩展本实验 15.4 原理图分析 15.5 实例讲解 第16章 使用DS18B20温度传感器设计 温控系统 16.1 温度传感器概述 16.2 DS18B20温度传感器介绍 16.3 实例讲解 第17章 太阳能充/放电控制器 17.1 控制器原理图分析 17.2 控制器板上元件介绍 17.3 实例讲解 第18章 VC、VB(MSCOMM控件)与 单片机通信实现温度显示 18.1 VC MSCOMM控件与单片机通信实现 温度显示 18.2 VB MSCOMM控件与单片机通信实现 温度显示 第5篇 拓 展 篇 第19章 使用Protell 99绘制电路图全 过程 19.1 绘制电路板概述 19.2 建立工程 19.3 制作元件库 19.4 添加封装及制作PCB封装库 19.5 错误检查及生成PCB 19.6 布线电气特性设置 19.7 自动布线和手动布线 第20章 ISD400x系列语音芯片应用 20.1 ISD400x系列语音芯片介绍 20.2 ISD400x系列语音芯片操作规则 20.3 ISD400x系列语音芯片应用实现 第21章 电机专题 21.1 直流电机原理及应用 21.2 步进电机原理及应用 21.3 舵机原理及其应用 第22章 常用元器件介绍 22.1 二极管 22.2 电容 22.3 场效应管 22.4 光耦 22.5 蜂鸣器 22.6 继电器 22.7 自恢复保险 22.8 瞬态电压抑制器 22.9 晶闸管(可控硅) 22.10 电荷泵 第23章 直流稳压电源专题 23.1 整流电路 23.2 滤波电路 23.3 稳压电路 23.4 集成稳压模块的使用 23.5 串联开关型稳压电源 第24章 运放扩展专题 24.1 简单低通滤波器 24.2 “电流-电压”转换电路 24.3 光电放大器 24.4 精密电流源 24.5 可调参考电压源 24.6 复位稳定放大器 24.7 模拟乘法器 24.8 全波整流器和平均值滤波器 24.9 正弦波振荡器 24.10 三角波发生器 24.11 自动跟踪对称电源 24.12 可调实验电源 24.13 运放相关术语表 附录A 天祥电子开发实验板简介 A.1 TX-1C 51单片机开发板(配套详细 视频教程) A.2 AVR单片机开发板(配套详细视频 教程) A.3 PIC单片机开发板(配套详细视频 教程) A.4 J-Link全功能ARM仿真器 A.5 三星S3C44B0 ARM7入门级开 发板 A.6 三星S3C44B0 ARM7提高级开 发板 A.7 TX-51STAR 51单片机开发板(配套 详细视频教程) 参考文献
http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=TP078930