單片機(jī)教學(xué)實(shí)驗(yàn)箱的開發(fā)與研究-畢業(yè)論文_第1頁
單片機(jī)教學(xué)實(shí)驗(yàn)箱的開發(fā)與研究-畢業(yè)論文_第2頁
單片機(jī)教學(xué)實(shí)驗(yàn)箱的開發(fā)與研究-畢業(yè)論文_第3頁
單片機(jī)教學(xué)實(shí)驗(yàn)箱的開發(fā)與研究-畢業(yè)論文_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余13頁可下載查看

下載本文檔

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

文檔簡介

單片機(jī)教學(xué)實(shí)驗(yàn)箱的開發(fā)與研究單片機(jī)教學(xué)實(shí)驗(yàn)箱的開發(fā)與研究摘要:在本文中,這個(gè)仿真實(shí)驗(yàn)箱的設(shè)計(jì)是為了方便8051單片機(jī)的學(xué)習(xí),LED燈的仿真示例是AT89C51的一個(gè)很基礎(chǔ)的應(yīng)用,大家通過這個(gè)實(shí)驗(yàn)可以了解Keil Vision編程軟件和Proteus 7 Professional仿真軟件的使用。這里包含了流水燈,用指撥開關(guān)設(shè)置音調(diào),音樂播放,秒表和LCD漢子顯示以及點(diǎn)陣的滾動(dòng)顯示,電子密碼鎖等很多有趣的實(shí)驗(yàn),可以增添初學(xué)者對(duì)單片機(jī)的興趣。關(guān)鍵詞:單片機(jī),仿真, AT89C51,實(shí)驗(yàn)箱Abstract: In this paper, functional based simulator has been designed to facilitate the study of the 8051 microcontroller, The simulation example of LED lamp is a basing application about AT89C51. everyone have some knowledge about the use of Keil Vision programming software and Proteus 7 Professional simulation software. This includes water lights,the switch setting tone, music player, a stopwatch and LCD Chinese characters display and dot matrix rolling display, electronic password lock and many other interesting experiments, can be added to the interest of microcontroller beginners.Keywords: Microprocessor, Simulation, AT89C51, Experimental box前言AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器的低電壓、高性能CMOS 8位微處理器,有乘(MUL)、除(DIV)、減(SUBB)、比較(PUSH)、16位數(shù)據(jù)指針、布爾代數(shù)運(yùn)算等指令,以及串行通信能力和5個(gè)中斷源,內(nèi)有128個(gè)RAM單元及4K的ROM、16位定時(shí)計(jì)數(shù)器、4個(gè)8位并行輸入口5。匯編語言 (Assembly Language)是面向機(jī)器的程序設(shè)計(jì)語言.是一種功能很強(qiáng)的程序設(shè)計(jì)語言,也是利用計(jì)算機(jī)所有硬件特性并能直接控制硬件的語言,比機(jī)器語言易于讀寫、調(diào)試和修改11。仿真實(shí)驗(yàn)箱包括流水燈、音樂播放、秒表、LCD顯示、LED滾動(dòng)顯示、電子密碼鎖等應(yīng)用。1 實(shí)例介紹1.1 流水燈1.1.1 LED燈的仿真示例實(shí)驗(yàn)要求能對(duì)Keil軟件和Proteus軟件有初步的認(rèn)識(shí)和了解,學(xué)會(huì)使用Keil軟件進(jìn)行簡單的程序編寫和調(diào)試、鏈接,學(xué)會(huì)使用Proteus軟件進(jìn)行簡單的實(shí)驗(yàn)仿真。單片機(jī)仿真實(shí)驗(yàn)箱要用到Keil軟件和Proteus軟件。下面介紹仿真實(shí)驗(yàn)的基本步驟11。圖1 啟動(dòng) Keil Vision后的界面(1)建立源文件和工程打開Keil軟件,出現(xiàn)如圖1所示的界面。單擊FileNew,開啟一個(gè)新的源程序編輯窗口,將下面的源程序輸入其中。CLR P1.0HERE:SJMP HEREEND輸入完畢后,單擊FileSave,給該文件取名保存。一般匯編程序以“.asm”或“.A51”為擴(kuò)展名,如圖2所示。 圖2 源程序的保存在項(xiàng)目開發(fā)中,除源程序外,還需要選擇CPU,確定編譯/匯編、鏈接的參數(shù),制定調(diào)試的方法等。為管理和使用方便,Keil使用工程將所需設(shè)置的參數(shù)和文件都加在一個(gè)工程中,只對(duì)工程進(jìn)行編譯和鏈接等操作。建立工程的步驟如下:單擊ProjectNew Project,出現(xiàn)創(chuàng)建新工程的對(duì)話框,如圖3所示。要求起一個(gè)工程名并保存,一般應(yīng)把工程和源文件保存在同一個(gè)文件夾中。進(jìn)入下一步,選擇目標(biāo)CPU,如圖4所示,這里選擇Atmel公司的89C51為例,單擊“確定”按鈕可返回主界面。圖3 新工程的建立工程建好后,會(huì)出現(xiàn)如圖5所示的對(duì)話框,詢問是否要將80C51的標(biāo)準(zhǔn)啟動(dòng)代碼源程序復(fù)制到工程所在文件夾,并將這一源程序文件加入到工程中。使用C語言編程且要修改啟動(dòng)代碼時(shí)應(yīng)選“是”,使用匯編語言則應(yīng)選擇“否”。(2)將源程序加入到工程中單擊工程工作空間Target1下方的Source Group1,使其反白顯示,然后單擊鼠標(biāo)右鍵,在出現(xiàn)的快捷菜單中選擇Add Files to Group Source Group1,出現(xiàn)如圖6所示的對(duì)話窗口。Keil默認(rèn)加入C源文件,因此要加入?yún)R編語言源文件,需單擊“文件類型”下拉列表右側(cè)的下三角按鈕,選“Asm Source file(*.s*;*.src;*.a*)”項(xiàng),才能將文件夾下的*.asm文件顯示出來。將這個(gè)文件加入到工程中。如果不再需要其他文件,單擊Close按鈕關(guān)閉這個(gè)對(duì)話框。圖4 為工程選擇目標(biāo)CPU 圖5詢問是否需要將8051的標(biāo)準(zhǔn)啟動(dòng)代碼源程序復(fù)制到工程所在文件夾 圖6 加入文件對(duì)話框 關(guān)閉對(duì)話框后回到主界面,剛加入的文件名出現(xiàn)在工程管理器的Source Group 1下一級(jí)。工程建好后,還要對(duì)工程做出進(jìn)一步的設(shè)置,以滿足每個(gè)工程個(gè)性化的要求。如圖7,單擊Output標(biāo)簽進(jìn)入輸出設(shè)置選項(xiàng)卡,一般設(shè)置都取默認(rèn)值。如圖8,要選中Greate HEX file。設(shè)置完畢后單擊“確定”返回主界面,工程文件建立、設(shè)置完畢。圖7 存儲(chǔ)器使用等狀況的設(shè)置圖8 對(duì)輸出進(jìn)行控制設(shè)置好工程后,即可進(jìn)行編譯、鏈接。編譯過程中的信息將出現(xiàn)在輸出窗口的Build頁。如果源程序中有語法錯(cuò)誤,則會(huì)出現(xiàn)錯(cuò)誤報(bào)告。源程序每修改一次都要再次編譯,最終得到如圖9所示圖9 編譯、鏈接后得到正確的結(jié)果的結(jié)果,提示生成了HEX格式的文件,在此過程中還會(huì)生成一些其他文件用于Keil的仿真與調(diào)試。單擊桌面“開始所有程序Proteus 7 Professional”打開Proteus軟件。如圖10所示,單擊左側(cè)的器件選擇按鈕,將出現(xiàn)如圖11所示的Pick Device對(duì)話框,其中左側(cè)的Category列表框中為器件的分類。器件選擇按鈕 圖10 單擊器件選擇按鈕單擊其中的Microprocess ICs,可在Sub-category列表框中找到8051 Family,單擊后,在中間的列表框中就出現(xiàn)了所有可用的8051系列CPU,找到AT89C51芯片,單擊該芯片名,在對(duì)話框的右側(cè)分別顯示該元件的電路原理圖和封裝圖。選中芯片后單擊“OK”按鈕,或雙擊AT89C51,回到主界面,可以看到列表框中多出了AT89C51芯片,用同樣的方法選中RESPACK-8和LED-BIBY。在DEVICES列表中單擊元件名,然后將鼠標(biāo)移動(dòng)到繪圖區(qū),鼠標(biāo)形狀變?yōu)楣P狀,在任意位置單擊鼠標(biāo),則該元件出現(xiàn)在這一位置,并且自動(dòng)命名。AT89C51元件被自動(dòng)命名為U1。LED-BIBY即LED燈被命名為D1。單擊元件,使其加亮顯示,然后單擊鼠標(biāo)右鍵,可以變換元件的位置,使其合理放置。圖11 選擇所需要的器件單擊左側(cè)工具欄中的第八個(gè)按鈕,切換到TERMINALS(終端模式),如圖12所示。單擊POWER即可既可增加一個(gè)電源端,雙擊該電源端,即出現(xiàn)Edit Terminal Label對(duì)話框。單擊String后的下拉箭頭,選中其中的VCC項(xiàng)即可。在繪圖區(qū)加入電源,用線連接好。 圖12 終端模式單擊U1以選中AT89C51芯片,再次單擊該芯片,或者雙擊U1即出現(xiàn)如圖13所示的Edit Component對(duì)話框。 圖13 編輯元件對(duì)話框這個(gè)對(duì)話框中需要設(shè)置Program File,即選擇該芯片的運(yùn)行程序。單擊Program File后面的類似文件夾形狀的按鈕,找到先前生成的led燈.hex文件,選好后,還可以設(shè)置Clock Frequency,其默認(rèn)值為12MHz,可設(shè)成自己需要的頻率,選好程序文件后,單擊程序窗口左下角的“運(yùn)行”按鈕,即可看見LED燈被點(diǎn)亮,如圖14所示。 圖14 程序運(yùn)行結(jié)果1.1.2 流水燈返回開始取數(shù)0FEH加入A中將數(shù)送入P1,A中的內(nèi)容左移一次調(diào)用延時(shí)子程序流水燈是一個(gè)大家常見的小玩具,在這個(gè)實(shí)驗(yàn)中將八個(gè)燈圍成圓形,當(dāng)燈以不同的方式點(diǎn)亮?xí)r,可以變出各種花樣,通過這個(gè)實(shí)驗(yàn)可以了解單片機(jī)內(nèi)部的結(jié)構(gòu)及I/O口的作用。流水燈的流程圖如圖15所示。圖15流水燈的流程圖按照上文步驟操作后,運(yùn)行可以看到燈按不同的方式點(diǎn)亮,效果如圖16所示。圖16 流水燈運(yùn)行的效果圖1.2 音樂播放1.2.1 用指撥開關(guān)設(shè)置音調(diào)隨著社會(huì)的發(fā)展,音樂逐漸成了我們生活中很重要的一部分,電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,這里用AT89C51單片機(jī)為核心控制元件,在主控模塊上設(shè)有7個(gè)按鍵和揚(yáng)聲器,用來設(shè)置音調(diào),介紹了電子琴的基本原理。音名與頻率的關(guān)系11如表1所示。表1 音名與頻率的關(guān)系音名C4D4E4F4G4A4B4頻率/Hz262294330349392440494實(shí)驗(yàn)所用的系統(tǒng)晶振為12MHz,由產(chǎn)生方波的定時(shí)時(shí)間與延時(shí)常數(shù)的對(duì)應(yīng)關(guān)系,得音名與設(shè)置的R7的值11如表2所示。其中指撥開關(guān)接在P2口,揚(yáng)聲器接P1.0引腳。用指撥開關(guān)設(shè)置音調(diào)的流程圖如圖17所示表2 音名與設(shè)置的R7的值 音名設(shè)置C4D4E4F4G4A4B4時(shí)間/s3817340130302865255122732024常數(shù)/次954850757716637568506R7值188170151143127113101YN開始判斷P2接口是否為低電平?把立即數(shù)送入R7中P1.0接高電平延時(shí)圖17 用指撥開關(guān)設(shè)置音調(diào)的流程圖按照上文步驟操作運(yùn)行后,用鼠標(biāo)單擊指撥開關(guān),將各位分別至于ON的位置,可以聽到揚(yáng)聲器的聲音發(fā)生了變化。運(yùn)行時(shí)示波器顯示的方波會(huì)隨著音調(diào)發(fā)生變化。圖18 用指撥開關(guān)設(shè)置音調(diào)的仿真電路1.2.2 簡單音樂盒設(shè)計(jì)一個(gè)特殊的“音樂播放器”,核心器件用AT89C51單片機(jī),利用定時(shí)器產(chǎn)生 “Do”、“Re”、“Me”等音階在內(nèi)的各種頻率聲音。將各個(gè)音階連接在一起,便可組成一支曲子或是演奏一段旋律。這里以音樂“千年緣”作為示例。簡單音樂盒的流程圖如圖19所示。開始設(shè)定定時(shí)器工作模式中斷允許音符、節(jié)拍表格地址送入DPTR調(diào)用T0中斷子程序調(diào)用T1中斷子程序結(jié)束圖19 簡單音樂盒的流程圖本例的控制信號(hào)為P3.5引腳,電路如圖20所示。按照上文所示步驟操作,運(yùn)行后可以實(shí)現(xiàn)音樂播放。圖20 播放音樂“千年緣”的仿真電路圖1.3 點(diǎn)陣滾動(dòng)顯示LED點(diǎn)陣顯示器,以發(fā)光二極管為像素,1616的點(diǎn)陣共有256個(gè)發(fā)光二極管,顯然單片機(jī)沒有這么多端口,如果我們采用鎖存器來擴(kuò)展端口,按8位的鎖存器來計(jì)算,1616的點(diǎn)陣需要256/8=32個(gè)鎖存器。因此在實(shí)際應(yīng)用中的顯示屏幾乎都不采用這種設(shè)計(jì),而采用另一種稱為動(dòng)態(tài)掃描的顯示方法,即逐行輪流點(diǎn)亮。1616 LED點(diǎn)陣其實(shí)就是4塊88點(diǎn)陣LED級(jí)聯(lián)而成的,圖21為88點(diǎn)陣LED外觀及引腳圖,其等效電路如圖22所示,只要其對(duì)應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。若想使左上角LED點(diǎn)亮,則令Y0=1,X0=0。應(yīng)用時(shí)限流電阻可放在X軸或Y軸。而1616就是在88原理的基礎(chǔ)上將四塊88級(jí)聯(lián)而成。以1616點(diǎn)陣為例,把所有同一行的發(fā)光管的陰極連在一起,把所有同一列的發(fā)光管的陽極連在一起(共陰的接法),先送出對(duì)應(yīng)第1列發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1列使其燃亮一定的時(shí)間,然后熄滅;再送出第2列的數(shù)據(jù)并鎖存,然后選通第2列使其燃亮相同的時(shí)間,然后熄滅;.第16列之后,又重新燃亮第1列,反復(fù)輪回。當(dāng)輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形。圖21 88點(diǎn)陣LED外觀及引腳圖圖22 88點(diǎn)陣LED等效電路LED點(diǎn)陣顯示模塊進(jìn)行的方法有兩種:(1)水平方向掃描:用一個(gè)P口輸出列碼決定哪一列能亮,用另一個(gè)P口輸出行碼,決定該列上哪個(gè)LED亮。能亮的列從左到右掃描完16列即顯示出一幀完整的圖像。圖23“北”字的顯示點(diǎn)陣(2)豎直方向掃描:用一個(gè)P口輸出決定哪一行能亮,另一個(gè)P口輸出列碼決定該行上哪些LED燈亮。能亮的行從上向下掃描完16行即顯示一幀完整的圖像。YN開始初始化調(diào)用顯示程序調(diào)整數(shù)據(jù)指針顯示完?漢字的顯示一般采用圖形的方式,事先提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件),每個(gè)漢字分左右兩半,各占16B,左邊為1、3、 5右邊為2、4、6根據(jù)在LCD上開始顯示的行列號(hào)及每行的列數(shù)可找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一個(gè)字節(jié),光標(biāo)位置加1,送第二個(gè)字節(jié),換行按列對(duì)齊,送第三個(gè)字節(jié)直到32B顯示完就可以LCD上得到一個(gè)完整漢字。32個(gè)字節(jié)為“北”的顯示點(diǎn)陣如圖23所示。 圖24 主程序流程圖這里要求設(shè)計(jì)一個(gè)1616點(diǎn)陣LED漢字顯示屏,顯示屏各點(diǎn)亮度均勻、充足,顯示的文字應(yīng)穩(wěn)定、清晰無串?dāng)_。主程序流程圖如圖24所示。 圖25 點(diǎn)陣滾動(dòng)顯示效果圖按照上文操作,運(yùn)行后會(huì)看見文字“歡迎乘坐邯鄲市13路公共汽車,現(xiàn)在開往河北工程大學(xué),請(qǐng)坐穩(wěn)扶好,注意安全?!钡臐L動(dòng)顯示。效果如圖25所示。1.4 LCD漢字顯示在日常生活中,液晶顯示模塊已作為很多電子產(chǎn)品的通用器件,如在計(jì)算器、萬用表等很多家用電子產(chǎn)品中都可以看到,這里以漢字顯示為例介紹LCD液晶顯示的基本原理。液晶顯示漢字原理見1.4。AMPIRE12864管腳共18個(gè)。CS1為左半屏片選端,CS2為右半屏片選端;VCC接電源,GND接地,連接滑動(dòng)變阻器的控制端,RS為數(shù)據(jù)指令選擇信號(hào)端,H時(shí)輸入數(shù)據(jù),L時(shí)輸入指令,R/W讀寫選擇信號(hào)端,H時(shí)為讀選擇信號(hào),L時(shí)為寫選擇信號(hào),E為LCD使能端,DB0DB7為數(shù)據(jù)傳輸端口。RST為復(fù)位端。Vout和V0類似,都是液晶顯示驅(qū)動(dòng)電壓端。其引腳圖如圖26所示。主程序流程圖如圖27所示開始LCD初始化寫LCD指令寫入顯示坐標(biāo)的指令寫入點(diǎn)陣數(shù)據(jù)結(jié)束圖26 AMPIRE12864的引腳圖圖27 LCD漢字顯示主程序流程圖按照上文操作后運(yùn)行可以看見LCD顯示屏上依次出現(xiàn)“謝謝老師”四個(gè)字。仿真效果如圖28所示。圖28 LCD漢字顯示效果圖1.5 演示實(shí)驗(yàn)1. 秒表本實(shí)驗(yàn)用單片機(jī)和數(shù)碼管組成數(shù)字電子秒表。電路主要有控制器AT89C51,計(jì)時(shí)與顯示電路和回零、啟動(dòng)和停表電路等。秒表的流程圖如圖29所示。開始給存儲(chǔ)地址賦值調(diào)用定時(shí)中斷子程序調(diào)用時(shí)間調(diào)整子程序調(diào)用顯示子程序結(jié)束按上文所示步驟操作,運(yùn)行后可以實(shí)現(xiàn)時(shí)時(shí)間的調(diào)整、暫停和復(fù)位等操作。仿真效果如圖30所示。圖29秒表的流程圖圖30 秒表的仿真效果2.萬年歷現(xiàn)在所使用的萬年歷,記錄一定時(shí)間范圍內(nèi)的具體陽歷或陰歷的日期的年歷,方便有需要的人查詢使用

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論