无聊,买了一块ENC28J60网络模块来搞,本来以为可以用89C52的,想把手头这枚闲置品给利用一下,可悲剧的是移植uIP后要占用10KB的ROM
,无奈只好用STC12C5A60S2。
本来想做个网络转TTL的,昨晚搞定,发现目前这个没什么用,家里的电器也不需要远程控制,突然灵机一动,想到网络自动校时……于是,就诞生了这个……
刚刚做出来的哟,,,时间要加上8,才是北京时间。
网上查的一段C语言获取网络时间的代码,时间同步服务器的IP地址是192.43.244.18,端口13,是从美国NIST(美国国家标准与技术研究院)获取的时间。原来的代码里面是用socket连的,我直接用TCP测试工具连接发现一连上马上有一串字符传过来,然后连接马上断开,字符串类似于:56230 12-10-30 12:23:12 06 0 0 94.4 UTC(NIST) * 。所以只要在单片机里面利用uIP去连接这个地址,获取字符串,然后把里面的时间取出来就可以了。
当然单片机本身也要有计时功能,然后每隔一段时间去连接一下校准一次就行了。
这个时钟不需要按钮,不需要后备电池,只要有电源有网络,时间就能对得上。
欢迎用M砸