單片機原理及應(yīng)用實習報告_第1頁
單片機原理及應(yīng)用實習報告_第2頁
單片機原理及應(yīng)用實習報告_第3頁
單片機原理及應(yīng)用實習報告_第4頁
單片機原理及應(yīng)用實習報告_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機原理及應(yīng)用實習報告姓 名:王 鵬 飛學 院:機械與電子信息學院班 級:073101學 號:20101003558指導老師:李 勇 波2012年6月一、 實習目的1、進一步熟悉和掌握單片機的結(jié)構(gòu)及工作原理。2、掌握單片機的接口技術(shù)及相關(guān)外圍芯片的特性,控制方法。3、通過課程實習,掌握以單片機為核心的電路設(shè)計的基本方法和技術(shù)。4、通過實際應(yīng)用程序設(shè)計和調(diào)試,逐步掌握模塊化程序設(shè)計方法和調(diào)試技術(shù)。5、通過完成一個包括電路設(shè)計和程序開發(fā)的完整過程,使學生了解開發(fā)單片機應(yīng)用系統(tǒng)的全過程,為今后從事相應(yīng)工作打下基礎(chǔ)。二、 實習要求1、 在偉福lab8000仿真實驗箱上完成一個應(yīng)用系統(tǒng)設(shè)計:自己獨立設(shè)

2、計一個單片機應(yīng)用系統(tǒng),然后設(shè)計原理圖、編制程序、調(diào)試形成一個完整的應(yīng)用控制系統(tǒng)。2、在已設(shè)計好的pcb板上焊接、組裝、調(diào)試單片機應(yīng)用板:在已設(shè)計好的單片機應(yīng)用印刷板上焊接元器件,調(diào)試電路,找出錯誤,編制應(yīng)用程序?qū)崿F(xiàn)設(shè)想功能。三、 實習器材1、應(yīng)用系統(tǒng)設(shè)計:偉福lab8000仿真實驗箱、pc機2、pcb板上的系統(tǒng)設(shè)計:pc機、已設(shè)計好的pcb印刷線路板、數(shù)字萬用表、電烙鐵、松香、焊錫、八段數(shù)碼管顯示、鍵盤、點陣、8255擴展、單片機、led燈以及其他必備電子元件四、實習過程 第一部分:應(yīng)用系統(tǒng)設(shè)計1、設(shè)計目的(項目構(gòu)想):我此次實習設(shè)計的系統(tǒng)名稱為“自動化空調(diào)系統(tǒng)”,整個系統(tǒng)由溫度傳感器、led

3、指示燈、鍵盤、八段數(shù)碼管顯示、直流電機、lcd液晶屏顯示、蜂鳴器等七個模塊組成。該系統(tǒng)主要實現(xiàn)的是空調(diào)對室內(nèi)溫度自動調(diào)節(jié)功能,在實際應(yīng)用中,需要根據(jù)溫度傳感器所測定的室內(nèi)實際溫度與事先設(shè)定的溫度間的不同來確定空調(diào)的制冷和制熱。其中溫度傳感器由電位器來模擬,直流電機的正轉(zhuǎn)反轉(zhuǎn)來代表制冷和制熱,同時,數(shù)碼顯示管可以顯示當前模擬的環(huán)境溫度和人為設(shè)定的溫度,液晶顯示屏可隨著工作狀態(tài)的設(shè)定來顯示“制冷”、“制熱”,led燈的和滅也可以表示系統(tǒng)所處的工作狀態(tài),蜂鳴器有提醒作用2、電路模塊連接原理圖:led燈模塊溫度傳感器模塊 (1) 溫度傳感器模塊:由電位器和adc0809數(shù)模轉(zhuǎn)換器模擬。工作時,首先調(diào)節(jié)

4、電位器的阻值,模擬室內(nèi)溫度的變化。改變阻值后的電流經(jīng)過0809進行模數(shù)轉(zhuǎn)換成數(shù)字信號,送到數(shù)碼管顯示成溫度值。(2) led指示燈模塊:由led燈和8255組成。數(shù)據(jù)通過74hc138編譯后通過adcs口送入8255,p0口接led0,p1口接led1,分別表示制冷和制熱指示燈。鍵盤模塊八段數(shù)碼管顯示模塊(3)鍵盤模塊:先向列掃描碼地址逐列輸出低電平,然后從行碼地址讀回。若有鍵按下,則相應(yīng)行的值應(yīng)為低,如果無鍵按下,行碼為高,則可判斷按下的是什么鍵。在判斷有鍵按下后,要有去抖程序。直流電機(4)八段數(shù)碼管顯示模塊: 將八段的驅(qū)動方式選擇開關(guān)撥到“內(nèi)驅(qū)”位置, 按地址輸出相應(yīng)數(shù)據(jù),則實現(xiàn)對顯示器

5、的控制。顯示共有6位,用動態(tài)方式顯示。8位段碼、6位位碼由兩片74ls374輸出。位碼經(jīng)mc1413倒相驅(qū)動后,選擇相應(yīng)顯示位。驅(qū)動cs4d/a變換直流電機模塊(5)直流電機模塊:由直流電機和d/a轉(zhuǎn)換電路組成。實驗儀的d/a變換可輸出-8v到+8v的電壓,將電壓經(jīng)驅(qū)動后加在直流電機上,使其運轉(zhuǎn)。通過單片機輸出數(shù)據(jù)到d/a變換電路,控制電壓的正負,使電機正傳、反轉(zhuǎn),模擬制冷制熱。液晶顯示屏液晶屏顯示模塊(6)lcd液晶屏顯示模塊:液晶顯示屏內(nèi)置控制器為sed1520,點陣為122x32,需要兩片,由e1、e2選通,控制左右兩半屏,采用直接控制方式,即將液晶顯示模塊的接口作為存儲器直接掛在計算機

6、總線上。計算機通過地址譯碼控制 e1和 e2的選通;讀寫操作信號 rw由地址線 a1控制;命令/數(shù)據(jù)寄存器選擇信號 ao由地址線 a0控制。p1.0(7)蜂鳴器模塊:與單片機的p1.0口連接,當設(shè)定溫度與室內(nèi)實際溫度相等時,電機停止工作,同時蜂鳴器發(fā)出聲音提醒。大于相等開始工始當前溫度和設(shè)定溫度送顯示緩沖鍵盤值是?顯示溫度電機停止工作led燈滅蜂鳴器報警當前溫度與設(shè)定溫度比較初始化溫度參數(shù)采樣當前溫度電機正轉(zhuǎn)制熱led1亮讀鍵盤電機反轉(zhuǎn)制冷led0亮小于next鍵last鍵設(shè)定溫度減1設(shè)定溫度加1主程序框圖3、主要原程序流程圖:液晶屏函數(shù)調(diào)用液晶屏顯示主程序工作時,數(shù)碼管首先顯示當前溫度和設(shè)定

7、的初始溫度25,同時液晶屏顯示第一行系統(tǒng)名稱“自動化空調(diào)系統(tǒng)”第二行顯示“制冷”或“制熱”(根據(jù)初始溫度與當前溫度比較而定),此時電機開始轉(zhuǎn)。隨后按鍵盤調(diào)整設(shè)定溫度,根據(jù)框圖中的比較方式確定系統(tǒng)狀態(tài),在一次程序運行完成后,繼續(xù)循環(huán)到程序開頭運行。4、技術(shù)小結(jié)與心得: 通過這次單片機的應(yīng)用實習,我發(fā)現(xiàn)對單片機系統(tǒng)的設(shè)計要求對單片機的硬件結(jié)構(gòu)和功能有很好的了解。特別是在軟件程序設(shè)計過程中,單片機的內(nèi)部ram、rom、寄存器、地址,以及外部的接口管腳的功能等,作為程序設(shè)計人員必須了然于心。剛開始設(shè)計程序時,我比較關(guān)心程序的算法,反倒對單片機的硬件結(jié)構(gòu)不是很在意,結(jié)果程序的算法沒什么問題,但當在單片機

8、上運行時與硬件的結(jié)合不好,如管腳定義錯誤、地址重復、片選錯誤等等,很多設(shè)計好的功能不能實現(xiàn)。經(jīng)過老師的提醒,我開始查51、8255等所需單片機的數(shù)據(jù)手冊。在充分了解它們的結(jié)構(gòu)后開始修改程序,最終程序設(shè)計的功能得到了比較好的實現(xiàn)。同時,各個模塊的組合也是一個難點,必須考慮到各個模塊的接口和地址不能重復,不能相互影響,要注意在一個程序中只能有一個主函數(shù),各個模塊的主函數(shù)要在主程序中進行調(diào)用。在這次實習中,老師也說了,最好開始時用匯編語言編程,以了解硬件,然后再翻譯成c語言程序。但由于實習時間和自身編程水平的局限,我一開始就使用的c語言,對匯編語言用的較少,我覺得在以后的各種實習過程中我應(yīng)當注意多使

9、用匯編語言,以掌握最基本的編程工具的使用方法。5、收獲與體會: 這次的單片機原理及應(yīng)用實習,我覺得我有以下幾點收獲:(1)在整合程序時,并不是把各個模塊簡單鏈接起來就行,往往需要把某些模塊拆開,重新嵌套入整合程序中(常常需要在主程序中進行調(diào)用),這樣才能實現(xiàn)它的功能,說明程序的調(diào)用和嵌套要靈活,不能生搬硬套,要能在理解程序的基礎(chǔ)上有所創(chuàng)新。(2)延時的巧妙應(yīng)用。在數(shù)碼管顯示、鍵盤掃描、直流電機、蜂鳴器等模塊均用到了延時程序。其中鍵盤掃描中的延時程序必不可少,它起到了鍵盤去抖的作用。我在進行數(shù)碼管顯示模塊的編程時,延時時間設(shè)定少了,結(jié)果導致數(shù)碼管不能穩(wěn)定顯示,一直在掃描。經(jīng)過老師的指導,我將延時

10、時間延長,隨后數(shù)碼管便能正常顯示了。我認為延時程序是一個重要的程序模塊,以后要加強學習和應(yīng)用。(3)最后,通過這一星期的軟件部分的實習,我學會了使用keil、wave等仿真軟件,對單片機有了更深的理解,同時對基于單片機的系統(tǒng)軟件設(shè)計有了進一步的認識。在程序的編寫方面,我也有了一些想法,可以說是有跡可循了。這次時間很緊張的實習,讓我在平時學到的單片機的理論知識得到了實踐,也讓我了解了不少新的知識,如:液晶屏的顯示、led點陣的顯示、幾款常用設(shè)計軟件的用法等等。我認為這些知識對我以后的從事這方面的工作奠定了一個良好的基礎(chǔ)。第二部分:pcb印刷電路板上的系統(tǒng)設(shè)計1、設(shè)計目的:這部分的實習建立在第一部

11、分的實習較好完成的基礎(chǔ)之上,以實際的焊接電路板為基礎(chǔ),利用仿真軟件,進行軟件系統(tǒng)模塊設(shè)計。通過分析原理圖,在以設(shè)計好的pcb印刷電路版上正確焊好所需的元器件,進而進行模塊化的程序設(shè)計,檢測并調(diào)試各個模塊,以準確實現(xiàn)其功能,最終,將各個模塊聯(lián)結(jié)起來,組成一個系統(tǒng),使其具有應(yīng)用性。該部分實習,我與劉浪濤同學一組,我們主要設(shè)計了鍵盤、液晶屏、led燈、八段數(shù)碼管、led點陣等五個獨立的模塊,并將它們成功的組合到pcb版上,形成了一個具有特定功能的系統(tǒng)。、pcb版電路原理圖:、主要模塊介紹:(1)鍵盤模塊:先將8255的pc口置為高電平,當有按鍵按下時,與其相接的相應(yīng)端口變?yōu)榈碗娖?,然后再送一組掃描信

12、號,檢測哪一行有低電平,從而確定所按鍵的位置。隨后要編寫一段延時程序,用來去抖。 主要程序如下:code unsigned char keytable = /鍵值表 0x7e, 0xbe, 0xde, 0xee, 0x7d, 0xbd, 0xdd, 0xed, 0x7b, 0xbb, 0xdb, 0xeb, 0x77, 0xb7, 0xd7, 0xe7;code unsigned char sweep = /掃描信號 0xf7, 0xfb, 0xfd, 0xfe ;void delay( unsigned int cnt ) /延時 unsigned char i; while ( cnt-!

13、= 0) for( i=100; i != 0; -i);void delay1ms(void) /鍵盤去抖程序 unsigned char a,b,c; for(c=1;c0;c-) for(b=142;b0;b-) for(a=2;a0;a-);unsigned char testkey() unsigned char i, temp; temp = pc; i = temp & 0xf0; return i;void getkey () unsigned char i, j; for( i=0; i4; i+) /循環(huán)掃描 pc = sweepi; if(testkey() for(j=

14、0; j=15; j+) if( keytablej = pc ) num = j; delay1ms(); (2)八段數(shù)碼管顯示:此處數(shù)碼管顯示原理與做第一部分實驗時的原理類似,但要注意電路板上有兩處用到74hc138譯碼的模塊(還有一處是液晶顯示模塊),所以各個數(shù)碼管的位地址不可與液晶顯示屏的重復,即000和001不可用。還有,數(shù)碼管通常配合鍵盤使用。注意以上幾點,就很容易實現(xiàn)功能了。主要程序如下:unsigned char ledbuffleds = 0x00; unsigned char num =0;sbit cs8255 = p35;unsigned char shumaleds

15、= /八段數(shù)碼管 led0, led1, led2, led3, led4, led5, led6, led7;code unsigned char ledmap = /八段顯示管鍵碼 0x39, 0x5e, 0x79, 0x71, 0x7f, 0x6f, 0x77, 0x7c, 0x66, 0x6d, 0x7d, 0x07, 0x3f, 0x06, 0x5b, 0x4f;(3)點陣模塊:點陣就我理解就是利用發(fā)光二極管的特性,結(jié)合一定的程序來實現(xiàn)字符顯示的工具。其中從原理圖可以看出8255的pa口控制點陣的行,單片機的p1口控制列。當某一行的pa口為高電平,某一列的p1口為低電平時,發(fā)光的二極

16、管的位置就確定下來了。 主要程序是:code uchar h = 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/ 行code uchar l=0xf7,0xf7,0x80,0xb6,0x80,0xf7,0xf7,0xf7;/列void dianzhen() uchar i,k; for(i=0;i8;i+) for(k=0;k100;k+)pa=hi; p1=li;(4)液晶模塊:sed1520液晶屏在使用時分為左右兩個半屏,0、1、2、3四頁。注意在使用時不要與數(shù)碼管顯示模塊的地址重復,根據(jù)字模形成軟件去的字模確定要顯示的漢字的字模,組成一個字模數(shù)組,以方

17、便調(diào)用。其余注意事項在第一部分的實習的報告中已有說明,此處不在贅述。 主要程序是xdata unsigned char cwadd1 _at_ 0x1cff; / 寫指令代碼地址(e1)xdata unsigned char dwadd1 _at_ 0x1eff; / 寫顯示數(shù)據(jù)地址(e1)xdata unsigned char cradd1 _at_ 0x1dff; / 讀狀態(tài)字地址(e1)xdata unsigned char dradd1 _at_ 0x1fff; / 讀顯示數(shù)據(jù)地址(e1)xdata unsigned char cwadd2 _at_ 0x3cff; / 寫指令代碼地址

18、(e2)xdata unsigned char dwadd2 _at_ 0x3eff; / 寫顯示 數(shù)據(jù)地址(e2)xdata unsigned char cradd2 _at_ 0x3dff; / 讀狀態(tài)字地址(e2)xdata unsigned char dradd2 _at_ 0x3fff; / 讀顯示數(shù)據(jù)地址(e2)void writechn16x16()/ 中文顯示子程序 unsigned char i,j,k; i = 0; j = 0; while(j2) command = (page_ + j) & 0x03) | 0xb8; / 設(shè)置頁地址 writecommande1()

19、; writecommande2(); k = column; / 列地址值 while(k column + 16) if (k = pd1 * 2) break; / 列地址是否超出顯示范圍 ; j+; ; void yejing() unsigned char t; cs8255=1; init(); clear(); for(t=0;t10;t+) page_ = 0x02; column = 0x00; code_ = 0x00; writechn16x16();page_ = 0x02; column = 0x10; code_ = 0x01; writechn16x16();pa

20、ge_ = 0x02; column = 0x20; code_ = 0x02; writechn16x16(); page_=0x02; column = 0x30; code_ = 0x03;writechn16x16();page_ = 0x02; column = 0x40;code_ = 0x04;writechn16x16(); page_ = 0x02; column = 0x50; code_ = 0x05; writechn16x16();page_ = 0x02; column = 0x60; code_ = 0x06; writechn16x16(); page_ = 0

21、x04; column = 0x00; code_ = 0x07; writechn16x16(); page_ = 0x04; column = 0x10; code_ = 0x08; writechn16x16(); page_ = 0x04; column=0x20; code_ = 0x09; writechn16x16(); page_=0x04; column=0x30; code_ =0x0a; writechn16x16; page_=0x04; column=0x40; code_=0x0b; writechn16x16(); page_=0x04; column=0x50; code_=0x0c; writechn16x16(); page_ = 0x04; column = 0x60; code_ = 0x0d; writechn16x16();

溫馨提示

  • 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

提交評論