前两天上课,是什么软件实习来着,微机控制,就是电路仿真呗。我记得那个东东需要编辑一个C语言文件,然后用那个软件生成一个.hex的文件,将此文件导入到电路仿真软件就可以实现C语言对硬件电路的控制了。比如控制流水灯啥的。
有这样一个想法,将生成的C语言导入到那个80C51就可以实现对芯片的控制,这个芯片进而在整个电路中起到作用,这样可以通编写不同的C语言代码,就能利用芯片实现特定的功能。在电脑上模拟电路仿真不是很难,就是把C语言生成的.hex文件导入芯片单元即可。然后就想,这个C语言也是一种高级语言,它可以与其他语言进行通信,比如JAVA ,PHP等,联想到微信公众平台开发中广泛使用PHP,将XML和JSON数据作为PHP和C语言之间数据交互的工具,这样微信开发的PHP语言和C之间就有了交互,从而实现使用微信公众平台控制硬件的功能。
在电脑上仿真只需要将文件导入芯片即可,如果将那个电路制作出来,在芯片中下载C语言代码,这样一个简单的能实现流水灯的小东东就OK了。可是如何实现手机微信控制这个流水灯的呢?就像上文说的,可以用PHP与实体电路中的C代码通信,进而手机控制这个电路。这就需要手机和实体电路之间建立连接才行,怎么才能建立连接呢?蓝牙乎?如果是用蓝牙的话,这需要解决的问题有点多,首先在这个实体电路中需要安装一个蓝牙模块,然后手机和电路建立了蓝牙连接,可是PHP不能运行在手机上啊,还需要经过一个服务器解析才行。因为用户向微信公众账号发消息,这个消息是腾讯先收到,进而将消息转发到开发者URL的。
应该是这样,举例微信控制电灯开关吧。当你向公众号发送熄灯字符串,微信服务器接收消息,将消息转发给开发者URL,开发者获得熄灯消息文本,PHP代码处理这个消息,作出响应返回给微信,这是一个XML数据包,用户手机收到响应,在聊天界面显示已关灯消息,假设用户的手机已经开启了蓝牙,微信通过蓝牙将从开发者服务器接收到的熄灯指令广播出去,因为之前用户手机已经和智能电灯建立连接,智能电灯接收到广播包,广播包可以是XML或者JSON等数据格式,存储在80C51里的C语言侦听到消息,解析广播包,IF ELSE语句嘛,然后运行代码控制芯片以达到关灯的目的。这个智能电灯得有个MAC地址才行。
我觉得EDA老师说的模块化很有道理,干啥子都模块化,模块与模块之间留有接口就行了,有点高内聚,低耦合的意思。