PIC微控制器项目设计:C语言实现(原书第2版)

PIC微控制器项目设计:C语言实现(原书第2版) pdf epub mobi txt 电子书 下载 2025

〔塞浦路斯〕 多甘·易卜拉欣 著,许辉 译
图书标签:
  • PIC单片机
  • 嵌入式系统
  • C语言
  • 项目设计
  • 微控制器
  • 电子工程
  • 硬件开发
  • 实践教程
  • 单片机应用
  • 嵌入式开发
想要找书就要到 静思书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111567653
版次:2
商品编码:12120425
品牌:机工出版
包装:平装
丛书名: 电子电气工程师技术丛书
开本:16开
出版时间:2017-07-01
用纸:胶版纸
页数:512

具体描述

内容简介

本书包括PIC18Fxxx系列的新发展,通过项目的方法展示如何开发基于单片机的应用。使用流行的PIC和MPLABXC8语言,通过大量的实践项目介绍了项目开发的全周期,这些项目包括以太网编程、数字信号处理以及RFID技术。此外,本书包含了五十多个项目,涵盖了无线传感器网络应用的发展、SD卡项目和多任务处理。

目录

译者序
前言
第1章 微机系统 1
1.1 引言 2
1.2 微控制器系统 2
1.3 总结 6
1.4 练习 6
第2章 mikroC Pro for PIC编程语言 7
2.1 mikroC Pro for PIC程序的结构 8
2.2 数组 10
2.3 指针 11
2.4 结构体 11
2.5 C运算符 12
2.6 修改控制流 13
2.7 mikroC Pro for PIC的函数 17
2.8 mikroC Pro for PIC的库函数 17
2.9 总结 18
2.10 练习 18
第3章 MPLAB X IDE和MPLAB XC8 C编程语言 20
3.1 PICDEM PIC18 Explorer开发板 21
3.2 MPLAB X IDE 24
3.3 MPLAB XC8编译器 24
3.4 总结 39
3.5 练习 39
第4章 微控制器程序开发 40
4.1 使用PDL和流程图 41
4.2 举例 44
4.3 用流程图表示for循环 48
4.4 总结 49
4.5 练习 49
第5章 初级PIC18项目 51
项目5.1 追逐LED 52
项目5.2 复杂闪烁的LED 56
项目5.3 随机闪烁的LED 59
项目5.4 逻辑探头 61
项目5.5 LED骰子 68
项目5.6 双骰子项目 75
项目5.7 使用较少I/O引脚的双骰子项目 80
项目5.8 7段数码管计数器 89
项目5.9 两位多路复用7段数码管 94
项目5.10 4位多路复用7段数码管 99
项目5.11 LED电压表 105
项目5.12 LCD电压表 112
项目5.13 产生声音 124
项目5.14 生成自定义的LCD字体 131
项目5.15 数字温度计 134
第6章 中级PIC18项目 137
项目6.1 带4位多路复用7段数码管的外部中断事件计数器 138
项目6.2 带键盘和液晶显示器的计算器 150
项目6.3 高/低游戏 164
项目6.4 产生波形 170
项目6.5 利用超声波测量人体高度 199
项目6.6 迷你电子琴 208
项目6.7 带LCD的频率计数器 210
项目6.8 反应计时器 216
项目6.9 温度和相对湿度测量 224
项目6.10 带RS232串行输出的温度计 234
项目6.11 微控制器和基于PC的计算器 245
项目6.12 带LCD输出的GPS 250
项目6.13 开/关温度控制 256
第7章 高级PIC18项目 263
项目7.1 蓝牙串行通信之从模式 264
项目7.2 蓝牙串行通信之主模式 286
项目7.3 RFID的使用 293
项目7.4 RFID感应锁 308
项目7.5 复杂的SPI总线项目 315
项目7.6 使用RTC芯片的实时时钟 337
项目7.7 实时闹钟 350
项目7.8 SD卡项目——将文本写入文件 360
项目7.9 SD卡温度数据记录器 378
项目7.10 使用图形LCD——显示各种形状 386
项目7.11 在GLCD上显示气压计、温度计和高度计 397
项目7.12 在GLCD上绘制温度变化曲线 407
项目7.13 以太网的使用——基于Web浏览器的控制 412
项目7.14 以太网的使用——基于UDP的控制 422
项目7.15 数字信号处理——低通FIR数字滤波器项目 427
项目7.16 汽车项目——本地互联网络总线项目 434
项目7.17 汽车项目——CAN总线项目 446
项目7.18 多任务 470
项目7.19 步进电机控制项目——简单的单极电机驱动 487
项目7.20 步进电机控制项目——单极电机的复杂控制 490
项目7.21 步进电机控制项目——简单的双极电机驱动 494
项目7.22 直流电机控制项目——简单的电机驱动 500
项目7.23 测量电机速度的自制光学编码器 504
项目7.24 闭环直流电机速度控制——开/关控制 507

前言/序言

  前言微控制器是一个单芯片微处理器系统,其中包含数据和程序存储器、串行和并行输入/输出、定时器、外部和内部中断,所有这些都集成在一个芯片中,其价格可以低至2.00美元。大约40%的微控制器应用在办公自动化中,例如,PC、激光打印机、传真机、智能电话等。大约1/3的微控制器存在于消费类电子产品中,如CD播放器、高保真设备、视频游戏、洗衣机、厨具等产品。通信市场、汽车市场和军事设备共享其余的应用领域。

  目前有许多不同类型的微控制器,它们是由不同的制造商制造的。本书介绍了Microchip科技公司开发和制造的高端8位微控制器PIC18F系列。本书中的项目使用了非常流行的PIC18F45K22微控制器,在本书中也给出了许多初级、中级和高级项目。大多数项目都是使用流行的mikroCProforPIC编译器及MPLABXC8编译器开发的,所有项目都有完整的文档,书中为每个项目提供以下内容:项目介绍、项目硬件(及适当的项目框图)、项目PDL、项目程序,对于一些项目,还提出了可能的修改和改进建议。所有的项目都已经过了测试,可以正常工作。

  在阅读本书时,C编程语言的知识是很有用的,至少熟悉PIC16F系列中的一个微控制器也是有好处的,此外,不需要汇编语言编程知识,因为书中的所有项目都是基于C语言的。

  本书面向学生、实习工程师和有兴趣使用PIC系列微控制器开发基于微控制器项目的爱好者。鉴于篇幅所限,我已经尝试在书中加入了尽可能多的项目。

  第1章介绍了微控制器的基本特性。

  第2章提供了一个有关C语言的简短教程,然后介绍了本书中提供的项目所使用的流行的mikroCProforPIC编程语言和编译器的特性。

  第3章是关于MPLBXIDE和XC8编程语言及编译器的介绍。本书中的大多数项目都提供了mikroCPro和XC8程序清单,读者应该能够轻松地从一种语言转换到另一种语言。

  第4章描述了常用的程序开发工具,如PDL和流程图,关于这两个工具都给出了示例。

  第5章给出了使用PIC18F45K22微控制器的初级项目。在本章中,这些项目包括简单的LED、7段数码显示屏、LCD、音响项目等。

  第6章提供了中级项目。本章中的项目包括使用中断、使用键盘、实时生成波形、串行通信、GPS数据解码、各种总线系统等。

  第7章提供了更多的高级项目。本章涵盖的项目主要包括使用蓝牙通信、RFID、实时时钟、图形LCD、SD卡,以及基于以太网的项目CAN总线、微控制器系统中的多任务、步进电机和直流电机的项目。虽然关于电机的项目不是最先进的,但在本章中尽量给出了完整的内容。

  致谢本书中的以下材料在相应版权持有人的许可下进行了转载,未经他们允许,不得以任何方式转载或复制。

  图3.1和图3.12摘自Microchip科技公司的PIC18(L)F2X/4XK22(DS41412F)数据手册和Microchip科技公司的网站www.microchip.com。

  图6.48取自Parallax公司的网站。

  图6.8、图7.13、图7.28、图7.30、图7.63和图7.113取自mikroElektronica网站。

  PIC?、PICSTART?和MPLAB?是Microchip科技公司的商标。


  译者序在现代工业环境中,随着微控制器的高速发展,新的控制技术已被广泛使用,它带动着工业自动化和控制领域向工业4.0方向迅速发展,因此微控制器的开发对提升产品性能和降低制造成本都有着举足轻重的影响。

  要想利用微控制器对控制设备进行开发,不仅要掌握好微控制器的相关知识,还要积累各方面的经验,包括硬件设计、软件设计,以及如何让两者巧妙结合协同工作。此外,若要确保设计的项目能在实际工作环境中正常运行,还需要考虑实际应用环境的特点、突发问题的应急处理方式及各种干扰因素的影响等,因此,只有通过全面的考虑才能将微控制器的应用开发推进到新的阶段。

  本书从实际设计应用出发,以Microchip科技公司的高端8位微控制器PIC18F系列为例,使用mikroCProforPIC编译器和MPLABXC8编译器,并将其应用在了50多个应用项目中。在内容编排上,从基础层面向应用提高层面逐渐深化,初学者可以边学边用,循序渐进,从而掌握相关知识,提高自主学习和解决问题的能力。书中提供的所有项目不仅内容详尽,考虑全面,而且还提供了完整的文档,程序也都经过了全面测试和使用,具有非常高的参考价值。

  正是由于本书的独特性,才使我们决定将其翻译并奉献给读者,希望能为涉及微控制器的电子类专业的本科生提供学习和参考资料,也为从事微控制器开发应用的工程师和电子爱好者提供帮助。

  本书由西安电子科技大学的许辉、吕汶翻译,其中许辉负责第1、2、6、7章的翻译,吕汶负责第3、4、5章的翻译。由于时间紧张和译者的水平所限,难免存在偏差和失误,恳请读者批评指正。



《PIC微控制器项目设计:C语言实现》(原书第2版)—— 踏入嵌入式开发新境界 本书并非对市面上的某本具体书籍进行内容概述,而是旨在为读者提供一个全面、深入的嵌入式系统开发思路与实践指南。我们将聚焦于PIC微控制器这一强大的开发平台,结合C语言这一高效的编程工具,引导您从零开始,一步步掌握嵌入式项目的完整设计流程,最终能够独立完成具有实用价值的创新项目。 引言:为何选择PIC微控制器与C语言? 在日新月异的电子技术浪潮中,嵌入式系统扮演着至关重要的角色,它们无处不在,从家用电器到汽车电子,再到工业自动化和物联网设备,都离不开嵌入式技术的支撑。PIC微控制器以其性能稳定、功能丰富、成本效益高以及广泛的应用领域,成为嵌入式开发领域备受青睐的选择。而C语言,作为一门高效、灵活且与硬件紧密结合的编程语言,则是实现嵌入式系统控制逻辑、算法和人机交互的理想工具。本书正是基于这一理念,将PIC微控制器强大的硬件能力与C语言的编程优势相结合,为您打造一条通往嵌入式开发精通之路。 第一部分:基础构建——认识PIC微控制器与开发环境 在深入项目设计之前,扎实的基础知识是必不可少的。本部分将带领您全面认识PIC微控制器的世界。 PIC微控制器架构与家族概览: 您将了解PIC系列微控制器的基本内部架构,包括CPU核心、存储器(RAM、ROM、EEPROM)、I/O端口、定时器/计数器、中断系统、ADC(模数转换器)、DAC(数模转换器)、通信接口(UART、SPI、I2C)等关键组成部分。我们会介绍不同PIC系列(如PIC10、PIC12、PIC16、PIC18、PIC24、dsPIC、PIC32等)的特点和应用侧重点,帮助您根据项目需求选择最合适的微控制器型号。 开发环境搭建与配置: 熟悉并掌握常用的PIC微控制器开发工具链是高效开发的前提。我们将详细指导您安装和配置Microchip官方的集成开发环境(IDE),如MPLAB X IDE,以及配套的编译器(如XC8、XC16、XC32)。同时,您还将了解常用的编程器/调试器(如PICkit、ICD)的使用方法,以便将编写好的程序烧录到微控制器中并进行实时调试。 C语言在嵌入式开发中的应用: 本部分将重点讲解C语言在嵌入式开发中的特性和常用技巧。这包括: 数据类型与位操作: 如何精确地控制字节和位的存取,这是与硬件交互的基石。 指针与内存管理: 理解指针在访问硬件寄存器、组织数据结构中的重要作用,以及嵌入式系统中内存的局限性。 运算符与控制结构: 熟练运用位运算符、逻辑运算符等进行高效的逻辑判断和数据处理。 函数与模块化设计: 如何将复杂的任务分解为可重用的函数,提高代码的可读性和可维护性。 中断处理机制: 深入理解中断的概念、工作原理以及如何在C语言中编写高效的中断服务程序(ISR),这是实现实时响应的关键。 预处理器指令: 掌握`define`、`ifdef`、`include`等指令在定义常量、宏、条件编译和代码组织中的应用。 GPIO端口的直接控制: 您将学习如何通过C语言直接操作PIC微控制器的通用输入/输出(GPIO)端口,实现LED的闪烁、按钮的输入检测等基本功能。这包括理解TRIS寄存器(设置端口方向)、PORT寄存器(读写端口电平)和LATch寄存器(可选,用于某些PIC系列)的作用。 第二部分:核心技术——PIC微控制器的关键外设应用 在掌握了基础知识后,我们将深入探索PIC微控制器强大外设功能的C语言实现。 定时器/计数器的精细控制: 定时器是嵌入式系统中实现精确时间控制、周期性任务、脉冲测量等功能的核心。您将学习如何配置和使用不同类型的定时器(如16位定时器、8位定时器),实现延时、定时中断、PWM(脉冲宽度调制)输出等。 ADC与DAC的模拟信号处理: 学习如何利用ADC将现实世界的模拟信号(如温度、光照、电压)转换为数字信号,以及如何使用DAC将数字信号转换为模拟输出。这将使您的项目能够感知和响应环境变化,并产生模拟控制信号。 中断系统的深入应用: 除了基本的定时器中断,您还将学习如何处理外部中断、通信中断等。理解中断优先级、中断向量以及如何编写高效、简洁的中断服务程序,是构建稳定、响应迅速的系统的关键。 通信接口的实现(UART, SPI, I2C): 现代嵌入式系统往往需要与其他设备进行通信。本部分将详细介绍如何使用C语言实现PIC微控制器的串行通信接口: UART(通用异步收发传输器): 实现与PC、其他微控制器或蓝牙模块等设备进行串口通信,用于数据采集、远程控制和调试信息输出。 SPI(串行外设接口): 实现与高速外围设备(如SD卡、传感器、显示屏)的高速同步通信。 I2C(集成电路互联总线): 实现与各种传感器、EEPROM、实时时钟(RTC)等低速或中速外围设备的半双工通信。 PWM(脉冲宽度调制)的应用: PWM是控制电机速度、LED亮度、舵机角度等模拟量输出的有效手段。您将学习如何通过配置定时器生成不同占空比的PWM信号,实现精细的模拟控制。 EEPROM与Flash的应用: 学习如何在C语言中读写PIC微控制器的片内EEPROM或Flash存储器,以实现程序配置参数的非易失性存储,确保系统断电后数据不丢失。 第三部分:项目实践——从概念到实现的完整流程 理论学习最终要落实在实际项目中。本部分将引导您完成一系列由浅入深的嵌入式项目,系统性地掌握项目设计与开发的全过程。 项目需求分析与规格定义: 如何将一个模糊的想法转化为清晰、可执行的项目需求和技术规格。 硬件选型与电路设计基础: 根据项目需求,选择合适的PIC微控制器型号、必要的外部元器件(如电源、晶振、复位电路、传感器接口电路、驱动电路等),并进行基础的电路原理图设计。 软件设计与模块划分: 如何规划软件架构,将项目分解为不同的功能模块(如数据采集模块、控制逻辑模块、通信模块、显示模块等),并进行接口定义。 核心算法实现: 针对项目的功能需求,编写高效、可靠的C语言算法。 驱动程序开发: 为各种外围设备(如传感器、显示屏、电机驱动器)编写C语言驱动程序,实现对硬件的抽象和统一访问。 人机交互设计(LED, LCD, 键盘): 如何通过LED指示状态,使用LCD显示信息,并通过按键、矩阵键盘等输入设备实现用户交互。 传感器数据采集与处理: 实际应用中,传感器数据的准确采集和有效处理是关键。您将学习如何从各种传感器获取数据,并进行滤波、校准和分析。 通信协议的实现与集成: 学习如何将前面学习到的通信接口技术应用于实际项目中,实现与其他设备的数据交换。 低功耗设计技巧: 在电池供电或对功耗敏感的项目中,掌握PIC微控制器的低功耗模式(如Sleep模式)以及如何优化代码以降低功耗。 调试与测试方法: 掌握使用集成开发环境提供的调试工具(断点、单步执行、变量监视)以及打印调试信息等方法,快速定位和解决程序中的错误。同时,学习单元测试和集成测试的基本方法。 项目优化与代码重构: 在项目完成初版后,如何进行性能优化、代码重构,提高程序的效率、可读性和可维护性。 案例分析(示例性,非本书具体内容): 为了更好地说明项目设计的思路,我们将通过一系列贴近实际应用的案例进行讲解(这些案例是概念性的,旨在说明设计方法,而非本书的特定目录): 案例一:智能温湿度监测与记录系统 目标: 使用DHT11/DHT22传感器采集温湿度,并通过LCD1602显示,同时将数据通过UART发送到PC,并可选地存储到EEPROM。 重点: DHT传感器协议解析,LCD驱动编写,UART通信实现,EEPROM读写。 案例二:基于PWM的LED调光与RGB色彩控制 目标: 使用PWM输出控制LED的亮度,实现单色LED的无级调光;进一步扩展,通过三路PWM输出控制RGB LED,实现丰富的色彩混合。 重点: PWM原理与配置,RGB LED驱动,软件调色算法。 案例三:红外遥控接收与信号解析 目标: 使用红外接收模块接收遥控器信号,解析IR协议,并通过LED或UART输出解析结果。 重点: 外部中断应用,红外协议(如NEC协议)的时序分析与解析算法。 案例四:简单的电机速度控制系统 目标: 使用编码器或霍尔传感器检测电机转速,通过PWM控制电机驱动器,实现电机速度的闭环控制。 重点: 脉冲计数,PID算法基础,电机驱动器接口。 结语:开启您的嵌入式创新之旅 通过对PIC微控制器及其C语言编程的深入学习和实践,您将不仅掌握一项强大的技术,更将获得创造和解决问题的能力。本书旨在为您铺设一条坚实的道路,让您能够自信地将自己的创意转化为实际的、功能强大的嵌入式系统。无论您是电子工程专业的学生,还是业余爱好者,亦或是希望拓展技能的工程师,本书都将是您在嵌入式开发领域不可或缺的良伴,助您在不断发展的科技前沿,实现属于自己的精彩设计。

用户评价

评分

对于我这个在电子设计领域摸爬滚打多年的爱好者来说,《PIC微控制器项目设计:C语言实现(原书第2版)》就像一块金矿,里面蕴藏着丰富的设计思路和实现技巧。这本书的特点在于,它并没有仅仅停留在“如何使用”层面,而是深入到了“为什么这么设计”和“如何优化设计”的层面。它所提供的项目,每一个都经过精心设计,不仅能够实现基本功能,更包含了许多值得学习的工程实践经验。 我尤其喜欢书中关于传感器接口和通信协议的章节。在现代嵌入式系统中,传感器和通信是不可或缺的部分。书中对各种常用传感器的接口原理和C语言驱动程序的编写进行了详细的讲解,让我能够快速地将各种传感器集成到我的项目中。同时,书中对UART、SPI、I2C等通信协议的深入剖析,以及如何用C语言来实现这些协议,为我解决实际项目中的通信难题提供了强有力的支持。这本书让我感受到,学习不仅仅是记忆,更是理解和运用。它让我对PIC微控制器的理解进入了一个新的层次。

评分

自从我拿到《PIC微控制器项目设计:C语言实现(原书第2版)》这本书,我感觉自己就像拥有了一位经验丰富的导师。它不仅仅是一本技术书籍,更像是一份详尽的实践指南。我一直在寻找一本能够将PIC微控制器的理论知识与实际项目应用紧密结合的书籍,而这本书恰好满足了我的需求。书中丰富的项目案例,涵盖了从简单的硬件控制到复杂的数据处理,让我能够清晰地看到PIC微控制器在各种场景下的应用潜力。 最令我印象深刻的是,书中对每一个项目的讲解都非常细致,包括硬件电路的设计、C语言程序的编写、以及软件的调试过程。它让我明白了,一个完整的项目开发不仅仅是写几行代码那么简单,还涉及到很多工程化的思考。例如,书中在介绍中断处理时,不仅给出了如何编写中断服务程序,还详细分析了中断的优先级、嵌套以及可能出现的时序问题,这让我对中断有了更深刻的理解。此外,书中还提供了一些进阶的项目,让我能够挑战自我,不断提升自己的技能水平。

评分

对于我这样一个有着一定硬件基础,但缺乏实际项目经验的工程师来说,《PIC微控制器项目设计:C语言实现(原书第2版)》的价值简直是无价的。书中提供的那些精心设计的项目,从简单的LED闪烁到复杂的电机控制,再到通信协议的实现,每一个都循序渐进,层层递进。这不仅让我能够将理论知识转化为实际操作,更让我看到了PIC微控制器在现实世界中的巨大潜力。 我最喜欢的部分是书中对项目开发流程的梳理。它不仅仅是告诉你“怎么做”,更重要的是告诉你“为什么这么做”。从需求分析,到硬件选型,再到软件设计和调试,书中的每一个环节都充满了作者的经验总结。特别是关于调试的部分,书中分享了许多实用的技巧,比如如何利用示波器和逻辑分析仪来定位问题,以及如何通过代码逻辑分析来排查bug。这些都是在实际开发中非常宝贵的经验。我曾经在自己的小项目中遇到过一些难以解决的bug,但通过书中提到的方法,我都能迎刃而解。这让我感到,学习这本书不仅仅是学习技术,更是学习一种解决问题的思维方式。

评分

这本书的出版,无疑为我这个PIC微控制器初学者打开了一扇扇通往实践的大门。在接触这本书之前,我对PIC的了解仅限于“它是一种微控制器”,仅此而已。市面上关于微控制器的书籍琳琅满目,但很多要么过于理论化,要么实例过于简单,难以让我产生深入学习的动力。这本《PIC微控制器项目设计:C语言实现(原书第2版)》则完美地解决了我的痛点。它并非枯燥的理论堆砌,而是紧密围绕着“项目设计”这一核心,从最基础的原理讲解,到具体项目的代码实现,再到调试技巧的分享,都做到了详尽而易懂。 我尤其欣赏书中对C语言在PIC上的应用的细致描绘。很多时候,我们学习单片机,最终目的都是要用编程去控制它,而C语言无疑是应用最广泛的语言之一。书中并没有仅仅罗列C语言的语法,而是将其与PIC的硬件资源巧妙地结合起来。例如,在介绍GPIO端口控制时,书中不仅给出了直接操作寄存器的代码,还介绍了更高级的抽象层实现,这让我能够理解底层原理,也能快速上手开发。更让我惊喜的是,书中对各种外设的驱动也做了详细的讲解,比如ADC、定时器、UART等,这些都是实际项目中必不可少的部分。通过书中的实例,我能够清晰地看到,如何一步步地将这些外设集成到我的项目中,并实现预期的功能。这不仅仅是学习知识,更是一种能力上的提升。

评分

这本书简直是为想要系统学习PIC微控制器开发的读者量身定做的。它以C语言为载体,带领读者一步步走进PIC的世界,从最基础的硬件结构讲到复杂的应用开发,让整个学习过程充满了成就感。我之前也翻阅过一些其他的PIC书籍,但很多都停留在概念层面,或者例子过于零散。这本书则不同,它提供了一整套从入门到进阶的项目化学习路径。 我特别赞赏书中对每一个项目都进行了详细的讲解,从原理分析到代码实现,再到实际运行效果的预期,都做了清晰的阐述。这使得我在学习过程中,不仅能够理解代码的含义,更能明白代码背后所代表的硬件操作和逻辑。比如,书中关于ADC采集的章节,不仅给出了完整的代码,还详细解释了采样率、转换精度等参数的意义,以及如何根据实际需求进行配置。这样的深入讲解,让我能够举一反三,触类旁通。而且,书中还提供了配套的资源,比如源代码和原理图,这为我进行实际操作提供了极大的便利。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有