




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式系統(tǒng)二課程設(shè)計(jì)報(bào)告 計(jì)算器系統(tǒng)的設(shè)計(jì)設(shè)計(jì)日期:2011年07月4日 至 2011年07月8日設(shè)計(jì)題目: 計(jì)算器系統(tǒng)的設(shè)計(jì) 設(shè)計(jì)的主要內(nèi)容及目標(biāo):基于2410試驗(yàn)箱實(shí)現(xiàn)計(jì)算器功能,通過輸入輸出端口擴(kuò)展鍵盤的方法,將按鍵鍵值在數(shù)碼管中顯示,可實(shí)現(xiàn)帶括號(hào)以及優(yōu)先級(jí)的計(jì)算器,可運(yùn)算加減乘除等基本運(yùn)算。指導(dǎo)教師: 2011年7月4日教師評(píng)閱意見書:評(píng)閱教師: 2011 年 月 日摘 要基于JXARM9-2410實(shí)驗(yàn)箱實(shí)現(xiàn)計(jì)算器功能,通過了解鍵盤接口原理以及輸入輸出端口擴(kuò)展鍵盤的方法,編寫矩陣鍵盤的掃描程序,將按鍵鍵值在數(shù)碼管中顯示,可運(yùn)算加減乘除等基本運(yùn)算,也可實(shí)現(xiàn)帶括號(hào)以及優(yōu)先級(jí)的運(yùn)算。計(jì)算時(shí)可顯示-999999+999999之間的任何數(shù),由于鍵盤數(shù)量有限,只能進(jìn)行加法和乘法兩種運(yùn)算。系統(tǒng)硬件主要分為處理器模塊、LED模塊、鍵盤模塊。軟件主要由主模塊、顯示模塊、按鍵處理模塊組成。關(guān)鍵詞:JXARM9-2410試驗(yàn)箱,處理模塊,LED模塊,鍵盤模塊1 目的及意義計(jì)算器是我們?nèi)粘I詈蜕a(chǎn)工作中重要的工具,能極大的提高我們的計(jì)算速度,通過本次課程設(shè)計(jì),對(duì)計(jì)算器能有更深程度的了解,對(duì)今后的學(xué)習(xí)生活一定會(huì)有很大的幫助。2 系統(tǒng)的基本原理及設(shè)計(jì)思想2.1 基本原理1鍵盤原理JXARM9-2410教學(xué)實(shí)驗(yàn)系統(tǒng)的鍵盤電路由一塊74HC273鎖存器和74LVCH244緩沖器完成鍵盤識(shí)別。在沒有按鍵的情況下,ROW0-ROW3通過上拉來保持高電平。檢測(cè)時(shí)通過將COL0-COL3中的某一列輸入低電平,如果該列沒有鍵按下時(shí),通過74LVCH244讀取到的行值應(yīng)該為高電平,如果該列某行位置有鍵按下,那么該行讀到的值應(yīng)為低電平。因此,采用輪詢方式檢測(cè)鍵盤的方法為:循環(huán)往各列輸入低電平,然后讀取行值,如果為高電平,則判斷下一列,否則,該行有鍵按下,此時(shí)已經(jīng)讀取到了按鍵的行值和列值,然后根據(jù)行值和列值得到鍵碼。2LED原理JXARM9-2410擁有六位7段數(shù)碼管。要在某位數(shù)碼管上顯示一個(gè)段碼表中的字符,需要使用地址空間0x10000006選擇位碼,并將待顯示的數(shù)據(jù)存儲(chǔ)在地址空間0x10000004中。表1 JXARM9-2410教學(xué)實(shí)驗(yàn)系統(tǒng)段碼表字符01234567段碼0xc00xf90xa40xb00x990x920x820xf8字符89ABCDEF段碼0x800x900x880x830xc60xa10x860x8e表2 JXARM9-2410教學(xué)實(shí)驗(yàn)系統(tǒng)位碼表位數(shù)123456位碼0x3e0x3d0x3b0x370x2f0x1f表3 JXARM9-2410教學(xué)實(shí)驗(yàn)系統(tǒng)地址空間分配地址空間說明數(shù)據(jù)寬度讀/寫(屬性)0x10000004數(shù)碼管數(shù)據(jù)寄存器8位W0x10000006數(shù)碼管掃描控制寄存器8位W3計(jì)算原理 定義一個(gè)操作數(shù)棧Opnd,一個(gè)操作符棧Optr。 思想是:置操作數(shù)棧為空,操作符棧壓入元素“#”(它具有最高優(yōu)先級(jí)),依次讀入表達(dá)式中的每個(gè)字符CH,如果CH是操作數(shù),則CH壓入操作數(shù)棧,如果CH是操作符,那么將CH和操作數(shù)棧頂元素進(jìn)行優(yōu)先級(jí)比較(如X優(yōu)先級(jí)高于+)。 如果優(yōu)先級(jí)大于當(dāng)前棧頂元素,那么將其壓棧,如果優(yōu)先級(jí)小于當(dāng)前棧頂元素,那么執(zhí)行op=optr.pop();(取當(dāng)前棧頂操作符),a=opnd.pop()(取當(dāng)前棧頂操作數(shù)存入臨時(shí)變量a);b=opnd,pop()(取當(dāng)前棧頂操作數(shù)存入臨時(shí)變量b);c=計(jì)算(a op b);opnd.push(c);如果優(yōu)先級(jí)相等,則當(dāng)前操作符出棧。 重復(fù)上述操作直到表達(dá)式處理完畢。 最后操作數(shù)棧剩余的操作數(shù)就是計(jì)算的最終結(jié)果。2.2設(shè)計(jì)思想1.系統(tǒng)結(jié)構(gòu)框圖本系統(tǒng)由小鍵盤模塊,處理模塊,顯示模塊組成。其結(jié)構(gòu)框圖如圖1所示:小鍵盤模塊處理模塊顯示模塊鍵盤鍵值待顯示數(shù)值圖1 系統(tǒng)結(jié)構(gòu)框圖2系統(tǒng)設(shè)計(jì)思想 小鍵盤模塊:計(jì)算器的輸入部分,用于得到用戶輸入的表達(dá)式,該模塊調(diào)用系統(tǒng)提供的Key_GetKeyPoll();函數(shù),得到當(dāng)前采集到的鍵值的ASCII碼,并將ASCII碼傳遞到處理模塊。處理模塊:計(jì)算器的核心部分,該模塊接收小鍵盤模塊傳遞的ASCII碼值,進(jìn)行處理,將待顯示數(shù)值的段碼和位碼傳遞到顯示模塊。顯示模塊:計(jì)算器的顯示部分,用于顯示計(jì)算機(jī)的中間數(shù)據(jù)和最終結(jié)果,該模塊接收處理模塊待顯示的數(shù)據(jù),將有效數(shù)據(jù)顯示在LED上。完成計(jì)算機(jī)器的功能。3設(shè)計(jì)方案 方案一:小鍵盤模塊和顯示模塊采用上述方法,處理模塊采用單棧結(jié)構(gòu)的逆波蘭式算法。 方案二:小鍵盤模塊和顯示模塊采用上述方法,處理模塊采用運(yùn)算符號(hào)觸發(fā)。4用戶說明 計(jì)算器鍵盤說明:123+456789CE0()=系統(tǒng)采用JXARM9-2410教學(xué)實(shí)驗(yàn)箱提供的4*4鍵盤,布局如圖,由于數(shù)量限制,故只能進(jìn)行加法和乘法兩種算法。 計(jì)算器LED顯示部分說明: 系統(tǒng)采用JXARM9-2410教學(xué)實(shí)驗(yàn)箱提供的6位7段數(shù)碼管,計(jì)算式可顯示-999999+999999之間的任何數(shù)。3 核心程序設(shè)計(jì)調(diào)用按鍵函數(shù),判斷相應(yīng)按鍵鍵值,調(diào)用相應(yīng)的子程序,通過計(jì)算將最后結(jié)果顯示在數(shù)碼管上,具體流程圖如圖2。開始調(diào)用CH=Key_GetkeyPoll()函數(shù)CH=0&CH=0&ch=65&ch999999)for(i=0;i=5;i+)*(U8*) 0x10000006) = SEG1;*(U8*) 0x10000004) = seg7table14;Delay(DELAYTIME);*(U8*) 0x10000006) = SEG0;*(U8*) 0x10000004) = seg7table14;Delay(DELAYTIME);else for(i=0;i=5;i+) flag=0;if(cur=(num/100000)%10)flag=1;*(U8*) 0x10000006) = SEG5;*(U8*) 0x10000004) = seg7tablecur;Delay(DELAYTIME);if(cur=(num/10000)%10) | flag)flag=1;*(U8*) 0x10000006) = SEG4;*(U8*) 0x10000004) = seg7tablecur;Delay(DELAYTIME);if(cur=(num/1000)%10) | flag)flag=1;*(U8*) 0x10000006) = SEG3;*(U8*) 0x10000004) = seg7tablecur;Delay(DELAYTIME);if(cur=(num/100)%10) | flag)flag=1;*(U8*) 0x10000006) = SEG2;*(U8*) 0x10000004) = seg7tablecur;Delay(DELAYTIME);if(cur=(num/10)%10) | flag)flag=1;*(U8*) 0x10000006) = SEG1;*(U8*) 0x10000004) = seg7tablecur;Delay(DELAYTIME);*(U8*) 0x10000006) = SEG0;*(U8*) 0x10000004) = seg7tablenum%10;Delay(DELAYTIME);/*-棧處理-*/void Push(int * stack,int * top,int val)if(stack=Num)PRINTF(PUSH val %dn,val);else PRINTF(PUSH sym %cn,val);if(*top = STACK_SIZE) return;stack(*top)+ = val;int Po
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西工程學(xué)院《儀器機(jī)械學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)春醫(yī)學(xué)高等??茖W(xué)?!督ㄖ畔⒔<夹g(shù)與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津理工大學(xué)中環(huán)信息學(xué)院《火電廠煙氣凈化Ⅱ》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北軌道運(yùn)輸職業(yè)技術(shù)學(xué)院《野生動(dòng)植物保護(hù)與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 西安高新科技職業(yè)學(xué)院《公共關(guān)系學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 大理護(hù)理職業(yè)學(xué)院《植物資源化學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年核磁共振巖心測(cè)試儀投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024年高性能鐵氧體一次磁粉項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 安全教育說課稿
- 2025年四川瀘州自貿(mào)區(qū)龍馳商務(wù)秘書服務(wù)有限公司招聘筆試參考題庫含答案解析
- 華為測(cè)試面試題及答案
- 漂珠銷售合同協(xié)議
- 2025化學(xué)中考解題技巧 專題10 技巧性計(jì)算(解析版)
- 部門加班調(diào)休管理制度
- 2025-2030中國(guó)工業(yè)物聯(lián)網(wǎng)行業(yè)市場(chǎng)深度調(diào)研及發(fā)展前景與趨勢(shì)預(yù)測(cè)研究報(bào)告
- 海鮮門店管理制度
- 考勤制度操作指南
- 2025年上半年商務(wù)部外貿(mào)發(fā)展事務(wù)局第二次招聘8人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 安徽省C20教育聯(lián)盟2025年九年級(jí)英語中考“功夫”卷(一)
- 人力核心指標(biāo) 行業(yè)報(bào)告系列 2025年Q1精細(xì)化工行業(yè)薪酬報(bào)告
- 垃圾焚燒發(fā)電廠應(yīng)急預(yù)案
評(píng)論
0/150
提交評(píng)論