新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于HD7279和51單片機(jī)的計(jì)算器

基于HD7279和51單片機(jī)的計(jì)算器

作者: 時(shí)間:2012-09-15 來(lái)源:網(wǎng)絡(luò) 收藏
是一款用于擴(kuò)展單片機(jī)I/O口的芯片,至少我是這么認(rèn)為的,雖然它占用了單片機(jī)4個(gè)I/O但是真正作為傳輸?shù)膬H僅是一根總線,它可以同時(shí)驅(qū)動(dòng)8位共陰數(shù)碼管(或者8×8點(diǎn)陣),及8×8的矩陣鍵盤,而同時(shí)接在單片機(jī)上的話,至少需要3~4組I/O,當(dāng)然單總線控制的芯片基本需要自己的指令和時(shí)序。

接到這個(gè)課程設(shè)計(jì)之前我自己懶懶散散地看了一段時(shí)間的C51(用C語(yǔ)言編寫單片機(jī)代碼),之前老師教的是A51(用匯編編寫單片機(jī)代碼),我玩了很久,但是發(fā)現(xiàn)A51真的很局限,匯編這種語(yǔ)言是寫給機(jī)器看的,真正地寫0和寫1,真正是一個(gè)寄存器一個(gè)寄存器的調(diào)用,對(duì)于8位的來(lái)說(shuō),要實(shí)現(xiàn)1000×1000或者小數(shù)是比較困難的。老師推薦用C,之前只是看書實(shí)現(xiàn)過一些小東西這回要做比較大的項(xiàng)目了,雖然還有其他課題比如溫度計(jì)和數(shù)字鐘,不過都做過,只是環(huán)境不一樣,修改一下代碼太沒有挑戰(zhàn)性了。

確實(shí)開始輕敵了,真正做的時(shí)候發(fā)現(xiàn)不是那么簡(jiǎn)單,

高中的時(shí)候?qū)W過一點(diǎn)VB做過,如果讓我現(xiàn)在做,也許給我?guī)滋煳铱梢宰龀鰜?lái),用C我也沒什么問題,但是C51就有難度了,要考慮太多硬件的東西,特別是顯示這個(gè)模塊好不容易瘦下去的頭又兩個(gè)大了。等我真正意識(shí)到的時(shí)候,已經(jīng)過去幾個(gè)禮拜了,呵呵,要和朋友說(shuō)抱歉了,雖然我答應(yīng)“等我做完之后再幫你改下程序”但是沒一個(gè)實(shí)現(xiàn)。

當(dāng)然,此程序因?yàn)榛救亲约簩懙?,被方晉甬老師稱之為“程序設(shè)計(jì)不成熟、比較亂”的,額,本來(lái)準(zhǔn)備用switch語(yǔ)句,但是呂昂老師說(shuō)switch語(yǔ)句會(huì)產(chǎn)生過多閑置寄存器(可是他沒有考慮到我僅僅是實(shí)現(xiàn)很少的功能),這段程序只實(shí)現(xiàn)+-×÷,符號(hào)閃爍,過八位報(bào)錯(cuò)等功能但是沒有小數(shù),只能計(jì)算一步(加少數(shù)程序即可計(jì)算多部)。其實(shí)程序挺早就寫出來(lái)了,只是一直出不來(lái)效果,后來(lái)在仿真和VC++編譯環(huán)境下修改了很多,理論上是可以實(shí)現(xiàn)了,可是還是沒有顯示,于是抓狂了“看來(lái)我已處在瓶頸...”,晃了最后一個(gè)禮拜,周日周一看了兩天晚上,依然沒有看出什么來(lái),禮拜二去方晉甬老師辦公室請(qǐng)教,查了近3個(gè)鐘頭【基本看過了我所有奇形怪狀的子程序—?!獆|||】,在仿真多遍之后發(fā)現(xiàn)就少了一句“while(!key)【檢測(cè)釋放按鍵】”【程序中紅字部分即主程序最后一句】囧啊~~~~以至于周四答辯的時(shí)候我演示之后,剛點(diǎn)看ppt他就說(shuō)直接給A,不用答了。。。。
程序的完整版下載地址:http://www.51hei.com/ziliao/file/jsjq.rar


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉