异星工厂吧 关注:63,685贴子:415,193

【电路展示】24小时制计时时钟

只看楼主收藏回复

【摘要】对游戏内的一天按24小时制计时并显示,使用极速传送带作为计时器,以太阳能停止发电作为计时参照,通过灯将时间进行显示。
【关键字】电路;计时;灯
【参考文献】
http://tieba.baidu.com/p/3493117450
http://www.bilibili.com/video/av4568618/
【本文一些要用到的数据】
24小时=86400秒,86400/2880=30
一天时间,极速传送带计时器结果为2815(-3~+3)
一天中(0~1),太阳能在0.45~0.55段完全不发电,相当于在22:48时停止发电


ezgif.com-crop.gif
大小:3.19MB下载:24次转存:5次
文件已失效
IP属地:上海1楼2017-01-11 13:27回复
    第一节,电路功能简述



    IP属地:上海3楼2017-01-11 14:00
    回复
      2026-01-22 04:16:41
      广告
      不感兴趣
      开通SVIP免广告
      停电检测单元:
      使用两个运算器对极速传送带进行计数,一个运算器接入总电网,另一个使用太阳能单独供电。将两个计数器的值进行比较,如果电网运算器的值大于太阳能运算器的值,说明太阳能停电,运算器没有工作,此时比较器发出信号“L,1”表示停电。再对计数器添加重置功能,并将比较器发出的持续信号转化为脉冲信号,实现功能。


      IP属地:上海4楼2017-01-11 14:11
      收起回复
        计数区:将极速传送带建设为循环运输,内侧放入一个物品,物品每移动半圈计数器+1,。上计数器记录一天移动多少个半圈,下计数器用于显示时间,记录半圈的数量+误差补偿值。在接收到停电信号时,两个计数器都会被重置。


        IP属地:上海5楼2017-01-11 14:21
        回复
          计时误差补偿:
          设有一个记数器,在接收到停电信号时,记录上计数器的值(信号:蓝带),用2880-该值(2880为理论一天应有半圈数量),得到应补偿多少蓝带数量(信号T),2880/T得到平均每过多少蓝带补偿一个蓝带(信号:S),当前计数器值/S,得到当前时间应补偿第几个蓝带(信号:R),最后添加状态转换,信号R每变动一次,输出一个脉冲信号给下计数器。在即将停电时,记数器会重置。


          IP属地:上海6楼2017-01-11 14:37
          回复
            数值转换区:
            2815向上取整为2880,86400/2880=30,可以知道,极速传送带每转半圈相当于30秒.将下计数器的值除以二就是当前的分钟数。由于计数器重置将显示00:00,但理论时间应该是22:48,对分钟数进行偏移使符合理论,最后将小时数计算出来,再将分钟数和小时数分解为个位和十位输出到显示部分。(为了方便可以选择每转一圈计一次数,只需要改几个常数即可)


            IP属地:上海7楼2017-01-11 15:47
            回复
              完全搞不懂,还是杀杀虫子去吧


              来自Android客户端9楼2017-01-11 17:38
              回复
                棒棒!!!


                IP属地:黑龙江10楼2017-01-11 18:08
                回复
                  2026-01-22 04:10:41
                  广告
                  不感兴趣
                  开通SVIP免广告
                  厉害👍


                  IP属地:日本来自Android客户端11楼2017-01-12 01:24
                  回复
                    牛人


                    IP属地:上海来自Android客户端12楼2017-01-12 13:24
                    回复
                      我是来水经验的


                      IP属地:四川来自Android客户端13楼2017-01-12 14:41
                      回复
                        这太牛了吧!来段实际视频看看?


                        IP属地:重庆来自Android客户端14楼2017-01-12 16:26
                        收起回复
                          厉害


                          IP属地:北京来自手机贴吧15楼2017-01-12 21:17
                          回复
                            第二节,核心功能实现详述
                            (1)计数器与计数器的重置

                            让运算器进行输入输入的循环就很简单的实现对脉冲信号的计数。重置的原理是两个相同类型的信号会在电路中相加,将计数器的信号乘以-1输入到计数器中,计数器的值就会相加成0,完成重置。用一个比较器控制何时重置,当接收到(L,1)信号时,比较器才允许负值通过,对计数器重置。
                            特别要注意的是,输入的重置信号必须是一个脉冲信号,且不能大于传送带发出的脉冲,电路的处理是有顺序的。
                            还有另一种实现方法,先将重置信号乘以-1,然后计数器的信号乘以这个值。原理是一样的,但不如我上面说那个适用性好。由于这个方法是我先想出来的,快造完了发现这个好一些的方法,所以电路中有一个重置没来得及换使用了这个。


                            IP属地:上海16楼2017-01-12 23:51
                            回复
                              2026-01-22 04:04:41
                              广告
                              不感兴趣
                              开通SVIP免广告
                              (2)持续转脉冲与变动转脉冲

                              断电检查功能区发出的断电信号(信号:L)是持续信号,而对计数器重置需要脉冲信号,这需要进行转化。转化的原理是电信号的时差。持续信号产生时“兵分两路”,一路率先到达运算器B,运算器B输出(L,1),紧接着另一路(L,1)经由运算器A变为(L,-1)迟来一点,然后两路信号抵消变为无。这就使运算器B发出的信号非常短暂,理论上为1tick。可想而知,当持续信号结束时,由于(L,-1)信号慢一步,它也会被输出,因此在前面加了一个比较器,只允许(L,1)信号通过。
                              显然这个方法也适合将信号的变动转换为脉冲信号,由于转换的脉冲信号正负交替,需要使用运算器将负转换为正。
                              实际上,运算器B和比较器不是必须的,可以根据情况去掉。


                              IP属地:上海17楼2017-01-13 00:38
                              收起回复