制作驱动注意问题
发布时间:2013/11/23 21:35:21 访问次数:711
这样,调用不同的子程序,FM08A125V3A就可以把坐标系切换到不同的单片机输出端口上去,而以往的设计是需要比较复杂的算法或者上位机弥补的。
当然,对立体几何很有心得的人可以不借助程序,仅利用大脑的想象就可以在固定坐标系里设计动画,不过,这种人是极少数的。或许,通过这一点,立方体在不久的将来可以应用到几何教学中去,锻炼人的立体感。
虽然这次程序我没有设计出坐标轴的切换程序,但就原理来说,只要明白立方体的控制方案,这2点并不难实现。如果对动画效果要求不高,可以跳过这部分。
1驱动芯片:我用的驱动芯片是LS系列245,因为我实在是比较懒,没有在所有的输出上加上拉电阻。因为LS系列刚好就和单片机的TTL电平兼容,即便是PO端口,不加上拉电阻一样可以直接准确输出。可HC系列的就不行了,19脚和8根输入脚都必须加上拉电阻,否则硬件调试的结果是不对的,这个也是我亲自测试的结果。
但不是完全因为这个就不选HC系列的,HC的IC扇出系数相比LS系列大了很多,也就是说,HC的负载能力要好,而且功耗低,从两种IC的发热上来说,我是深有体会的,HC系列的做驱动时,芯片发热不明显,但LS的就明显发热,虽然发热温度也是符合范围的,但感觉还是不舒服的,所以在设计骨牌时钟时,我就用了HC系列的。那时候用的都是大功率二极管,换成HC的IC后,发热明显降低。
希望读者根据自己的实际情况选用C,不管选用哪种,都要做好相应的处理。
2.限流电阻:我在原理图上都画了限流电阻,这部分加不加要看你选用什么材质的发光二极管。经过测试,我这次用
的就不需要加限流电阻,但并不保证别人选用的也能承受住IC的输出电流,而导致发光二极管亮度过亮。大家买来的发光二
极管一定要做好电流测试,看你的发光二极管工作在哪个电流范围最稳定,再决定是否使用限流电阻和限流电阻的阻值。
本人能力有限,不能再给出e语言程序。不过,根据我对c语言的理解,给大家提出一点c语言编程的建议。
1.初始化部分。主要是设置对应的中断、定时工作方式,与汇编语言是完全一样的。
2.显示部分。
(1)把立方体看作8位数码管,每个面即为一位数码管。
(2)每个面的显示原理是和8x8点阵是完全一样的,保证这段程序正确的,可以直接调用。
(3)奎表的方式是自0起递增的,每次加1,每个画面查表64次,查表的上线为65536/64。当然,实际的情况是要小于65536的,控制程序的代码也会占用ROM空间,就会导致画面次数减少。所以,要想在有限的空间内显示更多的画面,就得尽量把程序写得简短。当然了,有的朋友会选用更大容最的单片机,查表的上限自然会增加。
注意:C语言可以直接定义1 6位变量,汇编语言在这方面是比较麻烦的,但好处是我可以调试程序来直接计算我的程序可以写到多少上限。C语言的方法我就不知道了,但肯定是可以通过调试计算出来的。
3中断部分。为了达到动画效果的切换时间可准确调节,画面的切换用中断方式。建议大家像我这样,把时间切换通过一个变量来表达,这样每次只需修改一个变量,就可以设置动画的速度了。每次发送中断后,查表的变量就加64 (i=i+64),然后返回显示程序继续显示,中断程序只做变量的计算,改变的是查表的地址。
4.循环部分。
(1)程序循环。循环的条件是i变量不满足动画显示的上限值。比如你做了8个画面,那么i的值不满足8×64时,就继续显示,满足,就清零重新开始。
(2)显示循环。
这个比较重要,主题的显示程序,应该是一个死循坏,一直在显示一个画面;只有中断产生时,进入到中断程序,改变查表的变量,返回现实程序,才切换一次动画。8个画面都显示后,注意修正变量,使其在中断不发生时,能在一个画面停留。不管是查表的变量还是Z轴、渤的控制变量,都要进行初始化,因为显示程序与中断程序是完全独立的。
当然,对立体几何很有心得的人可以不借助程序,仅利用大脑的想象就可以在固定坐标系里设计动画,不过,这种人是极少数的。或许,通过这一点,立方体在不久的将来可以应用到几何教学中去,锻炼人的立体感。
虽然这次程序我没有设计出坐标轴的切换程序,但就原理来说,只要明白立方体的控制方案,这2点并不难实现。如果对动画效果要求不高,可以跳过这部分。
1驱动芯片:我用的驱动芯片是LS系列245,因为我实在是比较懒,没有在所有的输出上加上拉电阻。因为LS系列刚好就和单片机的TTL电平兼容,即便是PO端口,不加上拉电阻一样可以直接准确输出。可HC系列的就不行了,19脚和8根输入脚都必须加上拉电阻,否则硬件调试的结果是不对的,这个也是我亲自测试的结果。
但不是完全因为这个就不选HC系列的,HC的IC扇出系数相比LS系列大了很多,也就是说,HC的负载能力要好,而且功耗低,从两种IC的发热上来说,我是深有体会的,HC系列的做驱动时,芯片发热不明显,但LS的就明显发热,虽然发热温度也是符合范围的,但感觉还是不舒服的,所以在设计骨牌时钟时,我就用了HC系列的。那时候用的都是大功率二极管,换成HC的IC后,发热明显降低。
希望读者根据自己的实际情况选用C,不管选用哪种,都要做好相应的处理。
2.限流电阻:我在原理图上都画了限流电阻,这部分加不加要看你选用什么材质的发光二极管。经过测试,我这次用
的就不需要加限流电阻,但并不保证别人选用的也能承受住IC的输出电流,而导致发光二极管亮度过亮。大家买来的发光二
极管一定要做好电流测试,看你的发光二极管工作在哪个电流范围最稳定,再决定是否使用限流电阻和限流电阻的阻值。
本人能力有限,不能再给出e语言程序。不过,根据我对c语言的理解,给大家提出一点c语言编程的建议。
1.初始化部分。主要是设置对应的中断、定时工作方式,与汇编语言是完全一样的。
2.显示部分。
(1)把立方体看作8位数码管,每个面即为一位数码管。
(2)每个面的显示原理是和8x8点阵是完全一样的,保证这段程序正确的,可以直接调用。
(3)奎表的方式是自0起递增的,每次加1,每个画面查表64次,查表的上线为65536/64。当然,实际的情况是要小于65536的,控制程序的代码也会占用ROM空间,就会导致画面次数减少。所以,要想在有限的空间内显示更多的画面,就得尽量把程序写得简短。当然了,有的朋友会选用更大容最的单片机,查表的上限自然会增加。
注意:C语言可以直接定义1 6位变量,汇编语言在这方面是比较麻烦的,但好处是我可以调试程序来直接计算我的程序可以写到多少上限。C语言的方法我就不知道了,但肯定是可以通过调试计算出来的。
3中断部分。为了达到动画效果的切换时间可准确调节,画面的切换用中断方式。建议大家像我这样,把时间切换通过一个变量来表达,这样每次只需修改一个变量,就可以设置动画的速度了。每次发送中断后,查表的变量就加64 (i=i+64),然后返回显示程序继续显示,中断程序只做变量的计算,改变的是查表的地址。
4.循环部分。
(1)程序循环。循环的条件是i变量不满足动画显示的上限值。比如你做了8个画面,那么i的值不满足8×64时,就继续显示,满足,就清零重新开始。
(2)显示循环。
这个比较重要,主题的显示程序,应该是一个死循坏,一直在显示一个画面;只有中断产生时,进入到中断程序,改变查表的变量,返回现实程序,才切换一次动画。8个画面都显示后,注意修正变量,使其在中断不发生时,能在一个画面停留。不管是查表的变量还是Z轴、渤的控制变量,都要进行初始化,因为显示程序与中断程序是完全独立的。
这样,调用不同的子程序,FM08A125V3A就可以把坐标系切换到不同的单片机输出端口上去,而以往的设计是需要比较复杂的算法或者上位机弥补的。
当然,对立体几何很有心得的人可以不借助程序,仅利用大脑的想象就可以在固定坐标系里设计动画,不过,这种人是极少数的。或许,通过这一点,立方体在不久的将来可以应用到几何教学中去,锻炼人的立体感。
虽然这次程序我没有设计出坐标轴的切换程序,但就原理来说,只要明白立方体的控制方案,这2点并不难实现。如果对动画效果要求不高,可以跳过这部分。
1驱动芯片:我用的驱动芯片是LS系列245,因为我实在是比较懒,没有在所有的输出上加上拉电阻。因为LS系列刚好就和单片机的TTL电平兼容,即便是PO端口,不加上拉电阻一样可以直接准确输出。可HC系列的就不行了,19脚和8根输入脚都必须加上拉电阻,否则硬件调试的结果是不对的,这个也是我亲自测试的结果。
但不是完全因为这个就不选HC系列的,HC的IC扇出系数相比LS系列大了很多,也就是说,HC的负载能力要好,而且功耗低,从两种IC的发热上来说,我是深有体会的,HC系列的做驱动时,芯片发热不明显,但LS的就明显发热,虽然发热温度也是符合范围的,但感觉还是不舒服的,所以在设计骨牌时钟时,我就用了HC系列的。那时候用的都是大功率二极管,换成HC的IC后,发热明显降低。
希望读者根据自己的实际情况选用C,不管选用哪种,都要做好相应的处理。
2.限流电阻:我在原理图上都画了限流电阻,这部分加不加要看你选用什么材质的发光二极管。经过测试,我这次用
的就不需要加限流电阻,但并不保证别人选用的也能承受住IC的输出电流,而导致发光二极管亮度过亮。大家买来的发光二
极管一定要做好电流测试,看你的发光二极管工作在哪个电流范围最稳定,再决定是否使用限流电阻和限流电阻的阻值。
本人能力有限,不能再给出e语言程序。不过,根据我对c语言的理解,给大家提出一点c语言编程的建议。
1.初始化部分。主要是设置对应的中断、定时工作方式,与汇编语言是完全一样的。
2.显示部分。
(1)把立方体看作8位数码管,每个面即为一位数码管。
(2)每个面的显示原理是和8x8点阵是完全一样的,保证这段程序正确的,可以直接调用。
(3)奎表的方式是自0起递增的,每次加1,每个画面查表64次,查表的上线为65536/64。当然,实际的情况是要小于65536的,控制程序的代码也会占用ROM空间,就会导致画面次数减少。所以,要想在有限的空间内显示更多的画面,就得尽量把程序写得简短。当然了,有的朋友会选用更大容最的单片机,查表的上限自然会增加。
注意:C语言可以直接定义1 6位变量,汇编语言在这方面是比较麻烦的,但好处是我可以调试程序来直接计算我的程序可以写到多少上限。C语言的方法我就不知道了,但肯定是可以通过调试计算出来的。
3中断部分。为了达到动画效果的切换时间可准确调节,画面的切换用中断方式。建议大家像我这样,把时间切换通过一个变量来表达,这样每次只需修改一个变量,就可以设置动画的速度了。每次发送中断后,查表的变量就加64 (i=i+64),然后返回显示程序继续显示,中断程序只做变量的计算,改变的是查表的地址。
4.循环部分。
(1)程序循环。循环的条件是i变量不满足动画显示的上限值。比如你做了8个画面,那么i的值不满足8×64时,就继续显示,满足,就清零重新开始。
(2)显示循环。
这个比较重要,主题的显示程序,应该是一个死循坏,一直在显示一个画面;只有中断产生时,进入到中断程序,改变查表的变量,返回现实程序,才切换一次动画。8个画面都显示后,注意修正变量,使其在中断不发生时,能在一个画面停留。不管是查表的变量还是Z轴、渤的控制变量,都要进行初始化,因为显示程序与中断程序是完全独立的。
当然,对立体几何很有心得的人可以不借助程序,仅利用大脑的想象就可以在固定坐标系里设计动画,不过,这种人是极少数的。或许,通过这一点,立方体在不久的将来可以应用到几何教学中去,锻炼人的立体感。
虽然这次程序我没有设计出坐标轴的切换程序,但就原理来说,只要明白立方体的控制方案,这2点并不难实现。如果对动画效果要求不高,可以跳过这部分。
1驱动芯片:我用的驱动芯片是LS系列245,因为我实在是比较懒,没有在所有的输出上加上拉电阻。因为LS系列刚好就和单片机的TTL电平兼容,即便是PO端口,不加上拉电阻一样可以直接准确输出。可HC系列的就不行了,19脚和8根输入脚都必须加上拉电阻,否则硬件调试的结果是不对的,这个也是我亲自测试的结果。
但不是完全因为这个就不选HC系列的,HC的IC扇出系数相比LS系列大了很多,也就是说,HC的负载能力要好,而且功耗低,从两种IC的发热上来说,我是深有体会的,HC系列的做驱动时,芯片发热不明显,但LS的就明显发热,虽然发热温度也是符合范围的,但感觉还是不舒服的,所以在设计骨牌时钟时,我就用了HC系列的。那时候用的都是大功率二极管,换成HC的IC后,发热明显降低。
希望读者根据自己的实际情况选用C,不管选用哪种,都要做好相应的处理。
2.限流电阻:我在原理图上都画了限流电阻,这部分加不加要看你选用什么材质的发光二极管。经过测试,我这次用
的就不需要加限流电阻,但并不保证别人选用的也能承受住IC的输出电流,而导致发光二极管亮度过亮。大家买来的发光二
极管一定要做好电流测试,看你的发光二极管工作在哪个电流范围最稳定,再决定是否使用限流电阻和限流电阻的阻值。
本人能力有限,不能再给出e语言程序。不过,根据我对c语言的理解,给大家提出一点c语言编程的建议。
1.初始化部分。主要是设置对应的中断、定时工作方式,与汇编语言是完全一样的。
2.显示部分。
(1)把立方体看作8位数码管,每个面即为一位数码管。
(2)每个面的显示原理是和8x8点阵是完全一样的,保证这段程序正确的,可以直接调用。
(3)奎表的方式是自0起递增的,每次加1,每个画面查表64次,查表的上线为65536/64。当然,实际的情况是要小于65536的,控制程序的代码也会占用ROM空间,就会导致画面次数减少。所以,要想在有限的空间内显示更多的画面,就得尽量把程序写得简短。当然了,有的朋友会选用更大容最的单片机,查表的上限自然会增加。
注意:C语言可以直接定义1 6位变量,汇编语言在这方面是比较麻烦的,但好处是我可以调试程序来直接计算我的程序可以写到多少上限。C语言的方法我就不知道了,但肯定是可以通过调试计算出来的。
3中断部分。为了达到动画效果的切换时间可准确调节,画面的切换用中断方式。建议大家像我这样,把时间切换通过一个变量来表达,这样每次只需修改一个变量,就可以设置动画的速度了。每次发送中断后,查表的变量就加64 (i=i+64),然后返回显示程序继续显示,中断程序只做变量的计算,改变的是查表的地址。
4.循环部分。
(1)程序循环。循环的条件是i变量不满足动画显示的上限值。比如你做了8个画面,那么i的值不满足8×64时,就继续显示,满足,就清零重新开始。
(2)显示循环。
这个比较重要,主题的显示程序,应该是一个死循坏,一直在显示一个画面;只有中断产生时,进入到中断程序,改变查表的变量,返回现实程序,才切换一次动画。8个画面都显示后,注意修正变量,使其在中断不发生时,能在一个画面停留。不管是查表的变量还是Z轴、渤的控制变量,都要进行初始化,因为显示程序与中断程序是完全独立的。