流水燈控制系統(tǒng)設(shè)計_第1頁
流水燈控制系統(tǒng)設(shè)計_第2頁
流水燈控制系統(tǒng)設(shè)計_第3頁
流水燈控制系統(tǒng)設(shè)計_第4頁
流水燈控制系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目錄第1章 方案的論述以及與最終方案的確定- 1 -1.1 第一種方案的論述- 1 -1.2 第二種方案的論證- 1 -1.3 第三種方案的論述- 1 -1.4 最終方案的確定- 1 -第2章 硬件設(shè)計- 2 -2.1 總體方案設(shè)計分析- 2 -2.2 系統(tǒng)邏輯框圖- 2 -2.3 主要元器件簡介- 2 -2.3.1 8086CPU- 2 - 地址鎖存器74LS373的內(nèi)部電路與工作原理- 4 - 可編程外圍接口芯片8255A的簡介- 5 -第3章 軟件設(shè)計- 9 -3.1 程序流程設(shè)計- 9 - 主程序流程- 9 - 程序流程圖- 10 - 系統(tǒng)硬件連接圖- 11 - 源程序設(shè)計(附錄)-

2、11 -3.2 設(shè)計最終理想結(jié)果及原理- 11 - 左向移動流水燈- 11 - 右向移動流水燈- 11 -設(shè)計心得- 12 -參考文獻(xiàn)- 13 -附錄- 14 -第1章 方案的論述以及與最終方案的確定1.1 第一種方案的論述第一種方案,使用AT89C51單片機(jī)實現(xiàn)流水燈閃爍設(shè)計。AT89C51單片機(jī)是美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī),具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個16位定時/計數(shù)器、5個向量兩級中斷結(jié)構(gòu)、2個全雙工的串行口,具有4.255.50V的電壓工作范圍和024MHz工作頻率,使用AT89C51單片機(jī)時無須外擴(kuò)存儲器。因此

3、,方案一中設(shè)計的流水燈實際上是一個帶有八個發(fā)光二極管的單片機(jī)最小應(yīng)用系統(tǒng),即由發(fā)光二極管、晶振、復(fù)位、電源等電路和必要軟件組成的單個單片機(jī)。1.2 第二種方案的論證第二種方案,我們使用了AT89C51單片機(jī)與8255A芯片一起實現(xiàn)了流水燈閃爍的設(shè)計。74LS373是常用的地址鎖存器芯片,它是一個是帶三態(tài)緩沖輸出的8D觸發(fā)器,在單片機(jī)系統(tǒng)中為了擴(kuò)展外部存儲器,通常需要一塊74ls373芯片。我們了解到74ls373是常用的地址鎖存器芯片,它是一個是帶三態(tài)緩沖輸出的8D觸發(fā)器,在單片機(jī)系統(tǒng)中為了擴(kuò)展外部存儲器,通常需要一塊74ls373芯片。1.3 第三種方案的論述第三種方案,使用8086 CPU

4、芯片并行8255A芯片一起實現(xiàn)了流水燈閃爍的設(shè)計,同時還使用了地址鎖存器74LS373芯片。從前兩種方案中,我們分別熟悉與掌握了地址鎖存器74LS373芯片和8086CPU。在方案中,當(dāng)8086CPU的引腳ALE處于下降沿時將8086CPU輸出的地址信息進(jìn)行鎖存,以定義8255A的工作方式。在方案中,我們將詳細(xì)地介紹8255A的內(nèi)部電路、功能特點(diǎn)、工作原理以及在電路中的功能擴(kuò)展與應(yīng)用,這也是我們這次課程設(shè)計中一個需要重點(diǎn)掌握的芯片。1.4 最終方案的確定通過課程設(shè)計的要求和以上的論證,我們決定采用第三種方案,即以8086CPU為核心、并行接口芯片8255A和3個邏輯電平開關(guān)設(shè)計多路流水燈控制程

5、序。第2章 硬件設(shè)計2.1 總體方案設(shè)計分析在本實驗中要求用8255A的B口做為輸出,接8個發(fā)光二極管,從而實現(xiàn)8位流水燈的顯示效果,基本的接線可以如下圖所示。在C口的低三位接3個邏輯電平開關(guān),實現(xiàn)3個擴(kuò)展功能的控制,在PB0-PB7口分別對應(yīng)的接八個發(fā)光二極管。8個發(fā)光二極管豎向安放,自上到下對應(yīng)兩種模擬流水形式的自左到右。2.2 系統(tǒng)邏輯框圖8086CPU處理LED顯示K0K274LS373鎖存器輸出PB0-PB78255A輸入PC0-PC274LS138譯碼器圖 2.1 系統(tǒng)邏輯框圖2.3 主要元器件簡介2.3.1 8086CPUIntel 8086是一個由Intel于1978年所設(shè)計的

6、16位微處理器芯片,是x86架構(gòu)的鼻祖。不久,Intel 8088就推出了,擁有一個外部的8位數(shù)據(jù)總線,允許便宜的芯片用途。它是以8080和8085的設(shè)計為基礎(chǔ),擁有類似的寄存器組,但是數(shù)據(jù)總線擴(kuò)充為16位??偩€界面單元(Bus Interface Unit)透過6字節(jié)預(yù)存(prefecth) 的隊列(queue)喂指令給執(zhí)行單元(Execution Unit),所以取指令和執(zhí)行是同步的,8086 CPU有20條地址線,可直接尋址1MB的存儲空間,每一個存儲單元可以存放一個字節(jié)(8位)二進(jìn)制信息。 圖2.2 8086 CPU外部引腳圖2.3 8086 CPU內(nèi)部結(jié)構(gòu)框圖Intel 8086擁有

7、四個16位的通用寄存器,也能夠當(dāng)作八個8位寄存器來存取,以及四個16位索引寄存器(包含了堆棧指標(biāo))。資料寄存器通常由指令隱含地使用,針對暫存值需要復(fù)雜的寄存器配置。它提供64K 8 位元的輸出輸入(或32K 16 位元),以及固定的向量中斷。大部分的指令只能夠存取一個內(nèi)存位址,所以其中一個操作數(shù)必須是一個寄存器。運(yùn)算結(jié)果會儲存在操作數(shù)中的一個寄存器。Intel 8086有四個內(nèi)存區(qū)段(segment) 寄存器,可以從索引寄存器來設(shè)定。區(qū)段寄存器可以讓 CPU 利用特殊的方式存取1 MB內(nèi)存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都認(rèn)為這是一個很不好的設(shè)計,因為這樣的結(jié)果

8、是會讓各分段有重疊。盡管這樣對組合語言而言大部分被接受(也甚至有用),可以完全地控制分段,使在編程中使用指針 (如C 編程語言) 變得困難。它導(dǎo)致指針的高效率表示變得困難,且有可能產(chǎn)生兩個指向同一個地方的指針擁有不同的地址。更壞的是,這種方式產(chǎn)生要讓內(nèi)存擴(kuò)充到大于1MB難。而 8086 的尋址方式改變讓內(nèi)存擴(kuò)充較有效率。2.3.2 地址鎖存器74LS373的內(nèi)部電路與工作原理圖2.4 引腳功能圖注:管腳引出端功能符號:D0D7 數(shù)據(jù)輸入端 OE 三態(tài)允許控制端(低電平有效)Q0Q7 輸出端 LE 鎖存允許端74373 三態(tài)緩沖輸出的8D鎖存器(3S,鎖存允許輸入有回環(huán)特性),其輸出端 Q0Q7

9、 可直接與總線相連,74LS373的LE端直接與8086CPU的ALE信號連接。1腳是三態(tài)允許控制端(OE),是低電平有效。當(dāng)1腳是高電平時,不管輸入3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)如何,也不管11腳(LE 鎖存允許端)如何,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈現(xiàn)高阻狀態(tài)(或者叫浮空狀態(tài))。當(dāng)1腳是低電平時,只要11腳(LE 鎖存允許端)上出現(xiàn)一個下降沿,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、1

10、9(Q7)立即呈現(xiàn)輸入腳3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)的狀態(tài)。11腳是鎖存允許端(LE),當(dāng)LE由高變低時,輸出端8 位信息被鎖存,直到LE 端再次有效。 當(dāng)三態(tài)允許控制端OE為低電平時,三態(tài)門導(dǎo)通,允許Q0Q7輸出,OE為高電平時,輸出懸空。當(dāng)74LS373用作地址鎖存器時,應(yīng)使OE為低電平,此時鎖存使能端C為高電平時,輸出Q0Q7 狀態(tài)與輸入端D1D7狀態(tài)相同;當(dāng)LE發(fā)生負(fù)的跳變時,輸入端D0D7 數(shù)據(jù)鎖入Q0Q7。圖2.5 8086CPU與74LS373、74LS138的連接及外部接線圖2.3.3 可編程外圍接口芯片

11、8255A的簡介8255A是Intel公司生產(chǎn)的一種通用的可編程并行I/O接口芯片,它是為Inter系列微處理器設(shè)計的配套電路,也可用于其它微處理器系統(tǒng)中。通過對它進(jìn)行編程,芯片可工作于不同的工作方式。8255A有3個8位并行I/O口,具有3個通道3種工作方式,其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口;同時必須具有與外設(shè)連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個部分:與CPU連接部分、與外設(shè)連接部分、控制部分。 圖2.6 8255A的外部引

12、腳圖2.7 8255A的內(nèi)部結(jié)構(gòu)注:管腳引出端功能符號:RESET:復(fù)位輸入線,當(dāng)該輸入端處于高電平時,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。 CS:芯片選擇信號線,當(dāng)這個輸入引腳為低電平時,即/CS=0時,表示芯片被選中,允許8255與CPU進(jìn)行通訊;/CS=1時,8255無法與CPU做數(shù)據(jù)傳輸. RD:讀信號線,當(dāng)這個輸入引腳為低電平時,即/RD=0且/CS=0時,允許8255通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。 WR:寫入信號,當(dāng)這個輸入引腳為低電平時,即/WR=0且/CS=0時,允許CPU將數(shù)據(jù)或控制字寫入8255

13、。 D0D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時,通過它實現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。 PA0PA7:端口A輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入鎖存器。 PB0PB7:端口B輸入輸出線,一個8位的I/O鎖存器, 一個8位的輸入輸出緩沖器。 PC0PC7:端口C輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入緩沖器。端口C可以通過工作方式設(shè)定而分成2個4位的端口, 每個4位的端口包含一個4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。

14、9; A0,A1:地址選擇線,用來選擇8255的PA口,PB口,PC口和控制寄存器. 當(dāng)A0=0,A1=0時,PA口被選擇;當(dāng)A0=0,A1=1時,PB口被選擇; 當(dāng)A0=1,A1=0時,PC口被選擇;當(dāng)A0=1.A1=1時,控制寄存器被選擇.8255A的工作方式:方式0:基本輸入輸出方式,適用于無條件傳送和查詢方式的接口電路方式1:選通輸入輸出方式,適用于查詢和中斷方式的接口電路方式2:雙向選通傳送方式,適用于與雙向傳送數(shù)據(jù)的外設(shè)和查詢和中斷方式的接口電路 圖2.8 工作方式控制字 圖2.9 C口按位置位/復(fù)位控制字8255A初始化編程:8255A的A,B,C三個端口的工作方式是在初始化編程

15、時,通過向8255A的控制端口寫入控制字來設(shè)定的。8255A由編程寫入的控制字有兩個:方式控制字和置位/復(fù)位控制字。方式控制字用于設(shè)置端口A, B, C的工作方式和數(shù)據(jù)傳送方向;置位/復(fù)位控制字用于設(shè)置C口的PC7PC0中某一條口線PCi(i07)的電平。兩個控制字公用一個端口地址,由控制字的最高位作為區(qū)分這兩個控制字的標(biāo)志位。圖2.10 8255A與LED及開關(guān)的連接及外部接線圖第3章 軟件設(shè)計3.1 程序流程設(shè)計3.1.1 主程序流程設(shè)置8255A的工作方式(10000001H)讀C口低三位左向流水燈輸出0FFH右向流水燈燈無有效按鍵時輸出YYNYK2是否被按下NNK1是否被按下開始結(jié)束圖

16、3.1 主程序流程圖3.1.2 程序流程圖左向移動流水燈CF置1,0FEHALB口輸出AL帶進(jìn)位循環(huán)左移一位延時開始圖3.2 左向移動流水燈子程序圖右向移動流水燈CF置1,07FHALB口輸出AL帶進(jìn)位循環(huán)右移一位延時開始圖3.3 左向移動流水燈子程序圖3.1.3 系統(tǒng)硬件連接圖圖 3.4 系統(tǒng)硬件連接圖3.1.4 源程序設(shè)計(附錄)3.2 設(shè)計最終理想結(jié)果及原理3.2.1 左向移動流水燈(1) 現(xiàn)象左向移動流水燈的實驗現(xiàn)象是首先最右邊的燈亮,然后是最右邊的燈滅,此時右起第二個燈亮,依次輪流亮,直到第八個燈亮。然后循環(huán)上述過程。(2) 原理左向移動流水燈是根據(jù)發(fā)光二極管的顯示原理,首先點(diǎn)亮最右

17、的二極管,然后進(jìn)位置一,通過帶進(jìn)位的循環(huán)左移指令編寫程序以實現(xiàn)模擬流水燈的左向移動。3.2.2 右向移動流水燈(1) 現(xiàn)象右向移動流水燈的實驗現(xiàn)象是首先最左邊的燈亮,然后是最左邊的燈滅,此時左起第二個燈亮,依次輪流亮,直到第八個燈亮。然后循環(huán)上述過程。(2) 原理右向移動流水燈是根據(jù)發(fā)光二極管的顯示原理,首先點(diǎn)亮最左的二極管,然后進(jìn)位置一,通過帶進(jìn)位的循環(huán)右移指令編寫程序以實現(xiàn)模擬流水燈的右向移動。設(shè)計心得在此,我們鄭重感謝系里給我們提供的這次珍貴的鍛煉機(jī)會以及吳學(xué)娟老師的熱情指導(dǎo)與幫助。在我們遇到困難而無法解決的時候,吳學(xué)娟老師給我們提供了很多有用的方案建議,并為我們提供了對我們極為有用的資

18、料;當(dāng)我們有些問題不懂疑惑時,吳學(xué)娟老師也耐心給了我們做了清楚的解釋,在此我們表示真摯的感謝。這次微機(jī)原理課程設(shè)計我學(xué)到了很多在書本上所沒有學(xué)到過的知識。以前在上課的時候?qū)τ诰幊坦ぞ叩氖褂眠€處于一知半解的狀態(tài)上,但是經(jīng)過一段時間的實踐,對于怎么去排錯、查錯,怎么去看每一步的運(yùn)行結(jié)果,怎么去了解每個寄存器的內(nèi)容以及當(dāng)寄存器不夠用時如何用存儲單元代替寄存器、怎么去使用循環(huán)嵌套、怎么去正確使用8255芯片等方面都有了很大程度的提高。通過課程設(shè)計,我們學(xué)到了很多東西。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,

19、才能真正為社會服務(wù),從而提高自己的實際動手能力和獨(dú)立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,但總的來說還是圓滿的。感謝所有幫過我們的老師和同學(xué)們,他們都很熱情幫助我們,為我們提供了他們力所能及的幫助,在此我們對他們表示真摯的感謝。參考文獻(xiàn)1 周荷琴,吳秀清 編著. 微機(jī)原理與接口技術(shù) 合肥:中國科學(xué)技術(shù)大學(xué)出版社,2008.62 潘新民,王燕芳 編著.微型計算機(jī)控制技術(shù) 北京:高等教育出版社,2004。3 周明德 編著 微型計算機(jī)系統(tǒng)原理及應(yīng)用

20、 北京:人民郵電出版社,2007附錄:;端口地址PORT_A EQU 0F0HPORT_B EQU 0F2HPORT_C EQU 0F4HPORT_CTL EQU 0F6H;代碼段CODESEGMENT ASSUME CS:CODESTART:MOV DX,PORT_CTL;指向控制口MOV AL,10000001B;控制字OUT DX,AL;寫入控制字MO:MOV DX,PORT_C;檢測開關(guān)信號IN AL,DXTEST AL,01H;檢測按鍵1是否被按下JZ K1TEST AL,02H;檢測按鍵2是否被按下JZ K2JMP THEEND;無有效按鍵時輸出K1:CALL L1JMP MOK2

21、:CALL L2 JMP MOL1: ;模擬流水燈左移MOV DX,PORT_B ;設(shè)置B口輸出MOV AL, 07FH L10:OUT DX,AL ;B口輸出ROL AL,1 ;AL帶進(jìn)位左移一位CALL DELAY ;調(diào)用延時子程序MOV DX, PORT_CIN AL, DXTEST AL, 01HJZ L10RET L2:MOV DX,PORT_B ;模擬流水燈右移MOV AL, 0FEHL20:OUT DX,AL ;B口輸出ROR AL,1 ;AL帶進(jìn)位右+移一位CALL DELAY ;調(diào)用延時子程序MOV DX, PORT_CIN AL, DXTEST AL, 02HJZ L20R

22、ETTHEEND:MOV AL, 0FFHMOV DX, PORT_BOUT DX, AL JMP MODELAY: MOV BX, 200 ;用雙層循環(huán)嵌套實現(xiàn)延時功能DEL1:MOV CX, 1000 DEL2:LOOP DEL2DEC BXJNZ DEL1RETCODE ENDSEND STARTRESET:復(fù)位輸入線,當(dāng)該輸入端處于高電平時,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。 CS:芯片選擇信號線,當(dāng)這個輸入引腳為低電平時,即/CS=0時,表示芯片被選中,允許8255與CPU進(jìn)行通訊;/CS=1時,8255無法與CPU做數(shù)據(jù)傳輸. RD:讀信號線,當(dāng)這個輸入引腳為低電平時,即/RD=0且/CS=0時,允許8255通過數(shù)據(jù)總線向CPU

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論