匠人的百宝箱 订阅
博文

《匠人手记》网络版《从零开始玩转PIC 之旋转时钟》

点击进入或下载PDF文件: 《匠人手记》网络版《从零开始玩转PIC 之旋转时钟》

或者:http://www.hwcpu.com/down/cxjr_clock.pdf

内容介绍:一共有100来页,内含旋转时钟的源程序、原理图和设计思路。

后记:

终于阶段性地完成了这篇手记。

作为一个业余练手的学习项目,这个旋转时钟的开发过程无疑是太长了。当然,既然是业余做了玩,优先级自然被排在了最低,经常被别的优先级更高的事件打断。这也就是这个项目差点变成烂尾楼工程的原因。如果做正式项目也是这个蜗牛效率的话,估计匠人就要被老板炒鱿鱼了。

在本项目进行过程中,匠人也曾经在网络上发布了一些设计思路和图片。每次都是零打碎敲不成体统,引得网友们如饥似渴。而匠人一直承诺的设计文档共享,却迟至今日才被兑现。在此只能说一声抱歉了。

这篇手记其实还不够完整,关于基板和遥控器部分的程序,匠人没有给出,因为那些相对比较简单。匠人觉得那是可以忽略的细微末节。

另外,上位机程序,也只是做了一些简单的规划,还没有付诸动作,所以也无法提供。匠人希望有时间能把这部分工作完成。

DIY是一项锻炼动手和动脑能力的有益的活动,匠人希望看到有志趣相投的网友加入这个DIY的过程中来。一起探讨相互的经验和教训。

这篇手记,也是匠人继已经出版发行的《匠人手记:一个单片机工作者的实践与思考》之后,首篇新的《匠人手记》网络版。希望得到各位网友和书友一如继往的支持。如果您对本手记有任何建议和意见,或者发现了BUG,请发邮件到 zj_artisan#hotmail.com  (请用@ 代替 #)。

 

 

 

心灵的震撼——写在512地震之后(匠人原创)

一、

匠人终于决定写点什么了。在已经过去2天零8个小时的此刻。

人总是健忘的,在未来的某个时刻,我们是否还会记得这几天的感受呢?

也许当一切都过去后,我们会淡忘,全心全意地投入新的生活中去。

但是历史总会留下痕迹。就让这篇帖子来记载吧。

 

二、

震动,来得那么突然。那是在2008年5月12下午的某一瞬间。突如其来的晕眩袭击了匠人。当时,匠人的第一反应,居然是以为莫非是前一天晚上睡得太晚了,导致精神恍惚。

但紧接着,发现不对劲了。匠人感觉到整个大楼在摇晃。这是在21楼。

当“地震”这两个词跳入匠人的脑海时,大楼的警报铃声响起了;整个公司人员全部反应过来。

一阵短暂的惊慌失措之后,不知谁喊了一句:“快下楼,走楼梯。”于是同事们纷纷奔楼梯而去。

匠人最终选择了留下,和少数几个同事。留下,倒不是因为勇敢,只是凭直觉判断,21楼这么高,要跑肯定来不及,还不如坐观其变。实在不行找个桌子钻下去得了。

当晃动结束后,透过窗户看出去,也没有看到任何房屋倒塌的迹象。估计也就没事了。

 

三、

然后,给家人打电话问平安。

然后,上网了解真相。

Q群里已经是炸开了锅。

出乎匠人意料的是,Q里面的天南地北的网友居然都说感受到了地震。

太恐怖了!

窗外,响起了救护车和救火车的警笛声。

很快,真实信息传来,原来是四川汶川发生7.6级地震(后来又修正到7.8级),波及全国大部。

从四川到匠人所在的上海,一千多公里,地震波传导速度为8公里/秒。按这个速度衡量,当上海感受到震动时,其实灾难已经发生好几分钟了。但没想到的是,地震波还是跑赢了电磁波。

几十秒的摇晃,让匠人和同事们不适了好几个小时。头晕目眩、有呕吐感。大概类似于晕船的感觉。

再上网看信息。

在灾害没有展现它狰狞的面目前,网友们似乎还挺轻松,大家甚至互相还在打趣。

似乎还没有意识到在那个偏僻的山谷里,已经经历了一轮生死!

没事啦,该干嘛干嘛去吧。

 

四、

再次被震撼,是在初步的伤亡和受灾人数传来时。

突然发现中国人确实挺多的。在那个从来没有听说过的地方,居然也住着那么多人!

9000多条鲜活的生命,他们就这样变成了冰冷的统计数据。而且,谁都知道,这只是开始……

神经就这样被麻木了。

生命有时就是那么渺小,每一个人的逝去,仅仅是让那张死亡名单做一次增量运算。

那就等待,等待命运最终的判决吧。

 

五、

当温总理紧赶慢赶地赶到现场,拿着话筒对废墟里的学生喊话时,匠人没有感动;

当各路明星开始纷纷解囊捐款时,匠人没有感动;

当一个护士工作10多个小时救护伤员,却没精力去过问她自己孩子的安危时,匠人没有感动;

当一个校长忙着在废墟扒拉他的学生,他听到自家老丈人遇难的噩耗只能无奈地按下悲伤时,匠人没有感动;

也许,匠人的神经已经被地震的次声波震伤了吧……

直到那一刻……

在那堵摇摇欲坠的危墙下,当那位消防战士跪下,对拖着他的人说:“你们让我再去救一个,求求你们让我再去救一个!我还能再救一个!”

那一刻,匠人感觉到,神经恢复了。

一股莫大的悲哀,漫上了心头!

欲哭无泪!

如果说两天前的震撼感受是来自身体,那么,这次就是心灵的震撼!

而这篇帖子,是否能够承载这生命之重!?

把希望留给明天吧,就此搁笔。

 

《匠人手记》新书艳照 (2008-04-15 21:22)
 

《匠人手记》新书艳照

《匠人手记》终稿目录 (2008-02-29 19:25)
 

《匠人手记》终稿目录

手 记 目 录(简略)

第一部 入门基础 1
手记1 单片机入门知识与基本概念 2
手记2 单片机的汇编指令系统 21
手记3 编程思路漫谈 39
手记4 程序设计阶段漫谈 54
手记5 MC68HC908应用札记 58
手记6 天梯——MSP430学习札记 71
手记7 EMC单片机指令应用的误区与技巧 83
手记8 EMC单片机的伪指令与宏的应用 86
第二部 经验技巧 97
手记9 十种软件滤波方法 98
手记10 一阶滤波算法之深入研究 112
手记11 分段线性插值算法之深入研究 128
手记12 移位法在乘除运算及数制转换中的妙用 133
手记13 按键漫谈 146
手记14 单键多击的检测程序 157
手记15 串口七日之创世纪篇 162
手记16 用普通IO口实现单线单工通讯 174
手记17 用普通IO口检测模拟值 178
手记18 功率调节与过零检测 193
第三部 设计案例 197
手记19 梦幻时钟摇摇棒大揭秘 198
手记20 汽车组合仪表开发手记 216
手记21 空调遥控器开发手记 260
手记22 手机锂电池充电器设计白皮书 278
第四部 网络杂文 286
手记23 《大话篇》系列 287
手记24 《匠人夜话》系列 296
手记25 匠人的论坛文集 307
手记26 匠人的博客文集 319
手记27 21icbbs人物志 327
手记28 《网络心路》之匠人版(连载) 335
 
手 记 目 录(详细)
第一部 入门基础 1
手记1 单片机入门知识与基本概念 2
一、 前言 2
二、 单片机系统简介 2
三、 存储器 3
四、 I/O口 4
五、 堆栈 5
六、 定时/计数器 7
七、 中断 8
八、 复位 9
九、 看门狗 13
十、 时钟电路和振荡源 15
十一、 脉宽调制(PWM) 16
十二、 模拟/数字转换(ADC) 17
十三、 串行通讯 20
十四、 后记 20
手记2 单片机的汇编指令系统 21
一、 前言 21
二、 汇编语言的前世今生 21
三、 汇编指令的有关概念 22
四、 汇编指令的寻址方式 23
五、 汇编指令的分类 24
六、 指令分解图的介绍与应用 27
七、 后记 28
手记3 编程思路漫谈 39
一、 前言 39
二、 程序的基本结构 39
三、 模块化的程序结构 40
四、 模块的事件驱动机制 41
五、 顺序调度机制与优先调度机制 42
六、 中断与前/后台的程序结构 43
七、 时间片与分时调度机制 44
八、 多进程并行运行机制 45
九、 多工序程序结构 47
十、 基于状态机思路的程序调度机制 48
十一、 更复杂的状态结构 51
十二、 后记 53
手记4 程序设计阶段漫谈 54
一、 前言 54
二、 方案制定阶段 54
三、 程序设计阶段 54
四、 代码编写阶段 55
五、 程序调试阶段 56
六、 程序维护阶段 56
手记5 MC68HC908应用札记 58
一、 前言 58
二、 C语言中嵌入汇编的7种方式 58
三、 C语言中数制的表示方式 59
四、 循环体的3种写法 59
五、 关于复位及中断的入口地址 59
六、 对被调函数的说明(声明) 60
七、 对中文的支持 60
八、 中断定义有两种方法 60
九、 数据类型 61
十、 定义寄存器方法 61
十一、 位的定义与使用 61
十二、 数据结构 64
十三、 工程文件系统介绍 64
十四、 IO口使用注意事项 64
十五、 关于强制类型转换 64
十六、 中断的使用方法 65
十七、 定时器中断频率的计算 66
十八、 如何产生LST文件 66
十九、 工程文件的组织方法 68
二十、 mon08的仿真模式的断点 69
二十一、 关于MON08调试的频率 69
二十二、 关于运算中需要注意的问题 69
二十三、 PLL功能的启动方式 69
二十四、 后记 70
手记6 天梯——MSP430学习札记 71
一、 缘起 71
二、 关于EZ430-F2013仿真器 71
三、 MSP430结构与特点 73
四、 快速开始——玩转EZ430-F2013的七个步骤 73
五、 EZ430-F2013仿真器的解剖及改装 77
六、 EZ430-F2013调试备忘 79
七、 后记 82
手记7 EMC单片机指令应用的误区与技巧 83
一、 前言 83
二、 减法指令的误区 83
三、 查表(散转)指令的误区 83
四、 关于“MOV R,R”指令 84
手记8 EMC单片机的伪指令与宏的应用 86
一、 前言 86
二、 伪指令与宏的优点 86
三、 位操作类宏 86
四、 条件分支结构类宏 87
五、 中断压栈与出栈类宏 91
六、 散转结构与表格的防溢保护方法 92
七、 跨页调用与跳转类宏 92
八、 显示段码表的的预定义方法 94
九、 后记 96
第二部 经验技巧 97
手记9 十种软件滤波方法 98
一、 前言 98
二、 限幅滤波法 98
三、 中位值滤波法 100
四、 算术平均滤波法 101
五、 递推平均滤波法 102
六、 中位值平均滤波法 103
七、 递推中位值平均滤波法 105
八、 限幅平均滤波法 106
九、 一阶滞后滤波法 107
十、 加权递推平均滤波法 108
十一、 消抖滤波法 109
十二、 后记 110
手记10 一阶滤波算法之深入研究 112
一、 前言 112
二、 原理与公式 112
三、 源程序 113
四、 滤波效果分析 114
五、 不足与优化 115
六、 实例应用 119
手记11 分段线性插值算法之深入研究 128
一、 前言 128
二、 分段线性插值法的原理 128
三、 分段线性插值法的公式 129
四、 分段线性插值法的应用步骤 129
五、 分段线性插值法的程序 131
手记12 移位法在乘除运算及数制转换中的妙用 133
一、 前言 133
二、 巧用移位法进行多字节乘除法计算 133
三、 巧用移位法进行数制转换 139
四、 后记 145
手记13 按键漫谈 146
一、 前言 146
二、 按键时序分析 146
三、 常见击键类型分析 147
四、 常见击键类型的判别方法 148
五、 多种击键类型的处理流程 151
六、 后记 153
手记14 单键多击的检测程序 157
一、 前言 157
二、 设计思路 157
三、 流程图 158
四、 源程序 160
手记15 串口七日之创世纪篇 162
一、 前言 162
二、 第一日 162
三、 第二日 164
四、 第三日 166
五、 第四日 168
六、 第五日 169
七、 第六日 170
八、 第七日 173
手记16 用普通IO口实现单线单工通讯 174
一、 前言 174
二、 单线单工通讯协议 174
三、 关于波特率自适应的处理 175
四、 从机通讯接收程序的流程图及说明 175
五、 后记 177
手记17 用普通IO口检测模拟值 178
一、 前言 178
二、 电阻类模拟信号的检测(温度的检测) 178
三、 电压类模拟信号的检测 185
四、 电容类模拟信号的检测(电容式触摸键的检测) 188
五、 后记 192
手记18 功率调节与过零检测 193
一、 前言 193
二、 移相触发 193
三、 过零触发 194
四、 过零信号检测 195
第三部 设计案例 197
手记19 梦幻时钟摇摇棒大揭秘 198
一、 前言 198
二、 硬件电路的制作 198
三、 字库的制作 200
四、 按键功能说明 202
五、 源程序 203
手记20 汽车组合仪表开发手记 216
一、 前言 216
二、 项目概述 216
三、 仪表电机原理与控制 217
四、 程序概述 221
五、 计程处理 228
六、 车速处理 232
七、 转速处理 236
八、 档位处理 237
九、 模拟信号的AD转化处理 238
十、 按键处理 239
十一、 LCD显示处理 242
十二、 故障报警与指示 252
十三、 点火器开关控制与低功耗处理 258
十四、 其它程序模块 259
十五、 后记 259
手记21 空调遥控器开发手记 260
一、 前言 260
二、 项目概述 260
三、 按键处理 263
四、 跳线检测 268
五、 红外发码控制 268
六、 LCD显示处理 276
七、 附:空调遥控器原理图 276
手记22 手机锂电池充电器设计白皮书 278
一、 前言 278
二、 锂(Li-Ion)电池特性 278
三、 充电器的软件控制流程 280
四、 充电器的硬件电路 283
五、 后记 285
第四部 网络杂文 286
手记23 《大话篇》系列 287
一、 前言 287
二、 大话篇之一 287
三、 大话篇之二 288
四、 大话篇之三 288
五、 大话篇之四 289
六、 大话篇之五 290
七、 大话篇之六 291
八、 大话篇之七 291
九、 大话篇之八 292
十、 大话篇之九 292
十一、 大话篇之十 293
十二、 大话篇之十一 293
十三、 大话篇之十二——《六一特别节目》 293
手记24 《匠人夜话》系列 296
一、 吃软?还是吃硬? 296
二、 你为谁打工? 296
三、 当机会来临时,你准备好了吗? 297
四、 鸡头?还是凤尾? 297
五、 领先同伴比超越自己更重要! 298
六、 不怕菜鸟,就怕懒虫! 298
七、 机会在于把握 299
八、 35岁危机,逃无可逃! 299
九、 别拿名词来唬人! 300
十、 新手三忌! 300
十一、 我们是Byte的奴隶? 301
十二、 如何提高工程部团队战斗力 302
十三、 枪手的新行规! 303
十四、 新技术催生的“廉价”时代! 304
十五、 有心栽花,无意插柳 304
十六、 如何评估开发费 305
十七、 被人惦记的感觉真好 306
手记25 匠人的论坛文集 307
一、 程序人生 307
二、 魔鬼定律 310
三、 高手的阐释…… 311
四、 四种懒人——关于C与ASM之争 312
五、 “一日不见如隔三秋”详解 312
六、 旧电脑的用途64招 313
七、 公道在人心 317
八、 七年之痒——写在升任21icbbs站长之际 318
手记26 匠人的博客文集 319
一、 匠人语录 319
二、 俺只是一个网络上的放羊娃! 320
三、 岁月如歌——记《匠人的百宝箱》开通一周年 321
四、 网络化生存——匠人版 323
五、 《流星花园》之匠人版 324
六、 《匠人的百宝箱》博客名趣事 325
七、 大话篇新传——匠人是如何变成21ICBLOG系统管理员的 325
手记27 21icbbs人物志 327
一、 前言 327
二、 hotpower 篇 327
三、 雁舞白沙 篇 328
四、 柔月 篇 328
五、 highway 篇 329
六、 CCCP 篇 329
七、 王奉瑾 篇 329
八、 电子小虫 篇 330
九、 刀客 篇 330
十、 万寿路 篇 331
十一、 碧水长天 篇 331
十二、 忘情天书 篇 332
十三、 张明峰 篇 332
十四、 平凡 篇 333
十五、 zenyin 篇 333
十六、 附记: 匠人自传 篇 334
手记28 《网络心路》之匠人版(连载) 335
一、 缘起 335
二、 接触 335
三、 包装 336
四、 练级 337
五、 升级 338
六、 放火 338
七、 交友 339
八、 博起 339
九、 自娱 340
十、 网赚 341
十一、 出走 341
十二、 未来 342

图 片 目 录
图 1.1:单片机系统方块图 2
图 1.2:单片机内部功能扩展示意图 3
图 1.3:汉诺塔示意图 5
图 1.4:压栈示意图 6
图 1.5:出栈示意图 6
图 1.6:中断嵌套处理示意图 8
图 1.7:MCS-51芯片复位信号 10
图 1.8:MCS常见复位电路(高电平有效) 11
图 1.9:简易复位电路(低电平有效) 11
图 1.10:防电源抖动复位电路(低电平有效) 11
图 1.11:残余电压保护复位电路(低电平有效) 12
图 1.12:施密特特性复位电路(低电平有效) 12
图 1.13:掉电预警复位电路(低电平有效) 13
图 1.14:看门狗示意图 13
图 1.15:基于CD4060芯片的看门狗电路 14
图 1.16:MAX813L方框图 15
图 1.17:晶振电路 16
图 2.1:MCS-51系统MOV指令图解 25
图 2.2:MCS-51系统加减法指令图解 25
图 2.3:MCS-51系统双操作数逻辑运算指令图解 26
图 2.4:MCS-51系统数值比较转移指令图解 27
图 2.5:MCS-51系统位操作指令图解 27
图 2.6:PIC低级单片机指令分解图 29
图 2.7:PIC中级单片机指令分解图 30
图 2.8:PIC高级单片机指令分解图 31
图 2.9:EMC 8BIT单片机指令分解图 32
图 2.10:HOLTEK 8BIT单片机指令分解图 33
图 2.11:SONIX 8BIT单片机指令分解图 34
图 2.12:SIGMA 8BIT单片机指令分解图 35
图 2.13:JAZTEK 8BIT单片机指令分解图 36
图 2.14:MCS-51系列单片机 指令分解图 37
图 2.15:MC68HC08系列单片机 指令分解图 38
图 3.1:基本程序结构 39
图 3.2:模块化程序结构 40
图 3.3:功能模块的程序结构 41
图 3.4:顺序调度机制 42
图 3.5:优先调度机制 43
图 3.6:前/后台程序结构 43
图 3.7:主程序中采取分时调度结构 44
图 3.8:子程序中采取分时调度结构 45
图 3.9:进程的分阶段运行结构 46
图 3.10:多进程并行运行示意图 46
图 3.11:单个工序的状态程序结构图 47
图 3.12:工序迁移图 48
图 3.13:一键多义按键执行程序结构图 49
图 3.14:状态迁移图 50
图 3.15:线性状态结构 51
图 3.16:树状多级状态结构 52
图 3.17:多维状态结构 52
图 5.1: 字体和制表符设置 60
图 5.2:P&E ICD设置菜单 67
图 5.3:P&E ICD设置窗口 67
图 5.4:Output设置 68
图 6.1:EZ430-F2013仿真器示意图 72
图 6.2:IAR开发环境截图 72
图 6.3:新建项目向导 74
图 6.4:选择芯片型号 75
图 6.5:选择调试设备 75
图 6.6:选择设备连接类型 76
图 6.7:编译/除错按钮 76
图 6.8:运行/停止按钮 77
图 6.9:EZ430-F2013仿真器原理图 78
图 6.10:EZ430-F2013仿真器改装示意图 78
图 6.11:选项菜单 79
图 6.12:编辑选项 80
图 6.13:设置自动对齐规则 80
图 6.14:如何设置自动生成LST文件 81
图 8.1:条件分支结构类宏的速记方法 88
图 9.1:限幅滤波效果图 99
图 9.2:递推平均滤波效果图 102
图 9.3:递推中位值平均滤波效果图 105
图 10.1:一阶滤波流程图 114
图 10.2:一阶滤波效果图A 114
图 10.3:一阶滤波效果图B 115
图 10.4:一阶滤波效果图C 115
图 10.5:一阶滤波效果图D 117
图 10.6:调整一阶滤波系数流程图 118
图 10.7:0KG时的采样数据示意图 119
图 10.8:15KG重量加载瞬间的采样数据示意图 120
图 10.9:计价秤的结构图 120
图 10.10:弹簧的阻尼振荡效果图 120
图 10.11:15KG加载时采样16次递推中位值平均滤波效果图 121
图 10.12:0KG时采样16次递推中位值平均滤波效果图 121
图 10.13:15KG加载时一阶滤波效果图 122
图 10.14:15KG加载时采样8次递推中位值平均滤波效果图 123
图 10.15:15KG加载时8次递推平均滤波+一阶滤波效果图 123
图 10.16:15KG加载时一阶滤波与16次递推平均滤波效果对比图 124
图 10.17:0KG时一阶滤波与16次递推平均滤波效果对比图 124
图 10.18:15KG加载时限幅滤波效果图 125
图 10.19:15KG加载时限幅滤波+一阶滤波效果图 126
图 10.20:15KG加载时一阶滤波与16次递推平均滤波效果对比图 126
图 10.21:0KG时一阶滤波与16次递推平均滤波效果对比图 127
图 11.1:分段线性插值法在温度检测中的应用 128
图 11.2:分段线性插值法示意图 129
图 11.3:分段线性插值法流程图 130
图 12.1:位移指令操作示意图 133
图 12.2:十进制的乘法竖式计算方法 134
图 12.3:二进制的乘法竖式计算方法 135
图 12.4:多字节二进制乘法计算流程图 135
图 12.5:十进制的除法竖式计算方法 137
图 12.6:二进制的除法竖式计算方法 137
图 12.7:多字节二进制除法计算流程图 138
图 12.8:十进制整数转二进制方法 141
图 12.9:十进制小数转二进制方法 141
图 12.10:二进制转十进制压缩BCD码流程图 143
图 12.11:十进制压缩BCD码转二进制流程图 145
图 13.1:按键时序图 146
图 13.2:短击/长击的区别示意图 148
图 13.3:单击/连击的识别示意图 149
图 13.4:单击/双击的区别示意图 150
图 13.5:复合键(同击)的识别示意图 150
图 13.6:按键释放(无击)的识别示意图 151
图 13.7:简单的按键检测处理流程图 153
图 13.8:可识别单击/连击、无击等击键类型的按键检测处理流程图 154
图 13.9:可识别单击/连击、短击/长击、无击等击键类型的按键检测处理流程图 155
图 13.10:可识别多种击键类型的按键检测处理流程图 156
图 14.1:单键多击检测流程图 159
图 15.1:MAX232引脚示意图 165
图 15.2:RS232-TTL转接电路图 165
图 15.3:自制RS232-TTL转接板 166
图 15.4:COMDEBUG软件界面 170
图 15.5:汽车仪表串行通讯平台软件界面 172
图 16.1:硬件连接图 174
图 16.2:通讯波形图 174
图 16.3:改进后的通讯波形图 175
图 16.4:通讯流程图 176
图 17.1:电容充电曲线 178
图 17.2:温度检测电路图 179
图 17.3:放电回路 180
图 17.4:参考电阻充电回路 181
图 17.5:温度电阻充电回路 181
图 17.6:电容充放电波形 182
图 17.7:阻值-比率-温度分度图 182
图 17.8:温度检测程序 184
图 17.9:电容充电计时子程序 185
图 17.10:用比较器实现ADC功能的电路 185
图 17.11:PWM占空值调节流程图 186
图 17.12:软件积分测电压流程图 187
图 17.13:利用单片机内置比较器实现ADC功能的电路 187
图 17.14:利用单片机内置比较器实现ADC功能的改进电路 188
图 17.15:利用单片机IO口取代比较器实现ADC功能的电路 188
图 17.16:电容式触摸键示意图 189
图 17.17:电容式触摸键的检测电路 189
图 17.18:充/放电方式检测波形 190
图 17.19:电容式触摸键的检测流程 191
图 17.20:一款4键电容式触摸键DEMO板实际操作效果图 192
图 18.1:移相触发控制波形图 193
图 18.2:过零触发控制波形图 194
图 18.3:过零检测电路A 195
图 18.4:过零检测电路B 195
图 18.5:过零检测电路C 196
图 19.1:摇摇棒原理图 198
图 19.2:摇摇棒整体外形 199
图 19.3:摇摇棒静止状态 199
图 19.4:摇摇棒挥动时的显示效果 199
图 19.5:惯性开关示意图 199
图 19.6:惯性开关实物解析图 200
图 19.7:Excel字码表 200
图 19.8:条件格式的设置 201
图 19.9:部分字符效果 201
图 19.10:摇摇棒按键功能图 202
图 20.1:汽车组合仪表系统框图 216
图 20.2:电机的结构示意图 218
图 20.3:电机的驱动波形图 218
图 20.4:分步驱动模式脉冲序列 219
图 20.5:脉冲细分 219
图 20.6:微步驱动模式脉冲序列 220
图 20.7:电机驱动电路 222
图 20.8:主程序流程图 224
图 20.9:1毫秒定时处理程序流程图 224
图 20.10:10毫秒定时处理程序流程图 225
图 20.11:100毫秒定时处理程序流程图 225
图 20.12:500毫秒定时处理程序流程图 225
图 20.13:车速脉冲信号调制电路 229
图 20.14:总计值处理程序流程图 229
图 20.15:从E2PROM中读总计值程序流程图 230
图 20.16:向E2PROM中写总计值程序流程图 231
图 20.17:车速指示线性插值法图 233
图 20.18:车速计算程序流程图 234
图 20.19:车速电机速度(指针微步移动时间)控制程序流程图 235
图 20.20:车速电机移动一微步程序流程图 236
图 20.21:转速脉冲信号调制电路 236
图 20.22:LCD显示示意图 242
图 20.23:不同档位的显示段码示意图 243
图 20.24:LCD驱动波形图 243
图 20.25:显示初始化流程图 245
图 20.26:显示流程图 246
图 20.27:待机处理程序流程图 258
图 21.1:空调遥控器实物图 260
图 21.2:空调遥控器系统框图 261
图 21.3:空调遥控器程序框图 261
图 21.4:空调遥控器CPU工作模式迁移示意图 262
图 21.5:空调遥控器按键检测原理图 263
图 21.6:空调遥控器按键处理流程图 263
图 21.7:空调遥控器跳线电路 268
图 21.8:空调遥控器码制有关参数 269
图 21.9:一串完整的码波形 269
图 21.10:起始码波形 269
图 21.11:逻辑“1”波形 270
图 21.12:逻辑“0”波形 270
图 21.13:IR功能定时器资源分配示意图 270
图 21.14:空调遥控器红外发码电路 272
图 21.15:空调遥控器红外发码流程图 272
图 21.16:空调遥控器显示处理流程图 276
图 21.17:空调遥控器原理图 277
图 22.1:锂电池充电曲线图 279
图 22.2:锂电池充电工序(状态)迁移图 280
图 22.3:锂电池充电器原理图(充电控制部分) 284
图 28.1:程序匠人的早期签名 337
图 28.2:《匠人的百宝箱》LOGO 337

表 格 目 录
表 3.1:状态迁移表 51
表 5.1:CW3.1支持的数据类型 61
表 6.1:MSP430的工作模式 82
表 12.1:四则运算模块寄存器定义 134
表 12.2:数制转换模块寄存器定义 142
表 12.3:IO口状态分析 145
表 13.1:击键类型说明表 147
表 13.2:按键检测程序寄存器定义 152
表 13.3:按键检测程序标志位定义 152
表 13.4:按键检测程序常量参数定义 152
表 14.1:击键次数与最多能识别的击键组合方式对照表 158
表 14.2:键值表 158
表 15.1:汽车仪表串行通讯协议 164
表 17.1:充电计时器分配表 184
表 19.1:摇摇棒状态迁移表 203
表 20.1:电机的电气特性 221
表 20.2:项目文件功能介绍 223
表 20.3:中断资源分配表 228
表 20.4:车速与电机指针目标步数对应表 233
表 20.5:电机的单步移动时间与电机转速范围 234
表 20.6:档位信号占空表 237
表 20.7:ADC通道分配表 238
表 20.8:按键功能真值表 239
表 20.9:LCD参数表 243
表 20.10:显示真值表 244
表 20.11:声光报警功能一览表 252
表 21.1:空调操作模式表 264
表 21.2:时间设置模式表 264
表 21.3:定时模式表 264
表 21.4:风速模式表 265
表 21.5:纵摆模式表 265
表 21.6:横摆模式表 265
表 21.7:空调遥控器按键真值表 267
表 21.8:空调遥控器跳线意义表 268
表 21.9:IR功能定时器资源分配表 270
表 21.10:遥控码数据真值表 271
表 22.1:预充状态下PWM占空调节规则 281
表 22.2:快充状态下PWM占空调节规则 281
表 22.3:快充状态下充满判断规则 281
表 22.4:快充状态下充电结束判断规则 282
表 22.5:故障类型及判断规则 282
表 22.6:指示灯状态 283
表 22.7:温度检测口的电压判定规则 285

 

历时一年多的《匠人手记》已经进入编辑校对的倒计时,预计在4月份面市,出版商为北航出版社。
应部分网友要求,现在进行签名版的预定登记。希望通过匠人购买签名版的朋友,请填写以下资料,统一发邮件至:zj_artisan#163.com (请将'#'改为'@')。

------------------------预定登记信息------------------------
姓名:
网名:
预定数量(本):
收件地址:
邮编:
电话:
E-MAIL:
QQ:
MSN:
------------------------------------------------------------------------

说明:
1、匠人不提供购书发票。如果是需要发票报销的,请直接到书店或相关购书网站上去购买。(到时候,匠人会在博客中通知大家购书渠道)。
2、购书价格=单价*数量+邮费。目前还没有确定单价,待书正式上市后,匠人会通过邮件通知各位登记人,告知具体价格和汇款帐号。

 全部日志
网络酷文 (2007-03-21 13:13)
网络酷文
新的阵地 (2007-01-10 12:47)
《匠人的百宝箱》是21icBLOG中人气最旺的单片机与嵌入式系统技术搏客,现在来此开辟新的阵地。欢迎新老朋友光顾。
新浪BLOG意见反馈留言板 不良信息反馈 电话:95105670 提示音后按2键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有