2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p>  封面—————————————————————P1</p><p>  目錄—————————————————————P2</p><p>  前言—————————————————————P3</p><p>  關(guān)鍵字——————————————————

2、——P3</p><p>  原理與總體方案————————————————P3</p><p>  硬件設(shè)計———————————————————P6</p><p>  調(diào)試—————————————————————P10</p><p>  測試與分析——————————————————P11</p><p> 

3、 總結(jié)—————————————————————P13</p><p>  附件—————————————————————P14</p><p><b>  前言</b></p><p>  近幾年,隨著大規(guī)模集成電路的發(fā)展,各種便攜式嵌入式設(shè)備,具有十分廣闊的市場前景。嵌入式系統(tǒng)是一種專用的計算機系統(tǒng),作為裝置或設(shè)備的一部分。通常,嵌入式系統(tǒng)

4、是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數(shù)字接口的設(shè)備,如手表、微波爐、錄像機、汽車等,都使用嵌入式系統(tǒng),有些嵌入式系統(tǒng)還包含操作系統(tǒng),但大多數(shù)嵌入式系統(tǒng)都是是由單個程序?qū)崿F(xiàn)整個控制邏輯。在嵌入式系統(tǒng)中,數(shù)據(jù)和命令通過網(wǎng)絡(luò)接口或串行口經(jīng)過ARM程序處理后,或顯示在LCD上,或傳輸?shù)竭h(yuǎn)端PC上。</p><p>  本文通過周立功的LPC2106芯片完成的簡易計算器,正是對嵌入式應(yīng)用的學(xué)習(xí)

5、和探索。</p><p><b>  一、摘要:</b></p><p>  計算器一般是指“電子計算器”,是能進(jìn)行數(shù)學(xué)運算的手持機器,擁有集成電路芯片。對于嵌入式系統(tǒng),以其占用資源少、專用性強,在汽車電子、航空和工控領(lǐng)域得到了廣泛地應(yīng)用。本設(shè)計就是先通過C語言進(jìn)行相應(yīng)程序的編寫然后在ADS中進(jìn)行運行最后導(dǎo)入PROTUES進(jìn)行仿真。最后利用ARM中的LPC2106芯片

6、來控制液晶顯示器和4X4矩陣式鍵盤,從而實現(xiàn)簡單的加、減、乘、除等四則運算功能。 </p><p>  關(guān)鍵字:中斷,掃描,仿真,計算</p><p>  二、原理與總體方案:</p><p>  主程序在初始化后調(diào)用鍵盤程序,再判斷返回的值。若為數(shù)字0—9,則根據(jù)按鍵的次數(shù)進(jìn)行保存和顯示處理。若為功能鍵,則先判斷上次的功能鍵,根據(jù)代號執(zhí)行不同功能,并將按鍵次數(shù)清零

7、。程序中鍵盤部分使用行列式掃描原理,若無鍵按下則調(diào)用動態(tài)顯示程序,并繼續(xù)檢測鍵盤;若有鍵按下則得其鍵值,并通過查表轉(zhuǎn)換為數(shù)字0—9和功能鍵與清零鍵的代號。最后將計算結(jié)果拆分成個、十、百位,再返回主程序繼續(xù)檢測鍵盤并顯示;若為清零鍵,則返回主程序的最開始。</p><p>  電路設(shè)計與原理:通過LPC2106芯片進(jìn)行相應(yīng)的設(shè)置來控制LCD顯示器。而通過對鍵盤上的值進(jìn)行掃描,把相應(yīng)的鍵值通過MM74C922芯片進(jìn)行

8、運算從而讓ARM芯片接收。</p><p>  1.系統(tǒng)整體流程圖:</p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  2.</b></p><p><b>  3.寄存器初始化:<

9、;/b></p><p>  2)仿真設(shè)計 </p><p><b>  仿真電路圖:</b></p><p><b>  仿真圖形:</b></p><

10、p>  計算加法2.計算減法(結(jié)果為負(fù)數(shù))</p><p>  3.計算減法(結(jié)果為正數(shù))4.計算乘法</p><p>  5.計算除法 (除法只能進(jìn)行整除,無小數(shù)) </p><p>  注:本設(shè)計不能進(jìn)行連續(xù)運算,只能進(jìn)行當(dāng)次運算,且只能進(jìn)行單行顯示。進(jìn)行除法時會自動取整,無小數(shù)。顯示器上不會顯示加減乘除等運算符號,只有操作數(shù)和操作結(jié)果。&l

11、t;/p><p><b>  三、硬件設(shè)計:</b></p><p><b>  3.1元件清單:</b></p><p>  注:無實物,以電路設(shè)計圖為依準(zhǔn)。</p><p>  3.2鍵盤接口電路:</p><p>  計算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨立

12、按鍵的方式,在這種情況下,編程會很簡單,但是會占用大量的I/O 口資源,因此在很多情況下都不采用這種方式,而是采用矩陣鍵盤的方案。矩陣鍵盤采用四條I/O 線作為行線,四條I/O 線作為列線組成鍵盤,在行線和列線的每個交叉點上設(shè)置一個按鍵。這樣鍵盤上按鍵的個數(shù)就為4×4個。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機系統(tǒng)中I/O 口的利用率。</p><p>  矩陣鍵盤的工作原理:</p><

13、;p>  計算器的鍵盤布局如圖2.1所示:一般有16個鍵組成,在單片機中正好可以用一個P口實現(xiàn)16個按鍵功能,這種形式在單片機系統(tǒng)中也最常用。</p><p>  圖2.1矩陣鍵盤布局圖</p><p>  電路中采用4*4鍵盤作為輸入電路模塊的話,電路連線會比較簡單,而且這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機系統(tǒng)中I/O 口的利用率。但是在硬件電路設(shè)計的過程中,實驗室沒有提供矩陣鍵盤

14、,所以我們將4*4的矩陣鍵盤換成了16個獨立按鍵。采用獨立按鍵的方式的話,會占用大量的I/O 口資源,但是在這種情況下,編程會很簡單。</p><p>  矩陣鍵盤內(nèi)部電路圖如圖2.2所示。</p><p>  圖2.2 矩陣鍵盤內(nèi)部電路圖</p><p><b>  3.3顯示模塊:</b></p><p>  本設(shè)計

15、采用LCD1液晶顯示屏來顯示輸出數(shù)據(jù)。通過D0-D7引腳向LCD1寫指令字或?qū)憯?shù)據(jù)以使LCD1實現(xiàn)不同的功能或顯示相應(yīng)數(shù)據(jù)。LCD1管腳圖如圖2.3所示。</p><p>  圖2.3 LCD1管腳圖</p><p>  3.4各模塊的特性與作用:</p><p>  3.4.1LPC2106的特性及引腳功能:</p><p>  LPC2

16、106 是基于一個支持實時仿真和跟蹤的32 位ARM CPU 的微處理器,并帶有256kB 嵌入的高速Flash 存儲器。128 位寬度的存儲器接口和獨特的加速結(jié)構(gòu)使32 位代碼能夠最大時鐘速率下運行,并具有廣泛應(yīng)用。含向量中斷控制器,多個串行接口,兩個三十二位定時器,片內(nèi)晶振的操作頻率范圍:10MHZ-25MHZ,兩個低功耗模式:空閑和掉電.</p><p>  CPU操作電壓范圍:1.65V-1.95V<

17、;/p><p>  圖2.4 LPC2106管腳圖</p><p><b>  管腳說明:</b></p><p>  V3、V18:供電電壓</p><p>  Vss、DBGSEL:接地</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 </p><

18、;p>  XTAL2:來自反向振蕩器的輸出。</p><p>  P0.0-P0.14作為GPIO接口,P0.15作為EINT2接口。</p><p>  3.4.2 LCD的特性:</p><p>  LCD 顯示屏可以采用字符顯示,當(dāng)使用字符顯示方式時,可以直接用外碼作為輸入數(shù)據(jù),由顯示屏自動給出顯示字模數(shù)據(jù),而無需由微處理器提供字模。</p>

19、<p>  3.4.3 數(shù)字式鍵盤的特性:</p><p>  數(shù)字式鍵盤的實質(zhì)仍是行列式鍵盤,4 根行線和4 根列線通過下拉電阻接地,在其表面貼有標(biāo)示對應(yīng)按鍵的膜,使得易于觀察和操作,更加貼近使用者的需求。</p><p>  3.4.4 MM74C922的特性及其引腳功能:</p><p>  MM74C922具有功耗低,電壓為3-5V,三態(tài)門輸出

20、,與LPTTL兼容,輸出鎖存按下最后的鍵,用一個電容器就可以消除鍵盤抖動,兩鍵輪回,行具有上拉功能,具有芯片內(nèi)或芯片外時鐘,最大開關(guān)電阻為管腳說明:</p><p>  A-D為行鍵掃描電平輸出端,1-4為列鍵輸入讀取端;</p><p>  OSC為振蕩器的外接引線端,可用外部的輸入脈沖或電容器;</p><p>  OE為數(shù)據(jù)輸出端,低電平有效;DAV為數(shù)據(jù)輸出

21、有效,高電平有效;VCC為電源端,接3-5V;GND為接地端。</p><p>  本設(shè)計中選用LPC2106的P0.0~P0.10 與LCD 顯示屏相連,它們所輸出信號控制顯示屏上的顯示,其中P0.0~P0.7 分別接顯示屏的D0~D7,P0.8~P0.10分別接顯示屏的RS、RW、E 接口;選用LPC2106的P0.11~P0.14 連續(xù)4 個IO口與芯片MM74C922和計算器鍵盤相連,可通過反轉(zhuǎn)法檢測到按

22、下按鍵的鍵碼,再通過查鍵盤對應(yīng)的字符編碼使LCD 顯示,其中A~D依次接鍵盤的4 根行線,1~4依次接鍵盤的4 根列線。</p><p><b>  管腳說明:</b></p><p>  A-D為行鍵掃描電平輸出端,1-4為列鍵輸入讀取端;</p><p>  OSC為振蕩器的外接引線端,可用外部的輸入脈沖或電容器;</p>&

23、lt;p>  OE為數(shù)據(jù)輸出端,低電平有效;DAV為數(shù)據(jù)輸出有效,高電平有效;VCC為電源端,接3-5V;GND為接地端。</p><p>  本設(shè)計中選用LPC2106的P0.0~P0.10 與LCD 顯示屏相連,它們所輸出信號控制顯示屏上的顯示,其中P0.0~P0.7 分別接顯示屏的D0~D7,P0.8~P0.10分別接顯示屏的RS、RW、E 接口;選用LPC2106的P0.11~P0.14 連續(xù)4 個

24、IO口與芯片MM74C922和計算器鍵盤相連,可通過反轉(zhuǎn)法檢測到按下按鍵的鍵碼,再通過查鍵盤對應(yīng)的字符編碼使LCD 顯示,其中A~D依次接鍵盤的4 根行線,1~4依次接鍵盤的4 根列線。</p><p><b>  四、調(diào)試:</b></p><p><b>  4.1 GPIO:</b></p><p>  LPC200

25、0系列ARM的GPIO具有如下特性:</p><p>  可以獨立控制每個GPIO口的方向(輸入/輸出模式);</p><p>  可以獨立設(shè)置每個GPIO的輸出狀態(tài)(高/低電平);</p><p>  所有GPIO口在復(fù)位后默認(rèn)為輸入狀態(tài)。</p><p>  每個作為GPIO功能的引腳受到四個寄存器控制,分別為控制方向的IOxDIR、控制

26、輸出電平狀態(tài)的IOxSET和IOxCLR、反映引腳電平狀態(tài)的IOxPIN。這四個寄存器構(gòu)成一組,而一組寄存器控制著一個端口(P0、P1、P2或P3)。</p><p><b>  注意事項:</b></p><p>  引腳設(shè)置為輸出方式時,輸出狀態(tài)由IOxSET和IOxCLR中最后操作的寄存器決定。</p><p>  LPC2000系列AR

27、M大部分的I/O引腳為推挽方式輸出,但是具有總線功能的I/O引腳為開漏輸出(P0.2/3和P0.11/14)。使用這些開漏輸出的引腳作為GPIO功能,并用于高電平輸出或者引腳狀態(tài)輸入時,要接上拉電阻才能正常使用。</p><p>  推挽輸出的I/O引腳正常拉出/灌入電流均為4mA,短時間極限值為40mA。</p><p>  復(fù)位后,大部分引腳默認(rèn)作為GPIO功能,并且均為輸入狀態(tài)。但是

28、,有部分引腳在復(fù)位后默認(rèn)作為第二功能(如:P0.27~P0.30在復(fù)位后默認(rèn)為A/D輸入引腳)。</p><p>  4.2硬件和程序原理:</p><p>  在鍵盤按鍵后,產(chǎn)生一個中斷,mcu對鍵盤進(jìn)行掃描,確定按下的鍵,如果不是等號,就把按下的字符依次存入數(shù)組,并在lcd顯示表達(dá)式,如果是等號,就計算出數(shù)組中存入的表達(dá)式的值,并顯示在lcd中。</p><p>

29、;  計算表達(dá)式值的方法:把表達(dá)式中的表示數(shù)值的字符轉(zhuǎn)成數(shù)值存入一個數(shù)值數(shù)組,把表達(dá)式中的表示運算符的字符存入運算符數(shù)組;</p><p>  關(guān)于四則運算優(yōu)先級算法:依次檢索運算符數(shù)組,當(dāng)遇到 * 號 或者 / 號的時候,就先計算乘法或除法,算出結(jié)果后存入數(shù)值數(shù)組相應(yīng)位置,然后刪除此運算符和多余的數(shù)值,再重復(fù)檢索,直到數(shù)值數(shù)組中只有一個數(shù)值為止,這個數(shù)值即是運算結(jié)果。</p><p> 

30、 調(diào)用stdio.h庫里的sprintf函數(shù),把數(shù)值轉(zhuǎn)化成字符數(shù)組,然后顯示到lcd中。</p><p><b>  五、測試與分析:</b></p><p>  5.1 ADS1.2新建工程:</p><p>  5.2 Proteus實時仿真:</p><p><b>  六、總結(jié):</b>&l

31、t;/p><p>  對我們而言,知識上的收獲重要,精神上的豐收更加可喜。挫折是一份財富,經(jīng)歷是一份擁有。這次實習(xí)必將成為我人生旅途上一個非常美好的回憶!</p><p>  通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問

32、題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固。</p><p><b>  附件:</b></p><p><b>  代碼:</b></p><p>  #include "config.h&quo

33、t;</p><p>  #include "math.h"</p><p><b>  //宏定義</b></p><p>  #define LCD_RS 1<<0</p><p>  #define LCD_RW 1<<1</p>

34、<p>  #define LCD_E 1<<2</p><p>  #define D7 1<<10 //判斷LCD忙碌</p><p><b>  //函數(shù)聲明</b></p><p>  void system_init(void);</p>&l

35、t;p>  void LCDInit(void);</p><p>  void __irq IRQ_EINT2(void);</p><p>  int ucKeyScan(void);</p><p>  char translate();</p><p>  void arithmetic(long x,long y);<

36、/p><p>  char txt1[]="error!",</p><p>  txt2[]="data overflow",</p><p>  txt3[]="";</p><p><b>  //全局變量定義</b></p><p>

37、  long add1=0,add2=0;</p><p>  int operators=0,iny=0;</p><p>  uint8 num=0,x,y,sign=0,count=0,k=0,repeat=0,flag=0;</p><p>  unsigned int code[4]={0x0E00000,0x0D00000,0x0B00000,0x070

38、0000};//列線掃描電壓,分為第1,2,3,4根列線</p><p>  unsigned int ucRow,ucLine; //行號,列號。</p><p>  /***********************************************************************</p><p>  * 名 稱:De

39、layNS()</p><p>  * 功 能:長軟件延時</p><p>  * 入口參數(shù):dly延時參數(shù),值越大,延時越久</p><p><b>  * 出口參數(shù):無</b></p><p>  *******************************************************

40、*****************</p><p>  void DelayNS(uint32 dly)</p><p>  { uint32 i;</p><p>  for(; dly>0; dly--)</p><p><b>  {</b></p><p>  for(i=

41、0; i<500; i++);</p><p><b>  }</b></p><p><b>  }</b></p><p>  /***********************************************************************</p><p>

42、  * 名 稱:Busy()</p><p>  * 功 能:LCD是否忙碌</p><p>  ************************************************************************</p><p>  void Busy()</p><p><b>  {&l

43、t;/b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  IOCLR = LCD_RS;</p><p>  IOSET = LCD_RW;</p><p>  if(!(IOPIN&D7))

44、break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  /***********************************************************************</p><p>  * 名 稱:C

45、ommand()</p><p>  * 功 能:LCD命令</p><p>  ************************************************************************</p><p>  void Command(char com)</p><p><b>  {&l

46、t;/b></p><p><b>  Busy();</b></p><p>  IOCLR = 0x0FFF;</p><p>  IOCLR = LCD_RS;</p><p>  IOCLR = LCD_RW;</p><p>  IOSET = LCD_E;</p>

47、<p>  IOSET = com<<3;</p><p>  IOCLR = LCD_E;</p><p><b>  }</b></p><p>  /***********************************************************************</p>&

48、lt;p>  * 名 稱:LCDInit()</p><p>  * 功 能:LCD初始化</p><p><b>  * 入口參數(shù):</b></p><p><b>  * 出口參數(shù):無</b></p><p>  ********************************

49、****************************************</p><p>  void LCDInit()</p><p><b>  { </b></p><p>  Command(0x0C); //顯示開/關(guān)控制命令</p><p>  Command(0x38); //功能設(shè)置命

50、令:數(shù)據(jù)線長度為8位</p><p>  // Command(0x80); //地址命令</p><p>  Command(0x06); //輸入方式設(shè)置</p><p><b>  }</b></p><p>  /***********************************************

51、************************</p><p>  * 名 稱:write()</p><p>  * 功 能:LCD寫數(shù)據(jù)</p><p>  ************************************************************************</p><p>  v

52、oid write(char data)</p><p><b>  {</b></p><p><b>  Busy();</b></p><p>  IOCLR = 0x0FFF;</p><p>  IOSET = LCD_RS;</p><p>  IOCLR = L

53、CD_RW;</p><p>  IOSET = LCD_E;</p><p>  IOSET = data<<3;</p><p>  DelayNS(1);</p><p>  IOCLR = LCD_E; </p><p><b>  }</b></p&

54、gt;<p>  /***********************************************************************</p><p>  * 名 稱:display()</p><p>  * 功 能:LCD顯示</p><p>  *******************************

55、*****************************************</p><p>  void display(long a)</p><p><b>  {</b></p><p>  long temp,b,c=-1;</p><p>  uint8 lenth=1,i,j;</p>

56、<p>  // Command(0x01);</p><p><b>  if(a<0)</b></p><p><b>  {</b></p><p><b>  a=a*c;</b></p><p>  write('-');</p

57、><p><b>  }</b></p><p><b>  temp=a;</b></p><p>  while((temp=temp/10)!=0) lenth++;</p><p>  for(i=lenth;i>0;i--)</p><p><b> 

58、 {</b></p><p><b>  b=1;</b></p><p>  for(j=0;j<i-1;j++) b=b*10;</p><p>  write(0x30+a/b);</p><p><b>  a=a%b;</b></p><p>&l

59、t;b>  }</b></p><p>  }//為低電平,其他為高電平。 </p><p><b>  //主函數(shù)</b></p><p>  int main()</p><p><b>  { </b></p><p>  sy

60、stem_init();</p><p>  LCDInit();</p><p><b>  while(1) </b></p><p>  ucKeyScan();</p><p>  return(0);</p><p><b>  }</b></p>&

61、lt;p>  /***********************************************************************</p><p>  * 名稱:system_init()</p><p>  * 功能:system初始化函數(shù)</p><p>  ***********************************

62、*************************************</p><p>  void system_init()</p><p><b>  {</b></p><p><b>  //引腳功能選擇</b></p><p>  PINSEL0 = 0x80000000; //

63、設(shè)置P0.15為EINT2,其余為GPIO</p><p>  PINSEL1 = 0x00000000;//設(shè)置P0.15~P0.31為GPIO</p><p>  IODIR = 0x0f007ff; //設(shè)置P0.0-P0.10,P0.20-P0.23為輸出,其余為輸入</p><p>  IOCLR = 0x80000000; </p>

64、<p><b>  //向量中斷初始化</b></p><p>  VICIntSelect =0x00; //設(shè)置P0.15為IRQ中斷</p><p>  VICVectAddr0 = (uint32)IRQ_EINT2;</p><p>  VICVectCntl0 = 0x30;</p><

65、p>  VICIntEnable = 1<<16; //使能EINT2</p><p><b>  //外部中斷初始化</b></p><p>  EXTMODE = 1<<2; //設(shè)置為EINT2下降沿觸發(fā)</p><p>  EXTPOLAR = 0; </p><p&

66、gt;  EXTINT = 1<<2; //清除EINT2中斷標(biāo)志</p><p><b>  }</b></p><p>  /***********************************************************************</p><p>  * 名稱:ucKeyS

67、can()</p><p>  * 功能:鍵盤掃描函數(shù)當(dāng)有外部中斷2時調(diào)用此函數(shù),使用列掃描的方式獲取鍵碼,鍵碼</p><p>  由2位數(shù)字組成。高位為行號低位為列號。</p><p>  ************************************************************************&

68、lt;/p><p>  int ucKeyScan()</p><p><b>  {</b></p><p>  unsigned int ucTemp=0; //掃描狀態(tài)暫存。</p><p>  for(ucLine=0;ucLine<4;ucLine++)//行掃描</p><

69、p><b>  {</b></p><p>  IOSET=code[ucLine]; //輸出掃描電位。</p><p>  IOCLR=(~code[ucLine])&0xF00000;</p><p>  //ucTemp=IOPIN>>24;</p><p>  if(ucTe

70、mp!=0x0F) //判斷該列是否有按鍵按下。</p><p>  continue;</p><p>  } //返回按鍵編碼。格式為2位數(shù),高位為列號,低位為行號。</p><p><b>  }</b></p><p>  /**************************************

71、*********************************</p><p>  * 名稱:IRQ_EINT2()</p><p>  * 功能:EINT2中斷服務(wù)程序</p><p>  ************************************************************************</p>&l

72、t;p>  void __irq IRQ_EINT2(void)</p><p><b>  {</b></p><p>  unsigned int ucTemp2=0,a;</p><p>  ucTemp2=IOPIN>>24; </p><p>  switch(uc

73、Temp2)</p><p><b>  {</b></p><p>  case 0x0E: ucRow=00;break; //判斷列號。</p><p>  case 0x0D: ucRow=10;break;</p><p>  case 0x0B: ucRow=20;break;</p>&

74、lt;p>  case 0x07: ucRow=30;break;</p><p>  default: ucRow=40;break;</p><p><b>  }</b></p><p>  num=ucRow+ucLine;</p><p>  if(repeat==1&num!=23&

75、x!=3) //計算結(jié)束后,若輸入數(shù)字,在輸入前清屏</p><p><b>  {</b></p><p>  Command(0x01);</p><p>  add1=add2=sign=0;</p><p><b>  count=0;</b></p><p>&

76、lt;b>  repeat=0;</b></p><p>  DelayNS(10); //延時讓LCD反應(yīng)</p><p><b>  }</b></p><p>  switch(num)</p><p><b>  {</b></p><p>  

77、case 00:write('7');k=8;break;</p><p>  case 01:write('4');k=5;break;</p><p>  case 02:write('1');k=2;break;</p><p>  case 03:Command(0x01);k=0;add1=add2=sign

78、=0;break;</p><p>  case 10:write('8');k=9;break;</p><p>  case 11:write('5');k=6;break;</p><p>  case 12:write('2');k=3;break;</p><p>  case 13:

79、write('0');k=1;break;</p><p>  case 20:write('9');k=10;break;</p><p>  case 21:write('6');k=7;break;</p><p>  case 22:write('3');k=4;break;</p>

80、<p><b>  case 23:</b></p><p>  if(repeat==0) //是否重復(fù)</p><p><b>  {</b></p><p>  write('=');</p><p><b>  count=1;</b&

81、gt;</p><p><b>  repeat=1;</b></p><p>  arithmetic(add1,add2);</p><p><b>  }</b></p><p>  else count=0;</p><p>  break; </p&

82、gt;<p><b>  case 30:</b></p><p>  if(sign==0)</p><p><b>  {</b></p><p>  write('/');</p><p><b>  sign=1;</b></p>

83、;<p><b>  }</b></p><p><b>  break;</b></p><p><b>  case 31:</b></p><p>  if(sign==0)</p><p><b>  {</b></p>

84、<p>  write('X');</p><p><b>  sign=2;</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  case 32:</b>

85、;</p><p>  if(sign==0)</p><p><b>  {</b></p><p>  write('-');</p><p><b>  sign=3;</b></p><p><b>  }</b></p&g

86、t;<p><b>  break;</b></p><p><b>  case 33:</b></p><p>  if(sign==0)</p><p><b>  {</b></p><p>  write('+');</p>

87、<p><b>  sign=4;</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(sign==0)</p>&l

88、t;p>  a=0; //第一個算數(shù)</p><p>  else if(count==0)</p><p>  a=1; //第二個算數(shù)</p><p><b>  else </b></p><p><b>  a=2;</b></p>

89、;<p>  if(a==0&k!=0)</p><p>  {add1=10*add1+k-1;flag=1;}</p><p>  else if(a==1&k!=0)</p><p>  {add2=10*add2+k-1;flag=2;}</p><p><b>  k=0;</b>

90、</p><p>  //arithmetic(add1,add2);</p><p>  while((EXTINT&0x04)!=0)//等待外部中斷信號恢復(fù)為高電平</p><p><b>  {</b></p><p>  EXTINT=0x04;//清除EINT2中斷標(biāo)志</p>

91、;<p><b>  }</b></p><p>  VICVectAddr=0x00;//通知VIC向量中斷結(jié)束</p><p><b>  }</b></p><p>  /**********算術(shù)運算函數(shù)*************/</p><p>  void arit

92、hmetic(long x,long y)</p><p><b>  {</b></p><p>  long result;</p><p>  switch(sign)</p><p><b>  {</b></p><p><b>  case 0:<

93、/b></p><p>  result=x; break;</p><p><b>  case 1:</b></p><p>  result=x/y;break;</p><p><b>  case 2:</b></p><p>  result=x*y;br

94、eak;</p><p><b>  case 3:</b></p><p>  result=x-y;break;</p><p><b>  case 4:</b></p><p>  result=x+y;break;</p><p><b>  }</

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論