首先我来列一些其他人的理论,我的思考建立在这基础上。

  • 人类诞生于500万年前
  • 人类文明开始于公元前四五千年前,到现在七千年
  • 宇宙141亿岁,宇宙大爆炸
  • 文明有寿命

我觉得有外星人,但是和我们同时代并且能相互理解,又在可见范围内的,并没有。
人类文明到现在才七千年,而文明发展成指数增长,我们很可能要不了多少年就会发展到顶点。
然后开始下滑。整个历程,比如说有两万年。那么两万年在141亿年中,是微不足道的。
文明的生命进程,和宇宙年龄比起来,很短暂。
在宇宙开始早期诞生的一些个文明,还可能比较容易发现其他可理解文明。
而现在,很多宇宙空间已经超出了人类可观测距离。就算有和我们一样的文明形式在同一个时期,也不一定会在我们的观测范围内。
而在我们观测范围内,就算有一些新的同类文明诞生,也会是不在同一个时期,他们可能还在最早期,就是在人类500万年前到公元前五千年前这期间,或者更早。
也有可能他们已经到了末期,成为了我们不能观测的形式,比如有理论讲的人类走向虚拟化,还有的讲文明会从三维进化到四维,还有讲人类会变成灵魂单独存在,不论哪个,都不再是我们可以观测的范围。
我们现在找地外文明的范围其实非常的狭窄。
我们在找的是和人类文明类似的地外文明。这个范围就很小,而我们的手段也很落后,无法在全宇宙寻找,而且还只是使用光,射线什么的这些有限的几个方式。就算非常巧合有类人类文明在观测范围内,他们就会使用这几个手段通信吗?

综上所述,我的结论是
文明不唯一,但是被时间,空间,存在形式,分割开来。
碰巧存在一个文明能发现另一个可理解文明的机会是有的,但是他还没有发生在人类文明身上。
至于未来会不会观测到,在观测到之前他都是薛定谔的猫。

我发现我现在有个毛病,
文字的排版会影响我阅读的情绪.

很难看下去一大段文字,如果是大段文字,那必须要分割.
比如这样,一行不能排满,排满会不想看.
写几句话,就分一段.

这样才能阅读.这个毛病是什么时候,从哪里来的呢?
这让我很好奇,思索很久,却没有答案.

最近在用一些新程序替换老程序,

比如caddy替换Nginx,

发现golang的程序涌现出很多,而且设计的更懒人化.

学了i2c通讯。
感觉算是结束了初学阶段。
后边就是扩展了,拿到一个新的芯片,首先看下引脚定义,推荐接法,然后看看时序,就可以用了。
而拿到一个新的单片机呢,当然也是看看说明书。
经过常见外围设备的学习,已经基本理解了单片机开发到底是做什么的。
下一步准备学电路,有了电路才能自己组合原件实现想要的功能。要不就只能用现成的。

今天学习的DAC,AD使用。这两个是数字转模拟,模拟转数字的芯片。
这个呢,典型的就是录音,然后播放出来。
具体用法就是按照所选用的DA,AD芯片的说明书操作就好了。
注意时序要符合要求。模拟转数字位越高越精确。51的是0-5v变化,所以其他电压的得经过转换电路转换到这个范围内,再进行采样。还要有限流电阻,防止电流过大击穿AD。

今天学习的是键盘扫描。
首先我们要注意的是按键按下并不是很理想的数字波形,而是在按下和抬起的瞬间会有抖动。
首先是独立键盘,很简单,先给io口写个1,然后再进行读取。如果变成0了,说明按键按下了。
这时候可以让数码管显示一个数字。每按一次进行数字加1,加到9就清零。然后为了去掉抖动,在按下和抬起的处理位置进行延时。
很简单的一个例子,结合数码管的静态显示。
然后是矩阵键盘,教程接的是4x4的键盘,用P3的高四位和低四位进行交叉得到一个12按键的键盘。
然后通过快速的分别检测来确定按下了哪个键。方法是先给低4位分别清零,让P3读取的数值和0b11110000进行位与,这样可以过滤掉低四位的状态只看高四位的,如果与完还是0b11110000说明没有按下键。如果高四位哪个变0了,就说明低四位清零的口和高四位变0口的交叉点的按键被按下了。我们可以用switch来根据与后的值给一个变量赋值。让不同按键分别标识不同数字。然后用数码管显示出来。这里也要注意抖动的问题。另外还要注意循环退出问题。
有了这个呢,应该就可以做计算器了。

主要学习了复用数码管的静态点亮,中断。
复用数码管根据点亮不同的灯来显示数字,字母,可以先定义一个码表(数组)方便我们调取
然后根据位选点亮不同位置的数,段选点亮不同的数字。
扩展信息:动态点亮就是对几个数码管进行快速扫描,利用视觉暂留效应让人以为复用数码管的不同位显示的数字不同。
中断分为外部中断和内部定时器中断。
不同芯片的中断可用数量不同,中断可以嵌套,51单片机支持二级嵌套。
任何中断都需要打开中断总开关。
外部中断可以有压降触发或者低电平触发,低电平触发可以保持,压降就是一瞬间了。
内部有定时器计数器。这里算时间好麻烦,讲师说假定晶振是12MHz,那么50000就是50毫秒。如果想得到1秒,我们需要20个50毫秒。
定时器打开定时器中断开关,设置为不需要外部控制的模式,51里有两个定时器,可以选一个来用。然后赋初始值,当他数到65535就清零并且发送给cpu一个中断信号。如果想他数50000下,就给他初始值65535-50000,并且要分为高8位和低8位分别赋值。然后呢,想要每次都是50毫秒,在中断处理函数中也要赋值。
讲师说用定时器获得的1秒比用for获得的1秒要准。

先读了c++手册,然后正式开始学习51单片机。
然后发现我或许应该读c手册,而不是c++。嘛无所谓了,都差不多啦。
刚开始,我试图用我的ubuntu直接做51开发。
我也找到了一些前人留下的东西。比如as31 emu8051 dis51 cycfx2prog sdcc mcu8051ide emu8051-gtk gSTC-ISP
我可以用vi编写一个c文件。然后
sdcc file.c && makebin -p < file.ihx > file.bin
然后用emu8051-gtk file.bin调试
最后gSTC-ISP烧录。
或者用mcu8051ide编写c文件并进行调试。这里很好玩的地方是他可以虚拟硬件。比如led,让你在电脑上运行你的流水灯。
但是随着深入发现这些东西很难继续下去。我在网上看到的资料大部分都是在windows下做的,包括教程视频,文档资料。项目实例很多都是keil编写,拿到mcu8051ide下不知道为什么就是不能编译。而且mcu8051ide的比特率竟然不能设置为110952,它只有5位数(也可能是我不会用)。
不得已装了win7的虚机。然后跟着郭天祥老师的十天征服单片机视频教程进行学习。看视频教程感觉进度有些慢,不过呢,这里边老师可能会无意间扩充一些内容,比单独看资料了解到的要多一些。
刚看到第二讲,感觉或许我还应该扩展一些电路方面的知识,在不是用实验板自己做板子的时候需要计算电流电压以保障电子原件不会烧掉。如果用usb供电还要有滤波让电流更稳定。
昨天晚上扩展阅读了焊接注意事项,压电陶瓷,矿石收音机,无线充电的知识。
在别人已经在做3d打印机的时候,我才刚刚开始学习,感觉要走的路还很长。刚开始学习一点点,第一步,点亮一个发光二极管。感觉单片机很容易。真的很容易,先写一个几乎是固定格式的函数体,然后定义变量,再给变量赋值为0.对应引脚连接的灯就亮了。然后开始做一个循环让他闪烁,再然后学习根据晶振频率调出1秒延迟。这些都不算难,就像建房子很简单,最基础就是一些砖头堆叠在一起,并且用水泥粘住。但是如果现在说让做一个3d打印机控制板,就会感觉无从下手,就像建房子一下让原来在堆砖头的人去建摩天大楼。虽然有很长的路要走。但是只要走下去,总有达到的那一天。
现在学单片机的目的就是想做一套智能家居方案。我应该算是很懒的人,但是这种懒,并不是什么都不做,而是喜欢一劳永逸,并且不愿意做重复不变的工作。我经常用电脑做一些事情的时候就会写一个脚本让他自动处理。写脚本花掉的时间可能比做好几次这种事情还要多。这种习惯在我用到生活用品的时候就会很难办,很多事情我们要每天去做,难道不能自动吗?这促使我寻找解决方案。但是找了好久也没有很完美的方案,大部分时候只能找到部分解决的东西。现在国内市面上所谓的智能家居,都是通过一种东西(比如手机)去控制家里的电器这样的。而我想要的是自动化,讲真,那些东西我懒得去控制他们。举个栗子,手机控制空调,我用手机控制空调和用遥控器控制空调,真的区别不大,我更希望的是空调自己控制自己,别没事一直吹,(不知道是只有我见到的空调是这样还是都是这样,制冷的时候一直吹不知道停,特傻)该制冷制冷,该除湿除湿,该制热制热,自动维护室内的温湿度在一个人体舒适的范围内。还有那个窗帘,每天窗帘自己开关就好了嘛,干嘛非要我控制。还有煤气开关,用的时候自动打开,不用了自动关上。等等等等,这些促使我去学单片机,以期找到一个解决方案。

有些浑浑噩噩。有时候会问自己,你这一生都这么过吗?然后又继续日复一日。身为一个程序猿,我的职业生涯没多少年了。coding不动的时候我要做什么?

我这边拨号随机得到120开头的公网ip和10开头的私网ip。
如果得到了10开头的ip。ftp就用不了。服务器托管在黑龙江联通那边。

原来还拨几次就能得到120的ip。前些天突然掉线后,就一直都是10ip了。所以我打10050报了故障。
然后工程师打电话问了下情况,要走了ip说他们看下。

结果过了两天告诉我解决不了。我就插了。你们的网你们解决不了,准备让谁来解决呢?!
这点问题都解决不了。真是服了

后来打10086反应问题,人家客服说我给你上报下。我说上报了谁来解决,人家说不知道。要解决问题要找谁?人家说不知道。