基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng)設(shè)計(jì)論文_圖文_第1頁(yè)
基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng)設(shè)計(jì)論文_圖文_第2頁(yè)
基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng)設(shè)計(jì)論文_圖文_第3頁(yè)
基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng)設(shè)計(jì)論文_圖文_第4頁(yè)
基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng)設(shè)計(jì)論文_圖文_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄0. 前言 . . 11. 基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng)基本理論 . . 12. 方案設(shè)計(jì) . . 23. 硬件電路的工作原理 . . 23.1單片機(jī)AT89C51工作原理 . 23.2鍵盤輸入模塊 . . 43.3動(dòng)態(tài)顯示模塊 . . 53.4時(shí)鐘模塊 . . 63.5復(fù)位模塊 . . 63.6發(fā)光提示和按鍵中斷模塊 . . 74. 軟件編程 . . 74.1主程序功能 . . 74.2鍵盤程序功能 . . 84.3冒泡排序法程序功能 . . 95. 系統(tǒng)調(diào)試和結(jié)果分析 . . 106. 結(jié)論及進(jìn)一步設(shè)想 . . 12參考文獻(xiàn) . . 12課設(shè)體會(huì) . . 13附錄1 元件清單 .

2、 . 14附錄2 總體電路圖 . . 15基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng)設(shè)計(jì)金遠(yuǎn)華 沈陽(yáng)航空航天大學(xué)自動(dòng)化學(xué)院摘要:本文設(shè)計(jì)的是基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng), 它的主要功能是利用鍵盤輸入數(shù)據(jù)和八位LED 數(shù)碼管動(dòng)態(tài)地顯示排序過程。采用AT89C51作為電路核心部件,利用按鍵開關(guān)做成44鍵盤代表數(shù)字0F ,并且通過LED 數(shù)碼管作為顯示電路,當(dāng)確認(rèn)排序后系統(tǒng)還可以在數(shù)碼管中動(dòng)態(tài)的顯示排序過程。通過硬件和軟件的結(jié)合可以看到實(shí)驗(yàn)結(jié)果與設(shè)計(jì)要求基本吻合,實(shí)現(xiàn)了數(shù)據(jù)輸入和動(dòng)態(tài)排序顯示。關(guān)鍵詞:?jiǎn)纹瑱C(jī);鍵盤;冒泡排序;動(dòng)態(tài)LED 顯示0. 前言單片機(jī)具有顯著的優(yōu)點(diǎn),它已成為科技領(lǐng)域的有力工具,人類生

3、活的得力助手。它的應(yīng)用遍及各個(gè)領(lǐng)域.可以說,二十世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。不過,這種電腦,通常是指?jìng)€(gè)人計(jì)算機(jī),簡(jiǎn)稱PC 機(jī)。它由主機(jī)、鍵盤、顯示器等組成。還有一類計(jì)算機(jī),大多數(shù)人卻不怎么熟悉。這種計(jì)算機(jī)就是把智能賦予各種機(jī)械的單片機(jī)(亦稱微控制器)。顧名思義,這種計(jì)算機(jī)的最小系統(tǒng)只用了一片集成電路,即可進(jìn)行簡(jiǎn)單運(yùn)算和控制。因?yàn)樗w積小,通常都藏在被控機(jī)械的“肚子”里。它在整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置就癱瘓了?,F(xiàn)在,這種單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī)

4、,就能起到使產(chǎn)品升級(jí)換代的功效,常在產(chǎn)品名稱前冠以形容詞“智能型”,如智能型洗衣機(jī)等。現(xiàn)在有些工廠的技術(shù)人員或其它業(yè)余電子開發(fā)者搞出來的某些產(chǎn)品,不是電路太復(fù)雜,就是功能太簡(jiǎn)單且極易被仿制。究其原因,可能就卡在產(chǎn)品未使用單片機(jī)或其它可編程邏輯器件上。綜合所述,單片機(jī)已成為計(jì)算機(jī)發(fā)展和應(yīng)用的一個(gè)重要方面。另一方面,單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。本文論述了單片機(jī)控制鍵盤和LED 數(shù)碼管顯示電路,實(shí)現(xiàn)

5、將單片機(jī)采集到的數(shù)據(jù)排序顯示的功能。由于單片機(jī)具有4個(gè)I/O口,故利用單片機(jī)本身即可以實(shí)現(xiàn)本次任務(wù)要求。1. 基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng)基本理論把一批數(shù)據(jù)想象成縱向排列,自下而上比較相鄰的兩個(gè)數(shù)據(jù)元素,如果這兩個(gè)數(shù)據(jù)元素的大小順序符合要求,則保持原樣,否則交換它們的位置。這樣比較一輪后,最小的數(shù)據(jù)元素就象氣泡一樣浮到最頂上,故稱冒泡算法。實(shí)際編程設(shè)計(jì)時(shí),每一輪操作都從數(shù)據(jù)區(qū)的首地址開始,向末端推進(jìn)。N 個(gè)數(shù)據(jù)元素一般要進(jìn)行N-1次輪次比較、交換排序,但如果操作過程中沒有出現(xiàn)位置交換,則說明數(shù)據(jù)已經(jīng)有序,可以提前結(jié)束排序。然后再連接LED 顯示器,實(shí)現(xiàn)動(dòng)態(tài)顯示排序。2. 方案設(shè)計(jì)基于單片機(jī)

6、的冒泡排序動(dòng)態(tài)顯示系統(tǒng)的基本組成如圖1所示。 圖1 基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng)的原理框圖根據(jù)設(shè)計(jì)任務(wù)要求,現(xiàn)采用如下方案實(shí)現(xiàn)。硬件部分包括鍵盤輸入電路、數(shù)碼管顯示電路、提示和外部中斷按鍵電路,這些硬件電路不僅能產(chǎn)生按鍵信號(hào)送入單片機(jī)而且能通過數(shù)碼管顯示出來;軟件部分能準(zhǔn)確地識(shí)別鍵值和正確顯示數(shù)據(jù),還需要讓采集到的數(shù)據(jù)實(shí)現(xiàn)從小到大的排序過程,同時(shí)通過數(shù)碼管動(dòng)態(tài)的顯示出其過程。單片機(jī)可以利用4個(gè)I/O口實(shí)現(xiàn)對(duì)外設(shè)的控制,通過軟件編程方法可以達(dá)到設(shè)計(jì)要求。3. 硬件電路的工作原理3.1單片機(jī)AT89C51工作原理AT89C51的管腳結(jié)構(gòu)圖見圖2。 圖2 A T89C51的管腳結(jié)構(gòu)圖P0口:P0

7、口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL 門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。P1口: P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。P2口:P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫

8、時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL 門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL )這是由于上拉的緣故。RST :復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST 腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH 編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE 端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。PS

9、EN :外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH ),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET ;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。AT89C51是一個(gè)低功耗高性能CMOS 8位單片機(jī),32k Bytes Flash 只讀程序存儲(chǔ)器(ROM,512 Bytes 內(nèi)部數(shù)據(jù)存儲(chǔ)

10、器(RAM,該微處理器采用ATMEL 公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),引腳兼容80C51和80C52芯片,片內(nèi)的Flash 存儲(chǔ)器可以象常規(guī)程序存儲(chǔ)器一樣進(jìn)行燒寫,AT89C51RC 片內(nèi)總共有512字節(jié)的用戶數(shù)據(jù)區(qū),而256字節(jié)的內(nèi)部擴(kuò)展數(shù)據(jù)區(qū)需通過清SFR(8EH的位1并用MOVX 指令訪問,片內(nèi)置通用8位中央處理器和Flash 存儲(chǔ)單元,另一個(gè)256BytesRAM 區(qū)與ATMEL之AT89系列8052兼容的單片機(jī)是一致的,AT89C51RC 結(jié)合通用的8位微處理器和Flash存儲(chǔ)技術(shù)構(gòu)成功能強(qiáng)大單片微處理器,可提供許多高性能低價(jià)位的系統(tǒng)控制應(yīng)用場(chǎng)合。A

11、T89C51具有如下主要特點(diǎn):40個(gè)引腳,32kBytes 的程序存儲(chǔ)器,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,內(nèi)置時(shí)鐘振蕩器, 其Flash 存儲(chǔ)器,可反復(fù)擦寫1000次的Flash 存儲(chǔ)器可有效地降低開發(fā)成本。軟件設(shè)置電源省電模式,睡眠其間,定時(shí)/計(jì)數(shù)器,串行口和中斷口均停止工作,RAM 中的數(shù)據(jù)被“凍結(jié)”,直到下次被中斷激活或硬件復(fù)位方可恢復(fù)工作。3.2鍵盤輸入模塊鍵盤在單片機(jī)應(yīng)用系統(tǒng)中能實(shí)現(xiàn)向單片機(jī)輸入數(shù)據(jù)、傳送命令等功能,是人工干預(yù)單片機(jī)的主要手段。由于在按鍵數(shù)目較多的場(chǎng)合,行列式鍵盤要節(jié)省很多的I/O口,故本

12、系統(tǒng)采用44的行、列結(jié)構(gòu)構(gòu)成的16個(gè)按鍵的矩陣式鍵盤,見圖3。按鍵設(shè)置在行、列線的交點(diǎn)上,行、列線分別連結(jié)到按鍵開關(guān)的兩端。通過軟件編程掃描鍵盤的行線,當(dāng)無鍵按下時(shí),行線為低電平、列線為高電平,當(dāng)有鍵按下時(shí),按鍵所在的行線變?yōu)楦唠娖?,?zhí)行一段延時(shí)10ms 的子程序后,確認(rèn)該行線是否仍為高電平,如果仍為高電平,則認(rèn)為該行確實(shí)有鍵按下。然后掃描列線,使行線輸出為高電平,列線輸出為低電平,當(dāng)有鍵按下時(shí),按鍵所在列為高電平,而其余列為低電平,確認(rèn)有鍵按下,然后等待鍵釋放,當(dāng)鍵釋放以后求出按鍵的鍵值。 圖3 44矩陣鍵盤3.3動(dòng)態(tài)顯示模塊基本的LED 數(shù)碼管是由七個(gè)條狀發(fā)光二極管芯片按圖4排列而成的,可

13、實(shí)現(xiàn)0F 的顯示。 圖4 LED數(shù)碼管原理圖LED (Light Emitting Diode),發(fā)光二極管,是一種固態(tài)的半導(dǎo)體器件,它可以直接把電轉(zhuǎn)化為光。LED 的心臟是一個(gè)半導(dǎo)體的晶片.LED 是由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成。LED 數(shù)碼管常用段數(shù)一般為7段,有的另加一個(gè)小數(shù)點(diǎn),還有一種是類似于3位“1+”型。LED 數(shù)碼管根據(jù)接法不同分為共陰和共陽(yáng)兩類。LED 數(shù)碼管廣泛應(yīng)用于儀表,時(shí)鐘,車站,家電等場(chǎng)合。如圖5,8位共陰級(jí)LED 顯示器采用動(dòng)態(tài)顯示接法。在AT89C51的內(nèi)部RAM 中設(shè)置8個(gè)緩沖單元30H 37H ,分別存放顯示器要顯示的8位

14、數(shù)據(jù),單片機(jī)AT89C51的P0口用于輸出段碼,P2口用于輸出位選碼。 圖5 8位LED 數(shù)碼管顯示電路圖工作時(shí),利用軟件譯碼的方法求出被按下鍵對(duì)應(yīng)的段碼送至P0口,同時(shí)將位選碼送至P2口,于是選中的顯示器點(diǎn)亮,其余顯示器處于熄滅狀態(tài)。若將各位從左至右依次進(jìn)行顯示,每位數(shù)碼管顯示10ms ,顯示完最后一位后,再重復(fù)上述過程,則可得到連續(xù)顯示的效果。當(dāng)有第二個(gè)鍵被按下時(shí),將最右面的LED 中的數(shù)據(jù)左移一位,同時(shí)把按下鍵對(duì)應(yīng)的段碼送至P0口,位選碼送P2口,在最右面的LED 中顯示出來。形成了移位的顯示方式。雖然這些字符是在不同時(shí)刻出現(xiàn)的,而在同一時(shí)刻,只有一位顯示,但由于LED 顯示器的余輝和人

15、眼的“視覺暫留”作用,只要每位顯示間隔足夠短,則可以造成“多位同時(shí)亮的假象”。 3.4時(shí)鐘模塊AT89C51單片機(jī)各功能部件的運(yùn)行是以時(shí)鐘控制信號(hào)為基準(zhǔn)的,有條不紊地一拍一拍地工作。常用的時(shí)鐘電路設(shè)計(jì)有兩種方式,一種是內(nèi)部時(shí)鐘方式,另一種是外部時(shí)鐘方式。內(nèi)部時(shí)鐘方式的電路圖如圖6。 圖6 單片機(jī)時(shí)鐘電路圖3.5復(fù)位模塊復(fù)位是單片機(jī)的初始化操作,起功能主要是使單片機(jī)內(nèi)邏輯電路回到起始點(diǎn)。 AT89C51的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見下圖7。此外,RESET/Vpd 還是一復(fù)用腳,V cc 掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM 的數(shù)據(jù)不丟失。 圖7 單片機(jī)復(fù)位電路圖

16、3.6發(fā)光提示和按鍵中斷模塊由于使用的是8位LED 數(shù)碼管,當(dāng)輸入數(shù)據(jù)超過8位時(shí),系統(tǒng)會(huì)清零當(dāng)前顯示,故利用發(fā)光二極管的特性設(shè)置了提示電路。當(dāng)輸入第8位數(shù)據(jù)時(shí),單片機(jī)P3.0口輸出低電平,發(fā)光二極管導(dǎo)通點(diǎn)亮,進(jìn)行提示。當(dāng)再次輸入數(shù)據(jù)后,發(fā)光二極管熄滅,提示結(jié)束。為了使單片機(jī)工作效率更高,在單片機(jī)的外部中斷口設(shè)置1個(gè)按鍵式開關(guān),作為開始排序按鍵,當(dāng)按下開始排序按鍵后,單片機(jī)P3.2口變?yōu)榈碗娖剑瑘?zhí)行中斷程序,系統(tǒng)開始排序。電路圖見圖8。 圖8 發(fā)光提示和按鍵中斷電路圖4. 軟件編程4.1主程序功能基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng)主要應(yīng)用了單片機(jī)強(qiáng)大的多功能I/O口,可以實(shí)現(xiàn)數(shù)據(jù)采集和數(shù)碼管顯示而

17、無須添加其他芯片。主程序?qū)⑺蟹种С绦虬ㄆ渲?。主程序流程圖見圖9。 圖9 主程序流程圖由圖可以看出,主程序?qū)崿F(xiàn)了數(shù)據(jù)的鍵盤輸入、數(shù)碼管顯示和冒泡動(dòng)態(tài)排序所有要求。 4.2鍵盤程序功能鍵盤程序部分主要完成鍵盤輸入和顯示的功能。當(dāng)沒有鍵按下時(shí)主程序一直執(zhí)行鍵掃描工作,當(dāng)有鍵按下時(shí),先執(zhí)行延遲消抖程序,然后在確認(rèn)是否有鍵按下。若確實(shí)有鍵按下,計(jì)算出鍵值后顯示執(zhí)行顯示程序。鍵盤掃描的流程圖見圖10。 圖10 鍵盤掃描流程圖4.3冒泡排序法程序功能數(shù)據(jù)排序就是將一批數(shù)由小到大排列,或由大到小排列。本部分采用的數(shù)據(jù)排序算法是冒泡法。冒泡法是相鄰數(shù)互換的排序方法,排序時(shí)從前向后進(jìn)行相鄰兩個(gè)數(shù)的比較,如果數(shù)

18、據(jù)的大小次序與要求的順序不相符時(shí),就將兩個(gè)數(shù)互換,否則,順序符合要求不互換。為了實(shí)現(xiàn)升序排列,通過這種相鄰數(shù)互換的方法,使小數(shù)向前移,大數(shù)向后移。如此從前向后進(jìn)行一次次相鄰數(shù)呼喚,就會(huì)把這一批數(shù)據(jù)的最大排到最后,最小數(shù)排到最前,從而實(shí)現(xiàn)了數(shù)據(jù)從小到大的排列。每次排序后調(diào)用一次顯示子程序,將排序后的數(shù)據(jù)通過數(shù)碼管輸出,即可實(shí)現(xiàn)動(dòng)態(tài)顯示。冒泡排序流程圖見圖11。 圖11 冒泡法程序流程圖5. 系統(tǒng)調(diào)試和結(jié)果分析根據(jù)方案設(shè)計(jì)要求,進(jìn)行了硬件電路和軟件電路的實(shí)際聯(lián)接。打開程序調(diào)試軟件Keil uVision4,將已編寫好的源程序保存成. ASM 形式,通過編譯后,生成. HEX 和. BIN 文件。在

19、編譯提示框中可以看到錯(cuò)誤和警告提示信息。如缺少;,指令錯(cuò)誤、跳轉(zhuǎn)范圍不正確等,經(jīng)過查看程序逐步改正過來,直到提示無錯(cuò)誤和警告信息為止。然后在仿真軟件PROTEUS 中搭建硬件電路圖以便進(jìn)行仿真試驗(yàn),電路連好后在仿真電路圖的AT89C51中添加Keil uVision4中生成的. HEX 文件。接下來就可以進(jìn)行硬件仿真了。硬件仿真亦存在很多的錯(cuò)誤,在我仿真過程中最初做的按鍵按下后,數(shù)碼管無顯示,結(jié)合程序和電路對(duì)比之后發(fā)現(xiàn)電路連接存在問題,依照程序改正后數(shù)碼管依然無法正常顯示,檢查數(shù)碼管后才知道是錯(cuò)誤的選用了共陽(yáng)極的數(shù)碼管。通過仿真可以觀察到與設(shè)計(jì)要求相同的結(jié)果。當(dāng)按下鍵盤中的鍵值時(shí)能準(zhǔn)確無誤的通

20、過數(shù)碼管顯示,如下圖圖12所示。 圖12 鍵盤輸入和數(shù)碼管顯示仿真結(jié)果圖當(dāng)按鍵次數(shù)達(dá)到8次時(shí),可以看到發(fā)光LED 數(shù)碼管點(diǎn)亮進(jìn)行提示。結(jié)果如圖13所示。 圖13 發(fā)光二極管提示仿真結(jié)果圖輸入數(shù)據(jù):2、A 、3、5、B 、0、1后,按下開始排序按鍵,可以觀察到數(shù)碼管中的數(shù)據(jù)進(jìn)行排序過程,排序結(jié)果見圖14。 圖14 動(dòng)態(tài)排序顯示仿真結(jié)果圖6. 結(jié)論及進(jìn)一步設(shè)想本次設(shè)計(jì)的冒泡排序動(dòng)態(tài)顯示系統(tǒng),能夠進(jìn)行數(shù)據(jù)排序的動(dòng)態(tài)顯示,并可用LED 動(dòng)態(tài)顯示數(shù)據(jù)排序過程,同時(shí)可以用鍵盤選擇數(shù)據(jù)的輸入。通過單片機(jī)AT89C51的I/O口控制外設(shè)鍵盤和數(shù)碼顯示電路,完成了本次設(shè)計(jì)要求。根據(jù)實(shí)驗(yàn)結(jié)果可以知道基本完成了設(shè)計(jì)

21、任務(wù)要求。參考文獻(xiàn)1 李華.MCS-51單片機(jī)實(shí)用接口技術(shù). 北京:北京航空航天出版社大學(xué),1999 2 方彥軍,孫建. 智能儀器技術(shù)及其應(yīng)用. 北京:化學(xué)工業(yè)出版社,2003 3 孫傳友. 測(cè)控系統(tǒng)原理與設(shè)計(jì). 北京:北京航空航天大學(xué)出版社,2002 4 劉守義等. 單片機(jī)應(yīng)用技術(shù). 西安:西安電子科技大學(xué)出版社,2002 5 何立民. 單片機(jī)高級(jí)教程. 北京:北京航空航天大學(xué)出版社,20006張毅剛. MCS51單片機(jī)Y 原理及應(yīng)用. 哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2004 7趙茂泰. 智能儀器原理及應(yīng)用. 北京:電子工業(yè)出版社,2004.78公茂法.MCS 51/52單片機(jī)原理與應(yīng)用.

22、北京:北京航空航天大學(xué)出版社,2009.3 9凌玉華. 單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì). 北京:電子工業(yè)出版社,2006.410周潤(rùn)景. 基于PROTEUS 的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真. 北京:北京航空航天大學(xué)出版社,2006.5課設(shè)體會(huì)在此次的基于單片機(jī)的冒泡排序動(dòng)態(tài)顯示系統(tǒng)設(shè)計(jì)過程中,讓我更進(jìn)一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和其具體的使用方法。每次課程設(shè)計(jì)都是一次難得的鍛煉機(jī)會(huì),讓我們能夠充分利用所學(xué)過的理論知識(shí)還有己的想象的能力,另外還讓我們學(xué)習(xí)查找資料的方法,以及自己處理分析電路,編寫程序的能力。這次課程設(shè)計(jì)讓我受益匪淺,無論從知識(shí)上還是其他的各個(gè)方面。上課的時(shí)候的學(xué)習(xí)從來沒

23、有見過真正的單片機(jī),只是從理論的角度去理解枯燥乏味。但在課設(shè)中見過甚至使用了單片機(jī)及其系統(tǒng),能夠理論聯(lián)系實(shí)際的學(xué)習(xí),開闊了眼界,提高了單片機(jī)知識(shí)的理解和水平。在這次課程設(shè)計(jì)中又讓我體會(huì)到了合作與團(tuán)結(jié)的力量,當(dāng)遇到不會(huì)或是設(shè)計(jì)不出來的地方,我們就會(huì)在QQ 群里討論或者是同學(xué)之間相互幫助。團(tuán)結(jié)就是力量,無論在現(xiàn)在的學(xué)習(xí)中還是在以后的工作中,團(tuán)結(jié)都是至關(guān)重要的,有了團(tuán)結(jié)會(huì)有更多的理念、更多的思維、更多的情感。其實(shí), 我在開始做設(shè)計(jì)時(shí),難度很大,很迷茫。不積跬步何以至千里,通過求助于許老師、理清了思路。同時(shí),在圖書館里、網(wǎng)上查閱資料,攻克了設(shè)計(jì)中的道道難題。最后經(jīng)過指導(dǎo)老師胡老師的耐心指點(diǎn)和連續(xù)的奮戰(zhàn)

24、才算基本合格。本次設(shè)計(jì)中我用自己學(xué)到的知識(shí)完成代碼,對(duì)單片機(jī)設(shè)計(jì)也有了新的認(rèn)識(shí),又學(xué)到了在設(shè)計(jì)過程中的許多流程和該注意的事項(xiàng),增強(qiáng)了電子產(chǎn)品開發(fā)的意識(shí)。促進(jìn)我以后更好的學(xué)習(xí),鍛煉了自身的能力。單片機(jī)是很重要的一門課程,老師和一些工作的朋友都曾說過,如果學(xué)好一門單片機(jī),就憑這個(gè)技術(shù)這門手藝找一個(gè)好工作也不成問題。盡管我們?cè)谡n堂學(xué)到的內(nèi)容很有限,但在以后的學(xué)習(xí)中單片機(jī)還需要好好的深入研究和學(xué)習(xí),學(xué)好了單片機(jī)也就多了一項(xiàng)生存的本錢。最后感謝我的課設(shè)指導(dǎo)老師胡老師對(duì)我的精心指導(dǎo)和幫助。附錄1 元件清單 附錄2 總體電路圖 附錄3 源程序;*; 以下8個(gè)存儲(chǔ)單元分別存放8位數(shù)碼管的段碼LED_BIT_1

25、 EQU 30HLED_BIT_2 EQU 31HLED_BIT_3 EQU 32HLED_BIT_4 EQU 33HLED_BIT_5 EQU 34HLED_BIT_6 EQU 35HLED_BIT_7 EQU 36HLED_BIT_8 EQU 37HT_COUNT EQU 38HKEY_CNT EQU 39HLINE EQU 3AHROW EQU 3BH;*ORG 0000HLJMP STARTORG 0003HLJMP SORTORG 0013HLJMP INT_1START: SETB EASETB EX0CLR IT0MOV T_COUNT,#00H ; 初始化MOV KEY_CNT

26、,#00HMOV LINE,#00HMOV ROW,#00HMOV LED_BIT_1,#00HMOV LED_BIT_2,#00HMOV LED_BIT_3,#00HMOV LED_BIT_4,#00HMOV LED_BIT_5,#00HMOV LED_BIT_6,#00HMOV LED_BIT_7,#00HMOV LED_BIT_8,#3FH;最右位LED 顯示0,其余熄滅MOV 40H,#00HMOV 41H,#00HMOV 42H,#00HMOV 43H,#00HMOV 44H,#00HMOV 45H,#00HMOV 46H,#00HMOV 47H,#00HMOV DPTR,#TABL

27、EA0: LCALL DISP;*; 按鍵掃描LSCAN: MOV P1,#0F0H;行碼掃描L1: JNB P1.0,L2LCALL DELAYJNB P1.0,L2MOV LINE,#00HLJMP RSCANL2: JNB P1.1,L3LCALL DELAYJNB P1.1,L3MOV LINE,#04HLJMP RSCANL3: JNB P1.2,L4LCALL DELAYJNB P1.2,L4MOV LINE,#08HLJMP RSCANL4: JNB P1.3,A0LCALL DELAYJNB P1.3,A0MOV LINE,#0CHRSCAN: MOV P1,#0FH ; 列碼

28、掃描C1: JNB P1.4,C2MOV ROW,#00HLJMP CALCUC2: JNB P1.5,C3MOV ROW,#01HLJMP CALCUC3: JNB P1.6,C4MOV ROW,#02HLJMP CALCUC4: JNB P1.7,C1MOV ROW,#03H;*CALCU: INC KEY_CNT ;統(tǒng)計(jì)按鍵次數(shù)MOV A,KEY_CNTCJNE A,#8,CLEAR;如果按鍵8次, 發(fā)光LED 提示CLR P3.0CLEAR: CJNE A,#9,KEY1SETB P3.0W10: MOV A,P1; 等待按鍵抬起CJNE A,#0FH,W11MOV P0,#00HLJ

29、MP STARTW11: MOV A,P1CJNE A,#0F0H,W10MOV P0,#00HLJMP START;*; 第1次按鍵, 清除已顯示的0, 顯示按下的數(shù)字KEY1: CJNE A,#1,KEY2MOV A,LINEADD A,ROWMOV 47H,AMOVC A,A+DPTR;查斷碼表MOV LED_BIT_8,ADISP1: LCALL DISPW20: MOV A,P1; 等待按鍵抬起CJNE A,#0FH,W21LJMP A0;鍵已抬起W21: MOV A,P1CJNE A,#0F0H,W22LJMP A0W22: LJMP DISP1RET;*; 第2到8次按鍵, 移位

30、顯示按下的數(shù)字KEY2: MOV A,LINEADD A,ROWMOV 50H,AMOVC A,A+DPTRLCALL SHIFT; 調(diào)用段碼移位DISP2: LCALL DISP ;調(diào)用顯示子程序W30: MOV A,P1; 等待按鍵抬起CJNE A,#0FH,W31LJMP A0W31: MOV A,P1CJNE A,#0F0H,W32LJMP A0W32: LJMP DISP2;*;LED 段碼移位子程序SHIFT: MOV 30H,31HMOV 31H,32HMOV 32H,33HMOV 33H,34HMOV 34H,35HMOV 35H,36HMOV 36H,37HMOV 37H,AMOV 40H,41HMOV 41H,42H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論