第1章单片机系统的基本概念 1
1.1绪论 1
1.2微控制器简介 2
1.2.1 RAM 5
1.2.2 ROM 6
1.2.3 EPROM 6
1.2.4 EEPROM 6
1.2.5 Flash EEPROM 6
1.3单片机的硬件性能 7
1.3.1电源电压 7
1.3.2时钟 7
1.3.3定时器 7
1.3.4看门狗 8
1.3.5复位输入 8
1.3.6中断逻辑 8
1.3.7欠压检测 8
1.3.8模/数转换器 8
1.3.9串行通信接口 9
1.3.10 EEPROM数据存储器 9
1.3.11 LCD驱动器 9
1.3.12模拟比较器 10
1.3.13实时时钟 10
1.3.14睡眠模式 10
1.3.15上电复位 10
1.3.16低功耗操作 10
1.3.17电流驱动能力 10
1.4单片机的体系结构 11
1.4.1冯·诺依曼架构和哈佛架构 11
1.4.2 RISC和CISC 11
练习题 11
第2章PIC系列单片机简介 13
2.1 12位指令字单片机 15
2.2 14位指令字单片机 17
2.3 16位指令字单片机 21
2.4 PIC单片机内部硬件资源 22
2.4.1程序存储器 22
2.4.2数据存储器 23
2.4.3文件寄存器与特殊功能寄存器 23
2.4.4时钟振荡器电路 35
2.4.5复位电路 38
2.4.6中断 38
2.4.7系统配置字 39
2.4.8输入/输出接口 40
练习题 44
第3章PIC单片机应用项目开发 45
3.1硬件工具 45
3.1.1 PC微机 45
3.1.2 PIC系列单片机编程器 46
3.1.3无焊面包板 47
3.1.4 PIC单片机及相关元器件 49
3.1.5电源 51
3.2软件工具 53
3.2.1源代码编辑器软件 53
3.2.2 PicBasic和PicBasic Pro编译器 57
3.2.3编程器(或烧写器)软件 58
3.3捆绑式开发套件 60
3.3.1开发者套件 60
3.3.2 PicBasic编译器套件 60
3.3.3串行编程器LAB-X1开发套件 61
3.4实验板 61
3.4.1 LAB-X1实验板 61
3.4.2 PIC系列单片机开发实验板 62
3.4.3 EasyPIC 2开发系统 63
3.5项目开发实例 63
3.6其他重要的开发工具 67
3.6.1软件模拟器 67
3.6.2在线仿真器 68
3.7一些有用的网站链接 68
练习题 69
第4章PicBasic和PicBasic Pro语言编程基础 71
4.1 PicBasic语言 72
4.1.1 PicBasic变量 72
4.1.2 PicBasic算术和逻辑运算 76
4.1.3 PicBasic程序流程控制命令 77
4.1.4其他PicBasic命令 82
4.1.5推荐的PicBasic程序结构 94
4.2 PicBasic Pro语言 95
4.2.1 PicBasic Pro变量 95
4.2.2常量 96
4.2.3注释 96
4.2.4多语句行 97
4.2.5包含(INCLUDE) 97
4.2.6定义(DEFINE) 97
4.2.7行扩展 97
4.2.8在PicBasic Pro中访问端口和其他寄存器 97
4.2.9算术运算符 98
4.2.10 PicBasic Pro命令 101
4.3液晶显示器接口和命令 108
4.3.1并行LCD 109
4.3.2串行LCD 114
4.4中断 118
4.5推荐的PicBasic Pro程序结构 119
4.6步进电机的应用 120
4.7伺服电机的应用 122
练习题 122
第5章PicBasic和PieBasic Pro编程项目实例 125
项目1:间隔为lS的闪烁LED 125
项目2:按复杂方式闪烁的LED 131
项目3:LED闪烁警示灯 135
项目4:点亮奇数发光二极管 137
项目5:8位LED二进制计数器 140
项目6:向左滚动的LED 144
项目7:向右滚动的LED 148
项目8:左右循环滚动的LED 152
项目9:LED骰子 157
项目10:7段LED数码管计数器 163
项目11:7段LED的骰子 172
项目12:双位7段LED数码管 178
项目13:双位7段LED数码管计数器 187
项目14:双位7段LED数码管显示计数器 192
项目15:4位LED串行驱动显示——项目计数 196
项目16:串行驱动4位数码管计数器——前导零消隐 211
项目17:累计外部中断事件的4位计数器 220
项目18:3键控制的4位计时器 225
项目19:停车场控制系统 231
项目20:利用液晶显示器LCD显数的秒计数器 243
项目21:LCD时钟 253
项目22:基于LCD的计时器 261
项目23:利用A/D转换和LCD显示的电压表 268
项目24:利用A/D转换和LCD显示的数字温度计 278
项目25:利用外部EEPROM和串行LCD显示的温度计 283
项目26:利用RS232串行输出的可编程温度计 289
项目27:简易电子琴 302
项目28:单极性步进电机的控制 307
项目29:利用UCN5804B驱动的单极性步进电机控制 313
项目30:基于伺服电机的移动机器人控制 317
附录A对于原著所作的一些补充 327
附录B与本书配套的PicBasic学习开发板 331