基础篇 1
应用实例1——Proteus基础 1
1.1 实例目的 1
1.2 Proteus基础 1
1.3 Proteus的窗口和支持的文件 2
1.4 Proteus的菜单 3
1.4.1 File菜单 3
1.4.2 View菜单 4
1.4.3 Edit菜单 5
1.4.4 Tools菜单 5
1.4.5 Design菜单 6
1.4.6 Graph菜单 7
1.4.7 Source菜单 7
1.4.8 Debug菜单 8
1.4.9 Library菜单 9
1.4.10 Template菜单 9
1.4.11 System菜单 11
1.4.12 Help菜单 12
1.5 实例总结 12
应用实例2——Proteus的快捷工具栏和工具箱 13
2.1 实例目的 13
2.2 Proteus的快捷工具栏 13
2.3 Proteus的工具箱 14
2.4 实例总结 15
应用实例3——什么是Proteus 16
3.1 实例目的 16
3.2 Proteus的使用流程 16
3.3 实例总结 17
应用实例4——51单片机 18
4.1 实例目的 18
4.2 51单片机基础 18
4.2.1 51单片机的8位处理器 19
4.2.2 51单片机的存储器 21
4.2.3 51单片机的外部引脚 24
4.2.4 51单片机的时钟模块 26
4.2.5 51单片机的其他资源 27
4.3 实例总结 27
应用实例5——Proteus和51单片机 28
5.1 实例目的 28
5.2 Proteus中的51单片机 28
5.3 实例总结 29
应用实例6——核心 30
6.1 实例目的 30
6.2 51单片机应用系统核心 30
6.3 实例总结 30
应用实例7——“C语言” 31
7.1 实例目的 31
7.2 51单片机的C语言 31
7.2.1 C51语言的数据类型、运算符和表达式 31
7.2.2 C51语言的结构 35
7.2.3 C51语言的函数 36
7.2.4 C51语言的数组和指针 36
7.2.5 C51语言的自构造类型 38
7.3 实例总结 39
应用实例8——“Hello World!” 40
8.1 实例目的 40
8.2 Keil μVision4软件开发环境 40
8.2.1 Keil μVision4的工作窗口 40
8.2.2 Keil μVision4的菜单栏 41
8.3 “Hello World!”的代码编写 47
8.4 实例总结 50
应用实例9——闪烁的灯光 51
9.1 实例的目的和设计思路 51
9.2 实例涉及的基础知识 51
9.2.1 51单片机的I/O端口 51
9.2.2 发光二极管 54
9.3 实例的应用电路设计 56
9.4 实例的应用代码编写 56
9.5 实例的仿真和总结 57
应用实例10——跑马灯 63
10.1 实例目的和设计思路 63
10.2 实例涉及的基础知识 63
10.3 实例的应用电路设计 63
10.4 实例的应用代码编写 64
10.5 实例的仿真和总结 65
应用实例11——到底哪个按键被按下? 66
11.1 实例的目的和设计思路 66
11.2 实例涉及的基础知识 66
11.2.1 独立按键硬件基础 66
11.2.2 Proteus中的独立按键 67
11.3 实例的应用电路设计 68
11.4 实例的应用代码编写 69
11.5 实例的仿真和总结 70
应用实例12——定时发声 71
12.1 实例的目的和设计思路 71
12.2 实例涉及的基础知识 71
12.2.1 蜂鸣器硬件基础 71
12.2.2 Proteus中的蜂鸣器 72
12.3 实例的应用电路设计 73
12.4 实例的应用代码编写 74
12.5 实例的仿真和总结 75
应用实例13——听到按键的声音 76
13.1 实例的目的和设计思路 76
13.2 实例涉及的基础知识 76
13.3 实例的应用电路设计 76
13.4 实例的应用代码编写 77
13.5 实例的仿真和总结 78
应用实例14——打开还是关闭? 79
14.1 实例的目的和设计思路 79
14.2 实例涉及的基础知识 79
14.2.1 单刀单掷开关硬件基础 79
14.2.2 Proteus中的单刀单掷开关 79
14.3 实例的应用电路设计 80
14.4 实例的应用代码编写 81
14.5 实例的仿真和总结 82
应用实例15——显示数字和字符 83
15.1 实例的目的和设计思路 83
15.2 实例涉及的基础知识 83
15.2.1 单位数码管硬件基础 83
15.2.2 Proteus中的单位数码管 85
15.3 实例的应用电路设计 86
15.4 实例的应用代码编写 86
15.5 实例的仿真和总结 87
准备篇 89
应用实例16——使用外部中断计数 89
16.1 实例的目的和设计思路 89
16.2 实例涉及的基础知识 89
16.2.1 51单片机的中断系统构成 89
16.2.2 51单片机的中断处理过程 90
16.2.3 51单片机的中断服务子程序 92
16.2.4 51单片机的外部中断 92
16.3 实例的应用电路设计 93
16.4 实例的应用代码编写 93
16.5 实例的仿真和总结 94
应用实例17——使用外部中断的电平触发方式 95
17.1 实例的目的和设计思路 95
17.2 实例涉及的基础知识 95
17.3 实例的应用电路设计 95
17.4 实例的应用代码编写 96
17.5 实例的仿真和总结 96
应用实例18——联合中断申请 98
18.1 实例的目的和设计思路 98
18.2 实例涉及的基础知识 98
18.3 实例的应用电路设计 98
18.4 实例的应用代码编写 99
18.5 实例的仿真和总结 99
应用实例19——T0方波发生器 101
19.1 实例的目的和设计思路 101
19.2 实例涉及的基础知识 101
19.2.1 51单片机的定时计数器组成 101
19.2.2 51单片机的定时计数器的寄存器 101
19.2.3 51单片机定时计数器的工作方式 103
19.2.4 Proteus中的虚拟示波器 104
19.3 实例的应用电路设计 106
19.4 实例的应用代码编写 107
19.5 实例的仿真和总结 107
应用实例20——T1方波发生器 108
20.1 实例的目的和设计思路 108
20.2 实例涉及的基础知识 108
20.3 实例的应用电路设计 108
20.4 实例的应用代码编写 108
20.5 实例的仿真和总结 108
应用实例21——PWM波形发生器 109
21.1 实例的目的和设计思路 109
21.2 实例涉及的基础知识 109
21.3 实例的应用电路设计 109
21.4 实例的应用代码编写 110
21.5 实例的仿真和总结 110
应用实例22——按键灯 111
22.1 实例的目的和设计思路 111
22.2 实例涉及的基础知识 111
22.3 实例的应用电路设计 111
22.4 实例的应用代码编写 112
22.5 实例的仿真和总结 112
应用实例23——按键计数 114
23.1 实例的目的和设计思路 114
23.2 实例涉及的基础知识 114
23.3 实例的应用电路设计 114
23.4 实例的应用代码编写 114
23.5 实例的仿真和总结 114
应用实例24——脉冲宽度测量 115
24.1 实例的目的和设计思路 115
24.2 实例涉及的基础知识 115
24.3 实例的应用电路设计 115
24.4 实例的应用代码编写 116
24.5 实例的仿真和总结 116
应用实例25——秒表 117
25.1 实例的目的和设计思路 117
25.2 实例涉及的基础知识 117
25.3 实例的应用电路设计 117
25.4 实例的应用代码编写 118
25.5 实例的仿真和总结 118
应用实例26——门铃 119
26.1 实例的目的和设计思路 119
26.2 实例涉及的基础知识 119
26.3 实例的应用电路设计 119
26.4 实例的应用代码编写 120
26.5 实例的仿真和总结 120
应用实例27——交通灯 121
27.1 实例的目的和设计思路 121
27.2 实例涉及的基础知识 121
27.3 实例的应用电路设计 122
27.4 实例的应用代码编写 123
27.5 实例的仿真和总结 123
应用实例28——声光报警系统 125
28.1 实例的目的和设计思路 125
28.2 实例涉及的基础知识 125
28.3 实例的应用电路设计 125
28.4 实例的应用代码编写 126
28.5 实例的仿真和总结 126
应用实例29——双机高速通信 128
29.1 实例的目的和设计思路 128
29.2 实例涉及的基础知识 128
29.2.1 一些基础术语 128
29.2.2 51单片机串行模块的寄存器 129
29.2.3 51单片机串行模块的工作方式 130
29.2.4 51单片机串行模块的中断 132
29.3 实例的应用电路设计 133
29.4 实例的应用代码编写 134
29.5 实例的仿真和总结 134
应用实例30——单片机和PC机通信 135
30.1 实例的目的和设计思路 135
30.2 实例涉及的基础知识 135
30.2.1 Proteus中提供的虚拟终端 135
30.2.2 Proteus中的COMPIM模块 136
30.2.3 虚拟串口软件 137
30.3 实例的应用电路设计 139
30.4 实例的应用代码编写 140
30.5 实例的仿真和总结 140
应用实例31——单片机控制单片机 141
31.1 实例的目的和设计思路 141
31.2 实例涉及的基础知识 141
31.3 实例的应用电路设计 141
31.4 实例的应用代码编写 142
31.5 实例的仿真和总结 142
应用实例32——单片机双向通信 143
32.1 实例的目的和设计思路 143
32.2 实例涉及的基础知识 143
32.3 实例的应用电路设计 143
32.4 实例的应用代码编写 144
32.5 实例的仿真和总结 145
应用实例33——使用定时计数器扩展外部中断 146
33.1 实例的目的和设计思路 146
33.2 实例涉及的基础知识 146
33.3 实例的应用电路设计 146
33.4 实例的应用代码编写 147
33.5 实例的仿真和总结 147
应用实例34——使用串口模拟外部中断 148
34.1 实例的目的和设计思路 148
34.2 实例涉及的基础知识 148
34.3 实例的应用电路设计 148
34.4 实例的应用代码编写 149
34.5 实例的仿真和总结 149
应用实例35——使用普通I/O引脚模拟串行端口 150
35.1 实例的目的和设计思路 150
35.2 实例涉及的基础知识 150
35.3 实例的应用电路设计 150
35.4 实例的应用代码编写 151
35.5 实例的仿真和总结 151
应用实例36——使用C语言库函数 153
36.1 实例的目的和设计思路 153
36.2 实例涉及的基础知识 153
36.2.1 51单片机的库函数 153
36.2.2 库文件和头文件分类 153
36.2.3 库函数的分类 154
36.3 实例的应用电路设计 158
36.4 实例的应用代码编写 159
36.5 实例的仿真和总结 159
应用实例37——51单片机空操作的应用 160
37.1 实例的目的和设计思路 160
37.2 实例涉及的基础知识 160
37.3 实例的应用电路设计 160
37.4 实例的应用代码编写 160
37.5 实例的仿真和总结 161
应用实例38——将字符转换为数字 162
38.1 实例的目的和设计思路 162
38.2 实例涉及的基础知识 162
38.2.1 isdigit函数的使用方法 162
38.2.2 toint函数的使用方法 162
38.3 实例的应用电路设计 163
38.4 实例的应用代码编写 163
38.5 实例的仿真和总结 163
应用实例39——只显示大写字符 165
39.1 实例的目的和设计思路 165
39.2 实例涉及的基础知识 165
39.3 实例的应用电路设计 165
39.4 实例的应用代码编写 165
39.5 实例的仿真和总结 166
应用实例40——移位函数的应用 167
40.1 实例的目的和设计思路 167
40.2 实例涉及的基础知识 167
40.3 实例的应用电路设计 167
40.4 实例的应用代码编写 167
40.5 实例的仿真和总结 169
应用实例41——绝对值函数的应用 170
41.1 实例的目的和设计思路 170
41.2 实例涉及的基础知识 170
41.3 实例的应用电路设计 170
41.4 实例的应用代码编写 170
41.5 实例的仿真和总结 171
应用实例42——找到最接近的整数 172
42.1 实例的目的和设计思路 172
42.2 实例涉及的基础知识 172
42.3 实例的应用电路设计 172
42.4 实例的应用代码编写 172
42.5 实例的仿真和总结 173
应用实例43——切分一个浮点数 174
43.1 实例的目的和设计思路 174
43.2 实例涉及的基础知识 174
43.3 实例的应用电路设计 174
43.4 实例的应用代码编写 174
43.5 实例的仿真和总结 175
应用实例44——使用串口发送函数 176
44.1 实例的目的和设计思路 176
44.2 实例涉及的基础知识 176
44.3 实例的应用电路设计 176
44.4 实例的应用代码编写 176
44.5 实例的仿真和总结 177
应用实例45——使用51单片机串口打印输出字符串 178
45.1 实例的目的和设计思路 178
45.2 实例涉及的基础知识 178
45.3 实例的应用电路设计 180
45.4 实例的应用代码编写 180
45.5 实例的仿真和总结 180
应用实例46——将数据写入51单片机内存缓冲区 181
46.1 实例的目的和设计思路 181
46.2 实例涉及的基础知识 181
46.3 实例的应用电路设计 181
46.4 实例的应用代码编写 182
46.5 实例的仿真和总结 182
应用实例47——将51单片机内存中的字符转换为整数 183
47.1 实例的目的和设计思路 183
47.2 实例涉及的基础知识 183
47.3 实例的应用电路设计 183
47.4 实例的应用代码编写 184
47.5 实例的仿真和总结 184
应用实例48——求51单片机内存中一个字符串的长度 185
48.1 实例的目的和设计思路 185
48.2 实例涉及的基础知识 185
48.3 实例的应用电路设计 185
48.4 实例的应用代码编写 185
48.5 实例的仿真和总结 186
应用实例49——比较51单片机内存中的两个字符串长度 187
49.1 实例的目的和设计思路 187
49.2 实例涉及的基础知识 187
49.3 实例的应用电路设计 187
49.4 实例的应用代码编写 187
49.5 实例的仿真和总结 188
应用实例50——在51单片机内存中查找字符串 189
50.1 实例的目的和设计思路 189
50.2 实例涉及的基础知识 189
50.3 实例的应用电路设计 189
50.4 实例的应用代码编写 189
50.5 实例的仿真和总结 190
应用实例51——建立用户库函数 191
51.1 实例的目的和设计思路 191
51.2 实例涉及的基础知识 191
51.3 实例的应用电路设计 192
51.4 实例的应用代码编写 192
51.5 实例的仿真和总结 192
应用实例52——SPI总线及其库函数 194
52.1 实例的目的和设计思路 194
52.2 实例涉及的基础知识 194
52.3 实例的应用电路设计 195
52.4 实例的应用代码编写 196
52.5 实例的仿真和总结 196
应用实例53——I2C总线及其库函数 197
53.1 实例的目的和设计思路 197
53.2 实例涉及的基础知识 197
53.3 实例的应用电路设计 200
53.4 实例的应用代码编写 200
53.5 实例的仿真和总结 201
应用实例54——1-wire总线及其库函数 202
54.1 实例的目的和设计思路 202
54.2 实例涉及的基础知识 202
54.3 实例的应用电路设计 204
54.4 实例的应用代码编写 204
54.5 实例的仿真和总结 204
应用实例55——多位数码管的应用 205
55.1 实例的目的和设计思路 205
55.2 实例涉及的基础知识 205
55.2.1 多位数码管硬件基础 205
55.2.2 Proteus中的多位数码管 206
55.3 实例的应用电路设计 206
55.4 实例的应用代码编写 207
55.5 实例的仿真和总结 208
应用实例56——MAX7219的应用 209
56.1 实例的目的和设计思路 209
56.2 实例涉及的基础知识 209
56.2.1 MAX7219硬件基础 209
56.2.2 51单片机驱动MAX7219的方法 212
56.2.3 Proteus中的MAX7219 213
56.3 实例的应用电路设计 214
56.4 实例的应用代码编写 214
56.5 实例的仿真和总结 215
应用实例57——1602液晶模块的应用 216
57.1 实例的目的和设计思路 216
57.2 实例涉及的基础知识 216
57.2.1 1602液晶模块硬件基础 216
57.2.2 51单片机驱动1602液晶模块的方法 218
57.2.3 Proteus中的1602液晶模块 219
57.3 实例的应用电路设计 220
57.4 实例的应用代码编写 220
57.5 实例的仿真和总结 221
应用实例58——12864液晶模块的应用 222
58.1 实例的目的和设计思路 222
58.2 实例涉及的基础知识 222
58.2.1 12864液晶模块基础 222
58.2.2 汉字字库 223
58.3.3 Proteus中的12864液晶模块 223
58.3 实例的应用电路设计 224
58.4 实例的应用代码编写 225
58.5 实例的仿真和总结 225
应用实例59——行列扫描键盘的应用 227
59.1 实例的目的和设计思路 227
59.2 实例涉及的基础知识 227
59.2.1 行列扫描键盘基础 227
59.2.2 行列扫描键盘的操作步骤 227
59.2.3 Proteus中的行列扫描键盘 228
59.3 实例的应用电路设计 229
59.4 实例的应用代码编写 229
59.5 实例的仿真和总结 230
应用实例60——拨码开关的应用 231
60.1 实例的目的和设计思路 231
60.2 实例涉及的基础知识 231
60.2.1 拨码开关基础 231
60.2.2 Proteus中的拨码开关 231
60.3 实例的应用电路设计 232
60.4 实例的应用代码编写 233
60.5 实例的仿真和总结 233
应用实例61——ADC0809的应用 235
61.1 实例的目的和设计思路 235
61.2 实例涉及的基础知识 235
61.2.1 模拟-数字信号转换原理 235
61.2.2 ADC0809基础 238
61.2.3 ADC0809的操作步骤 238
61.2.4 Proteus中的ADC0809 238
61.3 实例的应用电路设计 239
61.4 实例的应用代码编写 240
61.5 实例的仿真和总结 241
应用实例62——TCL2543的应用 242
62.1 实例的目的和设计思路 242
62.2 实例涉及的基础知识 242
62.2.1 TLC2543基础 242
62.2.2 Proteus中的TLC2543 244
62.3 实例的应用电路设计 245
62.4 实例的应用代码编写 246
62.5 实例的仿真和总结 246
应用实例63——DS1302的应用 247
63.1 实例的目的和设计思路 247
63.2 实例涉及的基础知识 247
63.2.1 DS1302时钟模块基础 247
63.2.2 Proteus中的DS1302时钟模块 249
63.3 实例的应用电路设计 249
63.4 实例的应用代码编写 250
63.5 实例的仿真和总结 251
应用实例64——DS18B20的应用 252
64.1 实例的目的和设计思路 252
64.2 实例涉及的基础知识 252
64.2.1 DS18B20基础 252
64.2.2 Proteus中的DS18B20 254
64.3 实例的应用电路设计 255
64.4 实例的应用代码编写 256
64.5 实例的仿真和总结 256
应用实例65——SHT11的应用 257
65.1 实例的目的和设计思路 257
65.2 实例涉及的基础知识 257
65.2.1 SHT11温湿度模块基础 257
65.2.2 Proteus中的SHT11模块 259
65.3 实例的应用电路设计 260
65.4 实例的应用代码编写 261
65.5 实例的仿真和总结 261
提高篇 263
应用实例66——PCF8563的应用 263
66.1 实例的目的和设计思路 263
66.2 实例涉及的基础知识 263
66.2.1 PCF8563基础 263
66.2.2 Proteus中的PCF8563 266
66.3 实例的应用电路设计 267
66.4 实例的应用代码编写 268
66.5 实例的仿真和总结 269
应用实例67——DS12C887的应用 270
67.1 实例的目的和设计思路 270
67.2 实例涉及的基础知识 270
67.2.1 DS12C887基础 270
67.2.2 51单片机扩展DS12C887 273
67.2.3 Proteus DS12C887 274
67.3 实例的应用电路设计 275
67.4 实例的应用代码编写 275
67.5 实例的仿真和总结 276
应用实例68——MPX4115的应用 277
68.1 实例的目的和设计思路 277
68.2 实例涉及的基础知识 277
68.2.1 MPX4115基础 277
68.2.2 Proteus中的MPX4115 278
68.3.3 ADC0832基础 279
68.3.4 Proteus中的ADC0832 280
68.3 实例的应用电路设计 281
68.4 实例的应用代码编写 282
68.5 实例的仿真和总结 282
应用实例69——MAX517的应用 283
69.1 实例的目的和设计思路 283
69.2 实例涉及的基础知识 283
69.2.1 数字-模拟转换原理 283
69.2.2 MAX517基础 284
69.2.3 MAX517的操作步骤 285
69.2.4 Proteus中的MAX517 285
69.3 实例的应用电路设计 286
69.4 实例的应用代码编写 286
69.5 实例的仿真和总结 287
应用实例70——DAC0832的应用 288
70.1 实例的目的和设计思路 288
70.2 实例涉及的基础知识 288
70.2.1 DAC0832基础 288
70.2.2 Proteus中的DAC0832 289
70.3 实例的应用电路设计 290
70.4 实例的应用代码编写 291
70.5 实例的仿真和总结 291
应用实例71——74HC138的应用 292
71.1 实例的目的和设计思路 292
71.2 实例涉及的基础知识 292
71.2.1 74HC138基础 292
71.2.2 Proteus中的74HC138 293
71.3 实例的应用电路设计 294
71.4 实例的应用代码编写 294
71.5 实例的仿真和总结 295
应用实例72——74HC244的应用 296
72.1 实例的目的和设计思路 296
72.2 实例涉及的基础知识 296
72.2.1 74HC244基础 296
72.2.2 Proteus中的74HC244 297
72.3 实例的应用电路设计 298
72.4 实例的应用代码编写 299
72.5 实例的仿真和总结 299
应用实例73——74HC164的应用 300
73.1 实例的目的和设计思路 300
73.2 实例涉及的基础知识 300
73.2.1 74HC164基础 300
73.2.2 Proteus中的74HC164 301
73.3 实例的应用电路设计 301
73.4 实例的应用代码编写 302
73.5 实例的仿真和总结 303
应用实例74——74HC273的应用 304
74.1 实例的目的和设计思路 304
74.2 实例涉及的基础知识 304
74.2.1 74HC273基础 304
74.2.2 Proteus中的74HC273 305
74.3 实例的应用电路设计 306
74.4 实例的应用代码编写 307
74.5 实例的仿真和总结 307
应用实例75——74HC165的应用 309
75.1 实例的目的和设计思路 309
75.2 实例涉及的基础知识 309
75.2.1 74HC165基础 309
75.2.2 Proteus中的74HC165 309
75.3 实例的应用电路设计 310
75.4 实例的应用代码编写 311
75.5 实例的仿真和总结 311
应用实例76——CD4094的应用 312
76.1 实例的目的和设计思路 312
76.2 实例涉及的基础知识 312
76.2.1 CD4094基础 312
76.2.2 Proteus中的CD4094 313
76.3 实例的应用电路设计 313
76.4 实例的应用代码编写 315
76.5 实例的仿真和总结 315
应用实例77——74HC595的应用 316
77.1 实例的目的和设计思路 316
77.2 实例涉及的基础知识 316
77.2.1 74HC595基础 316
77.2.2 Proteus中的74HC595 317
77.3 实例的应用电路设计 317
77.4 实例的应用代码编写 319
77.5 实例的仿真和总结 319
应用实例78——8255A输出的应用 320
78.1 实例的目的和设计思路 320
78.2 实例涉及的基础知识 320
78.2.1 8255A基础 320
78.2.2 Proteus中的8255A 322
78.3 实例的应用电路设计 323
78.4 实例的应用代码编写 323
78.5 实例的仿真和总结 324
应用实例79——8255A输入的应用 325
79.1 实例的目的和设计思路 325
79.2 实例涉及的基础知识 325
79.3 实例的应用电路设计 325
79.4 实例的应用代码编写 326
79.5 实例的仿真和总结 326
应用实例80——62256的应用 327
80.1 实例的目的和设计思路 327
80.2 实例涉及的基础知识 327
80.2.1 51单片机的标准RAM扩展方法 327
80.2.2 62256基础 329
80.2.3 Proteus中的62256 329
80.3 实例的应用电路设计 330
80.4 实例的应用代码编写 331
80.5 实例的仿真和总结 331
应用实例81——AT24C04A的应用 333
81.1 实例的目的和设计思路 333
81.2 实例涉及的基础知识 333
81.2.1 AT24C04A基础 333
81.2.2 AT24C04A的读写操作 334
81.2.3 Proteus中的AT24C04A 334
81.3 实例的应用电路设计 336
81.4 实例的应用代码编写 336
81.5 实例的仿真和总结 337
应用实例82——ULN2803的应用 338
82.1 实例的目的和设计思路 338
82.2 实例涉及的基础知识 338
82.2.1 ULN2803基础 338
82.2.2 Proteus中的ULN2803 338
82.3 实例的应用电路设计 339
82.4 实例的应用代码编写 340
82.5 实例的仿真和总结 340
应用实例83——光电隔离器的应用 341
83.1 实例的目的和设计思路 341
83.2 实例涉及的基础知识 341
83.2.1 光电隔离器基础 341
83.2.2 Proteus中的光电隔离器 342
83.3 实例的应用电路设计 343
83.4 实例的应用代码编写 343
83.5 实例的仿真和总结 344
应用实例84——直流电动机的应用 345
84.1 实例的目的和设计思路 345
84.2 实例涉及的基础知识 345
84.2.1 直流电动机基础 345
84.2.2 Proteus中的直流电动机 346
84.3 实例的应用电路设计 347
84.4 实例的应用代码编写 348
84.5 实例的仿真和总结 348
应用实例85——步进电动机的应用 349
85.1 实例的目的和设计思路 349
85.2 实例涉及的基础知识 349
85.2.1 步进电动机基础 349
85.2.2 Proteus中的步进电动机 350
85.3 实例的应用电路设计 351
85.4 实例的应用代码编写 352
85.5 实例的仿真和总结 353
应用实例86——继电器的应用 354
86.1 实例的目的和设计思路 354
86.2 实例涉及的基础知识 354
86.2.1 继电器基础 354
86.2.2 Proteus中的继电器 354
86.3 实例的应用电路设计 355
86.4 实例的应用代码编写 356
86.5 实例的仿真和总结 356
应用实例87——晶体管的应用 357
87.1 实例的目的和设计思路 357
87.2 实例涉及的基础知识 357
87.2.1 晶体管基础 357
87.2.2 Proteus中的晶体管 357
87.3 实例的应用电路设计 358
87.4 实例的应用代码编写 359
87.5 实例的仿真和总结 359
应用实例88——MAX232的应用 360
88.1 实例的目的和设计思路 360
88.2 实例涉及的基础知识 360
88.2.1 RS-232协议 360
88.2.2 MAX232基础 361
88.2.3 Proteus中的MAX232 361
88.3 实例的应用电路设计 361
88.4 实例的应用代码编写 363
88.5 实例的仿真和总结 363
应用实例89——SN75179的应用 364
89.1 实例的目的和设计思路 364
89.2 实例涉及的基础知识 364
89.2.1 RS-422协议 364
89.2.2 SN75179基础 364
89.2.3 Proteus中的SN75179 365
89.3 实例的应用电路设计 366
89.4 实例的应用代码编写 366
89.5 实例的仿真和总结 367
应用实例90——MAX487的应用 368
90.1 实例的目的和设计思路 368
90.2 实例涉及的基础知识 368
90.2.1 RS-490协议 368
90.2.2 MAX487基础 368
90.2.3 Proteus中的MAX487 369
90.3 实例的应用电路设计 369
90.4 实例的应用代码编写 370
90.5 实例的仿真和总结 371
综合应用篇 372
应用实例91——呼吸灯 372
91.1 实例的目的和设计思路 372
91.2 实例涉及的基础知识 372
91.2.1 呼吸效果实现原理 373
91.2.2 RCL电路基础 373
91.3 实例的应用电路设计 373
91.4 实例的应用代码编写 374
91.5 实例的仿真和总结 375
应用实例92——跑步机控制模块 376
92.1 实例的目的和设计思路 376
92.2 实例涉及的基础知识 376
92.3 实例的应用电路设计 377
92.4 实例的应用代码编写 378
92.4.1 模块划分和流程设计 378
92.4.2 启/停控制模块设计 379
92.4.3 速度控制模块设计 379
92.4.4 软件综合 379
92.5 实例的仿真和总结 379
应用实例93——简易电子琴 380
93.1 实例的目的和设计思路 380
93.2 实例涉及的基础知识 380
93.2.1 乐音基础 380
93.2.2 51单片机播放音乐原理 381
93.3 实例的应用电路设计 382
93.4 实例的应用代码编写 383
93.5 实例的仿真和总结 383
应用实例94——简易频率计 384
94.1 实例的目的和设计思路 384
94.2 实例涉及的基础知识 384
94.2.1 频率计原理 384
94.2.2 使用51单片机进行频率测量 385
94.2.3 Proteus中的虚拟信号发生器 385
94.3 实例的应用电路设计 386
94.4 实例的应用代码编写 387
94.4.1 软件模块划分和流程 387
94.4.2 频率测量和计算软件模块设计 387
94.4.3 显示驱动软件模块设计 388
95.4.4 m软件综合 388
94.5 实例的仿真和总结 388
应用实例95 PC中控系统 389
95.1 实例的目的和设计思路 389
95.2 实例涉及的基础知识 389
95.2.1 串行和并行通信方式 389
95.2.2 有线和无线通信方式 390
95.2.3 51单片机应用系统常用的硬件通信协议 391
95.3 实例的应用电路设计 391
95.4 实例的应用代码编写 392
95.5 实例的仿真和总结 392
应用实例96——负载平衡系统 393
96.1 实例的目的和设计思路 393
96.2 实例涉及的基础知识 393
96.3 实例的应用电路设计 394
96.4 实例的应用代码编写 395
96.5 实例的仿真和总结 395
应用实例97——电子抽奖系统 396
97.1 实例的目的和设计思路 396
97.2 实例涉及的基础知识 396
97.2.1 随机数产生原理 396
97.2.2 随机数产生函数 397
97.3 实例的应用电路设计 398
97.4 实例的应用代码编写 399
97.4.1 软件模块划分和流程设计 399
97.4.2 74HC595的驱动函数模块设计 400
97.4.3 软件综合 400
97.5 实例的仿真和总结 400
应用实例98——多点温度采集系统 401
98.1 实例的目的和设计思路 401
98.2 实例涉及的基础知识 401
98.3 实例的应用电路设计 402
98.4 实例的应用代码编写 403
98.4.1 软件模块划分和流程设计 403
98.4.2 DS18B20驱动函数模块设计 403
98.4.3 1602液晶驱动函数模块设计 404
98.4.4 软件综合 404
98.5 实例的仿真和总结 404
应用实例99——手动程控放大器 405
99.1 实例的目的和设计思路 405
99.2 实例涉及的基础知识 405
99.2.1 信号放大方法 405
99.2.2 程控放大器原理 407
99.2.3 μA741运算放大器基础 408
99.2.4 模拟开关CD4066基础 408
99.3 实例的应用电路设计 409
99.3.2 硬件系统的电路图 409
99.4 实例的应用代码编写 410
99.4.1 软件模块划分和流程设计 411
99.4.2 MAX7219驱动模块设计 411
99.4.3 软件综合 411
99.5 实例的仿真和总结 411
应用实例100——多功能电子闹钟 413
100.1 实例的目的和设计思路 413
100.2 实例涉及的基础知识 413
100.3 实例的应用电路设计 413
100.4 实例的应用代码编写 415
100.4.1 软件模块划分和流程设计 415
100.4.2 温度采集模块函数设计 415
100.4.3 时钟芯片驱动模块函数设计 416
100.4.4 显示模块驱动函数设计 416
100.4.5 时间设置模块驱动函数设计 416
100.4.6 闹钟设置模块驱动函数设计 416
100.4.7 声音报警模块驱动函数设计 416
100.4.8 软件综合 416
100.5 实例的仿真和总结 417
应用实例101——密码保险箱 418
101.1 实例的目的和设计思路 418
101.2 实例涉及的基础知识 418
101.3 实例的应用电路设计 419
101.4 实例的应用代码编写 420
101.4.1 软件模块划分和流程设计 420
101.4.2 键盘扫描模块函数设计 421
101.4.3 显示驱动模块函数设计 421
101.4.4 状态驱动模块函数设计 421
101.4.5 报警声驱动模块函数设计 421
101.4.6 电动机驱动模块函数设计 421
101.4.7 软件综合 422
101.5 实例的仿真和总结 422
应用实例102——波形发生器 423
102.1 实例的目的和设计思路 423
102.2 实例涉及的基础知识 423
102.3 实例的应用电路设计 423
102.4 实例的应用代码编写 424
102.4.1 软件模块划分和流程设计 424
102.4.2 MAX517的驱动函数设计 425
102.4.3 软件综合 425
102.5 实例的仿真和总结 425
应用实例103——数字示波器 427
103.1 实例的目的和设计思路 427
103.2 实例涉及的基础知识 427
103.3 实例的应用电路设计 429
103.4 实例的应用代码编写 431
103.4.1 软件模块划分和流程设计 431
103.4.2 A-D转换模块函数设计 431
103.4.3 12864液晶模块函数设计 431
103.4.4 软件综合 432
103.5 实例的仿真和总结 432
应用实例104——天车控制系统 433
104.1 实例的目的和设计思路 433
104.2 实例涉及的基础知识 434
104.3 实例的应用电路设计 434
104.4 实例的应用代码编写 435
104.4.1 软件模块划分和流程设计 435
104.4.2 直流电动机驱动模块设计 435
104.4.3 步进电动机驱动模块设计 435
104.4.4 软件综合 436
104.5 实例的仿真和总结 436
应用实例105——远程仓库湿度监测系统 437
105.1 实例的目的和设计思路 437
105.2 实例涉及的基础知识 437
105.3 实例的应用电路设计 437
105.4 实例的应用代码编写 439
105.4.1 软件模块划分和流程设计 439
105.4.2 湿度采集模块函数设计 439
105.4.3 1602液晶驱动模块函数设计 439
105.4.4 软件综合 439
105.5 实例的仿真和总结 440
应用实例106——自动换挡电压表 441
106.1 实例的目的和设计思路 441
106.2 实例涉及的基础知识 441
106.3 实例的应用电路设计 441
106.4 实例的应用代码编写 443
106.4.1 软件模块划分和流程设计 443
106.4.2 1602液晶驱动模块函数设计 443
106.4.3 软件综合 444
106.5 实例的仿真和总结 444
应用实例107——SD卡读写 446
107.1 实例的目的和设计思路 446
107.2 实例涉及的基础知识 446
107.2.1 SD卡基础 446
107.2.2 SD卡的读写 447
107.2.3 SD卡的硬件接口 451
107.3 实例的应用电路设计 452
107.4 实例的应用代码编写 453
107.4.1 软件模块划分和流程设计 453
107.4.2 SD卡基础驱动模块设计 453
107.4.3 SD卡读写函数模块设置 454
107.4.4 软件综合 454
107.5 实例的仿真和总结 454
应用实例108—RTX操作系统的应用 456
108.1 实例的目的和设计思路 456
108.2 实例涉及的基础知识 456
108.2.1 RTX51占用的资源 457
108.2.2 RTX51的实现机制 458
108.2.3 RTX51的工作原理 459
108.2.4 RTX51的配置 461
108.2.5 RXT51的库函数 464
108.2.6 RTX51的使用方法 469
108.3 实例的应用电路设计 471
108.4 实例的应用代码编写 472
108.5 实例的仿真和总结 473
参考文献 474