项目1 单片机操作环境
1.1 学什么单片机
1.2 如何学习单片机
1.3 学习单片机的准备工作
1.4 搭建开发环境
1.5 Keil概况介绍
1.6 新建一个工程
1.7 程序下载
知识梳理与总结
思考与练习题
项目2 点亮你的LED小灯
2.1 认识STC单片机
2.2 单片机最小系统
2.2.1 电源
2.2.2 晶振
2.2.3 复位电路
2.3 LED灯
2.4 编写点亮小灯的程序
2.4.1 特殊功能寄存器和伪指令
2.4.2 各种数制及转换
2.5 点亮小灯的原理
知识梳理与总结
思考与练习题
项目3 让LED闪烁起来
3.1 什么是单片机系统
3.2 单片机的I/O口
3.2.1 STC单片机的I/O口
3.3 闪烁的LED
3.3.1 软件设计流程图
3.3.2 汇编指令格式
3.3.3 程序详解
3.3.4 延时子程序的编写
3.4 实例延伸——按键控制LED闪烁
3.4.1 明确系统功能
3.4.2 硬件电路
3.4.3 软件设计
知识梳理与总结
思考与练习题
项目4 单片机的存储器
4.1 程序存储器
4.1.1 程序下载到哪里
4.1.2 STCl5系列单片机的程序存储器
4.2 STC15系列单片机的数据存储器
4.2.1 数据存储器的作用
4.2.2 片内和片外数据存储器
4.2.3 00H~1FH工作寄存器区
4.2.4 20H~2FH位寻址区
4.2.5 30H~FFH开放区
4.3 STC15系列单片机的特殊功能寄存器SFR
4.3.1 特殊功能寄存器的分布
4.3.2 SFR的操作方法——字节操作与位操作
4.3.3 特殊功能寄存器简介
4.4 实例延伸——按键的长按和短按
4.4.1 明确系统功能
4.4.2 硬件电路
4.4.3 软件设计
知识梳理与总结
思考与练习题
项目5 解剖单片机
5.1 从I/O口到单片机的“解剖结构”
5.1.1 P1口结构及“解剖图”
5.1.2 单片机的“解剖结构”
5.1.3 深入“解剖”——算术逻辑单元ALU
5.2 存储器家族
5.3 随机访问存储器——RAM
5.4 只读存储器——ROM
5.5 数据是如何被保存的
5.5.1 字符数据与存储器
5.5.2 图像数据与存储器
5.6 实例点拨——用取表方式控制流水灯
5.6.1 明确系统功能
5.6.2 显示数据转换
5.6.3 取表法
知识梳理与总结
思考与练习题
项目6 单片机指令的执行
6.1 汇编语言详谈
6.1.1 汇编器
6.1.2 汇编程序书写格式
6.1.3 伪指令
6.2 时钟与指令的执行
6.2.1 时钟究竟是什么
6.2.1 程序计数器PC
6.2.3 指令的执行
6.3 寻址方式
6.4 实例点拨——程序存储器和数据存储器的寻址
6.4.1 把程序存储器中的数据载入工作寄存器
6.4.2 把程序存储器中的数据载入数据存储器
6.4.3 再谈取表法
知识梳理与总结
思考与练习题
项目7 程序结构及综合实例
7.1 程序的基本结构
7.1.1 顺序结构程序设计
7.1.2 分支(选择)结构程序设计
7.1.3 循环结构程序设计
7.1.4 查表程序设计
7.1.5 散转(多分支)结构程序设计
7.2 综合实例——具有4种工作模式的流水灯
7.2.1 明确系统功能
7.2.2 软件设计
7.3 综合实例——简单加法器的设计
7.3.1 明确系统功能
7.3.2 软件设计
7.4 蜂鸣器和音乐的实现
7.4.1 单片机I/O口的结构
7.4.2 上拉/下拉电阻
7.4.3 蜂鸣器
7.4.4 单片机播放音乐的实现原理
7.4.5 软件设计
知识梳理与总结
思考与练习题
项目8 单片机的指令详谈
8.1 指令概述
8.2 算术操作类指令
8.2.1 加法指令——ADDA,(scr-byte)
8.2.2 带进位的加法指令——ADDCA,(src-byte)
8.2.3 带借位的减法指令——SUBBA,(src-byte)
8.2.4 自增/自减指令——INC(Byte)/DEC(Byte)
8.2.5 乘法指令——MULAB
8.2.6 除法指令——DIVAB
8.2.7 十进制调整指令——DAA
8.3 逻辑运算指令
8.3.1 AND操作——ANL(dest-byte),(src-byte)
8.3.2 OR操作——ORL(dest-byte),(src-byte)
8.3.3 XOR操作——XRL(dest-byte),(src-byte)
8.3.4 清0操作——CLRA
8.3.5 取反操作——CPLA
8.3.6 移位操作指令——RL、RLC、RR、RRC
8.4 片内数据传送指令
8.4.1 数据传送指令——MOV(dest),(src)
8.4.2 数据指针寄存器装载指令——MOVDPTR,#datal6
8.4.3 堆栈指令——PLISH和POP
8.4.4 数据交换指令——XCH/XCHD/SWAP
8.5 片外数据传送指令
8.6 查表指令
8.7 布尔指令
8.7.1 清0、置1指令——CLR、SETB
8.7.2 布尔逻辑指令——ANL、ORL、CPL
8.7.3 位数据装载指令——MOV(dest-bit),(src-bit)
8.7.4 布尔跳转指令——JC、JNC、JB、JNB、JBC
8.8 调用子程序指