4位數(shù)加法計算器_第1頁
4位數(shù)加法計算器_第2頁
4位數(shù)加法計算器_第3頁
4位數(shù)加法計算器_第4頁
4位數(shù)加法計算器_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、安慶師范大學2014級單片機原理與應用課程設(shè)計報告課題名稱4位數(shù)加法計算器的設(shè)計吳昊天、伍浩然、王鵬、萬吉070814018 070814008 070814005 070814001院、系、部計算機學院物聯(lián)網(wǎng)工程物聯(lián)網(wǎng)工程汪文明指導教師2016 年6月6日 21 一、設(shè)計任務及要求: 設(shè)計任務:12顯示34、通過4*4矩陣鍵盤輸入數(shù)字及運算符;、可以進行4位十進制數(shù)以內(nèi)的加法預算。如果計算結(jié)果超出四位數(shù),則全部 “E;、可以進行加減乘除所有運算;、添加其他功能。要求:首先進行預設(shè)計,根據(jù)設(shè)計的任務要求,先確定設(shè)計的硬件電路方案,然后進行 硬件電路的初步設(shè)計,在計算機上畫出硬件電路圖,在老師的

2、指導下進行修正硬件電 路圖,并對所涉及的參數(shù)進行計算。在確定硬件的基礎(chǔ)上,要進行軟件的總體設(shè)計,包括軟件主流程的設(shè)計以及各子 程序的設(shè)計,同時,要寫出詳細的操作說明,如時間的調(diào)整方法,顯示窗口的時間切 換等,以配合軟件的設(shè)計。然后進入硬件的調(diào)試及編程工作,設(shè)計組內(nèi)的同學可根據(jù)任務分工,有調(diào)試硬件 各功能模塊的,如鍵盤子程序、顯示子程序等,有進行整體程序的編制的,各模塊的 編制過程中要注意資源的銜接。最后進入聯(lián)機調(diào)試,聯(lián)機調(diào)試的原則也要采用分步走的原則,各個功能模塊要逐 步套入,通過一個再增加一項功能,從而達到設(shè)計的總體要求,不要上來編制個最大 的程序,最后無法查找錯誤。最后寫出設(shè)計報告。指導教

3、師簽名:三、成績2016年6月6日指導教師簽名:年 月曰、緒言二、系統(tǒng)設(shè)計2.1設(shè)計任務2.2方案比較與論證2.2.1系統(tǒng)整體流程圖2.2.2單片機的選擇方案論證2.2.3鍵盤選擇方案論證2.2.4顯示模塊的選擇方案論證2.2.5蜂鳴器的選擇方案論證三、硬件電路設(shè)計3.1計算器的控制電路圖3.2矩陣鍵盤的設(shè)計33.3 LCD1602顯示電路的設(shè)計33.4蜂鳴器驅(qū)動電路的設(shè)計43.5主要元器件選擇4四、程序流程圖五、c語言程序設(shè)計六、計算器的仿真196.1 Keil 調(diào)試196.2 Proteus 調(diào)試七、結(jié)束語八、參考文獻1920、緒言近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入,

4、同時帶動傳統(tǒng)控制 檢測日新月異更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往是作為一個 核心部件來使用,僅單片機方面知識是不夠的,還應根據(jù)具體硬件結(jié)構(gòu),以及針對具體應用對象特點的軟件結(jié)合,加以完善。電子時鐘是現(xiàn)代社會中的主要計時工具之一,廣泛應 用于手機,電腦,汽車等社會生活需要的各個方面,及對時間有要求的場合。本設(shè)計采用碼頭、AT89C52單片機作為主要核心部件,附以上電復位電路,時鐘電路及按鍵調(diào)時電路組成。 數(shù)字鐘已成為人們?nèi)粘I钪校罕夭豢缮俚谋匦杵罚?廣泛用于個人家庭以及車站、由于數(shù)字劇場、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。集成電路技術(shù)的發(fā)展和采

5、用了先進的石英技術(shù),使數(shù)字鐘具有走時準確、性能穩(wěn)定、攜帶 方便等優(yōu)點,它還用于計時、自動報時及自動控制等各個領(lǐng)域。系統(tǒng)設(shè)計2.1設(shè)計任務12342.2方案比較與論證、通過4*4矩陣鍵盤輸入數(shù)字及運算符;、可以進行4位十進制數(shù)以內(nèi)的加法預算。如果計算結(jié)果超出四位數(shù),則全部顯示“E” 、可以進行加減乘除所有運算;、添加其他功能。2.2.1系統(tǒng)整體流程圖鍵盤接口圖1系統(tǒng)整體流程圖2.2.2計算器的控制方案論證用4*4的矩陣鍵盤組成0-9數(shù)字鍵及加、減、乘、除、等于、清零按鍵,LCD屏幕實時顯 示輸入的數(shù)字和運算符號,每按下一個按鍵都有蜂鳴器發(fā)出的響聲。從矩陣鍵盤輸入一個號,數(shù)字,選擇運算符,再輸入一

6、個數(shù)字,然后按下“等于”鍵,最后的計算結(jié)果會呈現(xiàn)在LCD屏幕上。223單片機的選擇方案論證方案一:采用可編程邏輯期間CPLD作為控制器。CPL可以實現(xiàn)各種復雜的邏輯功能、 規(guī)模大、密度高、體積小、穩(wěn)定性高、I/O資源豐富、易于進行功能擴展。采用并行的輸入 輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)模控制系統(tǒng)的控制核心。但本系統(tǒng)不需 要復雜的邏輯功能,對數(shù)據(jù)的處理速度的要求也不是非常高,且從使用及經(jīng)濟的角度考慮我們放棄了此方案方案二:采用Atmel公司的AT89C5單片機作為控制器。AT89C5是一個低功耗,高性能 的51內(nèi)核的CMOS位單片機,片內(nèi)含8k空間的可反復擦些1000次的Flash

7、只讀存儲器,具有256 bytes的隨機存取數(shù)據(jù)存儲器(RAMI,32個雙向I/O 口,2個16位可編程定時計數(shù)器。綜合考慮,選擇方案二,采用Atmel公司的AT89C5單片機作為控制器。2.2.4鍵盤選擇方案論證方案一:采用獨立式鍵盤。由于各鍵相互獨立,每個按鍵各接一根輸入線,通過檢測 輸入線的電平狀態(tài)可以很容易的判斷哪個按鍵被按下。此種鍵盤適用于按鍵較少或操作速 度較高的場合。但本題發(fā)揮部分要求16個功能鍵,按鍵數(shù)目較多,這就需要較多的輸入口 線,而且電路結(jié)構(gòu)復雜。故此方案不可取。方案二:采用矩陣鍵盤。它由行和列組成,按鍵位于行列的交叉點上,行線信號和列線信號分別通過兩個接口和 CPU相連

8、,通過行列掃描法判定按鍵的位置,此方案適用于按鍵較多的場合。通過對4位數(shù)加法計算器題目的分析,采用4*4行列式鍵盤。2.2.5顯示模塊的選擇方案論證方案一:采用帶字庫LCD模塊顯示。能顯示復雜的信息,具有質(zhì)量輕,體積小,功耗 低,指令功能強,接口簡單,可靠性強等優(yōu)點,顯示內(nèi)容豐富,圖形美觀,易于人機交流。但是價格昂貴。方案二:采用LED數(shù)碼管顯示。數(shù)碼管能顯示數(shù)字和符號,但是占用I/O 口資源較多, 對于簡單的電路可以選用此方案。計算器,需要較為強大的人機交互界面,故選用方案一,顯示所需信息。2.2.6蜂鳴器的選擇方案論證方案一:采用有源蜂鳴器。有源蜂鳴器內(nèi)部帶震蕩源,只要一通電就會發(fā)出響聲。

9、方案二:采用無源蜂鳴器。無源蜂鳴器內(nèi)部不帶震蕩源,所以用直流信號無法令其鳴叫,必須用2K5K的方波去驅(qū)動它。綜合考慮,為了程序控制的方便,選用了方案一。硬件電路設(shè)計3.1計算器控制電路圖BEEPiLJZZERIU143-XTAL1FOQ;AOOPO KADIPOKTALSPO 引AD3PO 町ADdP0 5;AD5PQ 削AO6丄R3TPO 7;AD7P2 0/A?P2 1HA9P2 2fAiOEEPSEMP2.1fA11ALEP?4fAl2EaP2.S/AliP2.訓 14P2.7/A15亠LO 1口 1 nmPT. Artjyri;U 2PITsLI urIz pi i/T;exRJAVr

10、VdJP41/rxD* H ?P124 L3 4Cm qC-1 j.rr-. iT 1i H 5* Tf tHidF14K_J jrrJ 1 1FQAm亠 Lu ti 1 cpa CiTi:LE 71 r厶H I 0 F16Ki.DJ 1 11 L7 3P17P3.T/RCAT39CS23H1521. iqts 耳嘩npi遙I111313Q1R1IkLLCD16O2LMO16LT1- I2II I505-II L AC j=O o=I TJoJI / II T 二-JOC+II Jo oL AII. L A圖2計算器控制線路圖3.2矩陣式鍵盤的設(shè)計鍵盤電路如圖3所示。設(shè)計數(shù)字鍵09的鍵號依次為

11、09,運算符號分別為“ +”“-”、“*,以及“=”和清零“ C,通過逐行掃描函數(shù)來確定按下的鍵位。嚴9ii II Q OX G;o o-*-C III OQEXTnJI_Oa3.3 LCD1602顯示電路的設(shè)計LCD1602液晶屏采用LM016L型號元件,其電路如圖3所示。000OO_|P a口LCD1602LM016L-1L/ 丨-_|圖4 LCD1602顯示電路3.4蜂鳴器驅(qū)動電路的設(shè)計蜂鳴器的驅(qū)動采用PNL極管來驅(qū)動,低電平有效。其電路如圖 5所示。BEE PQ1Ps ZZERU1-XTAL1PO.O/ADOP0.1/AD1P0.2/AD2 XTAL2P0.3/AD3P0.4/AC4P

12、0.5/AD5P0.6/AD6RSTP0.7ZAD7P2.0/A8P 2.1/A9P2.2/A10PSENP2.3/A11圖5蜂鳴器電路圖22 1231 -rR I L 膽 9 8t_-b5-4 3-i 13 3-3-33-3 3-丄 2主要元器件選用型號和數(shù)量如表1所示:3.5主要元器件選擇序號材料名稱規(guī)格型號數(shù)量元件代號1單片機AT89C521U12晶振12MHz1X13三級管MJE3501Q14鍵盤4*4165LCD1602LM016L1LCD16026蜂鳴器1BEE P7電阻1k1R1表1主要元器件清單四、程序流程圖開始初始化單片機蜂鳴器發(fā)掃描鍵盤TS數(shù)出響聲寧宇數(shù)字計算LCD液晶屏顯

13、示五C語言程序設(shè)計#in elude #in elude vintrin s.h#defi ne uehar un sig ned charII定義E 口II定義RS 口II定義蜂鳴器#defi ne uint un sig ned int sbit lcden=P 2人1; sbit ledrs=PiO; sbit beep=P 2人2;II創(chuàng)建鍵位數(shù)組,數(shù)字,運算符號,等于號,清零(小數(shù)點)uehar code table=0,1,2,3,4,5,6,7,8,9,+,-T*,7,=,Tuchar key,flag1,js,k1,k2;uchar a20,b20;float jieguo=0

14、;void delay(uchar z) / 延遲函數(shù) uchar x,y; for(x=z;x0;x-)for(y=110;y0;y-);void write_cmd(uchar cmd) / 寫命令函數(shù)lcdrs=0;P1=cmd; delay(5);Icden=1; delay(4); lcden=0;void write_data(uchar date) / 寫數(shù)據(jù)函數(shù)lcdrs=1; P仁date; delay(5); Icden=1; delay(5); lcden=0;void init()/LCD初始化函數(shù)lcde n=0;write_cmd(0 x38); / 設(shè)置 16x2

15、 顯示,8 位數(shù)據(jù)接口 write_cmd(0 x0c); /設(shè)置開顯示,不顯示光標(關(guān)顯示是 0 x08) write_cmd(0 x06); /寫一個字符后地址指針加1write_cmd(0 x01); / 清屏void keysca n()uchar temp,uu=0 xf7;uint i;for(i=0;i4;i+)uu=_crol_(uu,1); / 左移P 3=uu;tem p=P3;temp=temp&0 x0f;if(te mp !=0 x0f) delay(10);te mp=P3;te mp=te mp&0 x0f; if(tem p!=0 x0f)temp=P 3; s

16、witch(te mp) 延遲200響聲case 0 xee:key=1;bee p=0;delay(200);bee p=1;break;case 0 xde:key=2;bee p=0;delay(200);bee p=1;break;case 0 xbe:key=3;bee p=0;delay(200);bee p=1;break;case 0 x7e:key=10;bee p=0;delay(200);bee p=1;break;case 0 xed:key=4;bee p=0;delay(200);bee p=1;break;case 0 xdd:key=5;bee p=0;dela

17、y(200);bee p=1;break;case 0 xbd:key=6;bee p=0;delay(200);bee p=1;break;case 0 x7d:key=11;bee p=0;delay(200);bee p=1;break;case 0 xeb:key=7;bee p=0;delay(200);bee p=1;break;case 0 xdb:key=8;bee p=0;delay(200);bee p=1;break;case 0 xbb:key=9;bee p=0;delay(200);bee p=1;break;case 0 x7b:key=12;bee p=0;de

18、lay(200);bee p=1;break;case 0 xe7:key=0;bee p=0;delay(200);bee p=1;break;case 0 xd7:key=15;bee p=0;delay(200);bee p=1;長響聲/清零bee p=0;delay(200);bee p=1;bee p=0;delay(200);bee p=1;break;case 0 xb7:key=13;bee p=0;delay(200);bee p=1;break;case 0 x77:key=14;bee p=0;delay(180);bee p=1;delay(100);bee p=0;d

19、elay(180);bee p=1;break;/ 等于按鍵兩聲短響,中間較短間隔 while(te mp !=0 x0f)tem p=P3;temp=te mp&0 x0f; flag1=1;void jscl() /計算顯示函數(shù)uchar i,j, n;float s,te mp2;long int s1,s2,a1,b1,c1,te mp1; a1=1;b1=1;s1=0;s2=0;s=0;if(k2!=0)/存放第一操作數(shù)for(j=0;jk1+1;j+)for(i=0;ik1-j;i+) a1=a1*10;s1=s1+aj*a1;a1=1;for(j=k1+1;jk2+1;j+) /

20、 存放第二操作數(shù)for(i=0;i9999|s=9999) wnte_data(E);/運算結(jié)果小數(shù)的處理elsec1=(lo ng in t)(s*1000)%10; if(c1=5)s=s+0.01;temp 1=(lo ng in t)(s);temp 2=s-te mp1;n=0;while(tem p1)b n=te mp 1%10;temp 1=te mp 1/10;n+;b n=te mp 2*10;b n+1=(uchar)(te mp 2*100)%10; for(i=n; i0;i-)write_data(tablebi-1);if(jieguo1)write_data(t

21、able0); write_data(table15); write_data(tableb n); write_data(tableb n+1);elsewrite_data(table15); write_data(tableb n); write_data(tableb n+1);void mai n()uchar i,j;in it();write_cmd(0 x80); /將液晶指針定位在第一行第一個單元 key=15;i=0;flag1=O;while(1)keysca n(); if(flag1=1) if(key=15)wnte_cmd(OxO1);i=0;for(j=0;j2

22、0;j+)aj=0;bj=0;k1=0;k2=0;else if(key10)write_data(tablekey); ai=key;i+;else if(key!1p凸a工 LiD3ignd rutMl1 He-iinr niot unjigmEd incHE-I Alt JxiienrPJTfBtiQte lcdra-F2-0;心忌文歸二*1 -JCtui c 込 匚 dilc|-n, 1,“刨崔es頁SIS. Ey. -w可寸,尊干m:HT :那itatiDJ _HPlljci ktyj fldli耳E h kZ;n? CtUl i:2artl2O-ht114VDljd clsia/l

23、ucJiBr z? F丞遲iZi做n&d 1|itlu占hWE* 略Fl:HT皿1產(chǎn)11:*丁0州-1 JTvld Jiite end Juebar okII /f 寫自涉sEIfREZ?lodia-0B;Pl-aid:i2i 1沖 rGtl耶1舸WyUnCT*led曲.Q出 vnLd viitc- ditn l-ucJinr flace? r.樂無|i|11胡:!:w aJTarn IP da iwrtCiPUplSTARTlJP.ABIhlld :LE評t iaU.3np FUIIUT. h31_ _jpurcE. c.linkup.Pnu. daxE: SkaK.Q uni/znn? b

24、 f lIm Era.0)nlr:-D EEZcrlBb D Hu=j.zq|:i*.6.2 P roteus 調(diào)試 3 uhlDT -1* Prulm/ikMuJVin Ldrt IqLr吋 pLibrwy fpmpUlp14*1匸ri 護 Ua:-: *哼b k踣ft MX匸 n:t- 1-1. 3 3 uhlDT -1* Prulm/ikMuJVin Ldrt IqLr吋 pLibrwy fpmpUlp14*1匸ri 護 Ua:-: *哼b k踣ft MX匸 n:t- 1-1. 3 ITun llVIlW- 用、BEE PLilHXT4L1XT*.?RSIKiltjhPOEAC4 Fm

25、I 沁、 poiwffi poawj POJtZM PO5W0 w卻 g7gPIOIM P3 11*=- P2iC P23r P哪I; PP&uu* P?詐WP7T/:!rP3 1lTO pj afnr =-J14TTT 訊勿 用知IPJTJRCLCD15CE lmOiclLq:亠.亠塞:亠:亠V、.卡5一BBSS各BSa7結(jié)束語通過這次課程設(shè)計,使我們得到了一次用專業(yè)知識和專業(yè)技能去分析問題、解決問題C語言全面系統(tǒng)的鍛煉。使我們在單片機的基本原理、單片機應用系統(tǒng)開發(fā)過程,以及用 設(shè)計程序的思路技巧等方面都能向前邁了一大步,為我們?nèi)蘸蟪蔀楹细竦膽眯腿瞬糯蛳铝己玫幕A(chǔ)。8參考文獻期刊類【格式】

26、序號作者.篇名J.刊名,出版年份,卷號(期號):起止頁碼 【舉例】1王海粟.淺議會計信息披露模式J.財政研究,2004,21(1) : 56-58.2夏魯惠.高等學校畢業(yè)論文教學情況調(diào)研報告J.高等理科教育,2004(1):46-52.Heider, E.R.& D.C.Oliver. The structure of color sp ace in naming and memory of two Ian guages J. Foreig n Lan guage Teachi ng and Research, 1999, (3): 62 - 67.專著類【格式】序號作者.書名M.出版地:出版社,出版年份:起止頁碼.【舉例】4葛家澍,林志軍.現(xiàn)代西方財務會計理論M.廈門:廈門大學出版社,2001:42. Gill, R. Masteri ng En glish Literature M. Lo ndon: Macmilla n, 1985: 42-45.報紙類【格式】序號作者.篇名N.報紙名,出版日期(版次)【舉例】 李大倫.經(jīng)濟全球化的重要性N.光明日報,1998-12-27(3).7French,W. Between Silences:A Voice from China

溫馨提示

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

評論

0/150

提交評論