版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 《單片機(jī)技術(shù)》課程設(shè)計(jì)說明書</p><p><b> 計(jì)算器</b></p><p> 學(xué) 院: </p><p> 學(xué)生姓名: </p><p> 指導(dǎo)教師: 職稱 </p><p> 專 業(yè): <
2、/p><p> 班 級(jí): </p><p> 學(xué) 號(hào): </p><p> 完成時(shí)間: </p><p> 湖南工學(xué)院《單片機(jī)技術(shù)》課程設(shè)計(jì)課題任務(wù)書</p><p> 學(xué)院: 專業(yè):</p>
3、;<p><b> 摘 要</b></p><p> 隨著社會(huì)的發(fā)展,科學(xué)的進(jìn)步,人們的生活水平在逐步的提搞,尤其是微電子技術(shù)的發(fā)展,猶如雨后春筍般變化。單片機(jī)的應(yīng)用已經(jīng)越來越貼近生活,用單片機(jī)來實(shí)現(xiàn)一些電子設(shè)計(jì)也變得容易起來。計(jì)算器在人們的日常中是比較常見的電子產(chǎn)品之一??墒撬€在發(fā)展之中,以后必將出現(xiàn)功能更加強(qiáng)大的計(jì)算器。基于這樣的理念,本次設(shè)計(jì)是用單片機(jī)來設(shè)計(jì)的計(jì)算
4、器。</p><p> 該設(shè)計(jì)以STC89C54RD+單片機(jī)為控制運(yùn)算器,以4*4矩陣鍵盤和6個(gè)獨(dú)立按鍵控制,以LCD1602液晶顯示,以USB接口充電來供電。</p><p> 對(duì)于此計(jì)算器我用了23個(gè)按鍵,10個(gè)數(shù)字鍵,4個(gè)常用運(yùn)算鍵,1個(gè)等號(hào)鍵,1個(gè)清零鍵,1個(gè)平方鍵,1個(gè)開方鍵,3個(gè)三角函數(shù)運(yùn)算鍵,1個(gè)十進(jìn)制轉(zhuǎn)十六進(jìn)制按鍵和1個(gè)十六進(jìn)制轉(zhuǎn)十進(jìn)制按鍵。</p>&l
5、t;p> 該計(jì)算器上電后能自動(dòng)顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。能實(shí)現(xiàn)基本的加、減、乘、除、平方、開方;還能實(shí)現(xiàn)三角函數(shù)運(yùn)算和十進(jìn)制、十六進(jìn)制轉(zhuǎn)換運(yùn)算。已符合設(shè)計(jì)要求,具有一定的推廣價(jià)值。</p><p> 關(guān)鍵詞:單片機(jī);LCD1602液晶顯示;矩陣鍵盤;獨(dú)立式鍵盤</p><p><b> 目 錄</b></p><p&g
6、t;<b> 1 緒論1</b></p><p> 1.1 計(jì)算器研究意義1</p><p> 1.2 實(shí)現(xiàn)功能1</p><p> 1.3 工作原理2</p><p> 2 計(jì)算器硬件系統(tǒng)設(shè)計(jì)3</p><p> 2.1 STC89C54RD+單片機(jī)簡介3&l
7、t;/p><p> 2.2 電源模塊4</p><p> 2.3 復(fù)位模塊4</p><p> 2.4 時(shí)鐘模塊4</p><p> 2.5 下載模塊5</p><p> 2.6 顯示模塊5</p><p> 2.7 輸入模塊6</p><p&
8、gt; 2.8 電路原理圖7</p><p> 2.9 電路實(shí)物圖7</p><p> 2.10 元器件清單7</p><p> 3 計(jì)算器軟件系統(tǒng)設(shè)計(jì)7</p><p> 3.1 單片機(jī)資源使用8</p><p> 3.2 監(jiān)控函數(shù)模塊8</p><p>
9、3.3 顯示模塊8</p><p> 3.4 鍵掃模塊9</p><p> 3.5 延時(shí)模塊9</p><p> 3.6 定時(shí)模塊10</p><p> 3.7 系統(tǒng)程序清單10</p><p> 4 實(shí)物調(diào)試11</p><p> 4.1 操作使用說明1
10、1</p><p> 4.2 測試過程11</p><p> 4.3 計(jì)算器誤差分析14</p><p> 4.4 設(shè)計(jì)體會(huì)14</p><p><b> 結(jié)束語16</b></p><p><b> 參考文獻(xiàn)17</b></p>&l
11、t;p><b> 致 謝18</b></p><p><b> 附 錄19</b></p><p> 附錄A 電路原理圖19</p><p> 附錄B 電路實(shí)物圖20</p><p> 附錄C 元器件清單21</p><p> 附錄D
12、程序清單22</p><p><b> 1 緒論 </b></p><p> 1.1 計(jì)算器研究意義</p><p> 中國古代最早采用的一種計(jì)算工具叫籌策,又被叫做算籌。這種算籌多用竹子制成,也有用木頭,獸骨充當(dāng)材料的。約二百七十枚一束,放在布袋里可隨身攜帶。 直到今天仍在使用的珠算盤,是中國古代計(jì)算工具領(lǐng)域中的另一項(xiàng)發(fā)明,明代時(shí)
13、的珠算盤已經(jīng)與現(xiàn)代的珠算盤幾乎相同。 17世紀(jì)初,西方國家的計(jì)算工具有了較大的發(fā)展,英國數(shù)學(xué)家納皮爾發(fā)明的“納皮爾算籌”,英國牧師奧卻德發(fā)明了圓柱型對(duì)數(shù)計(jì)算尺,這種計(jì)算尺不僅能做加減乘除、乘方、開方運(yùn)算,甚至可以計(jì)算三角函數(shù),指數(shù)函數(shù)和對(duì)數(shù)函數(shù),這些計(jì)算工具不僅帶動(dòng)了計(jì)算器的發(fā)展,也為現(xiàn)代計(jì)算器發(fā)展奠定了良好的基礎(chǔ),成為現(xiàn)代社會(huì)應(yīng)用廣泛的計(jì)算工具。</p><p> 隨著電子技術(shù)的不斷發(fā)展,計(jì)算器的功能也越來越
14、強(qiáng)大,已經(jīng)不僅僅限于單純的數(shù)學(xué)運(yùn)算和函數(shù)運(yùn)算,各種功能強(qiáng)大的計(jì)算器在財(cái)務(wù)、銀行、工程、測繪等方面也得到了廣泛的應(yīng)用。國內(nèi)的計(jì)算器從產(chǎn)生到發(fā)展成熟,也經(jīng)歷了一段過程。從簡單的計(jì)算到復(fù)雜的計(jì)算,從單功能到多功能。近年來國內(nèi)的計(jì)算器呈現(xiàn)出新的特點(diǎn),不僅設(shè)計(jì)精巧、緊湊,功能實(shí)用、簡練。包括:數(shù)據(jù)記錄、聲音提示、公式運(yùn)算、財(cái)務(wù)計(jì)算、外幣兌換、解方程式、衡(計(jì))量換算、 將數(shù)值轉(zhuǎn)換為中文大寫金額和英文 等,而且成本也減少了。而隨著計(jì)算機(jī)的普及,又出
15、現(xiàn)了軟件計(jì)算器,軟件計(jì)算器的功能更加強(qiáng)大,而且計(jì)算的位數(shù)增加,更加精確,而且懂得計(jì)算機(jī)的人可以借助軟件來設(shè)計(jì)各種不同的計(jì)算器,實(shí)現(xiàn)功能裁剪,因此非常靈活。軟件計(jì)算器的缺點(diǎn)是攜帶不便。真正來說國內(nèi)計(jì)算器的設(shè)計(jì)是以實(shí)用為前提的。</p><p> 而國外的計(jì)算器的發(fā)展已經(jīng)發(fā)展到各行各業(yè),外設(shè)大多凝集了其它產(chǎn)品的功能,而且許多功能讓人覺得實(shí)在離譜。把實(shí)用性和科學(xué)應(yīng)用聯(lián)合起來才能適應(yīng)更多的應(yīng)用場合,因此決定設(shè)計(jì)一個(gè)實(shí)用
16、性和科學(xué)性相結(jié)合的計(jì)算器作為我的研究課題。</p><p> 在檢測系統(tǒng)設(shè)計(jì)中熟悉并了解將作為單片機(jī)為控制核心,并輔以矩陣鍵盤和獨(dú)立式鍵盤以實(shí)現(xiàn)課題所要求的功能。本課題主要要求掌握計(jì)算器相應(yīng)的軟硬件實(shí)現(xiàn)方法。扎實(shí)掌握并運(yùn)用課題相關(guān)的學(xué)科理論知識(shí),根據(jù)實(shí)際電路盡量設(shè)計(jì)制作出完美的計(jì)算器,以實(shí)現(xiàn)理論與實(shí)踐的統(tǒng)一。</p><p><b> 1.2 實(shí)現(xiàn)功能</b>&
17、lt;/p><p> 計(jì)算器在上電或按鍵復(fù)位之后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入準(zhǔn)備工作狀態(tài)。</p><p> 計(jì)算器能實(shí)現(xiàn)基本的加、減、乘、除、平方、開方。</p><p><b> 實(shí)現(xiàn)三角函數(shù)運(yùn)算。</b></p><p> 能十進(jìn)制、十六進(jìn)制轉(zhuǎn)換運(yùn)算。</p><p><b&g
18、t; 1.3 工作原理</b></p><p> 設(shè)計(jì)一個(gè)計(jì)算器,設(shè)計(jì)中采用的是STC89C54RD+ 單片機(jī)用軟件實(shí)現(xiàn)數(shù)據(jù)信號(hào)的輸出。該單片機(jī)是一個(gè)微型計(jì)算機(jī),包括中央處理器 CPU,RAM,ROM,I/O 接口電路、定時(shí)計(jì)數(shù)器、串行通訊等,是計(jì)算器設(shè)計(jì)的核心。總體原理為:利用 STC89C54RD+ 單片機(jī)構(gòu)造多功能處理,可進(jìn)行計(jì)時(shí)以及監(jiān)控外部中斷系統(tǒng),通過C語言對(duì)單片機(jī)的編程即可進(jìn)行運(yùn)算傳
19、送信號(hào),并可以通過鍵盤進(jìn)行各種功能的轉(zhuǎn)換,當(dāng)輸出的信號(hào)通過顯示器顯示輸出的信息。硬件系統(tǒng)以STC89C54RD+單片機(jī)為控制核心,輔以LCD1602液晶顯示、鍵盤輸入模塊等電路實(shí)現(xiàn)計(jì)算器的基本功能;軟件系統(tǒng)包括包含延時(shí)模塊、鍵掃模塊、顯示模塊、定時(shí)模塊、監(jiān)控函數(shù)模塊。總體設(shè)計(jì)框圖如圖1所示。</p><p> 圖1 總體硬件電路框圖</p><p> 2 計(jì)算器硬件系統(tǒng)設(shè)計(jì)<
20、/p><p> 2.1 STC89C54RD+單片機(jī)簡介</p><p> 以STC89C54RD+單片機(jī)為控制核心,外擴(kuò)外圍電路,完成計(jì)算器所需要的外圍電路。顯示模塊,輸入模塊,復(fù)位模塊等。STC89C54RD+單片機(jī)內(nèi)部配以基本單元:即三個(gè)定時(shí)/計(jì)數(shù)器、5個(gè)中斷源??捎删幊虂韺?shí)現(xiàn)根據(jù)定時(shí)、計(jì)數(shù)時(shí)計(jì)數(shù)溢出而產(chǎn)生的中斷申請(qǐng)信號(hào)中斷功能,并由LCD1602液晶對(duì)被測值進(jìn)行顯示。STC89C
21、54RD+系列單片機(jī),具有反應(yīng)速度極快,工作效率特高的特點(diǎn)。</p><p> STC89C54RD+單片機(jī)的基本特點(diǎn)是低功耗、高性能,片內(nèi)由4KB可編程/擦除只讀存儲(chǔ)器的8位COMS微控制器組成,通過結(jié)合高密度、非易失存儲(chǔ)技術(shù)來保證單片機(jī)引腳與相應(yīng)指令系統(tǒng)的高兼容度。由于芯片里FLASH的存在,因此可以通過通用的非易失存儲(chǔ)編程器實(shí)現(xiàn)在線編程以及重復(fù)編程等功能。在通常情況下,當(dāng)系統(tǒng)掉電時(shí),數(shù)據(jù)存儲(chǔ)器的內(nèi)容立即會(huì)
22、被保存下來,而此時(shí)單片機(jī)其他一切都會(huì)停止工作,直到產(chǎn)生下一個(gè)中斷或硬件復(fù)位信號(hào)整個(gè)系統(tǒng)才會(huì)重新開始工作。</p><p> STC89C54RD+的內(nèi)部特點(diǎn):具有40個(gè)引腳、8K片內(nèi)程序存儲(chǔ)器空間、256B的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器,32個(gè)外部雙向輸入/輸出I/O口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。STC89C54RD+引腳圖如圖2所示。</p&
23、gt;<p> 圖2 STC89C54RD+引腳圖</p><p><b> 2.2 電源模塊</b></p><p> 電源電路是給計(jì)算器提供電源,此電路包括一個(gè)發(fā)光二極管、電阻、導(dǎo)線組成。光二極管的作用主要是:運(yùn)用二極管的單向?qū)щ娞匦詠硖崾倦娫词欠窠油ɑ蛴^察電源是否一直保持通電正常、穩(wěn)定,并且100Ω的電阻與二極管串聯(lián),其作用是保護(hù)二極管不
24、會(huì)因?yàn)殡娏魍蝗蛔兇蠖粺龎?。電源電路是采用USB接口來供電,如圖3所示。</p><p><b> 圖3 電源電路</b></p><p><b> 2.3 復(fù)位模塊</b></p><p> 復(fù)位電路的作用是按下復(fù)位鍵可以使顯示界面回到最開始的地方。課程設(shè)計(jì)按鍵復(fù)位電路由一個(gè)電阻一個(gè)電容和一個(gè)按鍵組成,大小分別
25、為10µF,1k,200Ω,1KΩ電阻一端接電源,另一端接電容的正極接到單片機(jī)的復(fù)位引腳,按鍵與10µF電容并聯(lián),當(dāng)按鍵按下時(shí),1kΩ電阻與VCC直接相連,在RST產(chǎn)生復(fù)位所需的高電平。當(dāng)按鍵松開的,VCC給電容充電,RST仍為高電平,而當(dāng)電容充電完成后,相當(dāng)于短路,則為低電平,正常工作。復(fù)位電路如圖4所示。</p><p><b> 圖4 復(fù)位電路</b></
26、p><p><b> 2.4 時(shí)鐘模塊</b></p><p> 晶振電路的作用是產(chǎn)生單片機(jī)所必須的時(shí)鐘頻率。單片機(jī)工作所需的同步時(shí)鐘信號(hào)由由以下兩種方法獲得,第一:由單片機(jī)片內(nèi)時(shí)鐘電路結(jié)合外部晶振、電容產(chǎn)生;第二:直接從單片機(jī)外部引入脈沖信號(hào)。設(shè)計(jì)中用第一方法,有石英晶體和微調(diào)電容(一般取值30pF左右)組成,石英晶體產(chǎn)生震蕩,單片機(jī)振蕩電路產(chǎn)生的脈沖信號(hào)稱振蕩信
27、號(hào),它的頻率等于石英晶體的振蕩頻率(fosc),簡稱晶振頻率,振蕩脈沖信號(hào)還不是單片機(jī)工作所需的時(shí)鐘信號(hào),時(shí)鐘信號(hào)必須由振蕩脈沖信號(hào)經(jīng)單片機(jī)片內(nèi)時(shí)鐘電路的處理后才能產(chǎn)生。</p><p> 課程設(shè)計(jì)晶振電路主要由振蕩電路和分頻電路組成。其中振蕩電路由高增益反相器以及并聯(lián)外接的石英晶體和電容構(gòu)成產(chǎn)生振蕩脈沖。而分頻電路則用于把振蕩脈沖分頻,已得到所需的時(shí)鐘信號(hào)。振蕩電路由單片機(jī)芯片的XTAL1端輸入,XTAL2端
28、輸出。此時(shí)同時(shí)并接一個(gè)石英晶體振蕩器以及兩個(gè)30pF電容。而STC89C54RD+中自帶有分頻電路所以不需要外接電路對(duì)脈沖信號(hào)進(jìn)行分頻。晶振頻率是12MHz。如圖5所示。</p><p><b> 圖5 時(shí)鐘電路</b></p><p><b> 2.5 下載模塊</b></p><p> 由于STC89C54R
29、D+支持flash在線寫入、擦除,所以下載電路是必不可少的部分。由下載口進(jìn)行單片機(jī)與電腦的連接。并由下載電路產(chǎn)生電源提供給單片機(jī)工作。主要是由P30、P31兩個(gè)引腳下載,實(shí)現(xiàn)計(jì)算機(jī)與單片機(jī)的通信。</p><p><b> 2.6 顯示模塊</b></p><p> 發(fā)光二極管LED是單片機(jī)應(yīng)用系統(tǒng)中的一宗簡單而常用的輸出設(shè)備,其在系統(tǒng)中的主要作用是顯示單片機(jī)的
30、輸出數(shù)據(jù)、狀態(tài)等。因而作為典型的外圍器件,LED顯示單元是反映系統(tǒng)輸出和操作輸入的有效器件。LED具備數(shù)字接口可以方便的和大年紀(jì)系統(tǒng)連接;它的優(yōu)點(diǎn)是價(jià)格低,壽命長,對(duì)電壓電流的要求低及容易實(shí)現(xiàn)多路等,因而在單片機(jī)應(yīng)用系統(tǒng)中獲得了廣泛的應(yīng)用。</p><p> 液晶LCD1602顯示器用于輸入信號(hào)以及運(yùn)算結(jié)果的顯示。它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組
31、成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。 1602型LCD基本操作程序如表1所示。</p><p> 表1 LCD1602基本操作程序</p><p> 電路主要由電位器、可變換串行及并行通信方式的短接電路、供電電路構(gòu)成,具體電路如圖6所示。</p><p> 圖6 LCD1602顯示
32、電路</p><p><b> 2.7 輸入模塊</b></p><p> 輸入模塊的作用是給單片機(jī)系統(tǒng)提供輸入信號(hào)。通過外部按鍵使單片機(jī)接收信號(hào),課程設(shè)計(jì)采用的是4*4的矩陣鍵盤和6個(gè)獨(dú)立式鍵盤。在矩陣式鍵盤中,行連接線和列連接線分別占用4條I/O口線,共連接16個(gè)按鍵。行線連接的接口為輸入口,用于輸入按鍵的行位置信息,列線連接的接口為輸出口,用于輸出掃描電平
33、,當(dāng)按鍵按下鍵時(shí)由高電平變?yōu)榈碗娖?,如圖7所示。6個(gè)獨(dú)立式鍵盤按鍵的一端并接在一起接地。當(dāng)按下某個(gè)鍵,該鍵處變?yōu)榈碗娖?。如圖8所示。</p><p> 圖7 4*4矩陣式鍵盤</p><p> 圖8 6個(gè)獨(dú)立式鍵盤</p><p> 2.8 電路原理圖</p><p> 電路原理圖見附錄A。</p><p&g
34、t; 2.9 電路實(shí)物圖</p><p> 電路實(shí)物圖見附錄B。</p><p> 2.10 元器件清單</p><p> 元器件清單見附錄C。</p><p> 3 計(jì)算器軟件系統(tǒng)設(shè)計(jì)</p><p> 應(yīng)用C語言編來編寫課題程序,它由監(jiān)控函數(shù)、液晶顯示、鍵掃、延時(shí)、定時(shí)等模塊組成。具體程序見附錄D。
35、</p><p> 3.1 單片機(jī)資源使用</p><p> P1: 基本輸入輸出口;</p><p> P2.7:E(1602液晶);</p><p> P2.6:RW(1602液晶);</p><p> P2.5:RS(1602液晶);</p><p> P2.4:T0(定時(shí)/
36、計(jì)數(shù)器);</p><p> 3.2 監(jiān)控函數(shù)模塊</p><p> 監(jiān)控函數(shù) ,用于設(shè)置上電或復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,調(diào)用各個(gè)主要模塊,主要實(shí)現(xiàn)計(jì)算器的加、減、乘、除、開方、平方等功能。相關(guān)程序流程圖如圖9所示,具體程序見附錄D。</p><p> 圖9 監(jiān)控函數(shù)流程圖</p><p><b> 3.3 顯
37、示模塊</b></p><p> 液晶顯示是通過在主程序中調(diào)用相關(guān)的液晶功能函數(shù)來執(zhí)行相應(yīng)功能,經(jīng)過液晶接在單片機(jī)上的P2部分管腳,通過液晶功能函數(shù)LCD1602的調(diào)用對(duì)液晶進(jìn)行操作,將各類指令寫入液晶模塊,用來驅(qū)動(dòng)液晶以實(shí)現(xiàn)不同的顯示功能。簡單來說,就是用作LCD1602液晶屏顯示,將顯示的數(shù)據(jù)傳送至LCD1602模塊化函數(shù)中,將需要顯示的內(nèi)容顯示在LCD1602液晶屏上。相關(guān)程序流程圖如圖10所
38、示,詳細(xì)程序見附錄D。</p><p> 圖10 液晶顯示流程圖</p><p><b> 3.4 鍵掃模塊</b></p><p> 當(dāng)有操作按鍵按下時(shí),單片機(jī)首先會(huì)先判斷鍵值,然后依據(jù)判斷出的鍵值來執(zhí)行相應(yīng)的鍵功能程序,并由液晶顯示操作狀態(tài)。相關(guān)程序流程圖如圖11所示,詳細(xì)程序見附錄D。</p><p>
39、 圖11 按鍵程序流程圖</p><p><b> 3.5 延時(shí)模塊</b></p><p> 延時(shí)模塊用于延時(shí),等待等需要的調(diào)用。</p><p><b> 3.6 定時(shí)模塊</b></p><p> 定時(shí)器0,以工作方式1工作,采用中斷方式。</p><p>
40、; 3.7 系統(tǒng)程序清單</p><p> 課題軟件系統(tǒng)程序清單見附錄D。</p><p><b> 4 實(shí)物調(diào)試</b></p><p> 4.1 操作使用說明</p><p> 該設(shè)計(jì)利用4*4矩陣鍵盤和6個(gè)獨(dú)立按鍵作為數(shù)據(jù)和命令的輸入裝置,LCD1602液晶為顯示器,實(shí)現(xiàn)的運(yùn)算有加、減、乘、除、平方
41、SQU、開方SQR、三角函數(shù)(sin、cos、tan)、十進(jìn)制轉(zhuǎn)十六進(jìn)制DEC、十六進(jìn)制轉(zhuǎn)十進(jìn)制HEX。</p><p> 采用4*4矩陣鍵盤和6個(gè)獨(dú)立按鍵作為輸入端,實(shí)現(xiàn)數(shù)據(jù)輸入功能。設(shè)計(jì)鍵盤的各個(gè)按鍵功能如表2所示。</p><p> 表2 按鍵功能設(shè)置</p><p> 如表2所示,此計(jì)算器我用了23個(gè)按鍵,10個(gè)數(shù)字鍵,4個(gè)常用運(yùn)算鍵,1個(gè)等號(hào)鍵,1
42、個(gè)清零鍵,1個(gè)平方鍵,1個(gè)開方鍵,3個(gè)三角函數(shù)運(yùn)算鍵,1個(gè)十進(jìn)制轉(zhuǎn)十六進(jìn)制按鍵和1個(gè)十六進(jìn)制轉(zhuǎn)十進(jìn)制按鍵。</p><p> 當(dāng)計(jì)算器上電后能自動(dòng)顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。這時(shí)輸入數(shù)字,液晶屏?xí)@示輸入的數(shù)據(jù),輸入完數(shù)據(jù)后按下功能鍵,再按“=”鍵,屏幕上顯示出計(jì)算的結(jié)果。如果要再次計(jì)算,按下復(fù)位鍵,重新初始化。</p><p><b> 4.2 測試過程&l
43、t;/b></p><p> 界面顯示以及測試的結(jié)果:各層界面顯示以及測試的結(jié)果與示波器所測得圖形及參數(shù)為:</p><p> ?。?)當(dāng)上電顯示后,顯示的是系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。如圖12所示。</p><p> 圖12 上電顯示界面</p><p> 當(dāng)輸入12加27后,得出計(jì)算結(jié)果39。如圖13所示</
44、p><p> 圖13 計(jì)算結(jié)果顯示界面</p><p> ?。?)當(dāng)輸入數(shù)字765,按下十進(jìn)制轉(zhuǎn)十六進(jìn)制DEC功能鍵后,計(jì)算的的數(shù)據(jù)為2FD。如圖14所示。</p><p> 圖14 計(jì)算結(jié)果顯示界面</p><p> ?。?)當(dāng)輸入數(shù)字2,按下平方SQU功能鍵后,計(jì)算的數(shù)據(jù)為4。如圖15所示。</p><p>
45、 圖15 計(jì)算結(jié)果顯示界面</p><p> ?。?)當(dāng)輸入數(shù)字8乘11時(shí),計(jì)算的數(shù)據(jù)為88。如圖16所示。</p><p> 圖16 計(jì)算結(jié)果顯示界面 </p><p> 4.3 計(jì)算器誤差分析</p><p> 計(jì)算器的計(jì)算功能有精度上的誤差,不適用保留小數(shù)點(diǎn)的計(jì)算,因?yàn)椴荒芗s到整數(shù)。</p><p>
46、<b> 誤差分析:</b></p><p> ?。?)硬件電路中焊接時(shí),不能做到所有器件的線路都很合理,在操作是會(huì)有相互影響。</p><p> ?。?)程序參數(shù)設(shè)計(jì)不夠合理,以及計(jì)算過程中沒有保留小數(shù)點(diǎn),計(jì)算量多的話導(dǎo)致不精準(zhǔn),主要是精確度不高。 </p><p> (3)實(shí)驗(yàn)用的元器件,如芯片易受溫度的影響,實(shí)驗(yàn)時(shí)間過長,即會(huì)產(chǎn)生
47、誤差。 </p><p><b> 4.4 設(shè)計(jì)體會(huì)</b></p><p> 通過做計(jì)算器的課程設(shè)計(jì),我收獲良多。我大體總結(jié)了以下幾點(diǎn):</p><p> ?。?)基本功要過硬,不能馬虎經(jīng)常犯小錯(cuò)誤。提高自己找錯(cuò)糾錯(cuò)能力,通常錯(cuò)誤總是那幾種,多練習(xí)就熟練了。</p><p> ?。?)要善于查找資料,提高自己
48、的資料查詢能力,要善于利用網(wǎng)絡(luò)來獲得知識(shí),獲得幫助。開始著手程序設(shè)計(jì)時(shí),有些功能感覺無從下手,都不知道要干什么,這些問題這要找到相關(guān)的資料就會(huì)得到提示從而理解所要解決問題的大致方向。有了明確的目的,就可以發(fā)揮自己的頭腦來完成它了。 </p><p> ?。?)要善于思考,程序中有些實(shí)現(xiàn)難點(diǎn)和最初完成程序時(shí)免不了的許多不足就需要自己根據(jù)代碼認(rèn)真思考來解決。只有這樣才能糾正程序的不足,并使其更加人性化。 </p
49、><p> 這次課程設(shè)計(jì)讓我們學(xué)到了很多,不僅鞏固了C語言知識(shí),而且也培養(yǎng)了我們的動(dòng)手能力,令我們的創(chuàng)造性思維得到拓展。期待今后有更多類似的鍛煉機(jī)會(huì)。 </p><p> 通過這次課程設(shè)計(jì),可以明顯的感覺到它彌補(bǔ)了課程教學(xué)的和實(shí)驗(yàn)中知識(shí)的深度和廣度方面的不足,也讓我們進(jìn)一步掌握了程序設(shè)計(jì)的基本方法和編程技巧,同時(shí)也鞏固所學(xué)理論知識(shí),似然花費(fèi)了不止一點(diǎn)點(diǎn)的時(shí)間和精力,不過那確實(shí)挺值得的,既讓
50、我們認(rèn)識(shí)到自己知識(shí)方面的缺陷,又培養(yǎng)了我獨(dú)立分析問題、解決問題的能力。 </p><p> 課程設(shè)計(jì)是需要大量時(shí)間去動(dòng)手練習(xí)才能體驗(yàn)到它的內(nèi)涵的,同時(shí)還需要用心地投入,時(shí)間和情感花下去之后,的確感受到有所收獲,增加了對(duì)編程的興趣。通過這次課程設(shè)計(jì),掌握了對(duì)話框的相關(guān)操作,也體會(huì)到書寫代碼一定要仔細(xì),有時(shí)候一小點(diǎn)拼寫錯(cuò)誤會(huì)浪費(fèi)很多調(diào)試程序的時(shí)間??傊?,這次課程設(shè)計(jì)學(xué)到了很多,通過實(shí)踐真正的做到了學(xué)有所用。<
51、/p><p><b> 結(jié)束語</b></p><p> 通過這次設(shè)計(jì),攻克了許多難題。從LCD1602的使用,到各個(gè)數(shù)字如何入,這些是我們學(xué)過,但是還不是太懂的。而且許多芯片并不像我們想象的那么難,只要知道讀寫程序序,只要知道命令字,就可以很容易使用這些芯片了,并不是我們要學(xué)一個(gè)才能用一個(gè),只要我們有說明書,我們可以很好的使用很大部分器件。對(duì)于51單片機(jī),我一直是用
52、匯編的,但對(duì)于此次設(shè)計(jì)我完全用C語言,因?yàn)镃語言的可讀性很好,層次分明,而不像匯編都是在寄存器器間操作,很煩瑣,對(duì)于寫太長的程序很不好寫,而且用C語言我們可以用到C語言函數(shù)庫,這是個(gè)很好的東西,也可以用到變量,而不像匯編只能用到寄存器,這樣有助于運(yùn)用。</p><p> 最后要說的是這次程序?qū)懙糜悬c(diǎn)痛苦,剛開始的時(shí)候無從下手,不知道怎么開始寫。所以對(duì)于程序流程圖是個(gè)很重要的東西,我們應(yīng)該先考慮功能,考慮好主流程
53、,再從主流程出發(fā),再到各個(gè)基本模塊,寫程序不是很難,難的是你要如何寫。所以最先做個(gè)詳細(xì)的分析,結(jié)構(gòu)分析,再著手寫程序,這樣各部分就很好的銜接下去了,而不是一個(gè)頭就扎到程序里去,這樣做不好。只有明確的任務(wù)才能寫的更好。</p><p> 萬事開頭難,只要你去做,你就會(huì)發(fā)現(xiàn)這個(gè)沒有你想象中的那么難,你不去做,就會(huì)覺得很難。而且這次設(shè)計(jì)對(duì)我來說是一次寶貴的經(jīng)驗(yàn),不是說寫這個(gè)程序有多難,硬件設(shè)計(jì)有多難,而是我對(duì)于設(shè)計(jì)流
54、程的掌握,如果我再做一個(gè)設(shè)計(jì)我會(huì)知道首先該如何做,而不是像現(xiàn)在這樣在摸索,這是一個(gè)很好的開始。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 常喜茂,孔英會(huì),付小寧.C51基礎(chǔ)與應(yīng)用實(shí)例.北京:電子工業(yè)出版社,2009.1.</p><p> [2] 陳志旺,陳志茹,閻巍山.51系列單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)踐。北京:電子
55、工業(yè)出版社,2009.</p><p> [3] 戴佳,戴衛(wèi)恒.51單片機(jī)C語言應(yīng)用程序設(shè)計(jì)實(shí)例精講.北京:電子工業(yè)出版社,2005.</p><p> [4] 劉文濤.單片機(jī)語言C51單片機(jī)典型應(yīng)用設(shè)計(jì).北京:人民郵電出版社,2005.</p><p> [5] 邊春元.C51單片機(jī)典型模塊設(shè)計(jì)與應(yīng)用.北京:機(jī)械工業(yè)出版社,2006.</p>
56、<p><b> 致 謝</b></p><p> 本次課程設(shè)計(jì)得到班導(dǎo)凌老師的熱心指導(dǎo),在這里對(duì)凌老師表示最衷心的感謝。凌老師平易近人,對(duì)學(xué)生的設(shè)計(jì)進(jìn)度和學(xué)習(xí)很關(guān)心。在畢業(yè)設(shè)計(jì)的前期,首先給我們介紹了不少有用的資料和書籍;在硬件設(shè)計(jì)等方面給予悉心的指導(dǎo);在調(diào)試的過程中凌老師給每個(gè)出現(xiàn)的問題給予及時(shí)的指導(dǎo)。在寫課程設(shè)計(jì)的階段,凌老師讓我們提前給她評(píng)審,不論內(nèi)容字體,還是格式上
57、的問題都一一指出。待人平和、工作認(rèn)真、治學(xué)嚴(yán)謹(jǐn),給我留下很深刻的印象。更重要的是,她善于與學(xué)生溝通,不僅在畢業(yè)設(shè)計(jì)上給我及時(shí)的指導(dǎo),更為我大學(xué)最后階段的學(xué)習(xí)提出了許多寶貴的意見。這一切都在潛移默化地影響著我,為我以后進(jìn)入工作崗位樹立了良好的榜樣。 </p><p> 最后向所有幫助和關(guān)心過我的人表示衷心感謝!</p><p><b> 附 錄</b></p
58、><p> 附錄A 電路原理圖 </p><p> 附錄B 電路實(shí)物圖</p><p> 附錄C 元器件清單</p><p><b> 附錄D 程序清單</b></p><p> /**********************************</p><
59、p><b> 程 序 名:計(jì)算器</b></p><p><b> 編 寫 者:李月潔</b></p><p><b> 指導(dǎo)老師:凌云</b></p><p> 時(shí) 間:2016.12.20</p><p> 班 級(jí):電氣本1405班</p&
60、gt;<p> 功 能:計(jì)算器能進(jìn)行加、減、乘、除、開方、平方、三角函數(shù)(sin、cos、tan)、十進(jìn)制與十六進(jìn)制的轉(zhuǎn)換等運(yùn)算。</p><p> 說 明:LCD SCLK(E)連至P27,SID(RW)連至P26,CS(RS)連至P25</p><p> 型 號(hào):STC89C54RD+ 使用晶振為12MHz</p><p&
61、gt; *******************************************************************/</p><p> #include <reg51.h></p><p> #include <math.h></p><p> #include <stdlib.h></p
62、><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> #define K 3.1415926/180</p><p> sbit RS=P2^5;</p><p> sbit RW=P2^6;</p>
63、<p> sbit EN=P2^7; //使能信號(hào)</p><p> sbit BEEP=P2^4;</p><p> sbit SQUARE=P2^0;//開方是16號(hào)鍵</p><p> sbit COS=P2^1;</p><p> sbit SIN=P2^2;</p><p> sbi
64、t TAN=P2^3;</p><p> sbit HEX=P3^6;</p><p> sbit DEC=P3^7;</p><p> #define GPIO_KEY P1</p><p> uchar code keycode[16]={0xEE,0XDE,0XBE,0X7E,0XED,0XDD,0XBD,0X7D,0XEB,0
65、XDB,0XBB,0X7B,0XE7,0XD7,0XB7,0X77};//待查詢的按鍵值</p><p> uchar dat[16]="p.";</p><p> uchar result[16]=" ";</p><p> uchar opr[4]="\n";</p><p&g
66、t; int result_size=0;</p><p> int opr_flag=0;</p><p> int count=0;</p><p> char hex[16]={'0','1','2','3','4','5','6','
67、;7','8','9','A','B','C','D','E','F'};</p><p> void delay(uint z);</p><p> void init();</p><p> void write_comm
68、and(uchar com);//寫指令</p><p> void write_data(uchar date);//寫數(shù)據(jù)</p><p> void show_word(int row,int size,char* dat);</p><p> void show_value(int row,int size,char* str);</p>
69、<p> int keyscan();</p><p> uchar getkey(int value);</p><p> uchar* getValue(uchar* temp);</p><p> double func_calc(uchar* key,int flag);</p><p> char* decTo
70、Hex(char* d,int count,int* s);</p><p> int hexToDec(char* h,int count);</p><p> int getIntegerSize(double n);</p><p> char* ftoa(double num,int iSize,int dSize);</p><p
71、> void clear()</p><p><b> {</b></p><p> write_command(0x01);//清屏</p><p><b> }</b></p><p> uchar busy_check()//忙檢查(有返回值)</p><p
72、><b> {</b></p><p> uchar temp;</p><p> RS=0;//選擇命令寄存器</p><p> RW=1;//讀操作選擇</p><p> EN=1; //一個(gè)高脈沖讀走</p><p><b> delay(1);</b>
73、;</p><p> temp=P0;//讀回P0的值</p><p><b> EN=0;</b></p><p> return temp;//返回值</p><p><b> }</b></p><p> void main()</p><
74、p><b> {</b></p><p> int statu=0;</p><p> int KeyValue;</p><p><b> int i=0;</b></p><p> double temp;</p><p><b> int s
75、ize;</b></p><p> uchar key[16]="\n";</p><p> uchar screen[16]="\n";</p><p> init();//初始化</p><p><b> BEEP=0;</b></p>&l
76、t;p> write_command(0x80);</p><p><b> while(1)</b></p><p><b> {</b></p><p> KeyValue=keyscan();</p><p> if(KeyValue!=0)//如果有鍵按下</p>
77、<p><b> {</b></p><p><b> count++;</b></p><p> if(count==1)//第一次按下時(shí),清屏</p><p><b> {</b></p><p><b> clear();</b&g
78、t;</p><p><b> }</b></p><p> if(KeyValue>0 && KeyValue<16)//如果按鍵號(hào)在1到16之間就顯示在第一行</p><p><b> {</b></p><p> key[count-1]=getkey(Ke
79、yValue);</p><p><b> }</b></p><p> if(KeyValue>0 && KeyValue<15 && opr_flag==0)//沒有按下等號(hào)之前,更新顯示輸入的字符</p><p><b> {</b></p><
80、p><b> clear();</b></p><p> show_word(1,count,key);</p><p><b> }</b></p><p> else if(KeyValue>0 && KeyValue<15 && opr_flag==1)//等
81、號(hào)按下后,清屏,標(biāo)志置0,顯示第一行</p><p><b> {</b></p><p><b> clear();</b></p><p> opr_flag=0;</p><p> show_word(1,count,key);</p><p><b&g
82、t; }</b></p><p> if(KeyValue>15 && KeyValue<23)//如果按下的是第16到22號(hào)鍵</p><p><b> {</b></p><p> count--;//不記錄該鍵</p><p> switch (KeyValue)&
83、lt;/p><p><b> {</b></p><p> case 16:opr[0]='S';opr[1]='Q';opr[2]='U';opr[3]='(';opr_flag=4;break;//squre</p><p> case 17:opr[0]='S
84、9;;opr[1]='Q';opr[2]='R';opr[3]='(';opr_flag=5;break;//squre root</p><p> case 18:opr[0]='s';opr[1]='i';opr[2]='n';opr[3]='(';opr_flag=6;break;//sin&l
85、t;/p><p> case 19:opr[0]='c';opr[1]='o';opr[2]='s';opr[3]='(';opr_flag=7;break;//cos</p><p> case 20:opr[0]='t';opr[1]='a';opr[2]='n';opr[3
86、]='(';opr_flag=8;break;//tan</p><p> case 21:opr[0]='H';opr[1]='E';opr[2]='X';opr[3]='(';opr_flag=9;break;//hex</p><p> case 22:opr[0]='D';opr[1
87、]='E';opr[2]='C';opr[3]='(';opr_flag=10;break;//dec</p><p><b> }</b></p><p><b> }</b></p><p> if(opr_flag>=4)//如果opr_flag==4,顯示
88、相應(yīng)的符號(hào)到第一行</p><p><b> {</b></p><p> show_word(1,4,opr);</p><p><b> }</b></p><p> if(KeyValue>0 && KeyValue<15 && opr_f
89、lag>=4)</p><p><b> {</b></p><p><b> clear();</b></p><p> show_word(1,4,opr);</p><p> show_value(1,count,key);</p><p><b&g
90、t; }</b></p><p> if(KeyValue==15 && opr_flag<4)//'='鍵被按下</p><p><b> {</b></p><p> show_word(2,result_size,getValue(key));</p><p&
91、gt; result_size=0;</p><p><b> }</b></p><p> else if(KeyValue==15 && opr_flag>=4 && opr_flag<10)</p><p><b> {</b></p><p&g
92、t; temp=func_calc(key,opr_flag);</p><p> result_size=getIntegerSize(temp);</p><p> ftoa(temp,result_size,3);</p><p> show_word(2,result_size+4,result);</p><p><b
93、> }</b></p><p> else if(KeyValue==15 && opr_flag==10)</p><p><b> {</b></p><p> decToHex(key,count-1,&size);</p><p> //show_word(2,
94、size,result);</p><p> show_word(2,size,decToHex(key,count-1,&size));</p><p> //show_word(2,5,"ok");</p><p><b> }</b></p><p><b> }<
95、;/b></p><p><b> }</b></p><p><b> }</b></p><p> //十進(jìn)制轉(zhuǎn)十六進(jìn)制</p><p> char* decToHex(char* d,int count,int *s)</p><p><b>
96、 {</b></p><p><b> int i;</b></p><p> int temp=0;</p><p><b> int size;</b></p><p> int rem;//remainder</p><p> for(i=0;i&
97、lt;count;i++)</p><p><b> {</b></p><p><b> temp*=10;</b></p><p> temp+=d[i]-'0';</p><p><b> }</b></p><p><
98、;b> i=0;</b></p><p> while(temp>0)</p><p><b> {</b></p><p> result[i++]=hex[temp%16];</p><p><b> temp/=16;</b></p><p
99、><b> }</b></p><p><b> size=i;</b></p><p><b> *s=size;</b></p><p> for(i=0;i<size-i-1;i++)//反序</p><p><b> {</b>
100、;</p><p> temp=result[i];</p><p> result[i]=result[size-i-1];</p><p> result[size-1-i]=temp;</p><p><b> }</b></p><p> return result;</p
101、><p><b> }</b></p><p> //十六進(jìn)制轉(zhuǎn)十進(jìn)制</p><p> int hexToDec(char* h,int count)</p><p><b> {</b></p><p><b> int dec;</b><
102、;/p><p><b> int i=0;</b></p><p> int temp=0;</p><p> for(i=0;i<count;i++)</p><p><b> {</b></p><p><b> temp*=16;</b>
103、;</p><p> temp+=h[i]-'0';</p><p><b> }</b></p><p> return temp;</p><p><b> }</b></p><p> //計(jì)算整形數(shù)據(jù)的位數(shù)</p><p&
104、gt; int getIntegerSize(double n)</p><p><b> {</b></p><p> int count=0;</p><p><b> int temp;</b></p><p><b> if(n<0)</b></p
105、><p><b> temp=-n;</b></p><p><b> else</b></p><p><b> temp=n;</b></p><p><b> do</b></p><p><b> {<
106、/b></p><p><b> temp/=10;</b></p><p><b> count++;</b></p><p> }while(temp>0);</p><p> return count;</p><p><b> }<
107、;/b></p><p> //浮點(diǎn)強(qiáng)制轉(zhuǎn)換成字符串函數(shù)</p><p> char* ftoa(double num,int iSize,int dSize)</p><p><b> {</b></p><p><b> int i=0;</b></p><p&
108、gt;<b> int j=0;</b></p><p> double decimal;</p><p> int temp=(int)num;</p><p><b> int a;</b></p><p> decimal=num-temp;</p><p>
109、 if(num>=0)</p><p><b> {</b></p><p> for(i=0;i<iSize;i++)</p><p><b> {</b></p><p> a=temp/pow(10,iSize-i-1);</p><p> te
110、mp%=(int)pow(10,iSize-i-1);</p><p> result[i]=a+'0';</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p>&l
111、t;p><b> {</b></p><p> result[0]='-';</p><p> temp=-temp;</p><p> for(i=1;i<iSize+1;i++)</p><p><b> {</b></p><p>
112、 a=temp/pow(10,iSize-i);</p><p> temp%=(int)pow(10,iSize-i);</p><p> result[i]=a+'0';</p><p><b> }</b></p><p><b> }</b></p>
113、<p> if(decimal!=0)</p><p><b> {</b></p><p> result[i++]='.';</p><p> if(decimal<0)</p><p> decimal=-decimal;</p><p> tem
114、p=(int)(pow(10,dSize)*decimal);</p><p> for(j=0;j<dSize;j++)</p><p><b> {</b></p><p> a=temp/pow(10,dSize-j-1);</p><p> temp%=(int)pow(10,dSize-j-1);
115、</p><p> result[i+j]=a+'0';</p><p><b> }</b></p><p><b> }</b></p><p> else if(decimal==0)</p><p><b> {</b>
116、;</p><p> result[i]=' ';</p><p> result[i+1]=' ';</p><p> result[i+2]=' ';</p><p> result[i+3]=' ';</p><p><b> }
117、</b></p><p> return result;</p><p><b> }</b></p><p> //平方、開方、正弦、余弦、正切計(jì)算函數(shù)</p><p> double func_calc(uchar* key,int flag)</p><p><b&
118、gt; {</b></p><p><b> int i;</b></p><p> int value=0;</p><p> double temp;</p><p> double decimal;</p><p> int integer;</p>&
119、lt;p><b> int tmp;</b></p><p> if(flag>=4 && flag<=8)</p><p><b> {</b></p><p> for(i=0;key[i]!='=';i++)</p><p><b
120、> {</b></p><p> value*=10;</p><p> value+=key[i]-'0';</p><p><b> }</b></p><p> switch(flag)</p><p><b> {</b>
121、</p><p> case 4:temp=value*value;break;</p><p> case 5:temp=sqrt(value);break;</p><p> case 6:temp=sin(value*K);break;</p><p> case 7: temp=cos(value*K);break;&l
122、t;/p><p> case 8: temp=tan(value*K);break;</p><p> default: break;</p><p><b> }</b></p><p><b> }</b></p><p> else if(flag==9) /
123、/hex to dec</p><p><b> {</b></p><p> temp=hexToDec(key,count-1);</p><p><b> }</b></p><p> return temp;</p><p><b> }<
124、/b></p><p> //鍵值轉(zhuǎn)換成字符函數(shù)</p><p> uchar getkey(int value)</p><p><b> {</b></p><p> uchar temp;</p><p> switch(value)</p><p>
125、<b> {</b></p><p> case 1:temp='0';break;</p><p> case 2:temp='1';break;</p><p> case 3:temp='2';break;</p><p> case 4:temp='
126、;3';break;</p><p> case 5:temp='4';break;</p><p> case 6:temp='5';break;</p><p> case 7:temp='6';break;</p><p> case 8:temp='7';
127、break;</p><p> case 9:temp='8';break;</p><p> case 10:temp='9';break;</p><p> case 11:temp='+';break;</p><p> case 12:temp='-';break
128、;</p><p> case 13:temp='*';break;</p><p> case 14:temp='/';break;</p><p> case 15:temp='=';break;</p><p> default :break;</p><p&g
129、t;<b> }</b></p><p> return temp;</p><p><b> }</b></p><p> uchar* getValue(uchar* temp)</p><p><b> {</b></p><p><
130、;b> int i=0;</b></p><p> //int flag=0;</p><p> int left_Val=0;</p><p> int right_Val=0;</p><p> char operator;</p><p><b> int val;<
131、;/b></p><p> int val_tmp;</p><p> for(i=0;temp[i]!='=';i++)</p><p><b> {</b></p><p> if(temp[i]=='+'||temp[i]=='-'||temp[i]==
132、'*'||temp[i]=='/')</p><p><b> {</b></p><p> opr_flag=2;</p><p> operator=temp[i];</p><p><b> }</b></p><p> if(
133、temp[i]>='0' && temp[i]<='9' && opr_flag!=2)</p><p><b> {</b></p><p> left_Val*=10;</p><p> left_Val+=temp[i]-'0';</p
134、><p><b> }</b></p><p> else if(temp[i]>='0' && temp[i]<='9' && opr_flag==2)</p><p><b> {</b></p><p> righ
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)計(jì)算器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--計(jì)算器
- 單片機(jī)課程設(shè)計(jì)-計(jì)算器
- 課程設(shè)計(jì)-單片機(jī)計(jì)算器
- 單片機(jī)課程設(shè)計(jì)——計(jì)算器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--簡易計(jì)算器
- 單片機(jī)課程設(shè)計(jì)簡易計(jì)算器
- 單片機(jī)課程設(shè)計(jì)---計(jì)算器實(shí)驗(yàn)
- 單片機(jī)課程設(shè)計(jì)-簡易計(jì)算器
- 單片機(jī)課程設(shè)計(jì)簡易計(jì)算器
- 單片機(jī)課程設(shè)計(jì)報(bào)告---計(jì)算器
- 單片機(jī)課程設(shè)計(jì)--簡易計(jì)算器
- 基于單片機(jī)的計(jì)算器設(shè)計(jì)-單片機(jī)課程設(shè)計(jì)
- 單片機(jī)系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)--計(jì)算器
- 51單片機(jī)計(jì)算器設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)---單片機(jī)簡易計(jì)算器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---簡易計(jì)算器
- 單片機(jī)課程設(shè)計(jì)報(bào)告計(jì)算器2
- 單片機(jī)課程設(shè)計(jì)報(bào)告-簡易計(jì)算器
- 單片機(jī)課程設(shè)計(jì)--簡易數(shù)字計(jì)算器
評(píng)論
0/150
提交評(píng)論