基于HD7279和51單片機的計算器
接到這個(gè)課程設計之前我自己懶懶散散地看了一段時(shí)間的C51(用C語(yǔ)言編寫(xiě)單片機代碼),之前老師教的是A51(用匯編編寫(xiě)單片機代碼),我玩了很久,但是發(fā)現A51真的很局限,匯編這種語(yǔ)言是寫(xiě)給機器看的,真正地寫(xiě)0和寫(xiě)1,真正是一個(gè)寄存器一個(gè)寄存器的調用,對于8位的51單片機來(lái)說(shuō),要實(shí)現1000×1000或者小數是比較困難的。老師推薦用C,之前只是看書(shū)實(shí)現過(guò)一些小東西這回要做比較大的項目了,雖然還有其他課題比如溫度計和數字鐘,不過(guò)都做過(guò),只是環(huán)境不一樣,修改一下代碼太沒(méi)有挑戰性了。
確實(shí)開(kāi)始輕敵了,真正做的時(shí)候發(fā)現不是那么簡(jiǎn)單,
高中的時(shí)候學(xué)過(guò)一點(diǎn)VB做過(guò)計算器,如果讓我現在做,也許給我幾天我可以做出來(lái),用C我也沒(méi)什么問(wèn)題,但是C51就有難度了,要考慮太多硬件的東西,特別是顯示這個(gè)模塊好不容易瘦下去的頭又兩個(gè)大了。等我真正意識到的時(shí)候,已經(jīng)過(guò)去幾個(gè)禮拜了,呵呵,要和朋友說(shuō)抱歉了,雖然我答應“等我做完計算器之后再幫你改下程序”但是沒(méi)一個(gè)實(shí)現。
當然,此程序因為基本全是自己寫(xiě)的,被方晉甬老師稱(chēng)之為“程序設計不成熟、比較亂”的,額,本來(lái)準備用switch語(yǔ)句,但是呂昂老師說(shuō)switch語(yǔ)句會(huì )產(chǎn)生過(guò)多閑置寄存器(可是他沒(méi)有考慮到我僅僅是實(shí)現很少的功能),這段程序只實(shí)現+-×÷,符號閃爍,過(guò)八位報錯等功能但是沒(méi)有小數,只能計算一步(加少數程序即可計算多部)。其實(shí)程序挺早就寫(xiě)出來(lái)了,只是一直出不來(lái)效果,后來(lái)在仿真和VC++編譯環(huán)境下修改了很多,理論上是可以實(shí)現了,可是還是沒(méi)有顯示,于是抓狂了“看來(lái)我已處在瓶頸...”,晃了最后一個(gè)禮拜,周日周一看了兩天晚上,依然沒(méi)有看出什么來(lái),禮拜二去方晉甬老師辦公室請教,查了近3個(gè)鐘頭【基本看過(guò)了我所有奇形怪狀的子程序—?!獆|||】,在仿真多遍之后發(fā)現就少了一句“while(!key)【檢測釋放按鍵】”【程序中紅字部分即主程序最后一句】囧啊~~~~以至于周四答辯的時(shí)候我演示之后,剛點(diǎn)看ppt他就說(shuō)直接給A,不用答了。。。。
程序的完整版下載地址:http://www.51hei.com/ziliao/file/jsjq.rar
評論