您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
联系客服
|
搜索
热搜:
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
单片机编程魔法师之高级裸编程思想
字数: 390000.0
装帧: 平装
出版社: 电子工业出版社
作者: 无 著 张玮 等 编
出版日期: 2014-09-01
商品条码: 9787121239724
版次: 1
开本: 16开
页数: 261
出版年份: 2014
定价:
¥59
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
收藏
上架到店铺
×
Close
上架到店铺
{{shop.name}}
点此去绑定店铺
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥22.05
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
本书以单片机裸环境为基础,为编程者定义了一个微操作系统(MOS)的编程环境,并面向应用中不断提高的需求对编程策略进行了深度剖析与研究,从而分离出数据驱动、并行多任务、面向对象等重要编程思想。这些思想既可独立运用,又可有机结合成一个体系,是我们实践中解决问题的致胜法宝。本书以实例为基础,分6章对这一思想体系进行了阐述。阐述通常以提出问题开始,然后针对解决问题的现状,从心理学的角度对问题展开讨论,力求将容易遇见的问题一网打尽。本书通过一些列的优化过程对思想要点进行完整描述,然后通过软件仿真手段给读者一个清晰的认识,并在最后进行归纳总结。
作者简介
余灿基,21ic“思想与裸编程”版块版主(yyy71cj)。1993年毕业于南京理工大学计算机科学与工程系。毕业后长期从事计算机网络应用、城域网数据库管理软件开发、电子自动化系统开发(上位机与下位机软件开发及数字电路设计)与集成方面的工作,先后主持过楼宇对讲系统的升级改造、电子警察管理系统设计、港口温控系统设计、视频监控前端产品(如高速球等)开发、安全监测系统设计(监测传感器与施工监测及健康监测系统集成)等项目。现主要从事计算机应用、单片机应用、程序设计等方面的教学工作,并致力于技术开放共享事业。
目录
第1章数据驱动程序1
1.1数据驱动程序1
【导读】本节通过对数据驱动程序的概念的界定(1.1.1节)与数据驱动程序的简介(1.1.2节),让读者初步了解数据驱动程序。
1.1.1数据驱动程序的定义1
1.1.2数据驱动程序简介2
1.24支方波问题与测试模型4
【导读】本节对4支方波同步实现的问题(本书的问题1)进行了分析(1.2.1节),并建立一个数字测试模型(1.2.2节)。本节只是数据驱动程序的引子,具体的数据驱动程序的编写需要经历一个漫长的演变才能完成(在后续章节中逐步实现)。
1.2.1问题1与分析4
1.2.2测试模型5
1.3一支峰谷等宽方波的实现6
【导读】为了获得4支方波同步实现的解决方法,先简化问题,从一支有规律的峰谷等宽的特例方波的实现入手来寻求答案。本节先对这支特例方波进行特性分析(1.3.1节),然后利用常规方法进行实现(1.3.2节),最后通过1.2.2节建立的仿真测试模型对这支特例波的实现效果进行验证。
1.3.1问题1-1与分析6
1.3.2实现8
1.3.3仿真8
1.4一支峰谷不等宽方波的实现9
【导读】本节对解决问题的任务进行了深入分析,将这支等宽的特例方波改成不等宽的普通方波,并对这支普通方波进行分析(1.4.1节)与实现(1.4.2节),最后进行仿真验证(1.4.3节)。为了向终极目标迈进,本节对这次实现的代码进行了亮点分析(1.4.4节),从而引导读者从平凡的代码中去寻求那些宝贵的关键点。
1.4.1问题1-2与分析9
1.4.2实现10
1.4.3仿真11
1.4.4亮点分析11
1.5两支波的实现12
【导读】通常,多支波的难度系数远远大于1支波的难度系数,而多支波的波数对难度系数的影响不大。但是波数越小,复杂度就越小。所以本节从多支波集合中的2支波向终极问题挺进。本节在对问题进行分析(1.5.1节)之后很轻松地就进行了实现(1.5.2节),似乎困难根本就没存在过。接下来的仿真(1.5.3)继续为研究的深入提供了信心,而亮点分析(1.5.4节)则向读者暗示:这里的代码很平凡,但是里头却隐藏着什么。
1.5.1问题1-3与分析12
1.5.2实现14
1.5.3仿真15
1.5.4亮点分析15
1.64支波的实现16
【导读】本节通过对问题的分析(1.6.1节)、实现(1.6.2节)与仿真,呈现给读者一个完整的解决方案,但这个方案只是一个普通的方案。至此读者需要思考的是:这个普通的方案与数据驱动有着什么样的关联呢?
1.6.1问题1-4与分析16
1.6.2实现17
1.6.3仿真19
1.7冗余代码的一次简化20
【导读】烦则思变,一个常规的方法往往是不完美的,但是我们所期待的完美却又离不开一个不完美的开始。所以我们绝不能盲目抛弃一个不完美的方案,本节通过对这个常规方案的亮点分析(1.7.1节),然后进行合理简化(1.7.2节),从而寻求一种科学的编程思路。
1.7.1亮点分析21
1.7.2代码简化22
1.8冗余代码的二次简化23
【导读】随着简化进程的推进,数据驱动程序的思想已经跃然于代码之上(1.8.2节)。
1.8.1亮点分析24
1.8.2代码简化24
1.9冗余代码的三次简化26
【导读】优化后的代码(1.8.2节)带给我们新的启示(1.9.1节),数据可以从代码中分离出去了,分离出去的数据称为数据脚本(1.9.2节),我们可以用播放器来播放这种脚本(1.9.3节),到此我们将对编程耳目一新,也到了思考的时候了(1.9.4节)。
1.9.1数码分离的启示26
1.9.2数据脚本27
1.9.3数据驱动的实现28
1.9.4回顾与思考29
1.104支波数据驱动程序应用29
【导读】我们获得了一种新的思想,现在可以小试牛刀了,将4支方波的形式转换一种面目(1.10.1节),这看似迥然不同的问题,是不是会让我们有顾虑?其实不必担心,我们轻松就能解决这种问题(1.10.2节)。
1.10.1问题2与分析30
1.10.2实现32
1.10.3仿真33
1.10.4回顾与思考33
1.11总结34
【导读】继续将问题异样化(1.11.1节),更复杂的现象依然遵循一个简单的道理。至此我们将见识数据驱动的强大力量,所以我们得让这种程序衣冠楚楚地出现在我们的面前(1.11.2节至1.11.4节),我们得从方法论上掌握这种思想(1.11.5节)。
1.11.1问题3与分析34
1.11.2规范脚本35
1.11.3规范播放器36
1.11.4规范实现37
1.11.5回顾与思考38
第2章并行多任务程序42
2.1初识并行多任务程序42
【导读】什么是并行多任务程序(2.1.1节)单片机能不能胜任并行处理工作(2.1.2节)本节将给出答案。
2.1.1释义42
2.1.2单片机能力的评估43
2.2并行三任务问题与测试平台45
【导读】为了见识并行多任务程序的庐山真面目,本节同样利用典型问题(2.2.1节)作为开篇,并建立了一个新的测试模型(2.2.2节)。
2.2.1问题4与分析45
2.2.2测试模型46
2.3并行三任务问题的顺序编程47
【导读】我们是不是习惯于使用常规思维来思考问题?我们可以用这种方法来做做看(2.3.2),然后仔细审视一下实现的效果(2.3.3节、2.3.5节、2.3.6节),是不是看似正确,又存在问题(2.3.7节)这就是常常出现的所谓的不稳定现象(2.3.8节)。
2.3.1问题与分析47
2.3.2实现48
2.3.3仿真一50
2.3.4测试分析50
2.3.5仿真二52
2.3.6仿真三53
2.3.7仿真四53
2.3.8回顾与思考54
2.4运行时序55
【导读】问题的根源是什么?是我们需要掌握单片机运行时的时序真相(2.4.1节),要真正了解一个中央处理单元应该如何运行多任务(2.4.2节、2.4.3节)。
2.4.1时序分析55
2.4.2并行多任务56
2.4.3并行多任务的可行性57
2.5我们的微操作系统59
【导读】裸编程时,我们常常习惯无视环境的存在,这也正是裸编程的典型特征,但是新的需求让这种思想窘态百出,我们需要自己的微操作系统(MOS,2.5.3节),需要在MOS中编写全新理念的程序。
2.5.1操作系统与并行多任务59
2.5.2单片机的优劣分析60
2.5.3微操作系统62
2.6任务的生与死63
【导读】在MOS中编程,我们必须要遵守一定的约束,把任务看作一个个的生命体,并让它们生活在MOS中,而我们则掌握着它们的生杀大权(2.6.4节、2.6.5节)。
2.6.1问题5与分析63
2.6.2问题5的实现63
2.6.3暗点分析64
2.6.4任务的生死状态65
2.6.5“生”与“死”的实现65
2.6.6回顾与思考66
2.7一个任务的线程67
【导读】简化问题,各个击破,是解决问题的绝佳方法,所以本节先实现一个任务(2.7.2节),然后探究其中的奥秘(2.7.3节)。
2.7.1问题与分析67
2.7.2实现69
2.7.3回顾与思考71
2.8并行多任务线程73
【导读】为了实现并行多任务,我们先引入一个与硬件无关的纯代码问题(2.8.1节),这样便于对代码规律进行研究(2.8.3节)。
2.8.1问题与分析73
2.8.2实现74
2.8.3回顾与思考76
2.9并行多任务多线程的数据与代码分离78
【导读】数据与代码分离的编程策略再次登场(2.9.1节),由此可见这种策略是一种必不可少的思想基础(2.9.3节)。
2.9.1问题与分析78
2.9.2实现81
2.9.3回顾与思考84
2.10任务的生命86
【导读】也许我们认为生死与生命是一个东西,但是严格来说,二者并不是一个东西。本节将揭示二者的差别所在。
2.10.1问题与分析86
2.10.2实现87
2.10.3回顾与思考90
2.11任务的复活92
【导读】本节将赋予裸编程者以造物主的思想,不但可以决定一个任务的生死,还可以任意地让某个任务重生。
第3章定时器与延时器94
3.1并行多任务多线程的等待方案94
【导读】等待(3.1.1节)是让顺序编程思想崩塌的火山,如果没有这种耗时大户,顺序编程思想仍能苟延残喘。所以我们必须要接触这两个传奇英雄(3.1.2节)。
3.1.1概述94
3.1.2软件定时器与软件延时器95
3.2一个软件定时器96
【导读】学会使用软件定时器,能让我们不再为有限的硬件定时器而苦恼,所以需要先实现(3.2.4节)一个软件定时器(3.2.1节),以便获得定时器的新概念。
3.2.1问题6与分析96
3.2.2测试模型97
3.2.3问题与分析97
3.2.4实现99
3.2.5仿真100
3.38个软件定时器100
【导读】我们知道,1与多迥然不同,但是2与多则差异不大。所以本节我们直接从1个软件定时器的实现变成8个软件定时器(3.3.1节)的实现(3.3.2节)。
3.3.1问题与分析100
3.3.2实现102
3.3.3仿真107
3.3.4回顾与思考107
3.4软件定时器代码优化109
【导读】代码优化是编程者一项重要的工作内容,而不论这种优化能进行到什么程度。软件定时器的代码该如何优化呢(3.4.1节)请看这里的实现(3.4.2节)。
3.4.1问题与分析109
3.4.2实现110
3.4.3回顾与思考114
3.5时基中断的时序与主程序的关系114
【导读】尽管软件定时器解决了单片机定时器资源的不足,但是软件定时器到底能有多少呢?本节将回答这个问题。
3.5.1时序分析114
3.5.2回顾与思考116
3.6一个延时器116
【导读】虽然软件定时器使用起来已经很方便了,但它总是在挤兑其他任务,它具有很高的优先级,而有时我们并不希望耗时短的任务进行过长的等待,所以我们需要一种优先级低的延时工具——延时器。
3.6.1问题7与分析116
3.6.2实现118
3.6.3回顾与思考119
3.78个延时器120
【导读】与软件定时器一样,延时器也会多个并存而呈现为并行多任务形态,这里引入8个延时器并发运行的问题(3.7.1节)并提出解决方案(3.7.2节)。
3.7.1问题与分析120
3.7.2实现120
3.7.3回顾与思考126
3.8延时器的优化126
【导读】延时器的实现代码如何优化?本节将会详细讨论(3.8.2节)。
3.8.1问题与分析126
3.8.2实现128
3.9任务代码的初步改造132
【导读】问题4提出已久,但是我们并未正面解决它,而是插入了并行多任务的编程思想,这些思想与问题4有什么关联呢(3.9.1节)请看本节是如何处理的(3.9.2节)。
3.9.1问题与分析132
3.9.2实现132
3.9.3回顾与思考135
3.10消息处理136
【导读】在一个MOS中编程,往往会产生不少新的编程策略,消息机制就是一个典型。本节将重点介绍消息机制(3.10.1节)并举例说明消息处理代码编写的方法(3.10.2节)。
3.10.1问题与分析136
3.10.2实现137
3.10.3问题分析139
3.10.4实现139
3.10.5回顾与思考142
3.11广播消息142
【导读】尽管消息机制只是一个概念,但是对应消息的处理却十分丰富。本节将重点探讨消息是如何广播的。
3.11.1问题与分析142
3.11.2实现143
3.11.3回顾与思考147
3.12任务代码的最终改造148
【导读】万事俱备,现在我们只需要利用并行多任务思想、消息机制、任务嵌套手段来分析问题4(3.12.1节)与解决问题4(3.12.2节)就可以了,对于新程序的正确性我们可以进行仔细验证(3.12.3节),您一定会发现,原来一个好的思想是多么的神奇,您甚至不用担心会存在BUG。
3.12.1问题与分析149
3.12.2实现149
3.12.3仿真154
3.12.4回顾与思考154
3.12.5亮点分析155
3.13状态指示灯155
【导读】这是一个常见的问题,也是并行多任务思想的一个典型综合应用。为了节省资源,设备只有一个指示灯,它必须同时完成不同状态的指示(冲突时靠后者指示优先),如何做到这一点呢?本节将给出完整的实现策略。
3.13.1问题8与分析155
3.13.2测试模型157
3.13.3实现157
3.13.4回顾与思考161
第4章面向对象的程序162
4.1计算机的语言特征162
【导读】发现新思想,从用正确的视角看C语言开始(4.1.1节);了解智能芯片的心情,从了解自己的心情开始(4.1.2节)。本节将从思想角度来引导读者走出常规思维的盲区。
4.1.1正视C语言162
4.1.2以对象看世界163
4.2兔类的传奇164
【导读】代码中的对象理解起来十分生涩,但是我们可以从生活中的对象开始(4.2.1节),一只兔子能带给我们什么样的启迪(4.2.2节)一只兔子与兔子的种群有着什么样的关系(4.2.3节、4.2.4节)本节将要展示单片机内心世界中的兔子种群是什么样的(4.2.5节)。
4.2.1兔类浅说164
4.2.2单片机中的兔类165
4.2.3兔类的结构166
4.2.4兔类的属性成员167
4.2.5兔类的实现169
4.3兔子的传奇170
【导读】我们可以像上帝一样设计一个种群,然后根据这个种群的特点创造一只只的兔子对象。本节将深刻探讨兔子对象有着什么样的传奇。
4.3.1问题9与分析170
4.3.2实现171
4.3.3回顾与思考173
4.4面向对象编程的书写规范174
【导读】如何让思想成为方法论,这也是本书的重要任务之一。本节打开从思想通向实践的时空隧道,指引读者一步步将面向对象思想落到实处。
4.4.1问题与分析174
4.4.2实现180
4.5方波对象184
【导读】单片机中几乎不会有兔子,但会有方波。本节从一个走进单片机内心世界的兔子模型开始讲解,逐渐引导读者进入单片机的内心世界去看一支方波。因为只有方波才是单片机内心世界的常见对象。
4.5.1问题10与分析184
4.5.2测试模型186
4.5.3综合分析一186
4.5.4增补的面向对象编程的头文件189
4.5.5综合分析二190
4.5.6实现198
4.5.7仿真207
4.5.8回顾与思考207
第5章对象的归宿209
5.0引言209
【导读】思想与方法论的改变对我们的产品和工作会带来哪些影响呢?本节简单地引出问题。
5.1解密对象魔法209
【导读】生命是一个对象的本质特征,掌握对象的生命特征是灵活运用对象思想的重要保证。
5.1.1对象的生命特征210
5.1.2对象生命特征的含义210
5.2项目管理211
【导读】对象思想的项目化是面向对象编程进入实践的基本途径,本节将探讨如何用一个KeilC的Project文档来组织一个对象思想的程序。
5.2.1项目的内容211
5.3项目的实现214
【导读】本节组织文档的内容。
5.3.1文档的落实214
5.3.2文档的分包222
5.4对象文档与项目分离224
【导读】为了增加代码的可再用性,我们得让常用代码与某一个具体的项目分离。对象就是这种典型的常用代码,我们得让它从物质基础上独立于整个项目。
5.4.1任务与分析224
5.4.2面向对象编程的层次关系225
5.5源码的商业保护226
【导读】商业保护是日常工作的一个重要事务,保护源码,发布二进制码是一个基本做法,而库制作则是实现二进制码发布的一个重要工具,本节具体介绍库的相关知识。
5.5.1库文件226
5.5.2库中的模块227
5.5.3制作库228
5.5.4使用对象库229
5.5.5库、模块与对象的关系230
5.5.6库的操作230
5.5.7创库计划232
5.6对象的花絮233
【导读】一个思想上的对象,属于上层建筑的内容,所以它依赖很多物质基础(5.6.2节、5.6.3节),任何一个离散的物质基础都会对它产生或多或少的影响,我们要掌握这些虚虚实实的内在关联(5.6.3节),并能抽象与总结这种客观的存在(5.6.1节、5.6.4节)。
5.6.1对象分析的观点233
5.6.2内存统筹的观点234
5.6.3虚拟与现实相通的观点234
5.6.4常见的对象238
第6章宝贝车的综合应用241
6.1宝贝车简介241
【导读】通过一个具体的宝贝车应用(6.1.1节)来将前面所述思想进行一个综合的实践。
6.1.1问题11241
6.2对象分析242
【导读】对象与对象之间既独立,又合作,本节通过宝贝车的对象分析来介绍对象关系的处理方法(6.2.1节),并构造一个宝贝车的对象资源库(6.2.2节)。
6.2.1组合对象与实现242
6.2.2宝贝车的库项目246
6.3实现对象248
【导读】本节完成宝贝车对象的各种行为特征的全部代码设计。
6.3.1车轮的定义248
6.3.2脉冲发生器249
6.3.3宝贝车的控制252
6.3.4宝贝车的创建253
6.3.5实现254
6.3.6修成正果259
6.4对象的使用259
【导读】本节将演示在一个具体的项目中如何很方便地使用一个共享的独立对象代码资源库中的对象——宝贝车。
参考文献261
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网