手把手教你学51单片机-c语言版,手把手教你学51单片机(第2版 C语言版)

第1章如何学习单片机

1.1学什么类型的单片机

1.2学习单片机的最佳方法

1.3单片机学习的准备工作

1.4单片机开发软件环境搭建

1.5Keil基本概况介绍

1.6答读者问

第2章点亮你的LED

2.1单片机的内部资源

2.2单片机最小系统

2.2.1电源

2.2.2晶振

2.2.3复位电路

2.3LED小灯

2.4程序代码编写

2.4.1特殊功能寄存器和位定义

2.4.2新建一个工程

2.4.3编写点亮小灯的程序

2.5程序下载

2.6练习题

第3章硬件基础知识学习

3.1电磁干扰

3.2去耦电容的应用

3.3三极管在数字电路中的应用

3.3.1三极管的初步认识

3.3.2三极管的原理

3.3.3三极管的应用

3.474HC138三八译码器的应用

3.5LED闪烁程序

3.6练习题

第4章C语言基础以及流水灯的实现

4.1二进制、十进制和十六进制

4.2C语言变量类型和范围

4.3C语言基本运算符

4.4for循环语句

4.5while循环语句

4.6函数的简单介绍

4.7Keil软件延时

4.8流水灯程序

4.9练习题

第5章定时器与数码管基础

5.1逻辑电路与逻辑运算

5.2定时器的学习

5.2.1定时器的初步认识

5.2.2定时器的寄存器

5.2.3定时器的应用

5.3数码管的学习

5.3.1数码管的基本介绍

5.3.2数码管的真值表

5.3.3数码管的静态显示

5.4练习题

第6章中断与数码管动态显示

6.1C语言的数组

6.1.1数组的基本概念

6.1.2数组的声明

6.1.3数组的初始化

6.1.4数组的使用和赋值

6.2if语句

6.3switch语句

6.4数码管的动态显示

6.4.1动态显示的基本原理

6.4.2数码管显示消隐

6.5单片机中断系统

6.5.1中断的产生背景

6.5.2定时器中断的应用

6.5.3中断的优先级

6.6练习题

第7章变量进阶与点阵LED

7.1变量的作用域

7.1.1局部变量

7.1.2全局变量

7.2变量的存储类别

7.3点阵的初步认识

7.4点阵的图形显示

7.5点阵的动画显示

7.5.1点阵的纵向移动

7.5.2点阵的横向移动

7.6练习题

第8章函数进阶与按键

8.1单片机最小系统

8.1.1电源

8.1.2晶振

8.1.3复位电路

8.2函数的调用

8.3函数的形式参数和实际参数

8.4按键

8.4.1独立按键

8.4.2矩阵按键

8.4.3独立按键的扫描

8.4.4按键消抖

8.4.5矩阵按键的扫描

8.5简易加法计算器

8.6练习题

第9章步进电机与蜂鸣器

9.1单片机I/O口的结构

9.2上下拉电阻

9.328BYJ48型步进电机详解与实例

9.3.1电机的分类

9.3.228BYJ48型步进电机原理详解

9.3.3让电机转起来

9.3.4转动精度与深入分析

9.3.5编写实用程序的基础

9.3.6包含综合应用的实用程序

9.4蜂鸣器

9.5练习题

第10章实例练习与经验积累

10.1数字秒表实例

10.1.1不同数据类型间的相互转换

10.1.2定时时间精准性调整

10.1.3字节操作修改位的技巧

10.1.4数码管扫描函数算法改进

10.1.5秒表程序

10.2PWM知识与实例

10.3交通灯实例

10.451单片机RAM区域的划分

10.5长短按键的应用

10.6练习题

第11章UART串口通信

11.1串行通信的初步认识

11.2RS232通信接口

11.3USB转串口通信

11.4I/O口模拟UART串口通信

11.5UART串口通信的基本应用

11.5.1通信的三种基本类型

11.5.2UART模块介绍

11.5.3UART串口程序

11.6通信实例与ASCII码

11.7练习题

第12章指针基础与1602液晶的初步认识

12.1指针的概念与指针变量的声明

12.1.1变量的地址

12.1.2指针变量的声明

12.1.3指针的简单示例

12.2指向数组元素的指针

12.2.1指向数组元素的指针和运算法则

12.2.2指向数组元素指针的实例

12.3字符数组和字符指针

12.3.1常量和符号常量

12.3.2字符和字符串数组实例

12.41602液晶的认识

12.4.11602液晶的硬件接口介绍

12.4.21602液晶的读写时序介绍

12.4.31602液晶的指令介绍

12.4.41602液晶简单实例

12.5练习题

第13章1602液晶与串口的应用实例

13.1通信时序解析

13.21602整屏移动

13.3多.c文件的初步认识

13.4计算器实例

13.5串口通信机制和实用的串口例程

13.6练习题

第14章I2C总线与E2PROM

14.1I2C时序初步认识

14.2I2C寻址模式

14.3E2PROM的学习

14.3.1E2PROM单字节读写操作时序

14.3.2E2PROM多字节读写操作时序

14.3.3E2PROM的页写入

14.4I2C和E2PROM的综合实验学习

14.5练习题

第15章实时时钟DS1302

15.1BCD码的概念

15.2SPI时序初步认识

15.3实时时钟芯片DS1302

15.3.1DS1302的特点

15.3.2DS1302的硬件信息

15.3.3DS1302寄存器介绍

15.3.4DS1302通信时序介绍

15.3.5DS1302的BURST模式

15.4复合数据类型

15.4.1结构体数据类型

15.4.2共用体数据类型

15.4.3枚举数据类型

15.5电子钟实例

15.6练习题

第16章红外通信与DS18B20温度传感器

16.1红外线的基本原理

16.2红外遥控通信原理

16.3NEC协议红外遥控器

16.4温度传感器DS18B20

16.5练习题

第17章模数转换A/D与数模转换D/A

17.1A/D和D/A的基本概念

17.2A/D的主要指标

17.3PCF8591的硬件接口

17.4PCF8591的软件编程

17.5A/D差分输入信号

17.6D/A输出

17.7简易信号发生器实例

17.8练习题

第18章RS485通信与Modbus协议

18.1RS485通信

18.2Modbus通信协议介绍

18.2.1Modbus协议特点

18.2.2RTU协议帧数据

18.3Modbus多机通信例程

18.4练习题

第19章实践项目: 多功能电子钟

19.1类型说明

19.2头文件

19.3条件编译

19.4项目实战

19.4.1项目需求分析

19.4.2程序结构规划

19.4.3程序代码编写

19.5练习题

第20章扩展实例: 超声波测距*

20.1超声波测距原理

20.2超声波测距硬件准备

20.3超声波测距并在数码管上显示

20.4优化超声波测距的精度

附录A单片机开发常用工具

A.1万用表

A.1.1万用表的功能及类型

A.1.2万用表的使用方法

A.2示波器

A.2.1示波器的功能及类型

A.2.2示波器的使用

A.3逻辑分析仪

A.3.1什么是逻辑分析仪

A.3.2逻辑分析仪的参数

A.3.3逻辑分析仪的使用

A.3.4应用实例——分析UART、I2C、SPI

A.3.5数字电路应用中逻辑分析仪比之示波器的优势

A.4练习题

附录BASCII码字符表

附录CC语言运算符及优先级

附录DKST51开发板原理图429

本目录下提供的是《手把手51单片机(C语言)》材中所有例程与作业习题的源代码。 请将整个目录复制到电脑硬盘上使用,如直接在光盘路径下打开工程可能会导致软件报错。 运行目录下的Clean.bat可以清理程序编译过程中产生的中间文件和临时文件。 lesson2 (第2章): 点亮一个LED示例,所在章节2.4 lesson3 (第3章): LED闪烁示例,所在章节3.5 lesson4 (第4章): 4_1:用P0口控制LED的示例,所在章节4.8 4_2:用P0口控制实现流水灯效果,所在章节4.8 4_t4:作业题4,逐次右移的流水灯效果,所在章节4.9 4_t5:作业题5,左右往复移动的流水灯效果,所在章节4.9 lesson5 (第5章): 5_1:基于定时器查询模式的LED闪烁,所在章节5.2.3 5_2:静态点亮数码管的某几段,所在章节5.3.2 5_3:数码管静态显示一位字符,所在章节5.3.3 5_t3:作业题3,定时器查询模式实现左右移动的流水灯,所在章节5.4 5_t5:作业题5,变更lesson5_3的正计数为倒计数,所在章节5.4 lesson6 (第6章): 6_1:数码管动态显示原理示例(if...else if...语句示例),所在章节6.4 6_2:数码管动态显示原理示例(switch...case...语句示例),所在章节6.4 6_3:基于中断带消隐的数码管动态显示示例,所在章节6.5 6_t4:作业题4,在lesson6_3多位数字显示的基础上不显示高位的0,所在章节6.6 6_t5:作业题5,变更lesson6_3的正计数为倒计数,所在章节6.6 lesson7 (第7章): 7_1:基于数码管计时程序的静态变量演示,所在章节7.2 7_2:点亮LED点阵上的一个点,所在章节7.3 7_3:点亮LED点阵上的一行,所在章节7.3 7_4:点亮LED点阵上的全部点,所在章节7.3 7_5:LED点阵显示静态图形,所在章节7.4 7_6:LED点阵显示纵向移动的动画,所在章节7.5.1 7_6_h:LED点阵显示横向移动的动画(掉转板子方向的取巧方式),所在章节7.5.2 7_7:LED点阵显示横向移动的动画,所在章节7.5.2 7_t3:作业题3,lesson7_6的向上移动改为向下移动,所在章节7.6 7_t4:作业题4,lesson7_7的向左移动改为向右移动,所在章节7.6 7_t5:作业题5,基于LED点阵的9~0倒计数,所在章节7.6 7_t6:作业题6,独立LED、数码管、点阵LED同时全亮,所在章节7.6 lesson8 (第8章): 8_1:基于数码管计时程序的函数调用演示,所在章节8.2 8_2:按键基本原理演示例程,所在章节8.4.3 8_3:独立按键扫描原理演示例程,所在章节8.4.3 8_4:独立按键消抖原理演示例程,所在章节8.4.4 8_5:独立按键扫描并消抖的演示例程,所在章节8.4.4 8_6:矩阵按键扫描并消抖的演示例程,所在章节8.4.5 8_7:基于矩阵按键和数码管实现的简易加法计算器,所在章节8.5 8_t4:作业题4,变更lesson8_5的递增计数为递减计数,所在章节8.6 8_t5:作业题5,在lesson8_7基础上实现简易加减计算器,所在章节8.6 lesson9 (第9章): 9_1:步进电机驱动的基础示例,所在章节9.3.3 9_2:步进电机转动任意角度的示例,所在章节9.3.4 9_3:实用的步进电机驱动示例,所在章节9.3.5 9_4:按键控制步进电机转动的示例,所在章节9.3.6 9_5:蜂鸣器驱动的基础示例,所在章节9.4 9_6:蜂鸣器演奏简单乐谱——“两只老虎”,所在章节9.4 lesson10 (第10章): 10_1:基于数码管显示的数字秒表,所在章节10.1 10_2:基于PWM方式控制LED的亮度,所在章节10.2 10_3:基于PWM方式控制LED实现呼吸灯效果,所在章节10.2 10_4:交通信号灯示例,所在章节10.3 10_5:长短按键/连续按键功能实现示例,所在章节10.5 10_t3:作业题3,数码管计时与流水灯同时运行的示例,所在章节10.6 lesson11 (第11章): 11_1:普通IO口模拟实现串口通信的示例,所在章节11.4 11_2:单片机硬件UART查询方式实现串口通信的示例,所在章节11.5.3 11_3:单片机硬件UART中断方式实现串口通信的示例,所在章节11.5.3 11_4:UART串口通信及控制数码管显示的示例,所在章节11.6 11_t5:作业题5,UART串口控制流水灯流动和停止,所在章节11.7 11_t6:作业题6,UART串口控制蜂鸣器的开关,所在章节11.7 lesson12 (第12章): 12_1:指针作为函数参数的示例,所在章节12.1 12_2:指向变量的指针与变量关系的示例,所在章节12.2 12_3:指针、字符串、字符数组、ASCII码演示示例,所在章节12.3 12_4:1602液晶基本操作演示示例,所在章节12.4 lesson13 (第13章): 13_1:1602液晶显示两行字符串,并实现整屏的重复左移,所在章节13.2 13_2:多c文件示例,1602液晶显示两行字符串,并实现整屏的重复左移,所在章节13.3 13_3:整型数为操作数的简易+-*/计算器,所在章节13.4 13_4:基于帧模式的实用串口程序示例,所在章节13.5 13_t2:作业题2,1602液晶显示两行字符串,并实现整屏的重复右移,所在章节13.6 lesson14 (第14章): 14_1:寻址I2C总线上存在的和不存在的地址,将应答状态显示到液晶上,所在章节14.2 14_2:用单字节读写模式访问EEPROM,每次+1后写回,所在章节14.3.1 14_3:用多字节读写模式访问EEPROM,依次+1,+2,+3...后写回,所在章节14.3.2 14_4:用连续读与分页写模式访问EEPROM,依次+1,+2,+3...后写回,所在章节14.3.3 14_5:读取EEPROM中的数据显示到液晶,并可通过UART修改EEPROM中的数据,所在章节14.4 14_t3:作业题3,以lesson10_4为基础实现可通过UART设定时间的交通灯示例,所在章节14.5 14_t4:作业题4,基于液晶、按键、EEPROM的密码锁示例,所在章节14.5 lesson15 (第15章): 15_1:用单次读写模式访问DS1302,并将日期时间显示在液晶上,所在章节15.3.4 15_2:用突发读写模式访问DS1302,并将日期时间显示在液晶上,所在章节15.3.5 15_3:DS1302实现简易电子钟,通过按键校时,所在章节15.5 lesson16 (第16章): 16_1:接收NEC协议的红外编码并将用户码和键码显示到数码管上,所在章节16.3 16_2:控制DS18B20测量温度并将温度值显示到液晶上,所在章节16.4 16_t2:作业题2,用遥控器控制步进电机正反转,所在章节16.5 16_t4:作业题4,带温度显示的电子钟,所在章节16.5 lesson17 (第17章): 17_1:将模拟输入通道0、1、3的电压值显示到液晶上,所在章节17.4 17_2:由按键控制DA输出可调电压值,所在章节17.6 17_3:由按键控制DA输出可变化的波形,所在章节17.7 17_t3:作业题3,可调频率的信号发生器,所在章节17.8 lesson18 (第18章): 18_1:RS485基本示例,接收任意数据帧并添加回车换行后送回,所在章节18.1 18_2:基于RS485的Modbus通信示例,支持寄存器读写操作,所在章节18.3 18_t3:作业题3,基于Modbus协议实现电子钟校时,所在章节18.4 lesson19 (第19章): 19_1:多功能电子钟例程,所在章节19.4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值