《匠人手记》网络版《从零开始玩转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多个小时救护伤员,却没精力去过问她自己孩子的安危时,匠人没有感动;
当一个校长忙着在废墟扒拉他的学生,他听到自家老丈人遇难的噩耗只能无奈地按下悲伤时,匠人没有感动;
也许,匠人的神经已经被地震的次声波震伤了吧……
直到那一刻……
在那堵摇摇欲坠的危墙下,当那位消防战士跪下,对拖着他的人说:“你们让我再去救一个,求求你们让我再去救一个!我还能再救一个!”
那一刻,匠人感觉到,神经恢复了。
一股莫大的悲哀,漫上了心头!
欲哭无泪!
如果说两天前的震撼感受是来自身体,那么,这次就是心灵的震撼!
而这篇帖子,是否能够承载这生命之重!?
把希望留给明天吧,就此搁笔。
|
标签:it |
《匠人手记》终稿目录
手 记 目 录(简略)
第一部 入门基础
手记1 单片机入门知识与基本概念
手记2 单片机的汇编指令系统
手记3 编程思路漫谈
手记4 程序设计阶段漫谈
手记5 MC68HC908应用札记
手记6 天梯——MSP430学习札记
手记7 EMC单片机指令应用的误区与技巧
手记8 EMC单片机的伪指令与宏的应用
第二部 经验技巧
手记9 十种软件滤波方法
手记10 一阶滤波算法之深入研究
手记11 分段线性插值算法之深入研究
手记12 移位法在乘除运算及数制转换中的妙用
手记13 按键漫谈
手记14 单键多击的检测程序
手记15 串口七日之创世纪篇
手记16 用普通IO口实现单线单工通讯
手记17 用普通IO口检测模拟值
手记18 功率调节与过零检测
第三部 设计案例
手记19 梦幻时钟摇摇棒大揭秘
手记20 汽车组合仪表开发手记
手记21 空调遥控器开发手记
手记22 手机锂电池充电器设计白皮书
第四部 网络杂文
手记23 《大话篇》系列
手记24 《匠人夜话》系列
手记25 匠人的论坛文集
手记26 匠人的博客文集
手记27 21icbbs人物志
手记28 《网络心路》之匠人版(连载)
手 记 目
录(详细)
第一部 入门基础
手记1 单片机入门知识与基本概念
一、 前言
二、 单片机系统简介
三、 存储器
四、 I/O口
五、 堆栈
六、 定时/计数器
七、 中断
八、 复位
九、 看门狗
十、 时钟电路和振荡源
十一、 脉宽调制(PWM)
十二、 模拟/数字转换(ADC)
十三、 串行通讯
十四、 后记
手记2 单片机的汇编指令系统
一、 前言
二、 汇编语言的前世今生
三、 汇编指令的有关概念
四、 汇编指令的寻址方式
五、 汇编指令的分类
六、 指令分解图的介绍与应用
七、 后记
手记3 编程思路漫谈
一、 前言
二、 程序的基本结构
三、 模块化的程序结构
四、 模块的事件驱动机制
五、 顺序调度机制与优先调度机制
六、 中断与前/后台的程序结构
七、 时间片与分时调度机制
八、 多进程并行运行机制
九、 多工序程序结构
十、 基于状态机思路的程序调度机制
十一、 更复杂的状态结构
十二、 后记
手记4 程序设计阶段漫谈
一、 前言
二、 方案制定阶段
三、 程序设计阶段
四、 代码编写阶段
五、 程序调试阶段
六、 程序维护阶段
手记5 MC68HC908应用札记
一、 前言
二、 C语言中嵌入汇编的7种方式
三、 C语言中数制的表示方式
四、 循环体的3种写法
五、 关于复位及中断的入口地址
六、 对被调函数的说明(声明)
七、 对中文的支持
八、 中断定义有两种方法
九、 数据类型
十、 定义寄存器方法
十一、 位的定义与使用
十二、 数据结构
十三、 工程文件系统介绍
十四、 IO口使用注意事项
十五、 关于强制类型转换
十六、 中断的使用方法
十七、 定时器中断频率的计算
十八、 如何产生LST文件
十九、 工程文件的组织方法
二十、 mon08的仿真模式的断点
二十一、 关于MON08调试的频率
二十二、 关于运算中需要注意的问题
二十三、 PLL功能的启动方式
二十四、 后记
手记6 天梯——MSP430学习札记
一、 缘起
二、 关于EZ430-F2013仿真器
三、 MSP430结构与特点
四、 快速开始——玩转EZ430-F2013的七个步骤
五、 EZ430-F2013仿真器的解剖及改装
六、 EZ430-F2013调试备忘
七、 后记
手记7 EMC单片机指令应用的误区与技巧
一、 前言
二、 减法指令的误区
三、 查表(散转)指令的误区
四、 关于“MOV R,R”指令
手记8 EMC单片机的伪指令与宏的应用
一、 前言
二、 伪指令与宏的优点
三、 位操作类宏
四、 条件分支结构类宏
五、 中断压栈与出栈类宏
六、 散转结构与表格的防溢保护方法
七、 跨页调用与跳转类宏
八、 显示段码表的的预定义方法
九、 后记
第二部 经验技巧
手记9 十种软件滤波方法
一、 前言
二、 限幅滤波法
三、 中位值滤波法
四、 算术平均滤波法
五、 递推平均滤波法
六、 中位值平均滤波法
七、 递推中位值平均滤波法
八、 限幅平均滤波法
九、 一阶滞后滤波法
十、 加权递推平均滤波法
十一、 消抖滤波法
十二、 后记
手记10 一阶滤波算法之深入研究
一、 前言
二、 原理与公式
三、 源程序
四、 滤波效果分析
五、 不足与优化
六、 实例应用
手记11 分段线性插值算法之深入研究
一、 前言
二、 分段线性插值法的原理
三、 分段线性插值法的公式
四、 分段线性插值法的应用步骤
五、 分段线性插值法的程序
手记12 移位法在乘除运算及数制转换中的妙用
一、 前言
二、 巧用移位法进行多字节乘除法计算
三、 巧用移位法进行数制转换
四、 后记
手记13 按键漫谈
一、 前言
二、 按键时序分析
三、 常见击键类型分析
四、 常见击键类型的判别方法
五、 多种击键类型的处理流程
六、 后记
手记14 单键多击的检测程序
一、 前言
二、 设计思路
三、 流程图
四、 源程序
手记15 串口七日之创世纪篇
一、 前言
二、 第一日
三、 第二日
四、 第三日
五、 第四日
六、 第五日
七、 第六日
八、 第七日
手记16 用普通IO口实现单线单工通讯
一、 前言
二、 单线单工通讯协议
三、 关于波特率自适应的处理
四、 从机通讯接收程序的流程图及说明
五、 后记
手记17 用普通IO口检测模拟值
一、 前言
二、 电阻类模拟信号的检测(温度的检测)
三、 电压类模拟信号的检测
四、 电容类模拟信号的检测(电容式触摸键的检测)
五、 后记
手记18 功率调节与过零检测
一、 前言
二、 移相触发
三、 过零触发
四、 过零信号检测
第三部 设计案例
手记19 梦幻时钟摇摇棒大揭秘
一、 前言
二、 硬件电路的制作
三、 字库的制作
四、 按键功能说明
五、 源程序
手记20 汽车组合仪表开发手记
一、 前言
二、 项目概述
三、 仪表电机原理与控制
四、 程序概述
五、 计程处理
六、 车速处理
七、 转速处理
八、 档位处理
九、 模拟信号的AD转化处理
十、 按键处理
十一、 LCD显示处理
十二、 故障报警与指示
十三、 点火器开关控制与低功耗处理
十四、 其它程序模块
十五、 后记
手记21 空调遥控器开发手记
一、 前言
二、 项目概述
三、 按键处理
四、 跳线检测
五、 红外发码控制
六、 LCD显示处理
七、 附:空调遥控器原理图
手记22 手机锂电池充电器设计白皮书
一、 前言
二、 锂(Li-Ion)电池特性
三、 充电器的软件控制流程
四、 充电器的硬件电路
五、 后记
第四部 网络杂文
手记23 《大话篇》系列
一、 前言
二、 大话篇之一
三、 大话篇之二
四、 大话篇之三
五、 大话篇之四
六、 大话篇之五
七、 大话篇之六
八、 大话篇之七
九、 大话篇之八
十、 大话篇之九
十一、 大话篇之十