第1章 微控制器和显示系统简介 1
1.1微控制器和微处理器 1
1.2微控制器的发展 3
1.3微控制器的组成部分 4
1.3.1地址 4
1.3.2 ALU 4
1.3.3模拟比较器 4
1.3.4模/数转换器 4
1.3.5掉电检测 4
1.3.6总线 5
1.3.7 CAN 5
1.3.8 CISC 5
1.3.9时钟 5
1.3.10 CPU 5
1.3.11 EEPROM 5
1.3.12 EPROM 6
1.3.13 Ethernet 6
1.3.14 Flash存储器 6
1.3.15 Harvard体系结构 6
1.3.16空闲模式 6
1.3.17中断 6
1.3.18 LCD驱动器 7
1.3.19流水线 7
1.3.20上电复位 7
1.3.21 PROM 7
1.3.22 RAM 7
1.3.23实时时钟 7
1.3.24寄存器 7
1.3.25复位 8
1.3.26 RISC 8
1.3.27 ROM 8
1.3.28串行输入输出 8
1.3.29休眠模式 8
1.3.30供电电压 8
1.3.31定时器 9
1.3.32 USB 9
1.3.33看门狗 9
1.4显示部件 9
1.4.1 LED 9
1.4.2 7段数码管 10
1.4.3 OLED 10
1.4.4 LCD 11
小结 13
思考与练习题 13
第2章 PIC18F微控制器 14
2.1 PIC18F2410微控制器 15
2.2 PIC18F2410体系结构 16
2.2.1程序存储器 18
2.2.2数据存储器 19
2.2.3供电要求 20
2.2.4振荡器配置 20
2.2.5复位 24
2.2.6并行I/O端口 25
2.2.7定时器模块 31
2.2.8 A/D转换器模块 36
2.2.9 CPU的特殊功能 40
2.2.10中断 42
2.2.11 PWM模块 46
小结 48
思考与练习题 49
第3章 C编程语言 51
3.1面向微控制器的C语言 51
3.2第一个mikroC Pro for PIC程序 53
3.2.1注释 53
3.2.2程序的开头和结尾 54
3.2.3空白符 54
3.2.4变量名 55
3.2.5保留字 55
3.2.6变量类型 56
3.2.7常量 57
3.2.8转义序列 59
3.2.9 volatile变量 60
3.2.10变量的按位访问 60
3.2.11 sbit类型 60
3.2.12 bit类型 60
3.2.13数组 61
3.2.14指针 64
3.2.15结构 66
3.2.16联合 69
3.2.17 mikroC Pro for PIC中的运算符 69
3.2.18程序流程控制 78
3.3 mikroC Pro for PIC函数 87
3.3.1函数原型 89
3.3.2 void函数 91
3.3.3函数的参数传递 91
3.3.4向函数传递数组 91
3.3.5中断处理 93
3.4 mikroC Pro for PIC内置函数 93
3.5 mikroC Pro for PIC库 95
3.5.1 ANSI C库 96
3.5.2 Miscellaneous库 96
3.6 mikroC Pro for PIC编译器的使用 96
3.6.1 mikroC Pro for PIC集成开发环境 97
3.6.2创建一个源文件 101
3.6.3编译源文件 104
3.7 mikroC Pro for PIC仿真器的使用 104
3.7.1设置断点 105
3.8 mikroC Pro for PIC的其他特点 106
3.8.1查看统计 106
3.8.2查看汇编 107
3.8.3 ASCII图表 108
3.8.4 USART终端 108
3.8.5 7段数码管编辑器 108
3.8.6帮助 108
小结 108
思考与练习题 109
第4章 PIC微控制器及显示器开发工具 111
4.1 PIC硬件开发板 112
4.1.1 Super Bundle开发套件 112
4.1.2 PIC18 Explorer开发板 112
4.1.3 PIC18F4XK20 Starter开发套件 113
4.1.4 PICDEM 4 114
4.1.5 PIC16F887开发套件 114
4.1.6 FUTURLEC PIC18F4550开发板 115
4.1.7 EasyPIC16开发板 116
4.1.8 EasyPIC7开发板 117
4.2 PIC微控制器显示器开发工具 118
4.2.1显示器开发硬件工具 118
4.2.2显示器软件开发工具 120
4.3 EasyPIC7开发板在线调试器的使用 121
小结 123
思考与练习题 124
第5章 发光二极管 125
5.1典型LED 125
5.2 LED的颜色 126
5.3 LED的尺寸 127
5.4双色LED 127
5.5三色LED 128
5.6闪烁式LED 128
5.7其他LED形状 128
5.8 7段数码管 129
5.8.1显示数字 130
5.8.2多位7段数码管 131
5.9字母数字LED 132
5.10 mikroC Pro for PIC 7段数码管编辑器 135
小结 135
思考与练习题 136
第6章 LCD及mikroC Pro for PIC LCD函数 137
6.1 HD44780控制器 137
6.2显示用户定义数据 139
6.3 DDRAM地址 141
6.4显示器的时序与控制 142
6.4.1清屏 143
6.4.2归位 143
6.4.3光标移动方向 143
6.4.4显示屏开/关 144
6.4.5光标、画面位移 144
6.4.6功能设置 144
6.4.7 CGRAM地址设置 144
6.4.8 DDRAM地址设置 145
6.4.9读取忙标志 145
6.4.10写数据 145
6.4.11读数据 145
6.5 LCD初始化 146
6.5.1 8位模式初始化 146
6.5.2 4位模式初始化 146
6.6 LCD显示器设置实例 149
6.7 mikroC Pro for PIC LCD函数 151
6.7.1 Led_Init 151
6.7.2 Led_Out 152
6.7.3 Led_Out_Cp 152
6.7.4 Led_Chr 152
6.7.5 Lcd_Chr_Cp 153
6.7.6 Lcd_Cmd 153
小结 153
思考与练习题 154
第7章 GLCD图形液晶显示器 155
7.1 128×64像素GLCD 155
7.2 GLCD显示器的操作 157
7.3 mikroC Pro for PIC GLCD库函数 159
7.3.1 Glcd_Init 159
7.3.2 Glcd_Set_Side 159
7.3.3 Glcd_Set_X 159
7.3.4 Glcd_Set_Page 160
7.3.5 Glcd_Write_Data 160
7.3.6 Glcd_Fill 160
7.3.7 Glcd_Dot 160
7.3.8 Glcd_Line 160
7.3.9 Glcd_V_Line 160
7.3.10 Glcd_H_Line 161
7.3.11 Glcd_Rectangle 161
7.3.12 Glcd_Rectangle_Round_Edges 161
7.3.13 Glcd_Rectangle_Round_Edges_Fill 161
7.3.14 Glcd_Box 162
7.3.15 Glcd_Circle 162
7.3.16 Glcd_Circle_Fill 162
7.3.17 Glcd_Set_Font 162
7.3.18 Glcd_Set_Font_Adv 163
7.3.19 Glcd_Write_Char 163
7.3.20 Glcd_Write_Char_Adv 163
7.3.21 Glcd_Write_Text 164
7.3.22 Glcd_Write_Text_Adv 164
7.3.23 Glcd_Write_Const_Text_Adv 164
7.3.24 Glcd_Image 164
7.4 GLCD显示器设计实例 165
7.5 mikroC Pro for PIC位图编译器 166
7.6给GLCD增加触摸屏功能 167
7.6.1触屏显示器的类型 168
7.6.2电阻式触摸屏 169
小结 171
思考与练习题 171
第8章 微控制器程序开发实践 172
8.1使用PDL语言和流程图 172
8.1.1 BEGIN-END 172
8.1.2顺序结构 173
8.1.3 IF-THEN-ELSE-ENDIF 173
8.1.4 DO-ENDDO 173
8.1.5 REPEAT-UNTIL 174
8.1.6调用子程序 174
8.1.7子程序结构 175
8.2开发实例 175
8.3流程图中for循环的表示 178
小结 179
思考与练习题 179
第9章 LED开发实践 181
9.1工程(1):LED闪烁 181
9.1.1工程说明 181
9.1.2框图 182
9.1.3电路图 182
9.1.4 PDL描述 182
9.1.5程序 183
9.1.6改进建议 183
9.2工程(2):二进制数计数LED 186
9.2.1工程说明 186
9.2.2框图 186
9.2.3电路图 186
9.2.4 PDL描述 187
9.2.5程序 187
9.2.6改进建议 188
9.3工程(3):旋转发光LED 188
9.3.1工程说明 188
9.3.2框图 188
9.3.3电路图 188
9.3.4 PDL描述 189
9.3.5程序 189
9.3.6程序改进 190
9.4工程(4):旋转幸运日 191
9.4.1工程说明 191
9.4.2框图 191
9.4.3电路图 192
9.4.4 PDL描述 193
9.4.5程序 194
9.4.6按键防抖 195
9.5工程(5):随机闪烁LED 196
9.5.1工程说明 196
9.5.2框图 196
9.5.3电路图 196
9.5.4 PDL描述 196
9.5.5程序 197
9.6工程(6):LED骰子 198
9.6.1工程说明 198
9.6.2框图 198
9.6.3电路图 199
9.6.4 PDL描述 200
9.6.5程序 200
9.6.6改进建议 201
9.7工程(7):多LED单端口引脚连接 202
9.7.1工程说明 202
9.7.2框图 203
9.7.3电路图 203
9.7.4 PDL描述 204
9.7.5程序 204
9.7.6改进建议 206
9.8工程(8):改变 LED亮度 206
9.8.1工程说明 206
9.8.2框图 208
9.8.3电路图 208
9.8.4 PDL描述 208
9.8.5程序 208
9.8.6使用定时器中断来产生PWM信号 210
9.8.7用PWM连续改变LED亮度 213
9.8.8改进建议 213
9.8.9使用微控制器内置PWM模块 214
9.8.10使用PWM模块改变LED亮度 216
9.9工程(9):LED蜡烛 217
9.9.1工程说明 217
9.9.2框图 217
9.9.3电路图 217
9.9.4 PDL描述 217
9.9.5程序 218
小结 219
思考与练习题 219
第10章 7段数码管开发实践 220
10.1工程(1):1位增量计数7段数码管 220
10.1.1工程描述 220
10.1.2框图 220
10.1.3电路图 220
10.1.4 PDL描述 220
10.1.5程序 221
10.1.6改进建议 223
10.2工程(2):2位7段数码管数字显示 224
10.2.1工程描述 224
10.2.2框图 224
10.2.3电路图 224
10.2.4 PDL描述 225
10.2.5程序 225
10.3工程(3):2位7段数码管彩票号码显示 227
10.3.1工程描述 227
10.3.2框图 227
10.3.3电路图 228
10.3.4 PDL描述 228
10.3.5程序 230
10.4工程(4):4位7段数码管事件计数器 233
10.4.1工程描述 233
10.4.2框图 234
10.4.3电路图 234
10.4.4 PDL描述 235
10.4.5程序 236
10.5工程(5):基于中断的串行4位7段数码管事件计时器 240
10.5.1工程描述 240
10.5.2框图 242
10.5.3电路图 242
10.5.4 PDL描述 243
10.5.5程序 244
小结 249
思考与练习题 249
第11章 文本LCD开发实践 250
11.1工程(1):LCD文本显示 250
11.1.1工程描述 250
11.1.2框图 250
11.1.3电路图 250
11.1.4 PDL程序描述 251
11.1.5程序 251
11.2工程(2):LCD文本的移动 253
11.2.1框图 253
11.2.2电路图 253
11.2.3 PDL程序描述 253
11.2.4程序 254
11.3工程(3):使用 LCD计数 256
11.3.1框图 256
11.3.2电路图 257
11.3.3 PDL程序描述 257
11.3.4程序 257
11.3.5改进建议 259
11.4工程(4):在LCD上创建自定义字体 259
11.4.1框图 260
11.4.2电路图 260
11.4.3 PDL程序描述 261
11.4.4程序 262
11.5工程(5):LCD骰子游戏 263
11.5.1框图 264
11.5.2电路图 264
11.5.3 PDL程序描述 265
11.5.4程序 265
11.6工程(6):数字电压表 267
11.6.1框图 267
11.6.2电路图 268
11.6.3 PDL程序描述 269
11.6.4程序 269
11.7工程(7):温度和压力显示 271
11.7.1框图 273
11.7.2电路图 273
11.7.3 PDL程序描述 274
11.7.4程序 274
11.8工程(8):高/低游戏 276
11.8.1键盘 277
11.8.2 mikroC Pro for PIC键盘库函数 277
11.8.3随机数的生成 278
小结 283
思考与练习题 283
第12章 GLCD开发实践 284
12.1工程(1):创建和显示位图 284
12.1.1工程描述 284
12.1.2框图 287
12.1.3电路图 287
12.1.4 PDL描述 288
12.1.5程序 288
12.2工程(2):移动的小球 290
12.2.1工程描述 290
12.2.2框图 291
12.2.3电路图 291
12.2.4 PDL描述 291
12.2.5程序 292
12.3工程(3):GLCD骰子 294
12.3.1工程描述 294
12.3.2框图 294
12.3.3电路图 294
12.3.4 PDL描述 294
12.3.5程序 294
12.3.6程序改进 300
12.4工程(4):GLCD X-Y绘图 304
12.4.1工程描述 304
12.4.2框图 304
12.4.3电路图 304
12.4.4 PDL描述 304
12.4.5程序 304
12.5工程(5):GLCD绘制温度曲线 308
12.5.1工程描述 308
12.5.2框图 308
12.5.3电路图 308
12.5.4 PDL描述 309
12.5.5程序 309
12.5.6改进建议 313
12.6工程(6):温度和相对湿度的测量 313
12.6.1工程描述 313
12.7 SHT11的操作 314
12.7.1复位 314
12.7.2“启动传输”时序 315
12.7.3转换命令 316
12.8信息确认 316
12.8.1状态寄存器 317
12.8.2输出信号转换 318
12.8.3框图 319
12.8.4电路图 319
12.8.5 PDL描述 320
12.8.6程序 322
小结 327
思考与练习题 327
第13章 触摸屏开发实践 328
13.1工程(1):触摸屏LED开关 328
13.1.1工程描述 328
13.1.2框图 329
13.1.3电路图 330
13.1.4 PDL描述 332
13.1.5程序 332
13.2工程(2):LED可变闪烁速率 335
13.2.1工程描述 335
13.2.2框图 336
13.2.3电路图 336
13.2.4 PDL描述 336
13.2.5程序 337
小结 341
思考与练习题 341
第14章 Visual GLCD软件开发实践 343
14.1工程(1):LED反色显示 344
14.1.1工程描述 344
14.1.2框图 344
14.1.3电路图 344
14.2工程(2):控制多个LED状态反转 348
14.2.1工程描述 348
14.2.2框图 349
14.2.3电路图 349
14.3工程(3):迷你电子琴 350
14.3.1工程描述 350
14.3.2框图 350
14.3.3电路图 351
14.4工程(4):SmartGLCD开发 354
14.4.1工程描述 354
14.4.2框图 354
14.4.3电路图 355
14.5工程(5):SmartGLCD开发十进制与十六进制转换器 364
14.5.1工程描述 364
14.5.2屏幕布局 364
14.5.3电路图 364
小结 370
思考与练习题 370
第15章 Visual TFT软件图形显示器开发实践 371
15.1工程(1):倒计时器 372
15.1.1工程描述 372
15.1.2框图 373
15.2工程(2):电子书 380
15.2.1工程描述 380
15.3工程(3):图片展示程序 383
15.3.1工程描述 383
小结 388
思考与练习题 388