河北工程大學(xué)單片機課設(shè)簡易計算器的設(shè)計_第1頁
河北工程大學(xué)單片機課設(shè)簡易計算器的設(shè)計_第2頁
河北工程大學(xué)單片機課設(shè)簡易計算器的設(shè)計_第3頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息與電氣工程學(xué)院課程設(shè)計說明書(2013/2014學(xué)年第 二學(xué)期)課程名稱:單片機課程設(shè)計題 目:簡易計算器的設(shè)計專業(yè)班級:學(xué)生姓名:學(xué) 號:指導(dǎo)教師:設(shè)計周數(shù):兩周設(shè)計成績 :2014年6月21日1課程設(shè)計目的 32、 課程設(shè)計正文 32.1、設(shè)計所需器材 32.2、設(shè)計任務(wù)和要求 32.3、設(shè)計方案 4、 硬件設(shè)計 41.STC90C52AD說明 42. 數(shù)碼管說明 43. 晶體振蕩電路設(shè)計 64. 數(shù)碼管和位選設(shè)計 65. 復(fù)位設(shè)計 76. 蜂鳴器電路設(shè)計 87. 矩陣鍵盤的設(shè)計 8、軟件設(shè)計 92.4、軟硬件調(diào)試 143、 課程設(shè)計總結(jié) 144、 參考文獻 15附錄一、系統(tǒng)原理圖 1

2、6附錄二、PCB圖 17課程設(shè)計評語及成績 18、課程設(shè)計目的1熟悉和掌握單片機的結(jié)構(gòu)及工作原理。2掌握單片機的接口技術(shù)及相關(guān)外圍芯片的外特性及控制方法。3. 通過課程設(shè)計,掌握以單片機核心的電路設(shè)計的基本方法和技術(shù),了解表關(guān)電路參數(shù)的計算方法。4通過實際程序設(shè)計和調(diào)試,逐步掌握模塊化程序設(shè)計方法和調(diào)試技術(shù)。5. 通過完成一個包括電路設(shè)計和程序開發(fā)的完整過程,使學(xué)生了解開發(fā)一單片機應(yīng)用系統(tǒng)的全過程,為今后從事相應(yīng)打下基礎(chǔ)。二、課程設(shè)計正文2.1設(shè)計所需器材電阻:1K (8 個)0.330k(8 個)10k(1 個) 按鍵開關(guān):16個極性電容(1個10uf)非極性電容:30pf (5個)晶振:6

3、MHZ( 1個)三極管:PNP(1 個)NPN (2 個)共陰極數(shù)碼管:2個蜂鳴器:1個底座:DIP40 (1 個)DIP16(1 個)萬能電路板:1個芯片:STC90C52A( 1 片)MAX232(1 片),74HC573(片)發(fā)光二極管:3個接線端子:1個2.2設(shè)計任務(wù)和要求課程設(shè)計任務(wù)要求做一個簡易數(shù)字計算器。設(shè)計的主要內(nèi)容是采用 STC90C51AD作為控制單元,實現(xiàn)簡易計算器功能。原始數(shù)據(jù)及主要任務(wù):設(shè)計一個以MCS-51單片機為核心的簡易計算器系統(tǒng)。能夠進行5以內(nèi)的數(shù)字簡單的加,減,乘,除運算,用2個數(shù)碼管顯示運算結(jié)果。若進行除法運算,則小數(shù)點保留1位顯示。如果除數(shù)為 0,則清0

4、顯示,且蜂鳴器響,當按下任意鍵后,蜂鳴器停止。主要任務(wù):(1) 確定總體設(shè)計方案;(2) 2位數(shù)碼管顯示電路設(shè)計,4*4按鍵電路設(shè)計,報警電路設(shè)計;(3) 設(shè)計硬件電路原理圖和 PCB圖,繪制軟件程序流程圖,編寫程序;(4) 軟硬件聯(lián)機調(diào)試。技術(shù)要求:以 MCS-51單片機為核心,主機用P1 口接4*4矩陣按鍵;P0 口用作數(shù)碼管段碼接口, P2端口用作數(shù)碼管位碼選通接口和蜂鳴器電路接口。2.3設(shè)計方案簡易數(shù)字計算器設(shè)計,主要的部分是STC90C52AD編寫程序,實現(xiàn)軟硬結(jié)合,能夠進行5以內(nèi)的數(shù)字簡單的加,減,乘,除運算,且具備清零功能。6個數(shù)字鍵,6個功能鍵。進行除法運算時,小數(shù)點保留1位顯

5、示。如果除數(shù)為 0,則清0顯示,蜂鳴器響,當按下任意鍵后,蜂鳴器停止??蓴U展計算連續(xù)功能,數(shù)據(jù)溢出清0顯示,蜂鳴器響,按下任意鍵后,蜂鳴器停止。硬件設(shè)計1.STC90C52AD說明S遼1011T5n1415Y67?isP1.0 P1JPl.2 PL.3PL.4 PL5PL6PL-7 RSTRXDP3.0 TXDP3.1 KT0P3.2 INTI P3.3TO P3.4 TIPS.?WRP3 6 RDP3.7 X T AL 2 XTAL I 5X ccPOOPO 1P0.2P0.3PE4PQ+5P0.6 _P0.7 EXVpp ALEPROGPSENPPPPPPPP4 3 2 1040mg3B3

6、736773433It302S2721525242221AT89C51的引說明和功能說明如下:XTAL1 :接外部晶振的一個引腳。在單片機內(nèi)部,它是一反相放大器輸入端,這個 放大器構(gòu)成了片內(nèi)振蕩器。它采用外部振蕩器時,些引腳應(yīng)接地。XTAL2 :接外部晶振的一個引腳。在片內(nèi)接至振蕩器的反相放大器輸出端和內(nèi)部時 鐘發(fā)生器輸入端。當采用外部振蕩器時,則此引腳接外部振蕩信號的輸入。RST : STC90C52A啲復(fù)位信號輸入引腳,高電位工作,當要對芯片又時,只要將此 引腳電位提升到高電位,并持續(xù)兩個機器周期以上的時間,AT89C51便能完成系統(tǒng)復(fù)位的各項工作,使得內(nèi)部特殊功能寄存器的內(nèi)容均被設(shè)成已知

7、狀態(tài)。P0 口(P0.0P0.7)是一個8位漏極開路雙向輸入輸出端口,當訪問外部數(shù)據(jù)時,它 是地址總線(低 8位)和數(shù)據(jù)總線復(fù)用。外部不擴展而單片應(yīng)用時,則作一般雙向I/O口用。P0 口每一個引腳可以推動 8個LSTTL負載。P2 口(P2.0P2.7) 口是具有內(nèi)部提升電路的雙向 I/O端口(準雙向并行I/O 口),當訪 問外部程序存儲器時,它是高 8位地址。外部不擴展而單片應(yīng)用時,則作一般雙向I /O口用。每一個引腳可以推動 4個LSTL負載。P1 口 (P1.0P1.7) 口是具有內(nèi)部提升電路的雙向I/O端口(準雙向并行I/O 口),其輸出可以推動4個LSTTL負載。僅供用戶作為輸入輸出

8、用的端口。P3 口(P3.0P3.7) 口是具有內(nèi)部提升電路的雙向I/O端口(準雙向并行I/O 口),它還提供特殊功能,包括串行通信、外部中斷控制、計時計數(shù)控制及外部隨機存儲器內(nèi)容的讀 取或?qū)懭肟刂频裙δ?。DS22.數(shù)碼管LED顯示器由8段發(fā)光二極管組成,排列成764219r i058字形狀,稱為8段LED顯示器,器件內(nèi)部接線 圖如圖所示:為了顯示數(shù)字或符號,要為LED顯示器提供 代碼,即字形代碼。七段發(fā)光二極管,再加上一 個小數(shù)點位,共計8段,因此提供的字形代碼的 長度正好是一個字節(jié)。簡易計算器用到的數(shù)字 09的共陰極字形代碼如下表:顯示字符012345+-*/段碼3FH06H5BH4FH6

9、6H6DH70H40H76H49H3.晶體振蕩電路設(shè)計圖2.3-2晶體振蕩電路采用6MHZ勺晶振,接在芯片的18,19弓I腳上。在復(fù)位端口加低電平。4. 數(shù)碼管和位選設(shè)計001020304051817161514151ESM6 1C圖2.3-3 數(shù)碼管和位選電路需要顯示時間選用共陰極的數(shù)碼管是三極管驅(qū)動,接有1000歐姆的保護電阻而成的兩個數(shù)碼管在顯示時需要選通,采用STC90C52A啲P0 口作為位選信號的輸出端,高電平有效。由于P0 口有8個輸出端,當端口為高電平使對應(yīng)的數(shù)碼管選通。共陰極的數(shù)碼管是低電平有效,所以采用 NPN的三極管。5. 復(fù)位設(shè)計復(fù)位鍵直接加在單片機的復(fù)位端,當按鍵S1

10、被按下時,系統(tǒng)復(fù)位。圖2.3-4復(fù)位電路6.蜂鳴器電路設(shè)計圖2.3-5蜂鳴器電路蜂鳴器接在P3.5 口上,當觸發(fā)時P3.5產(chǎn)生低電平使其導(dǎo)通,蜂鳴器響,報警。7.矩陣鍵盤的設(shè)計圖2.3-6 矩陣鍵盤開關(guān)接在P1 口上,P1.0P1.7,按鍵按下后相應(yīng)的按鍵由高電平變?yōu)榈碗娖?,P1.0P1.3為行。軟件設(shè)計系統(tǒng)程序:#in clude<reg52.h>#defi ne uint un sig ned int#defi ne uchar un sig ned charsbit SPK = P3A5;/蜂鳴器引腳定義ucharcodetable=0x3f,0x06,0x5b,0x4f,0

11、x66,0x6d,0x7d,0x07,0x7f,0x67,0x3e,0x76,0x40,0x76,0x49;/0123456789 + int flag, nu ml, num2,num3,num 4,key1,key2,xia nshi,result ,nu m,temp;intt1;uint frq;/*延時函*/void delay (un sig ned char ms)un sig ned char i;while(ms-)for(i = 0; i < 120; i+);void in ter_i nit()II工作方式1,定時器0TMOD = 0x01;frq = 0x00;

12、TH0 = 0x00;TL0 = 0xff;IE = 0x82;TR0=1;I*結(jié)果顯示判斷 *void pan dua n()int i;if(flag=1)flag=0;for(i=0;i<10000;i+)SPK=SPK;if(key1%2=0)|(key2%2=0)result =nu m1+ nu m2; if(key1%2!=0)|(key2%2!=0)result =nu m3+num 4;*按鍵掃扌描 */帶返回值函數(shù)uchar keysca n()P1=0xf7;開始掃描第一行鍵temp=P1;temp=temp&OxfO;while(temp!=OxfO)de

13、lay(5);temp=P1;temp=temp&0 xf0;while(temp!=0xf0)temp=P1;switch(temp)case 0xe7:key1+;nu m1=1;nu m2=1;xia nshi=nu m1;if(num=11)nu m3=1;num 4=3;break;case 0xd7:key2+;nu m1=3;num2=3;xia nshi=nu m1;if(num=11)nu m3=1;num 4=3;xia nshi=nu m2;break;while(temp!=0xf0)松手檢測temp=P1;temp=temp&OxfO;P1=0xfb;

14、 temp=P1; temp=temp&OxfO; while(temp!=OxfO)開始掃描第二行鍵delay(5);temp=P1;temp=temp&0 xfO;while(temp!=OxfO)temp=P1;switch(temp)case 0xeb:num=11;xia nshi=num;break;case 0xdb:num=8;flag=1;break;松手檢測while(temp!=0xf0)temp=P1; temp=temp&OxfO;*主函*void mai n()數(shù)碼管位選P2=0x01;num=16;in ter_i nit();while(

15、1)xia nshi=keysca n();pan dua n();P0=table xi a nshi;/*-中 */void timer0() in terrupt 1 using 1THO = 0xfe;TLO = frq;2.4、軟硬件調(diào)試系統(tǒng)調(diào)試:根據(jù)系統(tǒng)設(shè)計方案,本系統(tǒng)的調(diào)試共分為兩大部分:硬件調(diào)試,軟件調(diào)試。(1) 硬件調(diào)試對各個模塊的功能進行調(diào)試,主要調(diào)試各模塊能否實現(xiàn)指定的功能。首先用數(shù)字萬用表對實物板上的各元器件進行測試,在測試過程中,檢驗出一些錯誤,如數(shù)碼管的引腳接錯了,導(dǎo)致數(shù)碼管無法顯示,將數(shù)碼管各引腳正確焊接后,數(shù)碼管正常工作。(2) 軟件調(diào)試軟件調(diào)試采用單片機仿真器

16、keil uVision 及protus,將編好的程序進行調(diào)試,主要是檢查語法錯誤。再進行仿真,檢驗各個子程序是否正確執(zhí)行,和硬件模塊的協(xié)調(diào)性。由 于能力有限,程序中仍然存在如下BUG不能進行連續(xù)除法,尚未實現(xiàn)加減法和乘除法之間的混合運算,錯誤報警后按運算符號鍵結(jié)束警報三、課程設(shè)計總結(jié)回顧起此次單片機課程設(shè)計,我感慨頗多,從選題到定稿,從理論到實踐,在接近兩 個星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時不僅可以 鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程 設(shè)計使我懂得了只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正

17、 為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解 得不夠深刻,掌握得不夠牢固,比如說不懂一些元器件的使用方法,對單片機匯編語言掌 握得不好通過這次課程設(shè)計之后,一定把以前所學(xué)過的知識重新溫故。這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,最后在岑毅南老師的 辛勤指導(dǎo)下,終于得到解決。同時,在岑毅南老師那里我學(xué)得到很多實用的知識,在次我 表示感謝!同時,對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝!四. 參考文獻1 張毅剛單片機原理及應(yīng)用高等教育出版社,20032 蘇家鍵等.單片機原理及應(yīng)用技術(shù)

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論