




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄第1章 方案的論述以及與最終方案的確定- 1 -1.1 第一種方案的論述- 1 -1.2 第二種方案的論證- 1 -1.3 第三種方案的論述- 1 -1.4 最終方案的確定- 1 -第2章 硬件設計- 2 -2.1 總體方案設計分析- 2 -2.2 系統邏輯框圖- 2 -2.3 主要元器件簡介- 2 -2.3.1 8086CPU- 2 - 地址鎖存器74LS373的內部電路與工作原理- 4 - 可編程外圍接口芯片8255A的簡介- 5 -第3章 軟件設計- 9 -3.1 程序流程設計- 9 - 主程序流程- 9 - 程序流程圖- 10 - 系統硬件連接圖- 11 - 源程序設計(附錄)-
2、11 -3.2 設計最終理想結果及原理- 11 - 左向移動流水燈- 11 - 右向移動流水燈- 11 -設計心得- 12 -參考文獻- 13 -附錄- 14 -第1章 方案的論述以及與最終方案的確定1.1 第一種方案的論述第一種方案,使用AT89C51單片機實現流水燈閃爍設計。AT89C51單片機是美國ATMEL公司生產的低電壓、高性能CMOS 8位單片機,具有豐富的內部資源:4kB閃存、128BRAM、32根I/O口線、2個16位定時/計數器、5個向量兩級中斷結構、2個全雙工的串行口,具有4.255.50V的電壓工作范圍和024MHz工作頻率,使用AT89C51單片機時無須外擴存儲器。因此
3、,方案一中設計的流水燈實際上是一個帶有八個發光二極管的單片機最小應用系統,即由發光二極管、晶振、復位、電源等電路和必要軟件組成的單個單片機。1.2 第二種方案的論證第二種方案,我們使用了AT89C51單片機與8255A芯片一起實現了流水燈閃爍的設計。74LS373是常用的地址鎖存器芯片,它是一個是帶三態緩沖輸出的8D觸發器,在單片機系統中為了擴展外部存儲器,通常需要一塊74ls373芯片。我們了解到74ls373是常用的地址鎖存器芯片,它是一個是帶三態緩沖輸出的8D觸發器,在單片機系統中為了擴展外部存儲器,通常需要一塊74ls373芯片。1.3 第三種方案的論述第三種方案,使用8086 CPU
4、芯片并行8255A芯片一起實現了流水燈閃爍的設計,同時還使用了地址鎖存器74LS373芯片。從前兩種方案中,我們分別熟悉與掌握了地址鎖存器74LS373芯片和8086CPU。在方案中,當8086CPU的引腳ALE處于下降沿時將8086CPU輸出的地址信息進行鎖存,以定義8255A的工作方式。在方案中,我們將詳細地介紹8255A的內部電路、功能特點、工作原理以及在電路中的功能擴展與應用,這也是我們這次課程設計中一個需要重點掌握的芯片。1.4 最終方案的確定通過課程設計的要求和以上的論證,我們決定采用第三種方案,即以8086CPU為核心、并行接口芯片8255A和3個邏輯電平開關設計多路流水燈控制程
5、序。第2章 硬件設計2.1 總體方案設計分析在本實驗中要求用8255A的B口做為輸出,接8個發光二極管,從而實現8位流水燈的顯示效果,基本的接線可以如下圖所示。在C口的低三位接3個邏輯電平開關,實現3個擴展功能的控制,在PB0-PB7口分別對應的接八個發光二極管。8個發光二極管豎向安放,自上到下對應兩種模擬流水形式的自左到右。2.2 系統邏輯框圖8086CPU處理LED顯示K0K274LS373鎖存器輸出PB0-PB78255A輸入PC0-PC274LS138譯碼器圖 2.1 系統邏輯框圖2.3 主要元器件簡介2.3.1 8086CPUIntel 8086是一個由Intel于1978年所設計的
6、16位微處理器芯片,是x86架構的鼻祖。不久,Intel 8088就推出了,擁有一個外部的8位數據總線,允許便宜的芯片用途。它是以8080和8085的設計為基礎,擁有類似的寄存器組,但是數據總線擴充為16位。總線界面單元(Bus Interface Unit)透過6字節預存(prefecth) 的隊列(queue)喂指令給執行單元(Execution Unit),所以取指令和執行是同步的,8086 CPU有20條地址線,可直接尋址1MB的存儲空間,每一個存儲單元可以存放一個字節(8位)二進制信息。 圖2.2 8086 CPU外部引腳圖2.3 8086 CPU內部結構框圖Intel 8086擁有
7、四個16位的通用寄存器,也能夠當作八個8位寄存器來存取,以及四個16位索引寄存器(包含了堆棧指標)。資料寄存器通常由指令隱含地使用,針對暫存值需要復雜的寄存器配置。它提供64K 8 位元的輸出輸入(或32K 16 位元),以及固定的向量中斷。大部分的指令只能夠存取一個內存位址,所以其中一個操作數必須是一個寄存器。運算結果會儲存在操作數中的一個寄存器。Intel 8086有四個內存區段(segment) 寄存器,可以從索引寄存器來設定。區段寄存器可以讓 CPU 利用特殊的方式存取1 MB內存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都認為這是一個很不好的設計,因為這樣的結果
8、是會讓各分段有重疊。盡管這樣對組合語言而言大部分被接受(也甚至有用),可以完全地控制分段,使在編程中使用指針 (如C 編程語言) 變得困難。它導致指針的高效率表示變得困難,且有可能產生兩個指向同一個地方的指針擁有不同的地址。更壞的是,這種方式產生要讓內存擴充到大于1MB難。而 8086 的尋址方式改變讓內存擴充較有效率。2.3.2 地址鎖存器74LS373的內部電路與工作原理圖2.4 引腳功能圖注:管腳引出端功能符號:D0D7 數據輸入端 OE 三態允許控制端(低電平有效)Q0Q7 輸出端 LE 鎖存允許端74373 三態緩沖輸出的8D鎖存器(3S,鎖存允許輸入有回環特性),其輸出端 Q0Q7
9、 可直接與總線相連,74LS373的LE端直接與8086CPU的ALE信號連接。1腳是三態允許控制端(OE),是低電平有效。當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)全部呈現高阻狀態(或者叫浮空狀態)。當1腳是低電平時,只要11腳(LE 鎖存允許端)上出現一個下降沿,輸出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、1
10、9(Q7)立即呈現輸入腳3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)的狀態。11腳是鎖存允許端(LE),當LE由高變低時,輸出端8 位信息被鎖存,直到LE 端再次有效。 當三態允許控制端OE為低電平時,三態門導通,允許Q0Q7輸出,OE為高電平時,輸出懸空。當74LS373用作地址鎖存器時,應使OE為低電平,此時鎖存使能端C為高電平時,輸出Q0Q7 狀態與輸入端D1D7狀態相同;當LE發生負的跳變時,輸入端D0D7 數據鎖入Q0Q7。圖2.5 8086CPU與74LS373、74LS138的連接及外部接線圖2.3.3 可編程外圍接口芯片
11、8255A的簡介8255A是Intel公司生產的一種通用的可編程并行I/O接口芯片,它是為Inter系列微處理器設計的配套電路,也可用于其它微處理器系統中。通過對它進行編程,芯片可工作于不同的工作方式。8255A有3個8位并行I/O口,具有3個通道3種工作方式,其各口功能可由軟件選擇,使用靈活,通用性強。8255作為主機與外設的連接芯片,必須提供與主機相連的3個總線接口,即數據線、地址線、控制線接口;同時必須具有與外設連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內部結構分為3個部分:與CPU連接部分、與外設連接部分、控制部分。 圖2.6 8255A的外部引
12、腳圖2.7 8255A的內部結構注:管腳引出端功能符號:RESET:復位輸入線,當該輸入端處于高電平時,所有內部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。 CS:芯片選擇信號線,當這個輸入引腳為低電平時,即/CS=0時,表示芯片被選中,允許8255與CPU進行通訊;/CS=1時,8255無法與CPU做數據傳輸. RD:讀信號線,當這個輸入引腳為低電平時,即/RD=0且/CS=0時,允許8255通過數據總線向CPU發送數據或狀態信息,即CPU從8255讀取信息或數據。 WR:寫入信號,當這個輸入引腳為低電平時,即/WR=0且/CS=0時,允許CPU將數據或控制字寫入8255
13、。 D0D7:三態雙向數據總線,8255與CPU數據傳送的通道,當CPU 執行輸入輸出指令時,通過它實現8位數據的讀/寫操作,控制字和狀態信息也通過數據總線傳送。 PA0PA7:端口A輸入輸出線,一個8位的數據輸出鎖存器/緩沖器, 一個8位的數據輸入鎖存器。 PB0PB7:端口B輸入輸出線,一個8位的I/O鎖存器, 一個8位的輸入輸出緩沖器。 PC0PC7:端口C輸入輸出線,一個8位的數據輸出鎖存器/緩沖器, 一個8位的數據輸入緩沖器。端口C可以通過工作方式設定而分成2個4位的端口, 每個4位的端口包含一個4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號輸出或狀態信號輸入端口。
14、9; A0,A1:地址選擇線,用來選擇8255的PA口,PB口,PC口和控制寄存器. 當A0=0,A1=0時,PA口被選擇;當A0=0,A1=1時,PB口被選擇; 當A0=1,A1=0時,PC口被選擇;當A0=1.A1=1時,控制寄存器被選擇.8255A的工作方式:方式0:基本輸入輸出方式,適用于無條件傳送和查詢方式的接口電路方式1:選通輸入輸出方式,適用于查詢和中斷方式的接口電路方式2:雙向選通傳送方式,適用于與雙向傳送數據的外設和查詢和中斷方式的接口電路 圖2.8 工作方式控制字 圖2.9 C口按位置位/復位控制字8255A初始化編程:8255A的A,B,C三個端口的工作方式是在初始化編程
15、時,通過向8255A的控制端口寫入控制字來設定的。8255A由編程寫入的控制字有兩個:方式控制字和置位/復位控制字。方式控制字用于設置端口A, B, C的工作方式和數據傳送方向;置位/復位控制字用于設置C口的PC7PC0中某一條口線PCi(i07)的電平。兩個控制字公用一個端口地址,由控制字的最高位作為區分這兩個控制字的標志位。圖2.10 8255A與LED及開關的連接及外部接線圖第3章 軟件設計3.1 程序流程設計3.1.1 主程序流程設置8255A的工作方式(10000001H)讀C口低三位左向流水燈輸出0FFH右向流水燈燈無有效按鍵時輸出YYNYK2是否被按下NNK1是否被按下開始結束圖
16、3.1 主程序流程圖3.1.2 程序流程圖左向移動流水燈CF置1,0FEHALB口輸出AL帶進位循環左移一位延時開始圖3.2 左向移動流水燈子程序圖右向移動流水燈CF置1,07FHALB口輸出AL帶進位循環右移一位延時開始圖3.3 左向移動流水燈子程序圖3.1.3 系統硬件連接圖圖 3.4 系統硬件連接圖3.1.4 源程序設計(附錄)3.2 設計最終理想結果及原理3.2.1 左向移動流水燈(1) 現象左向移動流水燈的實驗現象是首先最右邊的燈亮,然后是最右邊的燈滅,此時右起第二個燈亮,依次輪流亮,直到第八個燈亮。然后循環上述過程。(2) 原理左向移動流水燈是根據發光二極管的顯示原理,首先點亮最右
17、的二極管,然后進位置一,通過帶進位的循環左移指令編寫程序以實現模擬流水燈的左向移動。3.2.2 右向移動流水燈(1) 現象右向移動流水燈的實驗現象是首先最左邊的燈亮,然后是最左邊的燈滅,此時左起第二個燈亮,依次輪流亮,直到第八個燈亮。然后循環上述過程。(2) 原理右向移動流水燈是根據發光二極管的顯示原理,首先點亮最左的二極管,然后進位置一,通過帶進位的循環右移指令編寫程序以實現模擬流水燈的右向移動。設計心得在此,我們鄭重感謝系里給我們提供的這次珍貴的鍛煉機會以及吳學娟老師的熱情指導與幫助。在我們遇到困難而無法解決的時候,吳學娟老師給我們提供了很多有用的方案建議,并為我們提供了對我們極為有用的資
18、料;當我們有些問題不懂疑惑時,吳學娟老師也耐心給了我們做了清楚的解釋,在此我們表示真摯的感謝。這次微機原理課程設計我學到了很多在書本上所沒有學到過的知識。以前在上課的時候對于編程工具的使用還處于一知半解的狀態上,但是經過一段時間的實踐,對于怎么去排錯、查錯,怎么去看每一步的運行結果,怎么去了解每個寄存器的內容以及當寄存器不夠用時如何用存儲單元代替寄存器、怎么去使用循環嵌套、怎么去正確使用8255芯片等方面都有了很大程度的提高。通過課程設計,我們學到了很多東西。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,
19、才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,但總的來說還是圓滿的。感謝所有幫過我們的老師和同學們,他們都很熱情幫助我們,為我們提供了他們力所能及的幫助,在此我們對他們表示真摯的感謝。參考文獻1 周荷琴,吳秀清 編著. 微機原理與接口技術 合肥:中國科學技術大學出版社,2008.62 潘新民,王燕芳 編著.微型計算機控制技術 北京:高等教育出版社,2004。3 周明德 編著 微型計算機系統原理及應用
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;檢測開關信號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 ;設置B口輸出MOV AL, 07FH L10:OUT DX,AL ;B口輸出ROL AL,1 ;AL帶進位左移一位CALL DELAY ;調用延時子程序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帶進位右+移一位CALL DELAY ;調用延時子程序MOV DX, PORT_CIN AL, DXTEST AL, 02HJZ L20R
22、ETTHEEND:MOV AL, 0FFHMOV DX, PORT_BOUT DX, AL JMP MODELAY: MOV BX, 200 ;用雙層循環嵌套實現延時功能DEL1:MOV CX, 1000 DEL2:LOOP DEL2DEC BXJNZ DEL1RETCODE ENDSEND STARTRESET:復位輸入線,當該輸入端處于高電平時,所有內部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。 CS:芯片選擇信號線,當這個輸入引腳為低電平時,即/CS=0時,表示芯片被選中,允許8255與CPU進行通訊;/CS=1時,8255無法與CPU做數據傳輸. RD:讀信號線,當這個輸入引腳為低電平時,即/RD=0且/CS=0時,允許8255通過數據總線向CPU
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025按摩院轉讓合同范本
- 2025年中國國內運輸合同示范文本
- 2025建筑材料采購安裝合同
- 2025智能手機買賣合同
- 2025年附近學校房屋租賃合同范本
- 2025股權轉讓合同模板范文
- 2025年度標準版企業辦公場地租賃合同協議書
- 2025委托生產合同標準范例
- 2025江蘇中天鋼鐵集團有限公司產品采購銷售合同
- 2025企業間合作開發合同
- 自身免疫性腦炎
- 醫院質控科工作質量考核指標
- CRPS電源設計向導 CRPS Design Guide r-2017
- GB/T 9345.1-2008塑料灰分的測定第1部分:通用方法
- GB/T 4937.22-2018半導體器件機械和氣候試驗方法第22部分:鍵合強度
- GB/T 3452.2-2007液壓氣動用O形橡膠密封圈第2部分:外觀質量檢驗規范
- 煤礦從業人員安全培訓考試題庫(附答案)
- 第十章-國際政治與世界格局-(《政治學概論》課件)
- 2023年法律職業資格考試歷年真題精選合集
- 濾毒罐使用說明書
- 如何上好一節思政課綜述課件
評論
0/150
提交評論