当前位置:首页 > 工业技术
单片机C语言应用100例
单片机C语言应用100例

单片机C语言应用100例PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:王东锋,王会良,董冠强编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2009
  • ISBN:9787121084218
  • 页数:316 页
图书介绍:本书以MCS—51单片机为主体,结合大量实例详细介绍了单片机开发必备的基础知识和软/硬件条件、硬件结构及常用接口技术和典型芯片的应用等。所有实例均采用仿真软件Ptoteus进行仿真和实验板进行实验,使读者真正做到“边理论、边实践”,在实践中逐步掌握单片机的硬件结构和开发方法。
《单片机C语言应用100例》目录

第1章 概述 1

1.1单片机的结构与应用 2

1.1.1单片机的定义、分类与内部组成 2

1.1.2单片机应用系统的结构及其工作过程 5

1.1.3单片机的应用 5

1.2单片机基础知识 6

1.2.1数制与数制间的转换 7

1.2.2单片机中数的表示方法及常用数制的对应关系 9

1.2.3逻辑数据的表示 9

1.2.4单片机中常用的基本术语 11

1.3单片机入门的有效方法与途径 11

1.4学习单片机的基本条件 12

1.4.1软件条件 12

1.4.2硬件条件 13

习题与实验 14

第2章 单片机开发软件及开发过程 15

2.1仿真软件Proteus的使用 16

2.1.1 Proteus的主要功能特点 16

2.1.2实例1:功能感受——Proteus仿真单片机播放《渴望》主题曲 16

2.1.3 Proteus软件的界面与操作介绍 18

2.1.4实例2: Proteus仿真设计快速入门 20

2.2 Keil C51的使用 29

2.2.1单片机最小系统 29

2.2.2实例3:用Keil C51编写点亮一个发光二极管的程序 30

2.3程序烧录器及烧录软件的使用 36

习题与实验 37

第3章 逐步认识单片机基本结构 39

3.1实例4:用单片机控制一个灯闪烁 40

3.1.1实现方法 40

3.1.2程序设计 40

3.1.3用Proteus软件仿真 41

3.1.4延时程序分析 43

3.2实例5:将P1口状态送入PO口、P2口和P3口 43

3.2.1实现方法 44

3.2.2程序设计 44

3.2.3用Proteus软件仿真 45

3.2.4用实验板试验 45

3.2.5 I/O口功能介绍 45

3.2.6 I/O口的结构分析 46

3.3实例6:使用P3口流水点亮8位LED 48

3.3.1实现方法 48

3.3.2程序设计 49

3.3.3用Proteus软件仿真 50

3.3.4用实验板试验 50

3.4实例7:通过对P3口地址的操作流水点亮8位LED 51

3.4.1实现方法 51

3.4.2程序设计 51

3.4.3用Proteus软件仿真 52

3.4.4用实验板试验 52

3.5 MCS—51单片机存储器的基本结构 52

3.5.1程序存储器 52

3.5.2数据存储器 53

3.6单片机的复位电路 53

习题与实验 54

第4章 单片机C语言开发基础 55

4.1 C语言源程序的结构特点 56

4.2标志符与关键字 57

4.3 C语言的数据类型与运算符 58

4.3.1数据类型 58

4.3.2运算符 61

4.3.3实例8:用不同数据类型的数据控制LED的闪烁 65

4.3.4实例9:用P0口、P1口分别显示加法和减法运算结果 67

4.3.5实例10:用P0口、P1口显示乘法运算结果 69

4.3.6实例11:用P1口、P0口显示除法运算结果 71

4.3.7实例12:用自增运算控制P0口8位LED的闪烁花样 73

4.3.8实例13:用P0口显示逻辑“与”运算结果 74

4.3.9实例14:用P0口显示条件运算结果 74

4.3.10实例15:用P0口显示按位“异或”运算结果 75

4.3.11实例16:用P0口显示左移运算结果 76

4.3.12实例17:“万能逻辑电路”实验 77

4.3.13实例18:用右移运算流水点亮P1口8位LED 78

4.4 C语言的语句 80

4.4.1概述 80

4.4.2控制语句 81

4.4.3实例19:用if语句控制P0口8位LED的点亮状态 85

4.4.4实例20:用swtich语句控制P0口8位LED的点亮状态 86

4.4.5实例21:用for语句设计鸣笛报警程序 88

4.4.6实例22:用while语句控制P0口8位LED闪烁花样 93

4.4.7实例23:用do...while语句控制P0口8位LED流水点亮 94

4.5 C语言的数组 96

4.5.1数组的定义和引用 96

4.5.2实例24:用字符型数组控制P0口8位LED流水点亮 98

4.5.3实例25:用P0口显示字符串常量 99

4.6 C语言的指针 101

4.6.1指针的定义与引用 101

4.6.2实例26:用P0口显示指针运算结果 103

4.6.3实例27:用指针数组控制P0口8位LED流水点亮 104

4.6.4实例28:用数组的指针控制P0口8位LED流水点亮 105

4.7 C语言的函数 107

4.7.1函数的定义与调用 107

4.7.2实例29:用P0口、P1口显示整型函数返回值 110

4.7.3实例30:用有参函数控制P0口8位LED流水速度 112

4.7.4实例31:用数组作函数参数控制P0口8位LED流水点亮 113

4.7.5实例32:用指针作函数参数控制P0口8位LED流水点亮 114

4.7.6实例33:用函数型指针控制P0口8位LED流水点亮 116

4.7.7实例34:用指针数组作为函数的参数显示多个字符串 117

4.7.8实例35:字符软件ctype.h中的isalpha()函数应用举例 119

4.7.9实例36:内部函数库文件intrins.h中的_crol_()函数应用举例 121

4.7.10实例37:标准函数库文件stdlib.h中的rand()函数应用举例 122

4.7.11实例38:字符串函数库文件string.h中的strcmp()函数应用举例 123

4.8 C语言的编译预处理 124

4.8.1常用预处理命令介绍 125

4.8.2实例39:宏定义应用举例 127

4.8.3实例40:文件包含应用举例 128

4.8.4实例41:条件编译应用举例 130

习题与实验 131

第5章 单片机的定时器/计数器 133

5.1定时器/计数器的基本概念 134

5.2定时器/计数器的结构及工作原理 135

5.2.1定时器/计数器的结构 135

5.2.2定时器/计数器的工作原理 136

5.3定时器/计数器的控制 136

5.3.1定时器/计数器的方式控制寄存器(TMOD) 136

5.3.2定时器/计数器控制寄存器(TCON) 137

5.3.3定时器/计数器的4种工作方式 137

5.3.4定时器/计数器中定时/计数初值的计算 140

5.4定时器/计数器应用举例 140

5.4.1实例42:用定时器T0查询方式控制P2口8位LED闪烁 140

5.4.2实例43:用定时器T1查询方式控制单片机发出1 kHz音频 142

5.4.3实例44:用计数器T0查询的方式计数,结果送P1口显示 143

习题与实验 145

第6章 单片机的中断系统 147

6.1中断系统的基本概念 148

6.2中断系统的结构及控制 149

6.2.1中断系统的结构 149

6.2.2中断系统的控制 150

6.3中断系统应用举例 152

6.3.1实例45:用定时器T0的方式1控制LED闪烁 152

6.3.2实例46:用定时器T0的方式1实现长时间定时 154

6.3.3实例47:用定时器T1的方式1控制两个LED以不同周期闪烁 155

6.3.4实例48:用计数器T1的中断方式控制发出1 kHz音频 157

6.3.5实例49:用定时器T0的方式0控制播放《好人一生平安》 158

6.3.6实例50:用计数器T0的方式2对外部脉冲计数 163

6.3.7实例51:用定时器T0的门控制位测量外部正脉冲宽度 165

6.3.8实例52:用外中断INT0测量负跳变信号累计数 168

6.3.9实例53:用外中断控制INT0控制P1口LED亮灭状态 170

6.3.10实例54:用外中断INT0的中断测量外部负脉冲宽度 172

习题与实验 174

第7章 串行通信技术 175

7.1串行通信的基本概念 176

7.2串行通信口的结构 178

7.3串行通信口的控制 178

7.3.1串行控制寄存器SCON 178

7.3.2电源控制寄存器PCON 179

7.3.3四种工作方式与波特率的设置 180

7.4串行通信口应用举例 182

7.4.1实例55:将方式0用于扩展并行输出控制流水灯 182

7.4.2实例56:基于方式1的单工通信 184

7.4.3实例57:基于方式3的单工通信 187

7.4.4实例58:单片机向计算机发送数据 190

7.4.5实例59:单片机接收计算机送出的数据 192

习题与实验 194

第8章 接口技术 195

8.1 LED数码管接口技术 196

8.1.1 LED数码管的原理和接口电路 196

8.1.2实例60:用LED数码管显示数字“5” 197

8.1.3实例61:用LED数码管循环显示数字0~9 199

8.1.4实例62:用数码管慢速动态扫描显示数字“1234” 200

8.1.5实例63:快速动态扫描显示数字“1234” 202

8.1.6实例64:用数码管显示动态检测结果 204

8.1.7实例65:数码秒表设计 207

8.1.8实例66:数码时钟设计 209

8.1.9实例67:用数码管显示按键次数 214

8.1.10实例68:用数码管静态显示数字“59” 216

8.2键盘接口技术 217

8.2.1独立式键盘的工作原理 218

8.2.2实例69:无软件消抖的独立式键盘输入实验 219

8.2.3实例70:软件消抖的独立式键盘输入实验 220

8.2.4实例71:CPU控制的键盘扫描实验 221

8.2.5实例72:定时器中断控制的键盘扫描实验 226

8.2.6实例73:独立式键盘控制的4级变速流水灯 227

8.2.7实例74:“一键多能”实验 230

8.2.8实例75:时间可调的数码时钟 233

8.2.9实例76:独立式键盘控制步进电动机实验 234

8.2.10矩阵键盘的工作原理 236

8.2.11实例77:矩阵键盘按键值的数码管显示 237

8.2.12实例78:矩阵键盘的按键提示音 239

8.2.13实例79:简易电子琴设计 240

8.2.14实例80:电子密码锁设计 241

8.3字符型LCD液晶接口技术 245

8.3.1 1602字符型LCD简介 246

8.3.2实例81:用LCD显示字符“A” 251

8.3.3实例82:用LCD循环右移显示“Welcome to China” 253

8.3.4实例83:用LCD显示模拟检测结果 254

8.3.5实例84:液晶时钟设计 255

习题与实验 257

第9章 新型串行接口芯片应用介绍 259

9.1 I2C总线器件及其应用实例 260

9.1.1 I2C总线接口 260

9.1.2实例85:将数据“0xOf”写入AT24C02再读出送P1口显示 263

9.1.3实例86:将按键次数写入AT24C02,再读出送LCD显示 264

9.1.4实例87:对I2C总线上挂接两个AT24C02的读写操作 266

9.1.5实例88:基于AT24C02的多机通信 267

9.1.6实例89:将“好人一生平安”乐谱写入AT24C02并读出播放 269

9.2单总线器件及其应用实例 270

9.2.1单总线简介 270

9.2.2实例90:DS 18B20温度检测及其液晶显示 275

9.3 SPI总线接口芯片及其应用实例 277

9.3.1 SPI串行总线简介 277

9.3.2实例91:将数据“Oxaa”写入X5045再读出送P1口显示 280

9.3.3实例92:将流水灯控制码写入X5045并读出送P1口显示 281

9.3.4实例93:对SPI总线上挂接两个X5045的读写操作 282

习题与实验 283

第10章 常用功能器件应用举例 285

10.1模数(A/D)转换器件 286

10.1.1 A/D转换基本知识 286

10.1.2实例94:基于ADC0832的5V直流数字电压表 288

10.2数模(D/A)转换器件 289

10.2.1 D/A转换基本知识 290

10.2.2实例95:用DAC0832产生锯齿波电压 291

10.3红外遥控信号接收器件 293

10.3.1红外信号接收基本知识 293

10.3.2实例96:用P1口显示红外遥控器的按键值 295

10.3.3实例97:用红外遥控器控制继电器 296

10.4适时时钟芯片 297

10.4.1常用适时时钟芯片DS 1302 298

10.4.2实例98:基于DS 1302的日历时钟 299

习题与实验 301

第11章 高级综合应用技术 303

11.1实例99:用VB实现单片机和计算机的串行通信 304

11.1.1 Visual Basic 6.0简介 304

11.1.2 MSComm控件的添加及其属性设置 305

11.1.3 Visual Basic 6.0实现串行通信的过程 306

11.2实例100:电动机测速表设计 312

11.2.1电动机测速的基本原理 312

11.2.2硬件接口电路 312

11.2.3实现方法及测速软件设计 313

11.2.4测速系统仿真 313

习题与实验 315

参考文献 316

相关图书
作者其它书籍
返回顶部