光立方,动手搭——原理简述
學習更多相關知識,關注博主知乎賬號,用戶名Trustintruth? ?https://www.zhihu.com/people/suo-yi-xin-90/activities
在光立方的制作中,我們一般選擇一些單片機作為控制中心,而在本次的制作過程中,我們使用了STC89c5A60S2來實現。
驅動方式利用人眼視覺暫留特性,利用逐層掃描的方式,來達到顯示各種圖案的目的。常見的coms鎖存器(cmos發熱低,優先選擇)有74hc573和74hc595,前者為并入,后者串入。因為不需要光立方的級聯設計,所以采用573鎖存器。
?
在主控的選擇上,不選89C52等芯片,不是因為他們的運算速度不夠,主要原因是它們的片上flash太小,難以滿足需求,其次是因為自己有閑置的STC89C5A60S2,片上內存大,運算速度1T,即充分利用資源節省成本,又可以實現所需要的功能需求。
顯示電路的連接如下:
?
在程序的設計中
1首先對主控單片機的初始化部分,主要是設置對應的中斷,定時工作方式。
2 顯示部分
?在對現實的設計過程中,我們把把立方體看作8位數碼管,每個面即為一個數碼管
?每個面的顯示原理是和8X8點陣是完全一樣的,保證這段程序正確的,可以直接調用
?查表的方式是自0起遞增的,每次加1,每個畫面查表64次。當然,實際的情況是要小于65536的,控制程序的代碼也會占用rom空間,就會導致了畫面次數減少,所以,要想在有限的空間內顯示更多的畫面,就得盡量把程序寫的簡短。c語言可以直接定義16位變量。
3中斷部分,為了達到動畫效果切換時間可準確調節性,畫面的切換用中斷方式。把時間通過一個變量來表示,這樣每次只需修改一個變量,就可以設置動畫的速度了。每次發送中斷后,查表的變量就加64(i=i+64),然后返回顯示程序繼續顯示,中斷程序只做變量的計算,改變的是查表的地址。
4循環
?程序循環,循環的條件是i變量不滿足動畫顯示的上限值。比如做八個畫面,那么i的的值不滿足8X64時,就繼續顯示,滿足就清零從新開始。
?顯示循環
主題的顯示程序,應該是一個死循環,一直在顯示一個畫面,只有中斷產生的時候,改變了查表的變量,才切換一次動畫,每個畫面都顯示后,注意修正變量,能使其顯示同一個畫面,不管是查表的變量還是Z軸,Y軸的控制變量,都要進行初始化,直到中斷的產生才改變查表的變量數值。
.
?
?
?
總結
以上是生活随笔為你收集整理的光立方,动手搭——原理简述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络/命令行抓包工具tcpdump详解
- 下一篇: 工作148:父子组件传值 获取时间戳