清华大学出版社

您所在的位置:网站首页 单片机编程入门基础知识电子版 清华大学出版社

清华大学出版社

2024-07-13 03:41| 来源: 网络整理| 查看: 265

单片机是一门对综合性知识要求非常高的课程,单片机的入门一直以来对初学者来讲是个老大难题,而入门后如何将这些知识运用到实际项目中,进一步提升单片机开发使用技能又是一个难题。一般来讲,实战项目带有很多技巧性,需要大量的知识和经验积累。针对这些情况,本书将从入门和实用的角度出发,全面系统的介绍单片机从入门到进阶及实战的技巧。全书包含两大部分,第一部分以单片机入门为主,通过对比8051、PIC16、MSP430、STM32多种单片机和Arduino开发平台下I/O、中断、定时器、扩展芯片、I2C总线、SPI总线及串口等外设模块的使用方式,总结介绍了一套适用于通用单片机外设的开发方法;第二部分结合实际单片机项目中的方法与技巧,从工程的角度出发,围绕读者将会面对的工程领域电路及软件开发方法、代码规范、模块化程序编写、项目基本开发流程、实用状态机编程、单片机操作系统思维方式编程、算法的本质及常用算法原理与应用场景、单片机中的数据结构、代码版本管理、基于模型开发方式实例分析与移植、Arduino开发平台介绍与基本使用方法、VS Code开发工具在单片机中的应用,让入门读者近距离感受工程项目中的开发方式。 本书适合作为电子信息类本、专科学生入门与进阶单片机知识的参考书,也可作为电子爱好者实战参考书,对于单片机或嵌入式工程师来讲也是一本不错的参考书籍。

more >

前言 为初学者打造一本全方位介绍单片机入门与进阶的图书,帮助初学者入门,并梳理单片机学习过程中的整个脉络是本书的主旨。可能有读者会问,市面上有这么多单片机入门书和视频,本书在内容上有什么优势?这里简单谈谈自己的看法,笔者曾经带过很多初学者,也经常与刚踏入单片机行业或放弃该行业的从业者进行交流,加上笔者本身是通过一步步自学过来的,对单片机学习过程中的“坑”深有体会,这里所讲的“坑”倒也不是学习单片机本身面临的知识点难度,而是适合初学者的一套学习方法。所以在本书中,读者也将看到介绍方法与思路贯穿全书。其实各行各业都一样,入门这一步非常困难,困难在刚开始读者对很多知识(以单片机为例: C语言、单片机原理、模拟电路基础知识、数字电路基础知识、计算机原理、I2C总线、SPI总线、寄存器)都不懂,不知道从何学起,但是一旦入门,很多读者经常会感慨“原来就这么回事”,脉络清晰了,怎么去补充知识,怎么去学,自然而然也就清晰了。本书内容仅仅帮助初学者如何去学习,限于篇幅,许多知识点没有进一步展开介绍,俗话说得好: “师傅领进门,修行靠个人。”单片机和嵌入式开发也一样,入门之后,可每个人根据职业规划或爱好朝着自己的方向不断地补充新的知识和技能。 许多初学者以为单片机开发就是写代码,在笔者看来,写代码应该放到最后一步。首先读者需要将整个单片机项目分解、细化,看一下哪些知识点是自己熟悉的,哪些知识点是自己不熟悉的,不熟悉的知识点再进一步分解成哪些是需要花时间与精力解决的,整个项目要使用什么样的软件框架,把关键问题解决之后再去写代码,会起到事半功倍的效果。 掌握模块化设计思路,其实各行各业都有这种模块化思想,例如一辆机动车自上而下看包括发动机、变速箱、底盘、外观、内饰等,如果再进一步分解发动机,则包括排气系统、进气系统、冷却系统、燃油系统、配气机构、曲轴连杆等模块。单片机系统中这种模块化思想也体现得淋漓尽致,一个单片机包括CPU、RAM、Flash、时钟系统、输入输出(I/O)、I2C、SPI、串口、定时器、RTC模块等;一个单片机项目包含的程序模块通常有数字输入模块、数字输出模块、通信模块、系统调度模块等,掌握这种模块化设计思想会让你在各行各业中获益良多。 笔者是个物理爱好者,大学期间学的也是物理学专业,出于对电子技术的热爱,从大二开始,不断参加各种科技、电子协会,帮助班上和在校同学解决各种电器问题,小到吹风机、音响,大到电视机、计算机、空调、洗衣机等,还多次积极协助组织参与“三下乡”活动,将科技知识带进农村,为老百姓切切实实答疑解惑并解决实际电器问题。此外,笔者也多次参加各层级举办的电子类竞赛,尽管有的比赛成绩不是很理想,但是在竞赛过程中都能学有所获,受益良多。正是这些实战经历,使笔者在很多方面对单片机和嵌入式的理解比较独特,也希望这些独特的理解能帮到各位读者。 本书内容安排从每个阶段实用的角度出发,秉持着通俗易懂的原则,第一部分主要介绍单片机入门知识,与众多介绍单片机入门的方式不同,笔者特地选择了市面上常用的4种单片机(STC89C52RC、PIC16、MSP430和STM32)与开源界非常流行的Arduino开发平台进行对比,一方面通过对比帮助读者了解不同单片机的开发方式; 另一方面也可以总结这些单片机开发方式的共同点,以便读者以后碰到新单片机时可以将这种技巧快速应用其中。另外需要指出的是,关于上面4款单片机其实在业内有非常优秀的入门教程,8051单片机有郭老师的《10天学会单片机》视频、STM32有野火的《零死角玩转STM32》和正点原子的《手把手教你学STM32》,所以在介绍该部分内容时笔者只挑重点,有些甚至是一笔带过,但是该部分资料都会统一放在本书提供的资源中。 一直以来,单片机进阶是很多初学者面临的老大难问题,一方面市面上系统性的书籍比较少; 另一方面单片机进阶学习需要结合实际项目,单纯通过理论方式很难将这些经验描述到位。笔者花了很多心思梳理了单片机进阶的整个知识框架,从第16章在实际工程应用中的电路着手到第17章的软件痛点分析,其中参考了网上大量文章及初具规模公司中实用的一些规范; 第18章介绍了基础版的代码规范,旨在帮助读者养成一个良好的代码编写习惯。实际项目中的程序往往是复杂但又有迹可循的; 第19章特地介绍了如何编写模块化程序,以便读者更好地读懂和编写有一定代码量的单片机程序,而要做好一个单片机项目,特别是在多人协作开发时,一个好的研发流程显得尤为重要,很多技术公司发展到一定规模后都面临流程上的问题; 第20章以一个实际的案例介绍了一个完整项目的基本开发流程,为了更进一步让读者对这种开发方式有所理解; 第21章特地补充了一个实际做好的项目,帮助读者巩固研发流程; 从第22章开始主要介绍一些实际项目中的技巧,例如第22章中的状态机原理及实际项目中哪些地方用到状态机,并进一步延伸出状态机更广泛的用途; 第23章则使用通俗易懂的方式介绍操作系统方式编程和如何打造一个基础版的操作系统,通过与市面上主流的实时系统μC/OSⅡ做对比,读者会发现其实开发操作系统也没有想象中那么难。在校期间,很多计算机与电子类专业学生经常会听到老师说算法才是程序的灵魂,但是算法到底是什么及单片机中算法该如何应用在第24章中进行了详细介绍。为了让读者进一步认识算法; 第25章和第26章详细介绍了两个非常熟悉的游戏(贪吃蛇与俄罗斯方块)在Windows和单片机上的实现方式,让读者可以更进一步地理解算法的本质。单片机软件本身是抽象的,单片机能实现相应功能,其实主要是程序编写者的功劳,为了将这些单片机资源利用好,数据结构起到了重要作用,第26章还详细介绍了单片机中常用的几种数据结构。许多单片机入门者包括从业多年的工程师对于如何维护代码一直比较模糊,特别是多人协作开发同一个项目时,这种问题显得尤为突出; 第27章针对当前流行的分布式代码版本管理作了基础和实用的介绍,这种管理方式无论是对于写代码还是文档管理都是一个非常不错的选择。笔者认为技术从业者要勇于探索和拥抱新的技术、新的开发方式,人类社会的进步就是机器不断取代人力的过程,单片机开发也一样,特别是长期从事单片机开发行业的工程师应该有感触,绝大部分时间是在做一些普通人都能做的事情,对于一款单片机来讲它的资源、开发方式基本上是固定的,所以第28章介绍了一种基于模型的开发方式,这种开发方式在未来一定会得到全面普及,只是以何种方式、何时出现的问题。一个好的工具、平台同样也能提高项目的开发效率,第29章介绍的Arduino开发平台,尽管许多读者非常熟悉,但是也希望通过本书的这种介绍方式使读者能对开源平台有一个全新的理解,而第30章的VS Code也算是微软近年来的大作,几乎横跨整个代码界,其便捷性和可扩展性给工程师带来了极大的便利性。 最后感谢周围关心与支持笔者的亲人与朋友。 本书写作过程比较仓促,书中难免存在疏漏之处,希望读者能够批评指正,也真心希望读者能通过本书学到或悟到一些对您有用的东西。 王良升2022年10月 配套资源

more > 暂无课件 样章下载 暂无网络资源 扫描二维码 下载APP了解更多

版权图片链接



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3