畢設(shè)03版匯編_第1頁(yè)
畢設(shè)03版匯編_第2頁(yè)
畢設(shè)03版匯編_第3頁(yè)
畢設(shè)03版匯編_第4頁(yè)
畢設(shè)03版匯編_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、李洋 08071026李陽(yáng)08071081郭珩08071086 本設(shè)計(jì)是基于EICE51單片機(jī)設(shè)計(jì)的帶括號(hào)的單精度的浮點(diǎn)數(shù)計(jì)算器 。 本設(shè)計(jì)的難點(diǎn)為實(shí)現(xiàn)鍵盤(pán)掃描接口、液晶顯示和數(shù)據(jù)處理。利用單片機(jī)設(shè)計(jì)計(jì)算器是一個(gè)有工程意義的題目,和PC機(jī)上設(shè)計(jì)計(jì)算器有很大的區(qū)別,除了數(shù)學(xué)函數(shù),其他基礎(chǔ)函數(shù)都得自己編寫(xiě)。做函數(shù)計(jì)算器,一定用到浮點(diǎn)運(yùn)算,所以要清楚浮點(diǎn)數(shù)的存儲(chǔ)格式、十進(jìn)制數(shù)和浮點(diǎn)數(shù)相互轉(zhuǎn)換的算法及能用程序?qū)崿F(xiàn);硬件系統(tǒng)的設(shè)計(jì)或利用;要掌握表達(dá)式計(jì)算的運(yùn)算優(yōu)先級(jí)分析等編譯程序中的基本問(wèn)題。本設(shè)計(jì)是對(duì)學(xué)生單片機(jī)程序設(shè)計(jì)能力及數(shù)據(jù)轉(zhuǎn)換等基本工程素質(zhì)的訓(xùn)練,本屆將選用C51中所帶四字節(jié)單精度浮點(diǎn)庫(kù)來(lái)實(shí)現(xiàn)運(yùn)

2、算。 利用C51及某51單片機(jī)系統(tǒng)設(shè)計(jì)能進(jìn)行帶括號(hào)運(yùn)算的函數(shù)計(jì)算器,有效數(shù)7位。運(yùn)算結(jié)果顯示合理,功能和簡(jiǎn)單的函數(shù)計(jì)算器相近。具體設(shè)計(jì)任務(wù):1)學(xué)習(xí)原設(shè)計(jì)原理及程序。2)將一通用51單片計(jì)小系統(tǒng)擴(kuò)展4*8矩陣鍵盤(pán),顯示屏選擇擴(kuò)展字符型LCD屏,編寫(xiě)鍵盤(pán)及顯示程序。3)改寫(xiě)原程序中的鍵盤(pán)及顯示程序,完善函數(shù)計(jì)算器程序。硬件方面主要包括1)鍵盤(pán)輸入設(shè)備2)1602液晶顯示設(shè)備3)單片機(jī)仿真器圖為4*8鍵盤(pán)、8155和8031的接口邏輯圖,圖中8031外接一片8155,8155的RAM地址為7E007EFF,I/O口地址為7F007F05,8155的PA口為輸出口,PC0PC3為輸入口。PC0-3依

3、次輸出低電平,PA口讀取的數(shù)值加上此時(shí)輸出低電平的PC口,即可判斷閉合鍵的位置。掃描方法:二、 1602 LCD各引腳及其與單片機(jī)的連接圖1602中有串行與并行驅(qū)動(dòng)兩種驅(qū)動(dòng)方式,本設(shè)計(jì)由于IO口充裕所以采用串行數(shù)據(jù)/指令傳輸方式本設(shè)計(jì)在軟件設(shè)計(jì)方面主要分為:1 、鍵盤(pán)掃描輸入程序2 、1602液晶用戶界面程序3 、數(shù)據(jù)處理程序4 、算法分析5 、主程序結(jié)構(gòu) 核心在于函數(shù)計(jì)算器算法在單片機(jī)上的實(shí)現(xiàn),可以改進(jìn)的地方在于用戶界面的人性化,還有計(jì)算器算法程序完善。 下面來(lái)依次介紹:一 、鍵盤(pán)掃描流程圖延時(shí)去除機(jī)械抖動(dòng) 首先,判斷有無(wú)按鍵按下,將鍵盤(pán)中的行線全部置0,然后讀入列信號(hào),若有按鍵按下,則必有

4、列信號(hào)為0;接著判斷是哪個(gè)按鍵被按下,將鍵盤(pán)中的行線逐行一次置0;最后讀入列線的狀態(tài),當(dāng)列線中有0時(shí),則該列線與當(dāng)前掃描行線交叉的哪個(gè)按鍵被按下。二、液晶顯示驅(qū)動(dòng)流程圖三、數(shù)據(jù)處理程序1、浮點(diǎn)數(shù)的存儲(chǔ):為了節(jié)約數(shù)據(jù)空間,本設(shè)計(jì)將浮點(diǎn)數(shù)和運(yùn)算符同時(shí)存儲(chǔ)在一個(gè)開(kāi)辟在8155RAM中的unsigned char數(shù)組中,但是浮點(diǎn)數(shù)是占四個(gè)字節(jié),不能直接對(duì)其進(jìn)行存儲(chǔ),所以采用IEEE754標(biāo)準(zhǔn)。2、運(yùn)算符的存儲(chǔ):在運(yùn)算符的處理中如果用一個(gè)字節(jié)來(lái)表示一個(gè)運(yùn)算的話,所用存儲(chǔ)量非常大,所以我們用一個(gè)運(yùn)算符標(biāo)志m來(lái)存儲(chǔ)運(yùn)算符。m為unsigned char型,我們用它的低字節(jié)存儲(chǔ)加、減、乘、除,高半字節(jié)存儲(chǔ)左括

5、號(hào)Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0( 左括號(hào)個(gè)數(shù)左括號(hào)個(gè)數(shù)/ * -+五、算法分析立即計(jì)算原則立即計(jì)算原則:一般的表達(dá)式存儲(chǔ)時(shí),通常采用兩個(gè)堆棧,一個(gè)用來(lái)存儲(chǔ)數(shù)據(jù),一個(gè)用來(lái)存儲(chǔ)運(yùn)算符,這樣一來(lái)所需的單片機(jī)空間非常大,由于單片機(jī)的空間有限且表達(dá)式翻譯程序繁瑣,為了節(jié)省單片機(jī)存儲(chǔ)空間,使程序能夠正常運(yùn)行,我們采取運(yùn)算符立即的原則。即對(duì)于先后出現(xiàn)的2個(gè)運(yùn)算符,只有當(dāng)后面一個(gè)的級(jí)別低于或等于前者時(shí)才對(duì)前一個(gè)運(yùn)算符進(jìn)行運(yùn)算。 op2op1+-*/()+-*/(*運(yùn)算符優(yōu)先級(jí)表格說(shuō)明:1:表格中的“*”號(hào),表示該算符的相鄰順序出現(xiàn)是非法的,如表達(dá)式“(1+2

6、)(2-1)”和“1+2(”等是非法的,另外,單操作符的優(yōu)先級(jí)最高當(dāng)按下單操作符時(shí),馬上對(duì)當(dāng)前操作數(shù)進(jìn)行計(jì)算。功能鍵處理及輸入判別 本設(shè)計(jì)最為復(fù)雜的部分在于各種運(yùn)算符相互之間優(yōu)先級(jí)處理以及其顯示,需要處理的運(yùn)算符有: 雙操作運(yùn)算符( ) 單操作運(yùn)算符(lnx ex x2 sinx 2x )-優(yōu)先級(jí)較高 左括號(hào)鍵:顯示并記錄左括號(hào)個(gè)數(shù) 右括號(hào)鍵 :立即計(jì)算原則,先計(jì)算結(jié)果再消左括號(hào)個(gè)數(shù) 等號(hào)鍵:顯示計(jì)算結(jié)果 。 小數(shù)點(diǎn)鍵:要考慮數(shù)據(jù)移位問(wèn)題。 刪除鍵:刪除數(shù)據(jù)以及操作符,刪除顯示的同時(shí)要把標(biāo) 志位復(fù)位成上一步。 清零鍵 :清除所有顯示以及標(biāo)志位 。 指數(shù)操作屏:輸入數(shù)據(jù)轉(zhuǎn)為指數(shù)輸入。 多功能鍵s

7、hift:用來(lái)切換操作運(yùn)算符。主程序流程圖 該程序是一個(gè)鍵盤(pán)查詢(xún)方式的計(jì)算器,先從鍵盤(pán)讀取一個(gè)數(shù)據(jù),再讀入運(yùn)算符,讀入運(yùn)算符的同時(shí)要判別當(dāng)前運(yùn)算符與前一個(gè)運(yùn)算符的優(yōu)先級(jí)別,如果當(dāng)前的運(yùn)算符的優(yōu)先級(jí)別高于前面的運(yùn)算符,則將其前面的浮點(diǎn)數(shù)據(jù)編碼成標(biāo)準(zhǔn)的浮點(diǎn)數(shù)表示方式(即用四個(gè)字節(jié)表示一個(gè)浮點(diǎn)數(shù),最高位為符號(hào)位,接下來(lái)的八位它的階碼,剩下的23位表示浮點(diǎn)數(shù)的尾數(shù)),如此編碼后的數(shù)據(jù)便于存儲(chǔ)處理,將該編碼后的數(shù)據(jù)存儲(chǔ)到定義在8155的RAM中的數(shù)組存儲(chǔ)單元中,同時(shí)將上一個(gè)運(yùn)算符存儲(chǔ)。如果當(dāng)前的運(yùn)算符優(yōu)先級(jí)低,則在數(shù)據(jù)存儲(chǔ)單元中取出上一個(gè)數(shù)據(jù),解碼后進(jìn)行計(jì)算,將計(jì)算后的數(shù)據(jù)再存儲(chǔ)。整個(gè)程序不斷循環(huán),反復(fù)執(zhí)行。六、主程序結(jié)構(gòu) 本設(shè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論