51单片机应用开发范例大全
2010-2
人民邮电
宋戈//黄鹤松//吴玉良//蒋海峰
537
无
当前,单片机在各个领域的应用十分广泛,由于其具有简单易学、稳定性好、成本低的特点,因此其在工业控制、家用电器、汽车、航天等领域都有着重要的应用。 本书通过100个常用的实例介绍单片机开发方方方面面的技术。 本书共14章,具体安排如下。 第1章51单片机基础知识。主要讲解单片机的基本概念、硬件结构特点及应用,单片机的开发工具及C51语言的基本知识。 第2章主要讲解单片机的端口扩展方式及扩展芯片的应用。 第3章主要讲解单片机外部程序存储器、数据存储器的扩展方式以及Flash的驱动。 第4章主要讲解单片机的输入/输出技术,包括键盘的控制及LED、LCD的显示控制技术。 第5章主要讲解单片机的几个电子制作实例,包括简易电子琴制作、抢答器制作等。 第6章主要讲解几种典型传感控制模块以及它们在单片机控制系统中的应用,主要包括指纹识别模块、数字温度传感器、宽带数控放大器的应用。 第7章主要讲解智能仪表及测试技术,包括超声波测距、数字气压计、车轮测速系统等。 第8章主要讲解单片机的电气传动控制系统,主要包括步进电机控制、简易智能电动车、洗衣机控制器等。
《51单片机应用开发范例大全》通过实例全面讲解单片机开发中的各种技术,包括单片机接口的扩展、存储器的扩展、输入/输出及显示技术、实用电子制作、传感控制技术、智能仪表与测试技术、电气传动及控制技术、单片机数据处理、单片机通信技术、单片机实现信号与算法、单片机的总线与网络技术、典型器件及应用技术等内容,最后通过智能手机充电器设计、单片机控制门禁系统设计、电机保护器的设计3个综合实例,具体演示应用多种技术开发单片机系统的思路和方法。 《51单片机应用开发范例大全》内容注重各种技术的“实际开发过程”,所有实例均以提高读者工程实践开发能力为宗旨。 《51单片机应用开发范例大全》适合所有51单片机应用开发人员,可作为电子爱好者、大中院校相关专业学生、工程技术人员的参考用书。
第1章 单片机C语言开发基础 11.1 MCS-51单片机硬件基础 11.1.1 8051引脚 11.1.2 51单片机功能结构 31.1.3 中央处理器(CPU) 41.1.4 存储器结构 81.1.5 定时/计数器 101.1.6 并行端口 101.1.7 串行端口 131.1.8 中断系统 131.1.9 总线 131.2 Keil μVision2 141.2.1 Keil μVision2集成开发环境介绍 141.2.2 使用Keil μVision2进行开发 151.2.3 dScope for Windows的使用 191.3 C51基础知识 241.3.1 C51控制语句 241.3.2 C51函数 271.3.3 C51数组和指针 301.4 【实例19】P1口控制直流电动机实例 31第2章 单片机接口的扩展 342.1 基本器件实现端口扩展实例 342.1.1 【实例20】用74LS165实现串口扩展并行输入口 342.1.2 【实例21】用74LS164实现串口扩展并行输出口 382.1.3 【实例22】P0 I/O扩展并行输入口 422.1.4 【实例23】P0 I/O扩展并行输出口 432.2 扩展芯片实现端口扩展 432.2.1 【实例24】用8243扩展I/O端口 442.2.2 【实例25】用8255A扩展I/O口 472.2.3 【实例26】用8155扩展I/O口 562.3 CPLD实现端口扩展 67第3章 存储器的扩展 693.1 外部程序存储器的扩展 693.1.1 【实例27】EPROM27xxx程序存储器的扩展 693.1.2 【实例28】EEPROM28xxx程序存储器的扩展 723.2 外部数据存储器的扩展 743.2.1 【实例29】与AT24系列EEPROM接口及驱动程序 743.2.2 【实例30】EEPROM(X5045)接口及驱动程序 813.2.3 【实例31】铁电存储器接口及驱动程序 863.2.4 【实例32】与双口RAM存储器接口及应用实例 913.3 FLASH驱动程序 95【实例33】 NANDFLASH(K9F5608)接口及驱动程序 95第4章 输入/输出及显示技术 1074.1 【实例34】独立键盘控制 1074.1.1 实例功能 1074.1.2 典型器件介绍 1074.1.3 硬件设计 1074.1.4 程序设计 1084.1.5 经验总结 1094.2 【实例35】矩阵式键盘控制 1094.2.1 实例功能 1094.2.2 典型器件介绍 1094.2.3 硬件设计 1104.2.4 程序设计 1104.2.5 经验总结 1114.3 【实例36】改进型I/O端口键盘 1124.3.1 实例功能 1124.3.2 硬件设计 1124.3.3 程序设计 1124.4 【实例37】PS/2键盘的控制 1164.4.1 实例功能 1164.4.2 典型器件介绍 1164.4.3 硬件设计 1164.4.4 程序设计 1174.4.5 经验总结 1214.5 【实例38】LED显示 1214.5.1 实例功能 1214.5.2 硬件设计 1214.5.3 程序设计 1214.5.4 经验总结 1224.6 【实例39】段数码管(HD7929)显示实例 1234.6.1 实例功能 1234.6.2 硬件设计 1234.6.3 程序设计 1234.6.4 经验总结 1254.7 【实例40】16×2字符型液晶显示实例 1254.7.1 实例功能 1254.7.2 典型器件介绍 1254.7.3 硬件设计 1254.7.4 程序设计 1264.7.5 经验总结 1314.8 【实例41】点阵型液晶显示实例 1314.8.1 实例功能 1314.8.2 典型器件介绍 1314.8.3 硬件设计 1334.8.4 程序设计 1334.8.5 经验总结 1364.9 【实例42】LCD显示图片实例 1364.9.1 实例功能 1364.9.2 典型器件介绍 1364.9.3 硬件设计 1384.9.4 程序设计 1384.9.5 经验总结 144第5章 实用电子制作 1455.1 【实例43】简易电子琴的设计 1455.1.1 实例功能 1455.1.2 典型器件介绍 1455.1.3 硬件设计 1455.1.4 程序设计 1475.1.5 经验总结 1495.2 【实例44】基于MCS-51单片机的四路抢答器 1495.2.1 实例功能 1495.2.2 典型器件介绍 1505.2.3 硬件设计 1515.2.4 程序设计 1535.2.5 经验总结 1585.3 【实例45】电子调光灯的制作 1595.3.1 实例功能 1595.3.2 典型器件介绍 1595.3.3 硬件设计 1605.3.4 程序设计 1605.3.5 经验总结 1665.4 【实例46】数码管时钟的制作 1665.4.1 实例功能 1665.4.2 典型器件介绍 1665.4.3 硬件设计 1675.4.4 程序设计 1685.4.5 经验总结 1835.5 【实例47】LCD时钟的制作 1835.5.1 实例功能 1835.5.2 典型器件介绍 1835.5.3 硬件设计 1855.5.4 程序设计 1865.5.5 经验总结 1935.6 【实例48】数字化语音存储与回放 1935.6.1 实例功能 1935.6.2 典型器件介绍 1935.6.3 硬件设计 1945.6.4 程序设计 1955.6.5 经验总结 2045.7 【实例49】电子标签设计 2055.7.1 实例功能 2055.7.2 典型器件介绍 2055.7.3 硬件设计 2065.7.4 程序设计 2075.7.5 经验总结 216第6章 传感控制技术 2176.1 【实例50】指纹识别模块 2176.1.1 指纹识别传感器原理 2176.1.2 硬件设计 2196.1.3 程序设计 2206.1.4 实例实现过程 2226.1.5 经验总结 2226.2 【实例51】数字温度传感器 2236.2.1 数字温度传感器原理 2236.2.2 硬件设计 2266.2.3 程序设计 2266.2.4 实例实现过程 2316.2.5 经验总结 2316.3 【实例52】宽带数控放大器 2316.3.1 宽带数控放大器设计原理 2326.3.2 硬件设计 2356.3.3 程序设计 2356.3.4 实例实现过程 2356.3.5 经验总结 236第7章 智能仪表与测试技术 2377.1 【实例53】超声波测距 2377.1.1 实例功能 2377.1.2 典型器件介绍 2377.1.3 硬件设计 2377.1.4 程序设计 2407.1.5 经验总结 2427.2 【实例54】数字气压计 2427.2.1 实例功能 2427.2.2 典型器件介绍 2427.2.3 硬件设计 2427.2.4 程序设计 2457.2.5 经验总结 2507.3 【实例55】基于单片机的电压表设计 2507.3.1 实例功能 2507.3.2 电压表设计原理 2507.3.3 硬件设计 2517.3.4 程序设计 2527.3.5 经验总结 2547.4 【实例56】基于单片机的称重显示仪表设计 2547.4.1 实例功能 2547.4.2 典型器件介绍 2547.4.3 硬件设计 2557.4.4 程序设计 2567.4.5 经验总结 2597.5 【实例57】基于单片机的车轮测速系统 2597.5.1 实例功能 2597.5.2 典型器件介绍 2597.5.3 硬件设计 2607.5.4 程序设计 2607.5.5 经验总结 262第8章 电气传动及控制技术 2638.1 【实例58】电源切换控制 2638.1.1 实例功能 2638.1.2 典型器件介绍 2648.1.3 硬件设计 2658.1.4 程序设计 2688.1.5 经验总结 2698.2 【实例59】步进电机控制 2708.2.1 实例功能 2708.2.2 典型器件介绍 2708.2.3 硬件设计 2718.2.4 程序设计 2728.2.5 经验总结 2758.3 【实例60】单片机控制自动门系统 2758.3.1 实例功能 2758.3.2 典型器件介绍 2758.3.3 硬件设计 2778.3.4 程序设计 2788.3.5 经验总结 2828.4 【实例61】控制微型打印机 2828.4.1 实例功能 2828.4.2 典型器件介绍 2838.4.3 硬件设计 2858.4.4 程序设计 2868.4.5 经验总结 2868.5 【实例62】单片机控制的EPSON微型打印头 2878.5.1 实例功能 2878.5.2 典型器件介绍 2878.5.3 硬件设计 2888.5.4 程序设计 2898.5.5 经验总结 2908.6 【实例63】简易智能电动车 2908.6.1 实例功能 2908.6.2 典型器件介绍 2918.6.3 硬件设计 2928.6.4 程序设计 2938.6.5 经验总结 2988.7 【实例64】洗衣机控制器 2988.7.1 实例功能 2988.7.2 典型器件介绍 2998.7.3 硬件设计 3008.7.4 程序设计 3008.7.5 经验总结 304第9章 单片机数据处理 3059.1 【实例65】串行A/D转换 3059.1.1 实例功能 3059.1.2 典型器件介绍 3059.1.3 硬件设计 3069.1.4 程序设计 3069.1.5 经验总结 3089.2 【实例66】并行A/D转换 3089.2.1 实例功能 3089.2.2 典型器件介绍 3089.2.3 硬件设计 3099.2.4 程序设计 3109.2.5 经验总结 3119.3 【实例67】模拟比较器实现A/D转换 3119.3.1 实例功能 3119.3.2 典型器件介绍 3119.3.3 硬件设计 3129.3.4 程序设计 3129.3.5 经验总结 3149.4 【实例68】串行D/A转换 3149.4.1 实例功能 3149.4.2 典型器件介绍 3149.4.3 硬件设计 3159.4.4 程序设计 3159.4.5 经验总结 3179.5 【实例69】并行电压型D/A转换 3179.5.1 实例功能 3179.5.2 典型器件介绍 3179.5.3 硬件设计 3179.5.4 程序设计 3189.5.5 经验总结 3189.6 【实例70】并行电流型D/A转换 3199.6.1 实例功能 3199.6.2 典型器件介绍 3199.6.3 硬件设计 3209.6.4 程序设计 3209.6.5 经验总结 3219.7 【实例71】I2C接口的A/D转换 3219.7.1 实例功能 3219.7.2 典型器件介绍 3219.7.3 硬件设计 3229.7.4 程序设计 3229.7.5 经验总结 3279.8 【实例72】I2C接口的D/A转换 3279.8.1 实例功能 3279.8.2 典型器件介绍 3279.8.3 硬件设计 3289.8.4 程序设计 3289.8.5 经验总结 331第10章 单片机通信技术 33210.1 【实例73】单片机间通信 33210.1.1 实例功能 33210.1.2 典型器件介绍 33210.1.3 硬件设计 33310.1.4 程序设计 33410.1.5 经验总结 33710.2 【实例74】单片机间多机通信方法之一 33710.2.1 实例功能 33810.2.2 典型器件介绍 33810.2.3 硬件设计 33910.2.4 程序设计 34010.2.5 经验总结 34710.3 【实例75】单片机间多机通信方法之二 34710.3.1 实例功能 34710.3.2 程序设计 34810.3.3 经验总结 35510.4 【实例76】PC与单片机通信 35510.4.1 实例功能 35510.4.2 典型器件介绍 35510.4.3 硬件设计 35710.4.4 程序设计 35710.4.5 经验总结 36210.5 【实例77】红外通信接口 36210.5.1 实例功能 36310.5.2 典型器件介绍 36310.5.3 硬件设计 36510.5.4 程序设计 36610.5.5 经验总结 36810.6 【实例78】无线数据传输模块 36910.6.1 实例功能 36910.6.2 典型器件介绍 36910.6.3 硬件设计 37110.6.4 程序设计 37110.6.5 经验总结 372第11章 单片机实现信号与算法 37311.1 【实例79】单片机实现PWM信号输出 37311.1.1 实例功能 37311.1.2 典型器件介绍 37311.1.3 硬件设计 37311.1.4 程序设计 37411.1.5 经验总结 37611.2 【实例80】实现基于单片机的低频信号发生器 37611.2.1 实例功能 37611.2.2 典型器件介绍 37611.2.3 硬件设计 37611.2.4 程序代码 37711.2.5 经验总结 37911.3 【实例81】软件滤波方法 37911.3.1 实例功能 37911.3.2 软件滤波方法介绍 37911.3.3 程序设计 38011.3.4 经验总结 38311.4 【实例82】FSK信号解码接收 38311.4.1 实例功能 38311.4.2 FSK原理 38311.4.3 程序设计 38411.4.4 经验总结 38511.5 【实例83】单片机浮点数运算实现 38511.5.1 实例功能 38511.5.2 单片机浮点数运算实现原理 38611.5.3 程序设计 38611.5.4 经验总结 39111.6 【实例84】神经网络在单片机中的实现 39211.6.1 实例功能 39211.6.2 神经网络简介 39211.6.3 程序设计 39211.6.4 经验总结 39511.7 【实例85】信号数据的FFT变换 39511.7.1 实例功能 39511.7.2 FFT变换介绍 39511.7.3 程序设计 39611.7.4 经验总结 401第12章 单片机的总线与网络技术 40212.1 【实例86】I2C总线接口的软件实现 40212.1.1 实例功能 40212.1.2 典型器件介绍 40212.1.3 程序设计 40212.1.4 经验总结 40512.2 【实例87】SPI总线接口的软件实现 40512.2.1 实例功能 40512.2.2 典型器件介绍 40512.2.3 硬件设计 40712.2.4 经验总结 41212.3 【实例88】1-WIRE总线接口的软件实现 41312.3.1 1-WIRE总线通信原理 41312.3.2 硬件设计 41312.3.3 程序设计 41412.3.4 经验总结 41712.4 【实例89】单片机外挂CAN总线接口 41712.4.1 CAN总线介绍 41712.4.2 CAN总线接口 41812.4.3 程序设计 42012.4.4 经验总结 42412.5 【实例90】单片机外挂USB总线接口 42412.5.1 USB总线原理 42512.5.2 与单片机的硬件接口 42712.5.3 程序设计 42712.5.4 经验总结 43212.6 【实例91】单片机实现以太网接口 43212.6.1 以太网接口芯片 43312.6.2 程序设计 43412.6.3 经验总结 44612.7 【实例92】单片机控制GPRS传输 44612.7.1 典型器件介绍 44712.7.2 硬件设计 44712.7.3 程序设计 44812.7.4 经验总结 45512.8 【实例93】单片机实现TCP/IP协议 45512.8.1 TCP/IP原理 45512.8.2 程序设计 45712.8.3 经验总结 474第13章 典型器件及应用技术 47513.1 【实例94】读写U盘 47513.1.1 实例功能 47513.1.2 典型器件介绍 47513.1.3 硬件设计 47613.1.4 程序设计 47613.1.5 经验总结 48313.2 【实例95】非接触IC卡读写 48413.2.1 实例功能 48413.2.2 典型器件介绍 48413.2.3 硬件设计 48413.2.4 程序设计 48613.2.5 经验总结 49213.3 【实例96】SD卡读写 49213.3.1 实例功能 49213.3.2 典型器件介绍 49213.3.3 硬件设计 49313.3.4 程序设计 49413.3.5 经验总结 50113.4 【实例97】高精度实时时钟芯片的应用 50113.4.1 实例功能 50113.4.2 典型器件介绍 50113.4.3 硬件电路设计 50213.4.4 程序设计 50213.4.5 经验总结 508第14章 综合应用实例 50914.1 【实例98】智能手机充电器设计 50914.1.1 智能手机电池充电器的结构组成 50914.1.2 智能手机电池充电器的硬件电路设计 51014.1.3 智能手机电池充电器的软件设计 51214.1.4 经验总结 51414.2 【实例99】单片机控制门禁系统 51414.2.1 门禁系统的结构组成 51414.2.2 门禁系统的硬件电路设计 51514.2.3 门禁系统的软件设计 51914.2.4 经验总结 52414.3 【实例100】电机保护器的设计 52414.3.1 电机保护器的结构组成 52414.3.2 电机保护器的硬件电路设计 52514.3.3 电机保护器的软件设计 53014.3.4 设计中的几个关键问题 53214.3.5 经验总结 533附录1 8051的指令列表 534附录2 PS/2键盘键值和符号对照表 538
1.1.3 中央处理器(CPU) 中央处理器(CPIJ)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入/输出功能等操作。它由运算器、控制器(定时控制部件)和专用寄存器组3部分部件组成。 1.运算器(AtU) 运算器的功能是进行算术运算和逻辑运算。可以对半字节、单字节等数据进行操作,既能够完成加、减、乘、除等四则运算,也可以完成加1、减1、BCD码十进制调整、比较等算术运算和与、或、异或、求补、循环等逻辑运算。 8051运算器还包含有-个布尔处理器,用来处理位操作,以进位标志位C为累加器,可执行置位、复位、取反、等于1转移、等于O转移、等于1转移且清0以及进位标志位与其他可寻址的位之间进行数据传送等位操作。也能使进位标志位与其他可寻址的位之间进行逻辑与、或操作。 2.控制器 (1)时钟电路。 8051片内设有一个由反向放大器所构成的振荡电路,XTAL1和XTAL2分别为振荡电路的输入和输出端,时钟可以由内部方式产生或外部方式产生。内部方式时钟电路如图1-3所示。在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶振频率可以在1.2MHz~12MHz之间选择,电容在5pF~30pF之间选择,电容的大小可起频率微调作用。
《51单片机应用开发范例大全》详细讲解了51单片机的软硬件设计,涵盖100个典型开发案例,主要包含以下内容: ●单片机C语言开发基础(19个典型实例) ●单片机接口的扩展(7个典型实例) ●存储器的扩展(7个典型实例) ●输入/输出及显示技术(9个典型实例) ●实用电子制作(7个典型实例) ●传感控制技术(3个典型实例) ●智能仪表与测试技术(5个典型实例) ●电气传动及控制技术(7个典型实例) ●单片机数据处理(8个典型实例) ●单片机通信技术(6个典型实例) ●单片机实现信号与算法(7个典型实例) ●单片机的总线与网络技术(8个典型实例) ●典型器件及应用技术(4个典型实例) ●综合应用实例(2个典型实例) 国家信息技术紧缺人才培养工程 硬件工程师典藏 100个典型开发案例,全面提升51单片机开发能力 元器件详解+硬件设计+程序设计 完全掌握单片机软硬件开发
无