单片机已经渗透到我们生产、生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。因此,无论是信息技术专业,还是自动化控制技术专业,单片机技术课程在专业培养中都尤为重要。单片机技术实践性极强,理论与实践结合紧密。这些年,我们根据课程的特点,采用了项目式教学,并在校内外各种竞赛中初见成效。
本书有如下特点:1)项目式教学。以典型的项目为载体,将知识点分解到具体任务中,通过完成任务,学习任务相关知识与技能。部分有兴趣的同学还可以通过提高任务,巩固所学知识。
2)双语言编写。根据不同专业的编程需要,除了扩展项目外,本书其他项目均同时采用了汇编语言、C语言编写程序。
3)硬件与仿真结合。对于最小系统可完成的项目,均采用了以硬件为对象的程序编写,同时进行仿真验证,对于少数硬件与仿真的差别也做了简单介绍。
本书由广西机电职业技术学院曹华、林勇坚任主编,谭艳梅和秦培林任副主编,参加编写的还有方羽、蒋朝宁和马子龙。具体分工为:曹华、林勇坚对本书的编写思路与大纲进行总体策划,指导全书的编写,对全书统稿,并完成了项目1、项目3、项目6和附录D的编写;谭艳梅协助完成统稿工作,并编写项目5、附录A和附录B;秦培林协助完成统稿工作,并编写项目7;方羽编写项目4;蒋朝宁编写项目2;马子龙编写扩展项目和附录C。对向本书编写提供帮助的人士表示感谢。
因编者水平有限,书中难免存在错误,恳请读者提出宝贵意见。
编者
前言
项目1 数制初步 1
任务1 数制及其转换 1
1. 1. 1 几种常用数制 1
1. 1. 2 不同数制之间的相互转换 3
任务2 机器数与真值 5
1. 2. 1 计算机的带符号数 5
1. 2. 2 计算机的溢出 6
1. 2. 3 编码 9
项目小结 10
练习一 10
项目2 单片机系统设计 12
任务1 单片机开发板电路设计 12
2. 1. 1 单片机初步介绍 12
2. 1. 2 单片机引脚排列 17
2. 1. 3 存储器与特殊功能寄存器 23
2. 1. 4 单片机的并行口 28
2. 1. 5 单片机最小应用系统 37
2. 1. 6 单片机应用系统电路 42
2. 1. 7 从传统8051 单片机过渡到
STC12C5A60S2 系列单片机 44
任务2 单片机开发板仿真电路设计 44
2. 2. 1 软件的安装 45
2. 2. 2 原理图的绘制 46
项目小结 49
练习二 49
项目3 灯光控制设计 53
任务1 编译软件使用 53
3. 1. 1 软件安装 53
3. 1. 2 软件的使用 54
任务2 跑马灯设计 59
3. 2. 1 关于P1 口 59
3. 2. 2 延时子程序的编写 59
3. 2. 3 任务实施步骤 59
任务3 交通灯设计 64
3. 3. 1 中断概念 64
3. 3. 2 中断系统 64
3. 3. 3 任务实施步骤 70
项目小结 75
练习三 76
项目4 报警系统设计 79
任务1 蜂鸣器控制(软件延时) 79
4. 1. 1 蜂鸣器工作原理 79
4. 1. 2 单片机对蜂鸣器的控制 80
4. 1. 3 任务实施步骤 80
任务2 蜂鸣器控制(定时器控制) 82
4. 2. 1 结构与功能 82
4. 2. 2 定时器/计数器的控制寄存器 83
4. 2. 3 定时器/计数器的工作方式 86
4. 2. 4 定时器/ 计数器的初始化编程
步骤 88
4. 2. 5 定时器/计数器的计数初值 89
4. 2. 6 任务实施步骤 89
任务3 音乐播放控制 94
4. 3. 1 音调 95
4. 3. 2 节拍 96
4. 3. 3 任务实施步骤 97
项目小结 101
练习四 102
项目5 医院呼叫系统设计 104
任务1 数码管显示 104
5. 1. 1 数码管的基本工作原理 105
5. 1. 2 任务实施步骤 106
任务2 简易按键控制 112
5. 2. 1 键盘及接口 112
5. 2. 2 任务实施步骤 116
任务3 串行通信 119
5. 3. 1 串行通信的概念 119
5. 3. 2 串行通信技术 120
5. 3. 3 串行通信的接口电路 121
5. 3. 4 单片机串行口的结构与控制
寄存器 122
5. 3. 5 任务实施步骤 130
任务4 医院病人呼叫系统 133
项目小结 136
练习五 136
项目6 电子仪器设计 138
任务1 数字电压表设计(AT89S51
芯片) 138
6. 1. 1 ADC0809 的主要特性 139
6. 1. 2 ADC0809 的内部结构和外部
引脚 139
6. 1. 3 任务实施步骤 140
任务2 数字电压表设计(STC 芯片) 146
6. 2. 1 STC12C5A60S2 单片机的内部
ADC 结构 146
6. 2. 2 ADC 相关寄存器 146
6. 2. 3 任务实施步骤 149
任务3 信号发生器设计 152
6. 3. 1 单片机产生波形的原理 153
6. 3. 2 DAC0832 的内部结构与引脚
功能 153
6. 3. 3 任务实施步骤 154
项目小结 156
练习六 156
项目7 电子温度计的设计 158
任务1 液晶显示 158
7. 1. 1 LCD1602 的引脚 159
7. 1. 2 LCD1602 的控制指令 160
7. 1. 3 LCD1602 模块的读写操作时序 161
7. 1. 4 任务实施步骤 163
任务2 温度计的设计 168
7. 2. 1 DS18B20 的引脚 168
7. 2. 2 DS18B20 的通信时隙 169
7. 2. 3 任务实施步骤 171
项目小结 181
练习七 181
扩展项目 俄罗斯方块游戏的设计 182
任务1 点阵显示 182
8. 1. 1 LED 点阵的结构 182
8. 1. 2 LED 点阵显示原理 182
8. 1. 3 任务实施步骤 183
任务2 俄罗斯方块游戏设计(点阵) 187
8. 2. 1 俄罗斯方块游戏的基本规则 188
8. 2. 2 任务实施步骤 188
任务3 俄罗斯方块游戏设计
(LCD12864) 200
8. 3. 1 LCD12864 模块引脚说明 200
8. 3. 2 LCD12864 模块指令说明 200
8. 3. 3 LCD12864 的写操作 202
8. 3. 4 任务实施步骤 202
附录 213
附录A 单片机汇编语言指令表 213
附录B ASCII 字符代码表 217
附录C 单片机开发板 218
附录D STC-ISP 下载控制软件使用
说明 220
参考文献 228