新编51单片机C语言教程:从入门到精通实例详解全攻略

新编51单片机C语言教程:从入门到精通实例详解全攻略

前 言

1 单片机入门

1.1 单片机简介

1.1.1 什么是单片机
1.1.2 单片机应用系统的组成及举例说明
1.组成
2.工作过程举例说明
1.1.3 单片机的分类
1.1.4 单片机的应用领域
1.单片机在家电方面的应用
2.单片机在通信方面的应用
3.单片机在商业方面的应用
4.单片机在工业方面的应用
5.单片机在航空、航天和军事方面的应用
6.单片机在汽车方面的应用

1.2 用实例了解单片机应用系统的开发过程

1.2.1 明确控制要求并选择合适型号的单片机
1.明确控制要求
2.选择合适型号的单片机
1.2.2 设计单片机电路原理图
1.2.3 制作单片机电路
1.2.4 用Keil软件编写单片机控制程序
1.编写程序
2.程序说明
1.2.5 计算机、下载(烧录)器和单片机的连接
1.计算机与下载(烧录)器的连接与驱动
2.下载器与单片机的连接
1.2.6 用烧录软件将程序写入单片机
1.将计算机、下载器与单片机电路三者连接起来
2.打开烧录软件将程序写入单片机
1.2.7 单片机电路的供电与测试
1.用计算机的USB接口通过下载器为单片机供电
2.用USB电源适配器给单片机电路供电

1.3 与单片机有关的基础知识

1.3.1 单片机基础电路
1.与门
2.或门电路
3.非门电路
4.与非门电路
5.或非门电路
1.3.2 数制与数制的转换
1.十进制数
2.二进制数
3.十六进制数
4.二进制数与十进制数的转换
5.二进制数与十六进制数的转换
1.3.3 单片机的数的表示及运算
1.有符号数的表示方法
2.有符号数的运算
3.无符号数的表示方法

1.4 C51语言基础

1.4.1 常量
1.整型常量
2.浮点型常量
3.字符型常量
4.符号型常量
1.4.2 变量
1.4.3 运算符
1.算术运算符
2.关系运算符
3.逻辑运算符
4.位运算符
5.复合赋值运算符
1.4.4 关键字
1.由ANSI标准定义的关键字
2.Keil C51编译器扩充的关键字
1.4.5 数组
1.一维数组
2.二维数组
3.字符型数组
1.4.6 循环语句
1.while语句
2.do while语句
3.for语句
1.4.7 选择语句
1.if语句
2.switch…case语句

2 51单片机的硬件系统

2.1 8051单片机的引脚功能与内部结构

2.1.1 引脚功能说明
1.基本工作条件引脚
2.I/O(输入/输出)引脚
3.控制引脚
2.1.2 单片机与片外存储器的连接与控制
2.1.3 内部结构说明
1.CPU
2.时钟电路
3.ROM(程序存储器)
4.RAM(数据寄存器)
5.中断控制器
6.定时器/计数器
7.串行通信口
8.P0~P3输入/输出电路和锁存器

2.2 8051单片机I/O端口的结构与工作原理

2.2.1 P0端口
2.2.2 P1端口
2.2.3 P2端口
2.2.4 P3端口

2.3 8051单片机的存储器

2.3.1 存储器的存储单位与编址
1.常用存储单位
2.存储器的编址与数据的读写说明
2.3.2 片内、外程序存储器的使用与编址
2.3.3 片内、外数据存储器的使用与编址
2.3.4 数据存储器的分区
1.工作寄存器区
2.位寻址区
3.用户RAM区
2.3.5 特殊功能寄存器(SFR)
1.特殊功能寄存器的符号、字节地址、位地址和复位值
2.部分特殊功能寄存器介绍

2.4 STC89C5x系列单片机介绍

2.4.1 STC89C5x单片机的版本、封装形式和引脚功能说明
1.两种版本与封装形式
2.引脚功能说明
2.4.2 STC89C5x系列单片机的型号命名规则
2.4.3 STC89C5x系列单片机的常用型号的主要参数
2.4.4 STC89C5x系列单片机的I/O端口
1.I/O端口上电复位状态与灌电流、拉电流
2.P4端口的使用
3.I/O端口与外部电路的连接
2.4.5 STC89C5x系列单片机的程序存储器与数据存储器
1.程序存储器
2.数据存储器
2.4.6 STC89C5x系列单片机的特殊功能寄存器

3 Keil C51编程软件的使用

3.1 Keil C51软件的安装

3.1.1 Keil C51软件的版本及获取
3.1.2 Keil C51软件的安装

3.2 程序的编写与编译

3.2.1 启动Keil C51软件并新建工程文件
1.Keil C51软件的启动
2.新建工程文件
3.2.2 新建源程序文件并与工程关联起来
3.2.3 编写程序
1.在Keil软件的源程序文件中编写
2.用其他文本工具编写程序
3.2.4 编译程序
1.编译或汇编前的设置
2.编译或汇编程序

3.3 程序的仿真与调试

3.3.1 软件仿真调试
1.软件仿真设置
2.编译程序
3.仿真调试程序
3.3.2 硬件仿真调试
1.硬件仿真与仿真芯片
2.硬件仿真的硬件及连接
3.仿真设置
4.开始硬件仿真
5.硬件仿真常见问题

4 单片机驱动LED与LED数码管的电路及编程

4.1 单片机驱动LED的电路及编程

4.1.1 发光二极管(LED)外形、性质与检测
1.外形与符号
2.性质
3.检测
4.限流电阻的阻值计算
4.1.2 单片机连接8个LED的电路
4.1.3 位操作与字节操作方式点亮单个LED的程序及详解
1.采用位操作方式编程点亮单个LED的程序
2.采用字节操作方式编程点亮单个LED的程序
4.1.4 单个LED闪烁发光的程序及详解
4.1.5 单个LED以不同频率闪烁发光的程序及详解
4.1.6 位操作和字节操作方式点亮多个LED的程序及详解
1.采用位操作方式编程点亮多个LED的程序
2.采用字节操作方式编程点亮多个LED的程序
4.1.7 多个LED以不同频率闪烁发光的程序及详解
4.1.8 多个LED左移和右移的程序及详解
1.控制多个LED左移的程序
2.多个LED右移的程序
4.1.9 LED循环左移和右移的程序及详解
1.控制LED循环左移的程序
2.控制LED循环右移的程序
4.1.10 LED左右移动并闪烁发光的程序及详解
4.1.11 用查表方式控制LED发光的程序及详解
4.1.12 LED花样发光的程序及详解
4.1.13 用PWM(脉宽调制)方式调节LED亮度的原理与程序
1.用PWM(脉宽调制)方式调节LED亮度的原理
2.用PWM(脉宽调制)方式调节LED亮度的程序

4.2 单片机驱动一位LED数码管显示的电路及编程

4.2.1 一位LED数码管外形、结构与检测
1.外形、结构与类型
2.类型与引脚检测
4.2.2 单片机连接一位LED数码管的电路
4.2.3 单个数码管静态显示一个字符的程序及详解
4.2.4 单个数码管动态显示多个字符的程序及详解
4.2.5 单个数码管环形转圈显示的程序及详解
4.2.6 单个数码管显示逻辑电平的程序及详解

4.3 单片机驱动8位LED数码管显示的电路及编程

4.3.1 多位LED数码管外形、结构与检测
1.外形与类型
2.多位LED数码管显示多位字符的显示原理
3.检测
4.3.2 单片机连接8位共阴极数码管的电路
4.3.3 8位数码管显示一个字符的程序及详解
4.3.4 8位数码管逐位显示8个字符的程序及详解
4.3.5 8位数码管同时显示8个字符的程序及详解
4.3.6 8位数码管动态显示8个以上字符的程序及详解

5 中断的使用及编程

5.1 中断的基本概念与处理过程

5.1.1 什么是中断
5.1.2 中断的基本概念
1.中断源
2.中断的优先级别
5.1.3 中断的处理过程

5.2 8051单片机的中断系统结构与控制寄存器

5.2.1 中断系统的结构
1.中断系统的组成
2.中断系统的工作原理
5.2.2 中断源寄存器
1.定时器/计数器控制寄存器TCON
2.串行通信口控制寄存器SCON
5.2.3 中断允许寄存器IE
5.2.4 中断优先级控制寄存器IP

5.3 中断的应用编程举例

5.3.1 中断使用的电路例图
5.3.2 外部中断0以低电平方式触发中断的程序
5.3.3 外部中断1以下降沿方式触发中断的程序

6 定时器/计数器的使用及编程

6.1 定时器/计数器的定时与计数功能

6.1.1 定时功能
1.定时功能的用法
2.任意定时的方法
6.1.2 计数功能
1.计数功能的用法
2.任意计数的方法

6.2 定时器/计数器的结构原理

6.2.1 定时器/计数器的结构
6.2.2 定时器/计数器的工作原理
1.定时器/计数器T0用作计数器
2.定时器/计数器T0用作定时器

6.3 定时器/计数器的控制寄存器与4种工作方式

6.3.1 定时器/计数器控制寄存器TCON
6.3.2 工作方式控制寄存器TMOD
6.3.3 定时器/计数器的工作方式
1.方式0
2.方式1
3.方式2
4.方式3

6.4 定时器/计数器的应用及编程

6.4.1 产生1kHz方波信号的程序及详解
1.确定初值
2.程序说明
6.4.2 产生50kHz方波信号的程序及详解
6.4.3 产生周期为1s方波信号的程序及长延时的方法

7 独立按键与矩阵键盘输入电路及编程

7.1 独立按键输入电路及编程

7.1.1 开关输入产生的抖动及软、硬件解决方法
1.开关输入电路与开关的抖动
2.开关输入抖动的解决方法
7.1.2 8个独立按键与8个LED的单片机电路
7.1.3 一个按键点动控制一个LED亮灭的程序及详解
7.1.4 一个按键锁定控制一个LED亮灭的程序及详解
7.1.5 4路抢答器的程序及详解
7.1.6 独立按键控制LED和LED数码管的单片机电路
7.1.7 两个按键控制一位数字增、减并用8位数码管显示的程序及详解
7.1.8 两个按键控制多位数字增、减并用8位数码管显示的程序及详解
7.1.9 按键长按与短按产生不同控制效果的程序及详解
7.1.10 8个独立按键控制LED和LED数码管显示的程序及详解

7.2 矩阵键盘输入电路及编程

7.2.1 16键矩阵键盘输入与8位数码管显示的单片机电路
7.2.2 矩阵键盘行列扫描方式输入及显示的程序及详解
7.2.3 中断触发键盘行列扫描的矩阵键盘输入显示电路及程序
1.电路
2.程序
7.2.4 矩阵键盘密码锁程序及详解

8 点阵和液晶显示屏的使用及编程

8.1 双色LED点阵的使用及编程

8.1.1 双色LED点阵的外形、结构原理与检测
1.外形
2.共阳型和共阴型点阵的电路结构
3.混色规律
4.点阵的静态字符或图形显示原理
5.点阵的动态字符或图形显示原理
6.双色点阵的识别与检测
8.1.2 单片机配合74HC595芯片驱动双色LED点阵的电路
1.74HC595芯片介绍
2.单片机配合74HC595芯片驱动双色LED点阵的电路
8.1.3 双色点阵显示一种颜色字符的程序及详解
8.1.4 双色点阵交替显示两种颜色字符的程序及详解
8.1.5 字符移入和移出点阵的程序及详解

8.2 1602字符型液晶显示屏的使用及编程

8.2.1 1602字符型液晶显示屏的硬、软件资源
1.外形
2.引脚说明
3.内部字库及代码
4.LCD屏各显示位与DDRAM的地址关系
5.1602的指令集
8.2.2 单片机驱动1602液晶显示屏的电路
8.2.3 1602液晶显示屏静态显示字符的程序及详解
8.2.4 1602液晶显示屏逐个显现字符的程序及详解
8.2.5 1602液晶显示屏字符滚动显示的程序及详解
8.2.6 矩阵键盘输入与1602液晶显示屏显示的电路及程序
1.矩阵键盘输入与1602液晶显示屏显示的电路
2.矩阵键盘输入与1602液晶显示屏显示的程序

9 步进电动机的使用及编程

9.1 步进电动机与驱动芯片介绍

9.1.1 步进电动机的结构与工作原理
1.外形
2.结构与工作原理
3.结构
9.1.2 驱动芯片ULN2003
1.外形、结构和主要参数
2.检测
9.1.3 五线四相步进电动机
1.外形、内部结构与接线图
2.工作方式
3.接线端的区分
4.检测

9.2 单片机驱动步进电动机的电路及编程

9.2.1 由按键、单片机、驱动芯片和数码管构成的步进电动机驱动电路
9.2.2 用单4拍方式驱动步进电动机正转的程序及详解
9.2.3 用双4拍方式驱动步进电动机自动正反转的程序及详解
9.2.4 外部中断控制步进电动机正反转的程序及详解
9.2.5 用按键控制步进电动机启动、加速、减速、停止的程序及详解

10 串行通信的使用及编程

10.1 概 述

10.1.1 并行通信和串行通信
10.1.2 串行通信的两种方式
1.异步通信
2.同步通信
10.1.3 串行通信的数据传送方向

10.2 串行通信口的结构与原理

10.2.1 串行通信口的结构
10.2.2 串行通信口的工作原理
1.接收数据过程
2.发送数据过程

10.3 串行通信口的控制寄存器

10.3.1 串行控制寄存器(SCON)
10.3.2 电源控制寄存器(PCON)

10.4 4种工作方式与波特率的设置

10.4.1 方式0
1.方式0——数据发送
2.方式0——数据接收
10.4.2 方式1
1.方式1——发送数据
2.方式1——接收数据
10.4.3 方式2
1.方式2——发送数据
2.方式2——接收数据
10.4.4 方式3
10.4.5 波特率的设置
1.方式0的波特率
2.方式2的波特率
3.方式1和方式3的波特率

10.5 串行通信的应用编程

10.5.1 利用串行通信的方式0实现产品计数显示的电路及编程
1.电路
2.程序及说明
10.5.2 利用串行通信的方式1实现双机通信的电路及编程
1.电路
2.程序及说明

11 I2C总线通信的使用及编程

11.1 I2C总线介绍

11.1.1 概述
11.1.2 I2C总线通信协议
11.1.3 I2C总线的数据传送格式

11.2 I2C总线存储器24C02(E2PROM)

11.2.1 外形与引脚功能说明
11.2.2 器件地址的设置
11.2.3 读/写操作
1.写操作
2.读操作

11.3 单片机与24C02的I2C总线通信电路及编程

11.3.1 模拟I2C总线通信的程序及详解
11.3.2 利用I2C总线从24C02读写一个数据并用LED显示的电路及程序
1.电路
2.程序
11.3.3 利用I2C总线从24C02读写多个数据的电路及程序
1.电路
2.程序
11.3.4 利用24C02存储按键的操作信息的电路及程序
1.电路
2.程序

12 AD(模数)与DA(数模)转换电路及编程

12.1 AD与DA转换

12.1.1 AD转换
1.模拟信号与数字信号
2.AD转换过程
12.1.2 DA转换

12.2 AD与DA转换芯片PCF8591

12.2.1 外形与引脚功能说明
12.2.2 器件地址和功能设置
1.器件地址的设置
2.器件功能设置
3.单端输入与差分输入

12.3 由PCF8591芯片构成的AD和DA转换电路及编程

12.3.1 单片机、PCF8591芯片与8位数码管构成的转换及显示电路
12.3.2 1路AD转换并显示转换值的程序及详解
12.3.3 4路电压测量显示的程序及详解
12.3.4 DA转换输出显示的程序及详解

思维导图

新编51单片机C语言教程:从入门到精通实例详解全攻略

防止博客图床图片失效,防止图片源站外链:

http://www.processon.com/chart_image/5e5b2d0be4b02bc3ad6a0f74.png)

思维导图在线编辑链接:

https://www.processon.com/view/5e5b2d0be4b02bc3ad6a0f71

原文地址:https://www.cnblogs.com/jingle1267/p/12813138.html