8051 16X8點矩陣程式
請求各位程式高手
高三 因為有專題 但我有些困擾
我想做一個LED 16X8的點矩陣
功能就是 例如: 按下一個開關 然後點矩陣出現L U C K 由左往右移
但找了許多資料 卻還是一頭霧水.....
我手上的是2個8X8共陽級 雙色的點矩陣
想說有人能可以提供類似程式參考
或著能幫助我一下嗎??
3 則回答
最佳解答
前位前輩的程式作法是設計一個顯示陣列叫dispBuf 利用8051 time 中斷時每次將dispBuf的一個內容顯示於led上 如此一來程式設計者只要改變dispBuf的內容便可以使顯示led改變其內容,這種做法會使得程式更容易撰寫(是一個好方法)
關於移動顯示部分我有另外的想法:再利用 8051 的 第二個 time 中斷控制移位,做法是 :當tume 1中斷時 設立一旗標 , 這個旗標在主程式執行移位時清除
另外移位方式用函式來撰寫..(如要增加其他的移位方式那就在增加各種移位函式會較方便)
另外每一些動作均撰寫一段小程式(函式)
在主程式中需要執行何種功能就呼叫何種函式(雖會執行效率較差但修改較容易)
記得我看過的書是這樣寫:設計一個雙重回圈內圈館顯示,外圈管移動,
在硬體規劃上:
前位前輩規畫2個port來驅動led掃描,建議你可利用 1個PORT加上解碼電路(74138)空出的Port用來驅動led的另一顏色
之前把程式碼公開莫名的被警告違規.....
如有疑問再相互研究
2015-03-06 04:50:13 補充:
看了你的電路圖..不知你是參考何本書籍..
.有些錯誤1.p1是掃描用330的提升電阻是不對,p1不需要提升電阻因為8051p1已有提升電阻了....就你的電路而言是要串一電阻約1k-4.7k 到pnp電晶體b級(圖畫的是NPN也不對) ,
2.p2可以不用加提升電阻因為8051p2已有提升電阻,.
3.2803 com 未接 不會動作.....還好不會動作以至led沒有燒壞.... 看是要在2803的輸出端串一電阻可用100到或是改用74ls244 (或是buff 系列的ic).
硬體完成後..模擬8051來測試硬體.. 字太多了 聯絡方式 ae0931727149...y
2015-03-06 05:10:17 補充:
圖有錯....... 圖完成後能請老師看一下再製作電路板 ...前輩回答的答案是程式的架構,是很好的提示..小細節需要加以修改, .
關於如何控制點陣led的方式8051 的書應該很多有呀!
製作完成硬體後要模擬8051送出狀態來測試點陣led,至少行,列多要測試過...
.
2015-03-06 18:20:50 補充:
更正: 1: P1:可以接NPN電晶體 2. 2803 的com是不用接,,,,
補充:或是2803可以用(其他電路取代)我玩過單色的是用˙74ls244 ,,,如有要使得雙色顯示需用latch 的TTL起代,
請問你的硬體模擬測試過嗎?如果測試過那就是我多慮了....... 如未測試過要測試用5vˇ的電壓串一電阻約100歐姆比較保險.....
...當電晶體與2803導通同’時導通會不會led所承受的電壓接近vcc呢?故需要限流電阻...
完全照著8051書裡的電路做出了一個矩陣要讓她先顯示出一個簡單的圖形。
高中生 上 CPLD?
8051 程式 vs. EPM 3000A CPLD.....有點牛頭對馬嘴,