版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGEPAGE27專業(yè)綜合實訓(xùn)報告學(xué)院:電氣工程學(xué)院班級:09工自三班姓名:袁歡歡朱夢琪邵帥學(xué)號:090103010156090103010155090103010150目錄目錄…………………………1第1章概述………………21.1計算器的意義及實驗?zāi)康摹?1.2軟硬件開發(fā)環(huán)境……………………31.3STC89C52RC單片機概述…………3第2章計算其基本功能與設(shè)計………72.1計算器基本實現(xiàn)功能………………72.2設(shè)計與實現(xiàn)方法……………7第3章計算器模塊介紹…………………93.1輸入模塊:鍵盤掃描………………93.2運算模塊:單片機控制………………103.3顯示模塊:數(shù)碼管顯示………………11第4章硬件電路設(shè)計……………………124.1主要器件………………124.2功能和操作……………124.3硬件調(diào)試………………12第5章軟件設(shè)計…………145.1軟件主要程序設(shè)計……………………145.2實現(xiàn)程序………………15第6章課程設(shè)計心得體會………………27第1章概述1.1計算器的意義及實驗?zāi)康碾S著社會的發(fā)展,科學(xué)的進步,人們的生活水平在逐步的提高,尤其是微電子技術(shù)的發(fā)展,猶如雨后春筍般的變化。單片機的應(yīng)用已經(jīng)越來越貼近生活,用單片機來實現(xiàn)一些電子設(shè)計也變得容易起來。計算器在人們的日常中是比較的常見的電子產(chǎn)品之一??墒撬€在發(fā)展之中,以后必將出現(xiàn)功能更加強大的計算器,基于這樣的理念,本次設(shè)計是用單片機來設(shè)計的計算器。本系統(tǒng)以AT89C52為單片機,有矩陣鍵盤掃描,數(shù)碼管顯示,實現(xiàn)最高六位兩個、三個數(shù)的加減乘除功能。1.2軟硬件開發(fā)環(huán)境軟件環(huán)境:KeiluVision4硬件環(huán)境:PC機一臺,STC89C52RC單片機一個STC89C52RC單片機引腳圖如下所示:1.3STC89C52RC單片機概述STC89C52RC單片機是宏晶科技推出的新一代高速/低功耗/超強抗干擾的單片機,指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘/機器周期和6時鐘/機器周期可以任意選擇。主要特性如下:1.增強型8051單片機,6時鐘/機器周期和12時鐘/機器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051.2.工作電壓:5.5V~3.3V(5V單片機)/3.8V~2.0V(3V單片機)3.工作頻率范圍:0~40MHz,相當(dāng)于普通8051的0~80MHz,實際工作頻率可達48MHz4.用戶應(yīng)用程序空間為8K字節(jié)5.片上集成512字節(jié)RAM6.通用I/O口(32個)復(fù)位后為:,P1/P2/P3/P4是準(zhǔn)雙向口/弱上拉,P0口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為I/O口用時,需加上拉電阻。7.ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程序,數(shù)秒即可完成一片8.具有EEPROM功能9.具有看門狗功能10.共3個16位定時器/計數(shù)器。即定時器T0、T1、T211.外部中斷4路,下降沿中斷或低電平觸發(fā)電路,PowerDown模式可由外部中斷低電平觸發(fā)中斷方式喚醒12.通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART13.工作溫度范圍:-40~+85℃(工業(yè)級)/0~75℃(商業(yè)級)14.PDIP封裝STC89C52RC單片機的工作模式掉電模式:典型功耗<0.1μA,可由外部中斷喚醒,中斷返回后,繼續(xù)執(zhí)行原程序
空閑模式:典型功耗2mA典型功耗正常工作模式:典型功耗4Ma~7mA典型功耗掉電模式可由外部中斷喚醒,適用于水表、氣表等電池供電系統(tǒng)及便攜設(shè)備
STC89C52RC引腳功能說明VCC(40引腳):電源電壓VSS(20引腳):接地P0端口(P0.0~P0.7P0.7,39~32引腳):P0口是一個漏極開路的8位雙向I/O口。作為輸出端口,每個引腳能驅(qū)動8個TTL負載,對端口P0寫入每個引腳能驅(qū)動寫入“1”時,可以作為高阻抗輸入。在訪問外部程序和數(shù)據(jù)存儲器時在訪問外部程序和數(shù)據(jù)存儲器時,P0口也可以提供低8位地址和8位數(shù)據(jù)的復(fù)用總線位數(shù)據(jù)的復(fù)用總線。此時,P0口內(nèi)部上拉電阻有效。在FlashROM編在程時,P0端口接收指令字節(jié)端口接收指令字節(jié);而在校驗程序時,則輸出指令字節(jié)則輸出指令字節(jié)。驗證時,要求外接上拉電阻。P1端口(P1.0~P1.7,1~8引腳):P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。P1的輸出緩沖器可驅(qū)動(吸收或者輸出電流方式)4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1口作輸入口使用時,因為有內(nèi)部上拉電阻,那些被外部拉低的引腳會輸出一個電流()。此外,P1.0和P1.1還可以作為定時器/計數(shù)器2的外部技術(shù)輸入(P1.0/T2)和定時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體參見下表:在對FlashROM編程和程序校驗時,P1接收低8位地址。表XXP1.0和P1.1引腳復(fù)用功能P2端口(P2.0~P2.7,21~28引腳):P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可以驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電平,這時可用作輸入口。P2作為輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流(I)。在訪問外部程序存儲器和16位地址的外部數(shù)據(jù)存儲器(如執(zhí)行“MOVX@DPTR”指令)時,P2送出高8位地址。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行“MOVX@R1”指令)時,P2口引腳上的內(nèi)容(就是專用寄存器(SFR)區(qū)中的P2寄存器的內(nèi)容),在整個訪問期間不會改變。在對FlashROM編程和程序校驗期間,P2也接收高位地址和一些控制信號。P3端口(P3.0~P3.7,10~17引腳):P3是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。P3的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫入1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。P3做輸入口使用時,因為有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸入一個電流()。
在對FlashROM編程或程序校驗時,P3還接收一些控制信號。
P3口除作為一般I/O口外,還有其他一些復(fù)用功能,如下表所示:表XXP3口引腳復(fù)用功能復(fù)用功能RST(9引腳):復(fù)位輸入。當(dāng)輸入連續(xù)兩個機器周期以上高電平時為有效,用來完成單片機單片機的復(fù)位初始化操作。看門狗計時完成后,RST引腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復(fù)位高電平有效。ALE/ROG(30引腳)地址鎖存控制信號:(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在Flash編程時,此引腳(ROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址位8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOV指令時有效。否則,ALE將被微弱拉高。這個ALE使能標(biāo)志位(地址位8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。
:外部程序存儲器選通信號(SEN)是外部程序存儲器選SEN(29引腳)
通信號。當(dāng)STC89C52RC從外部程序存儲器執(zhí)行外部代碼時,SEN在每個機器周期被激活兩次,而訪問外部數(shù)據(jù)存儲器時,SEN將不被激活。A/VPP(31引腳)訪問外部程序存儲器控制信號。:為使能從0000H到FFFFH的外部程序存儲器讀取指令,A必須接GND。注意加密方式1時,A將內(nèi)部鎖定位RESET。為了執(zhí)行內(nèi)部程序指令,A應(yīng)該接VCC。在Flash編程期間,A也接收12伏VPP電壓。XTAL1(19引腳):振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2(18引腳):振蕩器反相放大器的輸入端。第2章計算其基本功能與設(shè)計2.1計算器基本實現(xiàn)功能1.計算器可顯示六位數(shù)字,有板子的開關(guān)按鈕控制計算器的開關(guān)和清除數(shù)碼管顯示的結(jié)果。2.設(shè)計4×4鍵盤,分別表示0~9、小數(shù)點(.)、+、-、×、/和=,輸入的數(shù)字從設(shè)計的鍵盤輸入;3.第一次按下時,顯示“D1”;第二次按下時,顯示“D1D2”;第三次按下時,顯示“D1D2D4.可實現(xiàn)兩個數(shù)或三個數(shù)的加、減、乘、除運算,并且有運算優(yōu)先級,如:NUM1+NUM2*NUM3,先計算后兩數(shù)之積,在于第一個數(shù)相加。5.可實現(xiàn)小數(shù)運算,在結(jié)果有小數(shù)時,只保留小數(shù)點后兩位結(jié)果。2.2設(shè)計與實現(xiàn)方法為了滿足計算器的基本要求,可以基本的運算(加減乘除),我們采用基于MSC-51單片機設(shè)計計算器,并用LED數(shù)碼管顯示數(shù)據(jù),4*4的矩陣鍵盤實現(xiàn)數(shù)據(jù)輸入。根據(jù)功能和指標(biāo)要求,本系統(tǒng)選用MSC-51單片機為主控機。通過已固化好的的外圍接口電路,實現(xiàn)對計算器的設(shè)計。具體設(shè)計考慮如下:由于要設(shè)計的是簡單的計算器,可以進行四則運算,對數(shù)字的大小范圍要求不高,選用6個LED數(shù)碼管顯示數(shù)據(jù)和結(jié)果。另外鍵盤包括數(shù)字鍵(0~9)、符號鍵(+、-、×、÷)、小數(shù)點鍵和等號鍵,故只需要16個按鍵即可。3、系統(tǒng)模塊圖如下所示:單片機單片機輸入模塊運算模塊運算模塊顯示模塊第3章計算器模塊介紹3.1輸入模塊:鍵盤掃描計算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨立按鍵的方式,在這種情況下,編程會很簡單,但是會占用大量的I/O口資源,因此在很多情況下都不采用這種方式。為此,我們引入了矩陣鍵盤的應(yīng)用,采用四條I/O線作為行線,四條I/O線作為列線組成鍵盤。在行線和列線的每個交叉點上設(shè)置一個按鍵。這樣鍵盤上按鍵的個數(shù)就為4×4個。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機系統(tǒng)中I/O口的利用率。矩陣鍵盤的工作原理:計算器的鍵盤布局如圖3所示:一般有16個鍵組成,在單片機中正好可以用一個P口實現(xiàn)16個按鍵功能,這種形式在單片機系統(tǒng)中也最常用。010123456789.+-*/=有板子內(nèi)部固化電路可知,4×4矩陣鍵盤的行線與P3.0、P3.1、P3.2、P3.3相連,列線與P3.4、P3.5、P3.6、P3.7相連,判斷有無按鍵按下的方法是:第一步,置列線P3.4~P3.7為輸入狀態(tài),從行線P3.0~P3.3輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。第二步,行線輪流輸出低電平,從列線P3.4~P3.7讀入數(shù)據(jù),若有某一列為低電平,則對應(yīng)行線上有鍵按下。綜合一二兩步的結(jié)果,可確定按鍵編號。但是鍵閉合一次只能進行一次鍵功能操作,因此須等到按鍵釋放后,再進行鍵功能操作,否則按一次鍵,有可能會連續(xù)多次進行同樣的鍵操作。3.2運算模塊:單片機控制MCS-51單片機是在一塊芯片中集成了CPU、RAM、ROM、定時器/計數(shù)器和多功能I/O等一臺計算機所需要的基本功能部件。如果按功能劃分,它由如下功能部件組成,即微處理器(CPU)、數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM/EPROM)、并行I/O口、串行口、定時器/計數(shù)器、中斷系統(tǒng)及特殊功能寄存器(SFR)。單片機是靠程序運行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨特的一些功能,通過使用單片機編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性!因此我們采用單片機作為計算器的主要功能部件,可以進行很快地實現(xiàn)運算功能。 3.3顯示模塊:數(shù)碼管顯示發(fā)光二極管LED是單片機應(yīng)用系統(tǒng)中的一宗簡單而常用的輸出設(shè)備,其在系統(tǒng)中的主要作用是顯示單片機的輸出數(shù)據(jù)、狀態(tài)等。因而作為典型的外圍器件,LED顯示單元是反映系統(tǒng)輸出和操作輸入的有效器件。LED具備數(shù)字接口可以方便的和大年紀(jì)系統(tǒng)連接;它的優(yōu)點是價格低,壽命長,對電壓電流的要求低及容易實現(xiàn)多路等,因而在單片機應(yīng)用系統(tǒng)中獲得了廣泛的應(yīng)用。通常的數(shù)碼顯示器是由7段條形的LED組成(如圖5所示),點亮適當(dāng)?shù)淖侄?,就可顯示出不同的數(shù)字。我們采用8段數(shù)碼管,其中位于顯示器右下角的LED作小數(shù)點用。LED顯示器有兩種不同的形式:共陰極和共陽極。本次設(shè)計采用共陰極接法(如下圖所示)。如上圖所示,數(shù)碼管的段選和位選都是由P0端口控制的,74HC573是鎖存器,單片機分時的將段選碼和位選碼送入兩鎖存器,然后進行顯示。第4章硬件電路設(shè)計4.1主要器件單片機采用STC89C51RC單片機,它能夠滿足數(shù)據(jù)的采集、控制和數(shù)據(jù)處理的需求。顯示用64.2功能和操作加減乘除運算和顯示。上電。計算。按下數(shù)字鍵,屏幕顯示要運算的第一個數(shù)字,再按下符號鍵,然后再按下數(shù)字鍵,屏幕顯示要運算的第二個數(shù)字,最后按下“﹦”號鍵,屏幕上顯示出計算結(jié)果。如果要再次計算按下單片機的復(fù)位鍵,重新初始化。4.3硬件調(diào)試4.3.1邏輯錯誤:它是由設(shè)計錯誤或加工過程中的工藝性錯誤所造成的。這類錯誤包括錯線、開路、短路等。元器件失效:有兩方面的原因:一是器件本身已損壞或性能不符合要求;二是組裝錯誤造成元件失效,如電解電容、二極管的極性錯誤、集成電路安裝方向錯誤等??煽啃圆睿阂鹂煽啃圆畹脑蚝芏?,如金屬化孔、接插件接觸不良會造成系統(tǒng)時好時壞,經(jīng)不起振動;走線和布局不合理也會引起系統(tǒng)可靠性差。電源故障:若樣機有電源故障,則加電后很容易造成器件損壞。電源故障包括電壓值不符合設(shè)計要求,電源引線和插座不對,功率不足,負載能力差等。4.3.2包括多級調(diào)試和聯(lián)機調(diào)試。在調(diào)試過程中要針對可能出現(xiàn)的故障認真分析,直至檢查出原因并且排除。第5章軟件設(shè)計5.1軟件主要程序設(shè)計5.1.1鍵盤掃描程序此程序為鍵盤掃描中第一次掃描所用的程序,這段程序的主要過程為:初始化時,將P3.0置為低電平,通過與0xf0相與來判斷所按下的鍵,此次為掃描位于P3.0那一行的鍵,若相與結(jié)果為0xe0時說明P3.4所檢測出的為低電平,閉合的鍵應(yīng)為P3.0行與P3.4列的交叉處的鍵。若相與結(jié)果為0xd0則P3.5所檢測為低電平,閉合的鍵應(yīng)為P3.0行與P3.5列的交叉處的鍵。若相與結(jié)果為0xb0則P3.6所檢測為低電平,閉合的鍵應(yīng)為P3.0行與P3.6列的交叉處的鍵。若相與結(jié)果為0x70則P3.7所檢測為低電平,閉合的鍵應(yīng)為P3.0行與P3.7列的交叉處的鍵。要把16個鍵盤全部掃描完需要進行4次這樣的逐行掃描,所用方法相同程序類似分別另P3.1,P3.2,P3.3為低電平執(zhí)行相同操作。5.1.2顯示程序此程序為顯示程序的一部分,其同源程序代碼中的數(shù)據(jù)定義部分,顯示驅(qū)動程序和碼制轉(zhuǎn)換程序一起來實現(xiàn)數(shù)據(jù)在數(shù)碼管中的顯示。如當(dāng)?shù)谝淮屋斎霝?,第二次輸入為2時,則將1在數(shù)碼管中向前移一位即第二位顯示管上,將2放到第一位顯示管上,在通過碼制轉(zhuǎn)換使其轉(zhuǎn)換為12來執(zhí)行運算,如果繼續(xù)輸入數(shù)字則它們將逐個的向前移動,直到輸入6位后結(jié)束。5.1.3簡單運算程序此設(shè)計能實現(xiàn)簡單運算,此程序?qū)崿F(xiàn)加法運算,則根據(jù)程序首先通過第一次鍵盤掃描確定出所按下的鍵對應(yīng)的輸出數(shù)據(jù),然后通過顯示程序經(jīng)數(shù)碼管顯示出來,接著進行鍵盤掃描若確定出按下的鍵所對應(yīng)的字符還為數(shù)據(jù)則把第一次顯示的數(shù)字在數(shù)碼管上左移一個管子,然后把第二次掃描的數(shù)據(jù)放入右邊第一個管子中,繼續(xù)掃描直到確定出按下的鍵為“+”則保存前面所掃描的數(shù)據(jù)到緩沖區(qū),然后接著掃描鍵盤直到確定出加數(shù),最后當(dāng)掃描出所按下的鍵為“=”時,則保存數(shù)據(jù)到緩沖區(qū),根據(jù)程序計算出其相加結(jié)果。并通過程序及原理圖顯示出來。通過這個程序還可實現(xiàn)連加功能。整個源程序還可以實現(xiàn)加,減,乘,除四個基本運算,具體的減,乘,除運算程序在源程序中有詳細顯示。當(dāng)檢測出所閉合的為這些按鍵時,通過程序?qū)?zhí)行相似過程最后通過數(shù)碼管顯示出結(jié)果。5.2實現(xiàn)程序#include<reg52.h>/*包含的頭文件*/#defineucharunsignedchar/*宏定義*/#defineuintunsignedintsbitdula=P2^6;sbitwela=P2^7;ucharLed[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,};/*數(shù)碼管段選*/longfloatNumber[]={0,0,0,0};/*數(shù)碼管顯示位控制寄存器*/ucharA[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};longintD[]={0,0,0,0,0,0,0,0};//數(shù)碼管顯示內(nèi)容寄存器ucharcodeC[]={0xff,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};/*數(shù)碼管位選*//*列掃描控制LED1位2位3位4位5位6位*/uchark=16;/*按鍵對外控制*/ucharb;/*按鍵【+】【-】【*】【/】對外的控制*/longfloatOut_put;/*定義變量【Out_put】作為結(jié)果*/uchare=0;/*數(shù)字的位存儲遞進的控制*/ucharg=0;/*運算方式的控制變量*/ucharL=0;/*運算方式的控制變量*/ucharg1=0;/*運算方式的控制變量*/ucharg2=0;/*運算方式的控制變量*/ucharg3=0;/*運算方式的控制變量*/ucharg4=0;/*運算方式的控制變量*/charj=-1;/*與Number[]數(shù)組連用*/ucharm=0;/*按鍵【=】的控制變量*/ucharn=0;/*按鍵【.】的控制變量*/ucharx=0;/*小數(shù)點個數(shù)的記錄變量*/ucharxo=0;/*控制開始計數(shù)小數(shù)點的變量*/longintresult;voidDelay(uinto)/*延時函數(shù)delay()的定義*/{uinti,j;for(i=0;i<o;i++){for(j=0;j<121;j++){;}}}voidshow(longfloatOut_put)//結(jié)果顯示{ucharr;uchark;longintq,p;uchars=0;uchari;longinttemp;temp=Out_put;if((Out_put-temp)!=0){result=Out_put*100;r=3;}//非整數(shù)else{result=Out_put;r=0;}p=result;if(m==1){if(result<0){result=-result;p=result;q=result;for(i=1;i<=6;i++){q=q/10;if(q==0){k=i;i=7;}}P0=0x40;dula=1;dula=0;P0=C[k+1];wela=1;wela=0;Delay(1);}//負號的顯示if(temp==0)P0=0xbf;elseP0=0x80;dula=1;//顯示小數(shù)點dula=0;P0=C[r];wela=1;wela=0;Delay(1);P0=0x00;result=p;P0=Led[result%10];dula=1;dula=0;P0=C[1];wela=1;wela=0;result=result/10;Delay(1);if((result%10==0)&&(result%100==0)&&(result%1000==0)&&(result%10000==0)){P0=0x00;}else{P0=Led[result%10];dula=1;dula=0;P0=C[2];wela=1;wela=0;result=result/10;Delay(1);}if((result%10==0)&&(result%100==0)&&(result%1000==0)){P0=0x00;}else{P0=Led[result%10];dula=1;dula=0;P0=C[3];wela=1;wela=0;result=result/10;Delay(1);}if((result%10==0)&&(result%100==0)){P0=0x00;}else{P0=Led[result%10];dula=1;dula=0;P0=C[4];wela=1;wela=0;result=result/10;Delay(1);}if((result%10==0)){P0=0x00;}else{P0=Led[result%10];dula=1;dula=0;P0=C[5];wela=1;wela=0;result=result/10;Delay(1);}if(result==0){P0=0x00;}else{P0=Led[result%10];dula=1;dula=0;P0=C[6];wela=1;wela=0;result=result/10;Delay(1);}}}voidIn_put()//輸入函數(shù)輸入小數(shù)加小數(shù)點{uchari;if(k>=0&&k<=9)switch(e){//用來存放數(shù)值case6:D[5]=D[4];A[5]=A[4];case5:D[4]=D[3];A[4]=A[3];case4:D[3]=D[2];A[3]=A[2];case3:D[2]=D[1];A[2]=A[1];case2:D[1]=D[0];A[1]=A[0];case1:if(n==0){D[0]=k;A[0]=Led[k];if(xo==1)x++;}if(n==1){A[0]=Led[k]|0x80;xo=1;n=0;}}if(k>=11&&k<=15&&b==1){switch(k){case11:g1++;g++;if(g2==1)L=1;if(g3==1)L=2;if(g4==1)L=3;break;//+case12:g2++;g++;if(g1==1)L=4;if(g3==1)L=5;if(g4==1)L=6;break;//-case13:g3++;g++;if(g1==1)L=7;if(g2==1)L=8;if(g4==1)L=9;break;//*case14:g4++;g++;if(g1==1)L=10;if(g2==1)L=11;if(g3==1)L=12;break;///}j++;Number[j]=100000*D[5]+10000*D[4]+1000*D[3]+100*D[2]+10*D[1]+D[0];for(i=1;i<=x;i++){Number[j]=(float)Number[j]/10;}x=0;for(i=0;i<=7;i++)//數(shù)據(jù)存儲器清零D[i]=0;for(i=0;i<=8;i++)//數(shù)據(jù)顯示清零{A[i]=0x00;}b=0;e=0;xo=0;}}voidKey_scan()//鍵盤掃描函數(shù)Key_scan(){unsignedchartemp;P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0){Delay(10);if(temp!=0xf0){temp=P3;switch(temp){case0xee:k=0; e++;In_put();break;case0xde:k=1; e++;In_put();break;case0xbe:k=2; e++;In_put();break;case0x7e:k=3; e++;In_put();break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0){Delay(10);if(temp!=0xf0){temp=P3;switch(temp){case0xed:k=4; e++;In_put();break;case0xdd:k=5; e++;In_put();break;case0xbd:k=6; e++;In_put();break;case0x7d:k=7; e++;In_put();break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0){Delay(10);if(temp!=0xf0){temp=P3;switch(temp){case0xeb:k=8; e++;In_put();break;case0xdb:k=9; e++;In_put();break;case0xbb:n=1;In_put();break;case0x7b:k=11; b=1;In_put();break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xf7;temp=P3;temp=temp&0xf0;if(temp!=0xf0){Delay(10);if(temp!=0xf0){temp=P3;switch(temp){case0xe7:k=12; b=1;In_put();break;case0xd7:k=13; b=1;In_put();break;case0xb7:k=14; b=1;In_put();break;case0x77:k=15; m=1;b=1;In_put();break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}}voidYun_suan(){if(g1==1&&g==1)Out_put=Number[0]+Number[1];if(g2==1&&g==1)Out_put=Number[0]-Number[1];if(g3==1&&g==1)Out_put=Number[0]*Number[1];if(g4==1&&g==1)Out_put=Number[0]/Number[1];if(g1==2&&g==2)Out_put=Number[0]+Number[1]+Number[2];if(g2==2&&g==2)Out_put=Number[0]-Number[1]-Number[2];if(g3==2&&g==2)Out_put=Number[0]*Number[1]*Number[2];if(g4==2&&g==2)Out_put=Number[0]/Number[1]/Number[2];if(L==1)Out_put=Number[0]-Number[1]+Number[2];if(L==2)Out_put=N
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人誠信信譽保障承諾書5篇
- 家屬遵守法律義務(wù)承諾書3篇
- 單位合同簽訂及履行承諾書6篇
- 安全生產(chǎn)萬無一失承諾書(5篇)
- 書法篆刻管理制度規(guī)范
- 配電房設(shè)備驗收制度規(guī)范
- 制定規(guī)范性三統(tǒng)一制度
- 公務(wù)員管理制度與規(guī)范
- 堅持嚴格規(guī)范煙草制度
- 酒店停車場門崗制度規(guī)范
- 2025年黨建知識競賽題及答案
- 《光伏發(fā)電技術(shù)》課件(共七章)
- 2025年國家開放大學(xué)《電子政務(wù)概論》期末考試備考題庫及答案解析
- 醫(yī)療器械使用與維護常見問題匯編
- 中遠海運集團筆試題庫2025
- 企業(yè)員工培訓(xùn)效果評估報告模板
- 醫(yī)療器械胰島素泵市場可行性分析報告
- 地鐵施工現(xiàn)場防臺風(fēng)措施
- 種植業(yè)合作社賬務(wù)處理
- 【麗江玉龍旅游薪酬制度的創(chuàng)新研究6100字】
- 公司兩權(quán)分離管理制度
評論
0/150
提交評論