版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE物理與電氣工程學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱:簡(jiǎn)易計(jì)算器院部:物理與電氣工程學(xué)院專業(yè)班級(jí):10電信一班學(xué)生姓名:陳鵬梁偉伍潔泉吳昌剛完成時(shí)間:2012年6月9日評(píng)閱意見:評(píng)閱意見:陳鵬梁偉伍潔泉吳昌剛評(píng)閱教師日期PAGE7摘要單片機(jī)的出現(xiàn)是計(jì)算機(jī)制造技術(shù)高速發(fā)展的產(chǎn)物,它是嵌入式控制系統(tǒng)的核心,如今,它已廣泛的應(yīng)用到我們生活的各個(gè)領(lǐng)域,電子、科技、通信、汽車、工業(yè)等。本次設(shè)計(jì)是設(shè)計(jì)一個(gè)簡(jiǎn)易計(jì)算器,能夠進(jìn)行多位簡(jiǎn)單的加減運(yùn)算,同時(shí)它能支持2位整數(shù)運(yùn)算。它主要由STC89S52單片機(jī)、A8255、數(shù)碼管,鍵盤等模塊組成。本計(jì)算器是將鍵盤輸入信息經(jīng)處理通過緩存,送入數(shù)碼管顯示,鍵盤采用行列式,數(shù)碼管采用動(dòng)態(tài)掃描方式,計(jì)算功能通過軟件實(shí)現(xiàn),用匯編語言對(duì)單片機(jī)可編程芯片進(jìn)行編程,實(shí)現(xiàn)對(duì)計(jì)算器的設(shè)計(jì)。目錄TOC\o"1-3”\h\uHYPERLINK\l_Toc22568設(shè)計(jì)要求?PAGEREF_Toc225681HYPERLINK\l_Toc266121、方案?HYPERLINK\l_Toc124541。1方案?HYPERLINK\l_Toc243212、硬件電路設(shè)計(jì)?.HYPERLINK\l_Toc271242.1鍵盤電路設(shè)計(jì)?HYPERLINK\l_Toc100122.2顯示電路設(shè)計(jì)?HYPERLINK\l_Toc64263、系統(tǒng)工作流程及流程圖?HYPERLINK\l_Toc306354、系統(tǒng)功能測(cè)試與整體指標(biāo)?HYPERLINK\l_Toc275324。1軟件調(diào)試步驟?HYPERLINK\l_Toc65584.2程序調(diào)試步驟?HYPERLINK\l_Toc22944.3測(cè)試結(jié)果?5總結(jié)與思考及致謝HYPERLINK\l_Toc5435HYPERLINK\l_Toc28886附錄一主程序?簡(jiǎn)易計(jì)算器設(shè)計(jì)要求3*4鍵盤輸入,數(shù)碼管顯示.完成一位整數(shù)的加減由于鍵盤只有12個(gè)按鍵,安排如下:
+——---—-—-—---—-+
|1|2|3|4|
|5|6|7|8
|
|0|+|—|=
|
+—--—-—--------—+方案1.1方案按照設(shè)計(jì)要求,提出方案此方案首先通過鍵盤得到數(shù)據(jù),通過A8255記錄數(shù)據(jù),并通過程序?qū)?shù)據(jù)進(jìn)行處理,最后通過數(shù)碼管顯示出來.結(jié)構(gòu)框圖如圖1:STC90C51STC90C51A8255數(shù)碼管顯示3*4行列鍵盤圖1方案方框圖2、硬件電路設(shè)計(jì)2.1鍵盤電路設(shè)計(jì)鍵盤輸入采用3*4的矩陣鍵盤。3*4鍵盤12個(gè)按鍵分別用于控制數(shù)字“0~8”以及數(shù)學(xué)運(yùn)算符號(hào)“+、—、鍵盤模塊電路如圖(2)所示。圖2鍵盤設(shè)置圖當(dāng)進(jìn)行掃描時(shí),掃描信號(hào)由列引腳輸入鍵盤。以11111101、11111011、11110111的順序每次.掃描不同的列,然后讀取列引腳的信號(hào)就可以判斷是哪個(gè)鍵被按下。識(shí)別鍵盤上哪個(gè)鍵被壓下的過程的掃描步驟:1.檢測(cè)是否所有鍵都都松開了,若沒有則反復(fù)檢測(cè).2。但所有鍵都松開了,再檢測(cè)是否有鍵壓下,若無鍵一下則反復(fù)檢測(cè)。3.如有鍵壓下,要消除鍵抖動(dòng),確認(rèn)有鍵壓下。4.對(duì)壓下的鍵進(jìn)行編碼,將該鍵的行列信號(hào)轉(zhuǎn)換成16進(jìn)制碼,由此確定哪個(gè)鍵被壓下了.如出現(xiàn)多鍵重按的情況,只有在其它鍵均釋放后,僅剩一個(gè)鍵閉合時(shí),才把此鍵當(dāng)作本次壓下的鍵。5.該鍵釋放后,再回到2。2。2顯示電路設(shè)計(jì)LED顯示器由七段發(fā)光二極管組成,排列成8字形狀,因此也成為七段LED顯示器,器排列形狀如圖(3)所示:圖3LED數(shù)碼管為了顯示數(shù)字或符號(hào),要為LED顯示器提供代碼,即字形代碼。七段發(fā)光二極管,再加上一個(gè)小數(shù)點(diǎn)位,共計(jì)8段。圖4LED數(shù)碼管顯示原理圖3、系統(tǒng)工作流程及流程圖系統(tǒng)在開機(jī)上電后,系統(tǒng)處于等待狀態(tài),沒有任何動(dòng)作。等待輸入數(shù)字以及運(yùn)算符號(hào),一旦有相應(yīng)的按鍵按下,系統(tǒng)就會(huì)執(zhí)行相應(yīng)的動(dòng)作。LED數(shù)碼管上就會(huì)顯示對(duì)應(yīng)的數(shù)字,符號(hào)以及運(yùn)算結(jié)果等.為了實(shí)現(xiàn)鍵盤的數(shù)據(jù)輸入功能和命令處理功能,每個(gè)鍵都有其處理子程序,為此每個(gè)鍵都對(duì)應(yīng)一個(gè)碼——鍵碼。為了得到被按鍵的鍵碼,現(xiàn)使用行掃描法識(shí)別按鍵.其程序框圖如圖5:開始開始初始化顯示參數(shù)讀取顯示數(shù)據(jù)輸出段碼數(shù)據(jù)輸出位選通信號(hào)延時(shí)位選通信號(hào)移位指向下一個(gè)顯示數(shù)據(jù)完成返回否是圖5數(shù)碼管顯示程序框圖4、系統(tǒng)功能測(cè)試與整體指標(biāo)4.1軟件調(diào)試步驟1)打開軟件后,在Project菜單中選擇NewProject命令,打開一個(gè)新項(xiàng)目。保存此項(xiàng)目,輸入工程文件名后,并保存工程文件的目錄。2)為項(xiàng)目文件選擇一個(gè)目標(biāo)器件,即選擇8051的類型。在Dat(yī)abase列表框中選擇“ATML89S52",確定。3)上述設(shè)置好后,創(chuàng)建源程序文件并輸入程序代碼。輸入好代碼后點(diǎn)擊“文件/保存”。4)把源文件添加到項(xiàng)目中,用鼠標(biāo)指在目標(biāo)工作區(qū)的目標(biāo)1,點(diǎn)擊右鍵在彈出的菜單中選擇添加文件到源代碼組,在彈出的添加文件框中,選擇需要添加到項(xiàng)目中的文件.5)開始編譯,對(duì)項(xiàng)目文件進(jìn)行編譯.若沒有錯(cuò)誤后進(jìn)行硬件調(diào)試。4。2程序調(diào)試步驟程序調(diào)試應(yīng)一個(gè)模塊一個(gè)模塊地進(jìn)行,首先單獨(dú)調(diào)試各功能子程序,檢查程序是否能夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正常等;最后逐步將各子程序連接起來進(jìn)行總調(diào)試.故調(diào)試步驟如下:1)矩陣3*4鍵盤的調(diào)試鍵盤程序是整個(gè)程序的基礎(chǔ),我們必須保證其正確。調(diào)試方法:先把程序下載到單片機(jī),讓數(shù)碼管顯示,在有鍵按下時(shí)顯示的是否為設(shè)定的值。2)數(shù)碼管程序調(diào)試正確的顯示數(shù)值是整個(gè)程序的關(guān)鍵。調(diào)試方法:先把程序下載到單片機(jī),讓數(shù)碼管顯示,是否正確的顯示數(shù)值。4.3測(cè)試結(jié)果實(shí)例測(cè)試:將寫入程序的單片機(jī)插入實(shí)驗(yàn)板插座內(nèi),程序正確的有0~8數(shù)值的顯示和正常的兩則運(yùn)算5、\總結(jié)與思考及致謝電子設(shè)計(jì)正在當(dāng)今社會(huì)發(fā)揮越來越重要的作用,其采用的軟硬件結(jié)合技術(shù)也逐漸成熟,該模擬系統(tǒng)正是采用軟硬相結(jié)合的方法實(shí)現(xiàn)的。STC89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程FLASH存儲(chǔ)器,可以為眾多嵌入式控制應(yīng)用系統(tǒng)提供靈活、超有效的解決方案.在鍵盤設(shè)計(jì)方面,主要是軟件的設(shè)計(jì),通過程序編碼來完成硬件方面所無法工作的部分,例如關(guān)于在掃描鍵盤時(shí),需要逐行拉低并進(jìn)行判斷、編碼。判斷時(shí),需要不斷的屏蔽字節(jié),來獲取所需要的數(shù)據(jù),而這一點(diǎn)硬件是無法做到的。此次課程設(shè)計(jì)是做簡(jiǎn)易計(jì)算器,這個(gè)需要對(duì)51芯片有足夠的理解,能夠充分認(rèn)識(shí)每個(gè)引腳的詳細(xì)功能,對(duì)于匯編語言也必須掌握的比較好。正是由于此次設(shè)計(jì)讓我們明白了單片機(jī)在實(shí)踐中的運(yùn)用。我們的題目是基于單片機(jī)設(shè)計(jì)簡(jiǎn)易計(jì)算器,對(duì)于我們這些實(shí)踐中的新手來說,這是一次考驗(yàn).這次課程設(shè)計(jì)我們學(xué)到很多很多的東西,學(xué)會(huì)了怎么在遇到問題時(shí)去解決問題。不僅鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí),掌握了一種系統(tǒng)的研究方法,可以進(jìn)行一些簡(jiǎn)單的編程.通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固。在此次課程設(shè)計(jì)中,首先我要感謝王陳寧老師在課程設(shè)計(jì)上給予我的指導(dǎo)、提供給我的支持和幫助,這是我能順利完成這次報(bào)告的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善。在此期間,我不僅學(xué)到了許多新的知識(shí),而且也開闊了視野,提高了自己的設(shè)計(jì)能力。其次,我要感謝幫助過我的同學(xué),他們也為我解決了不少我不太明白的設(shè)計(jì)兩位數(shù)字加減的難題.同時(shí)也感謝學(xué)院為我提供良好的做畢業(yè)設(shè)計(jì)的環(huán)境。最后再一次感謝所有在設(shè)計(jì)中曾經(jīng)幫助過我的良師益友和同學(xué)!主程序:ORG00HAJMPSTARTORG30HSTART:MOVP0,#0FFHMOVR6,#0LOOP:MOVP1,#0FDH//令第一行為為零MOVR6,#0JBP1。4,L1//判斷1按下MOVR0,#1LCALLXSL1:JBP1。5,L2//判斷2按下MOVR6,#0MOVR0,#2LCALLXSL2:JBP1.6,L3//判斷3按下MOVR6,#0MOVR0,#3LCALLXSL3:JBP1.7,L4//判斷4按下MOVR6,#0MOVR0,#4LCALLXSL4:MOVP1,#0FBH//令第二行為零JBP1.4,L5//判斷5按下MOVR6,#0MOVR0,#5LCALLXSL5:JBP1.5,L6//判斷6按下MOVR6,#0????????MOVR0,#6LCALLXSL6:JBP1。6,L7//判斷7按下MOVR6,#0MOVR0,#7LCALLXSL7:JBP1.7,L8//判斷8按下MOVR6,#0MOVR0,#8LCALLXSL8:MOVP1,#0F7H//令第三行為零JBP1.4,L9//判斷0按下MOVR6,#0MOVR0,#0LCALLXSL9:JBP1.5,L10//判斷加號(hào)鍵按下MOVR2,#1MOVA,R0MOVR1,ASJMPLOOPL10:JBP1.6,L11//判斷減號(hào)鍵按下MOVR2,#2MOVA,R0MOVR1,ASJMPLOOPL11:JBP1.7,L12//判斷等號(hào)鍵按下CJNER2,#1,L13//判斷加號(hào)還是減號(hào)MOVA,R1//加號(hào)ADDA,R0MOVR4,ACJNER4,#9,L18//判斷兩數(shù)之和釋放大于9SJMPT2//等于9L18:JCT2MOVR6,#1//大于9MOVA,R4SUBBA,#10MOVR5,ALCALLXSLJMPLOOPT2://小于9MOVA,R4MOVDPTR,#TABMOVCA,@A+DPTRMOVP0,ALJMPLOOPL13://減號(hào)MOVA,R1CLRCSUBBA,R0MOVDPTR,#TABMOVCA,@A+DPTRMOVP0,AL12:LJMPLOOPTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH//共陰數(shù)碼管段碼DELAY:MOVR7,#02H//延時(shí)1MSDE:MOVR6,#0FFHDJNZR6,$DJNZR7,DERETXS://顯示子程序CJNER6,#1,XX//判斷是否為加法后的MOVP2,#04H//大于9的顯示程序MO
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度網(wǎng)絡(luò)安全拓展合作協(xié)議書范本3篇
- 課程設(shè)計(jì)自動(dòng)打標(biāo)機(jī)
- 二零二五年度廢塑料瓶回收處理及循環(huán)利用合同3篇
- 舞伴匹配課程設(shè)計(jì)
- 二零二五年度景區(qū)道路路燈安裝服務(wù)合同范本2篇
- 貨運(yùn)實(shí)訓(xùn)課程設(shè)計(jì)
- 苯酚丙酮課程設(shè)計(jì)
- 建筑公司安全技術(shù)措施管理制度(2篇)
- 2025年小學(xué)防溺水安全制度樣本(3篇)
- 2025年滬科新版九年級(jí)物理上冊(cè)階段測(cè)試試卷
- 世界十大物理學(xué)家圖文
- 門店?duì)I銷氛圍的重要性
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題及答案集錦
- 科目余額表模板
- 【大單元教學(xué)】Unit 8 單元整體教學(xué)設(shè)計(jì)
- 學(xué)生自主管理實(shí)施方案10篇
- 亞朵酒店管理手冊(cè)
- 紀(jì)檢機(jī)關(guān)查辦案件分析報(bào)告
- 文化藝術(shù)中心行業(yè)技術(shù)創(chuàng)新及應(yīng)用
- 2024年航空職業(yè)技能鑒定考試-航空乘務(wù)員危險(xiǎn)品歷年考試高頻考點(diǎn)試題附帶答案
- 精神病院設(shè)置可行性方案
評(píng)論
0/150
提交評(píng)論