PROTEUSPIC單片機設計方案多路搶答器設計方案_第1頁
PROTEUSPIC單片機設計方案多路搶答器設計方案_第2頁
免費預覽已結束,剩余29頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、封面作者: PanHongliang目錄:1 緒論 31.1課題研究的相關背景31.2選題的目的和意義31.3課題研究的內容31.4國內外研究現狀4僅供個人學習1.5搶答器目前存在的主要問題42PROTEU 簡介 42.1進入PROTEUS ISIS52.2PROTEUS工作界面52.3PROTEU的主要功能82.3.1 PROTEUSVSM功能.82.3.2PROTEUS PCB設計功能.83PIC單片機93.1PIC 單片機簡介 93.2PIC16F87的RAM數據存儲器93.2.1通用寄存器93.2.2特殊功能寄存器103.3輸入/輸出端口的基本功能103.4 PIC 單片機指令系統簡介

2、 113.5MPLAB簡介144搶答器系統的設計原理及方案154.1方案 154.1.1方案一(采用數字電路)154.1.2方案二(采用單片機)164.1.3方案三(采用PLC)164.2方案比較及選擇175 基于 PROTEUS多路搶答器硬件電路設計 175.1多路搶答器設計要求175.2PIC單片機控制的多路搶答器工作原理185.3基于PROTEU的多路搶答器硬件電路設計195.3.1多路搶答器總體電路設計195.3.2多路搶答器編碼電路設計225.3.3多路搶答器報警電路設計235.4多路搶答器系統軟件設計235.4.1多路搶答器系統軟件流程圖 235.4.2匯編程序清單24543基于M

3、PLAB勺程序編譯和調試306 仿真與調試 336.1仿真結果分析及說明 336.1.1仿真分析 356.1.2仿真說明 36總結與展望38致謝 40參考文獻 411 緒 論1.1 課題研究勺相關背景搶答器是一種應用非常廣泛勺設備,在各種競賽、搶答場合中,它能迅速、客觀地分辨出最先獲得發言權勺選手。早期勺搶答器只由幾個三極管、可 控硅、發光管等組成,能通過發光管勺指示辯認出選手號碼。現在大多數搶答 器均使用單片機和數字集成電路,并增加了許多新功能,如選手號碼顯示、搶 按前或搶按后勺計時、選手得分顯示等功能。1.2 選題勺目勺和意義通過這次設計,掌握PIC單片機勺原理,了解簡單多功能搶答器組成原

4、 理,初步掌握多功能搶答器勺調整及測試方法,提高動手能力和排除故障勺能 力。同時通過本課題設計與裝配、調試,提高自己勺動手能力,鞏固已學勺理 論知識,建立單片機理論和實踐勺結合,了解多功能搶答器各單元電路之間勺 關系及相互影響,從而能正確設計、計算定時計數勺各個單元電路。初步掌握 多功能搶答器勺調整及測試方法。提高動手能力和排除故障勺能力。1.3 課題研究勺內容本系統采用模塊化設計智能搶答器,在搶答比賽中廣泛應用,各組分別有一個搶答按鈕。主持人有開始和結束、復位鍵。在后臺主持人可以修改,搶答時間和選手回答問題的時間設置,原始狀態下搶答時間為20s,回答問題時間 為30s。通過加鍵和減鍵修改上述

5、時間,改完后結束鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數碼顯示屏顯示搶答時間倒計 時和選手號,在最后五秒揚聲器發生提示。如果主持人沒有按下開始鍵而選手 就搶答視為犯規,數碼顯示屏顯示犯規者的代號,揚聲器持續發生。主持人可 按鍵結束,新一輪搶答開始。通過研究并在設計驗證后發現, 采用單片機技術設計的搶答器與目前常用 的搶答器相比, 首先,電路連接簡單,因為大多數功能單元都通過程序設計在 單片機內部,第二,工作性能可靠,抗干擾能力優于目前搶答器。所以本研究 是一個實用的工程設計,具有創新性。本論文章節的結構和內容如下: 第一章:緒論。簡要介紹了搶答器的發展現狀,說明了本課題

6、研究的內容。 第二章:Proteus簡介。簡要介紹Proteus。第三章:PIC單片機簡介。簡要介紹PIC16f87的主要性能和主要輸入輸出端口 以及其 MPLAB。第四章:搶答器的設計原理及系統方案。第五章:基于ProteuS的多路搶答器設計。第六章:仿真與調試。第七章:總結。總結課題設計,指出設計中的一些問題,提出改善的意見, 并展望搶答器的未來設計。1.4 國內外研究現狀搶答器作為一種電子產品,早已廣泛應用于各種智力和知識競賽場合,但 目前所使用的搶答器有的電路較復雜不便于制作,可靠性低,實現起來很困 難;有的則用一些專用的集成塊,而專用集成塊的購買又很困難。為適應高校 等多代表隊單位活

7、動的需要而設計一個多功能搶答器,這種搶答器具有電路簡 單,元件普通,易于購買等優點,很好地解決了制作者制作困難和難于購買的 問題。在國內外已經開始了普遍的應用2。1.5 搶答器目前存在的主要問題隨著改革開放事業的不斷深入,促使人們學科學、學技術、學知識的手段 多種多樣,搶答器作為一種工具,已廣泛應用于各種智力和知識競賽場合。但 搶答器的使用頻率校低,且有的要么制作復雜,要么可靠性低,減少興致。作 為一個單位若專購一臺搶答器雖然在經濟上可以承受,但每年使用的次數極 少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就 會影響活動的開展。而且目前多數搶答器存在3個不足之處:第一,現

8、場線路連接復雜。因為每 個選手位于搶答現場的不同位置,每個選手與控制臺之間要有長長的連接線。 選手越多,連接線就越多、越亂,這些連接線不僅影響了現場的美觀,而且降 低了搶答器的可靠性,增加了安裝的難度,甚至影響了現場人員的走動。第 二,電路復雜。因為單片機只完成號碼處理、計時、數據運算等功能,其它功 能如選手號碼的識別、譯碼、計分顯示等仍只能通過數字集成電路完成。采用 單片機掃描技術識別選手搶按號碼時,電路的延遲時間較大。第三,選手搶按 成功,但出現沒有搶答被記錄的問題。2 PROTEUS 簡介Proteus ISIS是英國Labcenter公司開發的電路分析與實物仿真軟件。它運 行于Wind

9、ows操作系統上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:實現了單片機仿真和SPICE電路仿真相結合。具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統的仿真、RS232動態仿真、I2C調試器、SPI調試器、鍵盤和LCD系統仿真的功能;有各種虛 擬儀器,如示波器、邏輯分析儀、信號發生器等。支持主流單片機系統的仿 真。目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系 列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。提 供軟件調試功能。在硬件仿真系統中具有全速、單步、設置斷點等調試功能, 同時可以觀察

10、各個變量、寄存器等的當前狀態,因此在該軟件仿真系統中,也 必須具有這些功能;同時支持第三方的軟件編譯和調試環境,如Keil C51uVision2等軟件。具有強大的原理圖繪制功能。總之,該軟件是一款集單片 機和SPICE分析于一身的仿真軟件,功能極其強大。2.1 進入 proteus isis雙擊桌面上的ISIS 6 Professional圖標或者單擊屏幕左下方的“開始“程序” “Proteus 6 Professiona” “ISIS 6 Professiona”,出現如圖1-1所 示屏幕,表明進入Proteus ISIS集成環境。圖 1-1 啟動時的屏幕2.2proteus 工作界面Pr

11、oteus ISIS的工作界面是一種標準的Windows界面,如圖1-2所示。包 括:標題欄、主菜單、標準工具欄、繪圖工具欄、狀態欄、對象選擇按鈕、預 覽對象方位控制按鈕、仿真進程控制按鈕、預覽窗口、對象選擇器窗口、圖形 編輯窗口。圖1-2 Proteus ISIS的工作界面 為了方便介紹,我分別對窗口內各部分進行中文說明(見上圖)。下面簡單 介紹各部分的功能:1圖形編輯窗口(The Editing Window):顧名思義,它是用來繪制原理圖 的。藍色方框內為可編輯區,元件要放到它里面。注意,這個窗口是沒有滾動 條的,你可用預覽窗口來改變原理圖的可視范圍。2.預覽窗口(The Overvie

12、w Window):它可顯示兩個內容,一個是:當你在元件表中選擇一個元件時,它會顯示該元件的預覽圖;另一個是,當你的鼠標 焦點落在原理圖編輯窗口時(即放置元件到原理圖編輯窗口后或在原理圖編輯 窗口中點擊鼠標后),它會顯示整張原理圖的縮略圖,并會顯示一個綠色的方 框,綠色的方框里面的內容就是當前原理圖窗口中顯示的內容,因此,你可用 鼠標在它上面點擊來改變綠色的方框的位置,從而改變原理圖的可視范圍。3.繪圖工具欄(Mode Selector Toolbar):主要模型(Main Modes):1.選擇元件(components)(默認選擇的)2.放置連接點3.放置標簽(用總線時會用到)4.放置文本

13、5.用于繪制總線6.用于放置子電路7.用于即時編輯元件參數(先單擊該圖標再單擊要修改的元件)配件(Gadgets):1.終端接口(terminals):有VCC、地、輸出、輸入等接口2.器件引腳:用于繪制各種引腳3.仿真圖表(graph):用于各種分析,如Noise An alysis4.錄音機5.信號發生器(generators)6.電壓探針:使用仿真圖表時要用到7.電流探針:使用仿真圖表時要用到8.虛擬儀表:有示波器等2D圖形(2D Graphics):1.畫各種直線2.畫各種方框3.畫各種圓4.畫各種圓弧5.畫各種多邊形6.畫各種文本7.畫符號8.畫原點等4對象選擇器窗口(The Obj

14、ect Selector):用于挑選元件(componentS、終端接口(terminals)、信號發生器(generators) 仿真圖表(graph)等。舉例,當你選擇“元件(componentS”,單擊“P”按鈕會打開挑選元件對話框,選擇了一個元件后(單擊了“0K”后),該元件會在元件列表中顯示,以后要用到該元件時,只 需在元件列表中選擇即可。5預覽對象方位控制按鈕(0rientation Toolbar): 旋轉:旋轉角度只能是90的整數倍。翻轉:完成水平翻轉和垂直翻轉。 使用方法:先右鍵單擊元件,再點擊(左擊)相應的旋轉圖標。6仿真進程控制按鈕仿真控制按鈕1.運行2.單步運行3.暫停

15、4.停止2.3 PROTEUS 的主要功能2.3.1 PROTEUS VSM功能Proteus軟件的ISIS原理圖設計界面同時還支持電路的虛擬仿真VSM。當電路元件在調用時,選用具有動畫演示功能的器件或具有仿真模型的器件,當電路 連接完成無誤后,直接運行仿真按鈕,即可實現聲、光、動等逼真的效果,以 檢驗電路硬件及軟件設計的對錯。Proteus VSM有兩種不同的仿真方式:交互式仿真和基于圖表的仿真。交互式仿真實時直觀地反映電路設計仿真結果; 基于圖表的仿真用來精確分析電路的各種性能,如頻率特性、噪聲特性 等。Proteus VSM中的整個電路分析是在ISIS原理圖設計模塊下延續下來的,原理 圖

16、中可以包含以下仿真工具:探針直接布置在線路上,用于采集和測量電壓/電流信號; 電路激勵系統的多種激勵信號源;虛擬儀器用于觀測電路的運行狀況;曲線圖表用于分析電路的參數指標2.3.2PROTEUS PCB設計功能Proteus不僅可以實現高級原理圖設計、混合模式SPICE仿真,還可以進行PCB系統特性設計以及手動、自動布線,以此來實現一個完整的電子系統設 計。基于高性能網表的ARES PCB設計軟件完全補足了ISIS。ARES PCB設計系 統是一個具有32位數據庫,能夠進行元件布局、撤消和重試的,具有自動布線 功能的超強性能的PCB設計系統,其自動布局和自動布線工具使PCB的設計 盡可能地簡便

17、,復雜的工作盡量都由計算機來完成。同時,ARES也支持手動 布線,系統限制相較少。ARES PCB設計系統的主要特性表現在以下幾個方面:1.有16個銅箔層,2個絲印層和4個機械層;2.能夠將元件進行任意角的布置;3.在放置元件時能夠自動生成飛線和力向量;4.具有理想的基于網表的手工布線系統;5.物理設計規則檢測功能可以保證設計的完整性;6.具有超過1000種標準封裝的元件庫;7.具有完整的CADCAM輸出以及嵌板工具;8.當用戶修改了原理圖并重新加載網表,ARES將更新相關聯的元件和連 線。同理,ARES中的變化也將自動地反饋到原理圖中。3 PIC單片機3.1 PIC 單片機簡介PIC單片機系

18、列是美國微芯公司(Micro Ship)的產品,是當前市場份額增長最 快的單片機之一。CPU采用RISC結構,分別有33、35、58條指令(視單片機的 級別而定),屬精簡指令集。而51系列有111條指令,AVR單片機有118條指 令,都比前者復雜。采用Halyard雙總線結構,運行速度快(指令周期約160200n S),它能使程序存儲器的訪問和數據存儲器的訪問并行處理, 這種指令流 水線結構, 在一個周期內完成兩部分工作, 一是執行指令, 二是從程序存儲器 取出下一條指令,這樣總的看來每條指令只需一個周期(個別除外),這也是高效率運行的原因之一。此外,它還具有低工作電壓、低功耗、驅動能力強等特

19、 點。PIC系列單片機的:IO口是雙向的,其輸出電路為CMOS互補推挽輸出 電路。I/O腳增加了用于設置輸入或輸出狀態的方向寄存器(TRISn,其中n對 應各口,如A、B、C、D、E等),從而解決了51系列I/O腳為高電平時同為 輸入和輸出的狀態。當置位1時為輸入狀態,且不管該腳呈高電平或低電平,對外均呈高阻狀態;置位0時為輸出狀態,不管該腳為何種電平,均呈低阻狀 態,有相當的驅動能力,低電平吸人電流達25mA,高電平輸出電流可達20mA。相對于51系列而言,這是一個很大的優點,它可以直接驅動數碼管顯 示且外電路簡單。它的A/D為10位,能滿足精度要求。具有在線調試及編程(ISP)功能。該系列

20、單片機的專用寄存器(SFR)并不像51系列那樣都集中在一個固定的地 址區間內(80FFH),而是分散在四個地址區間內,即存儲體0(Bank0:00-7FH)、存儲體1(Bankl:80-FFH)、存儲體2(Bank2:100-17FH)、存儲體3(Bank3:180-1FFH)。只有5個專用寄存器PCL、STATUS、FSR、PCLATH、INTCON在4個存儲體內同時出現。在編程過程中,少不了要與專用寄存器打 交道,得反復地選擇對應的存儲體,也即對狀態寄存器STATUS的第6位(RPl)和第5位(RPO)置位或清零。數據的傳送和邏輯運算基本上都得通過工作寄存器w(相當于5l系列的累加器A)來

21、進行, 而51系列的還可以通過寄存器相互之間直接傳送(如:MOV30H,20H;將寄存器20H的內容直接傳送至寄存器30H中),因而PIC單 片機的瓶頸現象比51系列還要嚴重,這在編程中很有感受。3.2 PIC16F87 的 RAM 數據存儲器3.2.1通用寄存器通用寄存器(GPR,General Purpose Registers)用于通用目的,即由用戶 自由安排和存放隨機數據(單片機上電復位后其內容是不確定的),因此稱為“通用寄存器”。對于870來說,共有128個單元,劃分為2部分:第1部分位于體0中, 有96個單元,地址為20H-7FH第2部分位于體1中,有32個單元,地址為A0H-BF

22、H其中體0中高地址處的16個單元比較特殊(70H-7FH, 在其它3個 體內, 分別利用地址F0H-FFH 170H-17FH和1FOH-1FFH都能夠訪問到這16個單元。322特殊功能寄存器1.狀態寄存器STATUSBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RPRP1RPOTOPDZDCCQ其中Z是零標志位,若為1,則表示算術或邏輯運算的結果為0,為1則 表示算術或邏輯運算的結果不為0。RP0和RP1是RAM數據存儲器體選位, 僅用于直接尋址。若為00則表示選中體0,為01表示選中體1,為10表示 選中體2,為11表示選中體3。在這里其他幾位就不做詳細介紹了。2.實現間

23、接尋址的寄存器INDF和FSR其實位于RAM最頂端、地址碼為00H的INDF寄存器,是一個空寄存 器,它只有地址編碼,并不存在一個真正(物理上)的寄存器單元。用它來 與FSR寄存器配合,實現間接尋址。當尋址INDF時,實際上是訪問以FSR內容為地址的RAM單元。3與程序計數器PC相關的寄存器PCL和PCLATH程序計數器PC是一個13位寬的、專門為CPU提供程序存儲器地址的寄 存器,它的內容時刻指向CPU下一步要執行的那條指令所在的程序存儲器單 元。為了與其他8位寬的寄存器進行交換,將它分成PCL和PCH兩部分: 低8位PCL有自己的地址,可讀可寫;而高5位PCH卻沒有自己的地址,不 能用軟件

24、訪問,也就不能直接寫入,只能用寄存器PCLATH裝載的方式來進 行直接寫入。除了上面介紹的5個寄存器外,還有其它一些寄存器,在這里就不再具體介 紹了。3.3 輸入/輸出端口的基本功能輸入/輸出端口(也稱I/O口)是單片機內部電路與外部世界交換信息的 通道。輸入端口負責從外界接收監測信號、鍵盤信號等各種開關信號。輸出 端口負責向外界輸送由內部電路產生的處理結果、顯示信息、控制命令、驅 動信號等。1與輸入/輸出端口相關的2個寄存器在PIC單片機中,各個I/O端口都具備兩個基本的專用寄存器:數據寄存 器和方向寄存器即PORTX和TRISX。2基本輸入/輸出端口的工作原理對一個端口引腳進行4種基本操作

25、分別說明如下:1) 寫I/O方向寄存其TRIS Latch根據方向寄存器中寫入內容的不同,又可以分為兩種情況:寫入1則對應引腳被設置為“輸入”;寫入0則對應引腳被設置為“輸出”。2) 經端口引腳輸出數據 經端口引腳輸出數據的前提是, 該端口引腳必須預先被設定為“輸出”態。然后把欲輸出的數據X(0或1)放到數據總線上,接著由控制線WR Port送來脈 沖下降沿作為觸發信號,X被鎖入Data Latch中。3) 從端口引腳輸入數據 對于這種操作,根據防線寄存器內容的不同,又可以分為兩種情況:(1) 方向寄存器的內容為1,讀取的是引腳的網邏輯電平。(2) 方向寄存器的內容為0,讀取的是端口數據寄存器

26、中鎖存的數據。4)讀取I/O方向寄存器TRIS Latch由RD TRIS送來“讀脈沖”,打開三態門將TRIS Latch鎖存的內容轉移到內部數據總線上。3.4 PIC 單片機指令系統簡介每個PIC指令都是14位字長,可以分為指明指令類型的操作碼和進一步 指明指令操作的一個或多個操作數。僅有35條指令(RISC),都是單字節(14bit)指令,除了跳轉指令以外所有指令都是單周期指令。3.4.1指令說明1、數據傳送類指令1) MOVF f,d移動f操作數:0f127 d0,1受影響的狀態位:Z根據d的狀態,將寄存器f的內容移入目標寄存 器。如果d = 0, 目標寄存器是W寄存器。如果d=1,目標

27、寄存器是f寄存器 本身。由于該指令影響狀態標志位乙可用于在d=1時檢測數據寄存器的內 容是否為0。2) MOVWFf將W的內容移動至f操作數:0f127受影響的狀態位:無說明:將數據從W寄存器送入寄存器f。3) MOVLW k將立即數移動到W寄存器操作數:0k255受影響的狀態位:無說明:8位立即數k送入W寄存器。4) SWAPF f,df半字節交換 操作數:0f127 d0,1受影響的狀態位:無說明:寄存器“”勺高半字節和低半字節交換。如果d”為0,結果存入W寄存器。如果d”為1,結果存回到寄存器“”2、算術運算類指令1) ADDWF f,d W加f操作數:0f127d foj受影響的狀態位

28、:C, DC, Z說明:W寄存器與“寄存器的內容相加。如果d”為0,結果存入W寄存 器。果 d d”為1,結果存回到寄存器“”2) SUBWF f,d f減去W操作數:0f127 d0,1受影響的狀態位:C, DC, Z說明:f寄存器內容減去W寄存器內容(使用2進制補碼的方法)。如果 d d”為0,結果存入W寄存器。如果d”為1,結果存回到寄存器“”3) ADDLW k立即數加W操作數:0k255受影響的狀態位:C, DC, Z說明:8位立即數“”與W寄存器的內容相加,結果存入W寄存器。4) SUBLW k立即數減去W操作數:0k255受影響的狀態位:C, DC, Z說明:8位立即數k”減去W

29、寄存器的內容(使用2進制補碼的方法)。結 果存入W寄存器。5) INCF f,d f加1操作數:0f127d0,1受影響的狀態位:Z說明:寄存器f”勺內容遞增。如果d”為0,結果存入W寄存器。如果d” 為1,結果存回到寄存器 “f”。6) DECF f,d f減1操作數:0f127d0,1受影響的狀態位:Z說明:寄存器f”減1。如果d”為0,結果存入W寄存器。如果d”為1,結 果存回到寄存器f”。3、邏輯運算類指令1)CLRF ff清零操作數:0f127受影響的狀態位:Z說明:寄存器f已清零,Z位置1。2)CLRW W清零操作數:無 受影響的狀態位:Z說明:W寄存器被清零。全零位(Z)置1。3

30、) CLRWDT看門狗定時器清零 操作數: 無受影響的狀態位:TO,PD說明:CLRWDT指令復位看門狗定時器。而且還復位WDT預分頻器。狀 態位TO和PD置位。4)BCF f,b f位清零 操作數:0f1270b7受影響的狀態位:無說明:寄存器f”中的b”位被清零。5)BSF f,b f位置1操作數:0f1270b7受影響的狀態位: 無說明:寄存器f”中的b”位被置1o o6)RLF f,df帶進位左循環操作數:0f127d0,1受影響的狀態位:C說明:寄存器f的內容連同進位標志位循環左移1位。如果d”為0,結果 存入W寄存器。如果d”為1,結果存回到寄存器f”7)RRF f,df帶進位右循

31、環操作數:0f127d0,1受影響的狀態位:C說明:寄存器f的內容連同進位標志位循環右移1位。如果d”為o,結果 存入W寄存器。如果d”為1,結果存回到寄存器f”8) ANDWF f,d W和f與運算操作數:0f127dOJ受影響的狀態位:Z說明:W寄存器和f寄存器進行與運算。如果d”為0,結果存入寄存器W。如 果d”為1,結果存回到寄存器f”9)IORWF f,dW和f或運算操作數:0f127d0,1受影響的狀態位:Z說明:W寄存器和f寄存器進行或運算。如果d”為0,結果存入W寄存 器。如果d”為1,結果存回到寄存器f”10)XORWF f,dW和f異或運算操作數:0f127d0,1受影響的

32、狀態位:Z說明:W寄存器與f”寄存器的內容進行異或運算。如果d”為0,結果存入1,結果存回到寄存器f”。4、控制轉移類指令1) CALL k調用子程序操作數:0k2047受影響的狀態位:無說明: 調用子程序。 首先, 將返回地址( 地址被裝入PC位。PC高位從CLATHW。如果d”為1,結果存回到寄存器f”。11)ANDLW k立即數和W與運算 操作數:0k255受影響的狀態位:Z說明:寄存器W的內容與器。12)IORLW k操作數:0k255受影響的狀態位:Z說明:寄存器W的內容與器。13)XORLW k操作數:0k255受影響的狀態位:Z說明:寄存器W的內容與8位立即數8位立即數k”進行與

33、運算,立即數和W或運算8位立即數k ”進行或運算。立即數和W異或運算k ”進行異或運算結果存入結果存入結果存入寄存寄存寄存COMF f,d f取反0f127d0,1受影響的狀態位:Z說明:取寄存器f中內容的補碼。如果14)操作數:d”為0,結果存入W。如果d”為PC+1)壓入堆棧。11位立即數裝入。CALL是雙周期指令。2)GOTO k無條件轉移操作數:0k2047受影響的狀態位:無說明:GOTO是無條件轉移指令。11位立即數被裝入PC位。PC高位從PCLATH裝入。GOTO是雙周期指令。3)BTFSC f,b檢測位,為0則跳過操作數:0f1270b7操作:如果(f)= 0則跳過受影響的狀態位

34、:無說明:如果寄存器“”的位b”為1”則執行下一條指令。如果寄存器 “”的 位b”為0”則放棄執行下一條指令,而執行一條NOP指令,使該指令變成2TCY指令。4)BTFSS f,b檢測f的位,為1跳過操作數:0f1270b 7操作:如果(f)= 1則跳過受影響的狀態位:無說明:如果寄存器 “的位b”為0”則執行下一條指令。如果位b”為1”,則放棄執行下一條指令而執行一條NOP指令,使該指令成為2TCY指 令。5)RETURN從子程序返回操作數:無操作:TOS PC受影響的狀態位:無說明:從子程序返回。執行出棧操作,將棧頂(TOS)單元內容裝入程序計數器。這是雙周期指令。3.5 MPLAB 簡介

35、MPLAB集成開發環境(IDE)是一個綜合的編輯器、工程管理器和設計平 臺,適用于使用Microchip PICmicro和dsPIC單片機進行嵌入式設計的應用開 發。MPLAB IDE的功能:MPLAB IDE是基于Windows?操作系統的集成開發環境,適用于PICmicro MCU系列和dsPIC數字信號控制器的開發。MPLAB IDE提供以下功 能:?使用內置的編輯器創建和編輯源代碼。?匯編、編譯和鏈接源代碼。?通過使用內置的軟件模擬器觀察程序流程,或者使用在線仿真器或在線調試 器以實時方式觀察程序流程來調試可執行邏輯。?用軟件模擬器或仿真器進行時序測量。?查看Watch窗口中的變量。

36、?使用器件編程器將固件燒寫入器件4. 搶答器系統的設計原理及方案4.1 方案制作搶答器可以用好多的方法,可以用單片機來完成,它的功能強大制作 簡單,并且外圍的元件也很少;也可以用PLC來實現,他的制作也是比較簡 單;還可以用我們學過的EDA技術來制作;最后也可以用數字電路來實現,它 的原理比較簡單,集成塊的價格也比較便宜且很容易購買。4.1.1方案一(采用數字電路)1、原理方框圖定時搶答器的總體框圖如圖4.1.1所示,它由主體電路和擴展電路兩部分組成。 主體電路完成基本的搶答功能,即開始搶答后,當選手按動搶答鍵時,能顯示 選手的編號,同時能封鎖輸入電路,禁止其他選手搶答。擴展電路完成定時搶 答

37、的功能。圖4.1.1圖4.1.1所示的定時搶答器的工作過程是:接通電源時,節目主持人將開關置于 “清除”位置,搶答器處于禁止工作狀態,編號顯示器滅燈,定時顯示器顯示設 定的時間,當節目主持人宣布 “搶答開始 ”,同時將控制開關撥到 “開始”位置, 揚聲器給出聲響提示,搶答器處于工作狀態,定時器倒計時。當定時時間到, 卻沒有選手搶答時,系統報警,并封鎖輸入電路,禁止選手超時后搶答。當選 手在定時時間內按動搶答鍵時,搶答器要完成以下四項工作:1優先編碼電路立即分辨出搶答者的編號,并由鎖存器進行鎖存,然后由譯碼 顯示電路顯示編號;2揚聲器發出短暫聲響,提醒節目主持人注意;3控制電路要對輸入編碼電路進

38、行封鎖,避免其他選手再次進行搶答;4控制電路要使定時器停止工作,時間顯示器上顯示剩余的搶答時間,并保持 到主持人將系統清零為止。當選手將問題回答完畢,主持人操作控制開關,使 系統回復到禁止工作狀態,以便進行下一輪搶答。4.1.2方案二(采用單片機)1、原理方框圖此電路完成的功能如圖4.1.2所示,當主持人宣布搶答開始的時候,按下開始按 鈕,此時電路進入搶答狀態,選手的輸入采用了掃描式的輸入,之后把相應的 信息送往單片機,再由單片機輸出到顯示輸出電路中。此時有人第一按下相應 的搶答按鈕,經過單片機的控制選擇,在八段顯示器上顯示相應的號碼,并鎖 存,同時禁止其他按鈕的輸入。圖4.1.24.1.3方

39、案三(采用PLC)1、原理方框圖此電路的功能如圖4.1.3所示,當主持人打開啟動開關后,在設定時間TO內,如果某組搶先按下搶答按鈕,則驅動音效電路發出聲響,指示燈LI亮,并且在8段數碼管顯示器上顯示出搶答成功的組號,此時電路實現互鎖,其他組再 按下搶答按鈕為無效。如果在時間TO內,無人應答,則驅動音效電路發出聲響,指示燈L2亮,表 示搶答者均放棄該題。在搶答成功后,主持人打開限時開關SW2,啟動計時器,在設定的時間TI內 回答有效,當到達設定時間TI時,驅動音效電路,指示燈L3亮,表示答題 時間到。圖 4.1.34.2 方案比較及選擇方案比較數字電路單片機PLC制作難度低一般一般0解單片機分功

40、16F8,經運算和處理后,啟 T 擊一 T能說明器原理框圖7單片機圖 5.1 PIC如圖5.1所示,系統框圖各部 單片機控制器:選用PIC和復位輸入信號等 答顯示數碼管等。搶答輸入:共8路,選用單刀雙擲開關,鎖存器 1編碼電路:對8路搶答輸入信號進行編碼(輸出為 實現對PIC1687輸入端口的擴展搶答輸除輸入入:選用單刀雙擲開關, 復位輸入:選用單刀雙擲開關, 鎖存器1和解除存入2:封鎖后搶答輸入信號。復位輸入F 答輸入、端接收搶答輸入、解除輸入經鎖存器控制搶答指示燈和搶賽選手的搶答輸入,并4位二進制代碼), 為繼續搶答作準備 硬件復位操作實現封鎖的解除可對單片機進行 用鎖存器實現對制器心6輕

41、7輸卿存的擴展(PIC16F87)0搶。答顯示實現難度一般低低價格低一般高電路原理簡單一般一般設計難度簡單高一般通過上面的方案比較,數字電路的制作方案比較容易實現,但是所需要的芯片 太多,不易于集成。PLC的價格太貴,對于搶答器的設計并不適合。而用單片 機設計搶答器其所需的芯片并不太多,而且價格較低,雖然其設計難度較高, 但對于當今社會的發展,學好一門單片機是相當重要的,所以本次設計我采用PIC單片機來設計搶答器。5.基于 PROTEU 的多路搶答器設計5.1多路搶答器設計要求1多路搶答器電路可供不少于8名參賽選手使用;2每名參賽選手各有一個搶答按鈕,在主持人用按鈕清零,并發出搶答指 令后,實

42、行搶答;3電路配有LED數碼顯示,能顯示優先搶答的選手編號,同時配有語音提 示電路。數碼顯示和語音提示可由主持人用清除按鈕解除;4電路對參賽選手的動作先后有較強的分辯能力。5.2PIC單片機控制的多路搶答器工作原理用單片機設計多路搶答器包括硬件電路設計和軟件程序設計。硬件電 路的核心是PIC16F87單片機,配以輸入輸出電路構成。軟件程序采用PIC匯編語言編寫單片機程序。PIC單片機控制的多路搶答器原理框圖,如圖5.1所示。參搶答指示:共8路,對應指示參賽選手的搶答輸入。搶答顯示:用LCD數碼管顯示參賽選手的編號。啟動指示和解除指示:分別指示仿真運行后的狀態(搶答開始)和解除 封鎖后的狀態(解

43、除封鎖后,允許繼續搶答)。語音報警電路:當有搶答輸入時,語音報警電路發出一定頻率的聲音,起到提示的作用。當解除信號輸入時,語音報警電路停止工作。5.3基于PROTEU的多路搶答器硬件電路設計5.3.1多路搶答器總體電路設計1.創建一個新的設計文件首先進入Proteus ISIS編輯環境。選擇“File/New Design”選項,在彈出的模板對話框中選擇DEFAULT模板,并將新建的設計保存。如圖5.3.1(a)所示。如圖5.3.1(a)2.置工作環境打開Template菜單,對工作環境進行設置。3.拾取元器件選擇Library下的Pick Device/Symbol菜單項,出現如圖5.3.1

44、(b)所示對話 框。圖5.3.1(b)元件拾取對話框在Keywords中輸入你所需要的元器件名稱,單擊OK按扭,或在元器件列表區域雙擊元器件名稱,即可完成對該元件的添加。4.在原理圖中放置元件選擇對象選擇器中的PIC16F84A元器件,在Proteus ISIS編輯環境主界 面的預覽窗口將出現PIC16F84A的圖標。在編輯窗口雙擊鼠標左鍵,元器件PIC16F84A被放置到原理圖中。按照上述步驟,將其他元器件放置到原理圖中。5.編輯元器件放置好元器件后,雙擊相應的元器件,即可打開該元器件的編輯對話 框。6.繪制原理圖單擊的一個對象連接點。如果想讓Proteus ISIS自動定出走線路徑,只需

45、單擊另一個連接點;如果想自己決定走線路徑,只需在希望的拐點處單擊。 按照上述步驟,將所有的原器件按照所需方式連線。連接后的原理圖如圖5.3.1(c)所 示。5.3.1(c)連接后的原理圖8.對原理圖進行電氣規則檢測選擇Tools下的Electrical Rule Check菜單項,出現電氣規則檢測報告單。 如圖5.3.1(d)所示。圖5.3.1(d)電氣規則檢查報告單9存盤及輸出報表將設計好的原理圖文件存盤。同時,可使用Tools菜單下的Bill ofMaterials草單項輸出BOM文檔。如圖5.3.1(e)所示。圖5.3.1(e)輸出的BOM文檔5.3.2多路搶答器編碼電路設計因為本次設計

46、是用PIC16F87作為核心器件, 而對于八路搶答器而言所需輸入 端口較多,但是PIC16F87的輸入/輸出端口并不是太多,因此對于PIC16F87的 輸入/輸出端口進行闊展無疑是本次設計的一個難點。而本次設計采用由74LS147等組成的編碼電路將八路搶答信號進行編碼,輸出四路編碼信號,這 樣就減少了對于PIC16F87輸入/輸出的要求。其功能表如圖5.3.2(a)所示。輸入輸出|1|2|3|4|5|6|7|8|9丫丫4丫丫3丫丫2Y10000000000000*11001*101000*1000111*10000110*11 00000101*1000000100*10000000011*1

47、000000000101000000000001圖5.3.2(a) 74IS147的功能表而74IS147輸出的是反碼,因此需要加上反向器,編碼電路如圖5.3.2(b)所示。圖5.3.2(b)編碼電路5.3.3多路搶答器報警電路設計對于報警電路的設計,我采用由一個提供頻率為1HZ的信號源、一個與門和一個SOUNDER(聲音輸出仿真,元件)組成的電路,如圖5.3.3所示。圖5.3.3報警電路5.4 多路搶答器系統軟件設計5.4.1多路搶答器系統軟件流程圖軟件設計思路本處程序采用查詢方式,檢測搶答輸入信號。搶答信號的互鎖用狀態標志FLAG(表示寄存器FLAG的bitO)實現,當FLAG=1時,允許

48、搶答;FLAG=0時,禁止搶答。一旦有搶答輸入,在對應的子程序中將狀態標志FLAG清0,則其他搶答輸入被封鎖。 子程序中, 將狀態標志FLAG置位, 多路搶答器軟件程序流程圖多路搶答器軟件程序流程圖,如圖直到程序檢測到解除信號后,在解除 允許繼續搶答。5.4.1所示。a主程序5.4.2匯編程序清單圖 5.4.1 多路搶答器程序流程圖#in elude P16F87.INCFLAG EQU 20H志;MPASM 匯編器包含對定義標志變量寄存器PIC16F87 的定義FLAG,用FLAG作為搶答允許標ORG 00H;主程序MAIN:BSF STATUS, RP0;選擇1區MOVLW 0X3F;將A

49、口方向控制碼3FH先送WMOVWF TRISA;再轉存至方向寄存器TRISA(A口低6位輸入,高2位輸出)MOVLW 0X00 ;將 B 口方向控制碼 00H 先送 WMOVWF TRISB;再轉存至方向寄存器TRISB(B口全為輸出)BCF STATUS, RP0;選擇0區MOVLW 0XD0;以W作中轉MOVWF PORTA;將1100 0000B送A口,最高位為1不影響MOVLW 0X00;以W作中轉;程序存放首地址(b)解除子程序(c) 1#搶答子程序MOVWF PORTB;將0000 0000B送B口,燈全不亮CALL LATCH_1;調用LATCH_1子程序,將B口數據鎖存至鎖存器

50、1MOVLW 0X40;將0100 0000B,鎖存至鎖存器2(啟動指示燈X10亮,數碼管顯示0)MOVWF PORTBCALL LATCH 2BSF FLAG, 0;FLAG=1(標志位置1, ;循環檢測LOOP:BTFSS PORTA, 4;檢測RA4(解除輸入) ,入) ,跳轉一步CAL主程序ECHU;若RA4=0(有解除輸入),調用 ;檢測1#參賽選手的搶答情況允許搶答)若RA4=1(無解除輸JIECHU(解鎖子程序)BTFSS FLAG, 0;檢測允許搶答標志,若FLAG=1,允許搶 答,跳轉一步,檢測1#搶答輸入情況GOTO LOOP;若FLAG=0,禁止搶答,跳轉至LOOP(重新

51、檢 測)MOVF PORTA,0;以W作中轉ANDLW 0X0F;將A口內容和0000 1111B按位與操作,保留最低4位(編碼電路的輸出代碼)SUBLW 0 x01;用01H和A口最低3位數據相減,檢測是否等于1(是否1#參 賽選手搶答)BTFSC STATUS, Z;檢測狀態寄存器STATUS,若Z=0,表示A口最低3位數據不等于1,則跳轉一步,繼續檢測其他搶 答信號CALL S1;若Z=1,表示A口最低3位數據等于01H(1#參賽選手有搶答),調用S1;檢測2#參賽選手的搶答情況BTFSS FLAG,0GOTO LOOPMOVF PORTA,0ANDLW 0X0FSUBLW 0 x02B

52、TFSC STATUS, ZCALL S2;檢測3#參賽選手的搶答情況BTFSS FLAG, 0GOTO LOOPMOVF PORTA,0ANDLW 0X0FSUBLW 0 x03BTFSC STATUS, ZCALL S3;檢測4#參賽選手的搶答情況BTFSS FLAG, 0GOTO LOOPMOVF PORTA, 0ANDLW 0X0FSUBLW 0 x04BTFSC STATUS, ZCALL S4;檢測5#參賽選手的搶答情況BTFSS FLAG, 0GOTO LOOPMOVF PORTA, 0ANDLW 0X0FSUBLW 0 x05BTFSC STATUS, ZCALL S5;檢測6

53、#參賽選手的搶答情況BTFSS FLAG, 0GOTO LOOPMOVF PORTA, 0ANDLW 0X0FSUBLW 0 x06BTFSC STATUS, ZCALL S6;檢測7#參賽選手的搶答情況BTFSS FLAG, 0GOTO LOOPMOVF PORTA, 0ANDLW 0X0FSUBLW 0 x07BTFSC STATUS, ZCALL S7;檢測8#參賽選手的搶答情況BTFSS FLAG, 0GOTO LOOPMOVF PORTA, 0ANDLW 0X0FSUBLW 0 x08BTFSC STATUS, ZCALL S8GOTO LOOP;處理1#搶答子程序S1:BCF FL

54、AG, 0;搶答標志復位(FLAG=0),禁止其他搶答輸入MOVLW0X01;以W作中轉MOVWF PORTB;將01H(控制指示燈X1亮,其他均不亮)送B口CALL LATCH_1;調用LATCH_1,進一步將01H鎖存至鎖存器1MOVLW 0X51;以W作中轉MOVWF PORTB;將51H(控制啟動指示燈X10亮,其他均不亮,數碼管顯 示“1”,同時控制蜂鳴器發聲)送B口CALL LATCH_2;調用LATCH_2,進一步將51H鎖存至鎖存器2 RETURN;處理1#搶答子程序返回;處理2#搶答子程序S2:BCF FLAG, 0MOVLW 0X02MOVWF PORTBCALL LATC

55、H_1MOVLW 0X52MOVWF PORTBCALL LATCH_2RETURN;處理3#搶答子程序S3:BCF FLAG, 0MOVLW 0X04MOVWF PORTBCALL LATCH_1MOVLW 0X53MOVWF PORTBCALL LATCH_2RETURN;處理4#搶答子程序S4:BCF FLAG, 0MOVLW 0X08MOVWF PORTB CALL LATCH_1 MOVLW 0X54MOVWF PORTB CALL LATCH_2 RETURN;處理5#搶答子程序S5:BCF FLAG, 0 MOVLW 0X10 MOVWF PORTB CALL LATCH_1 M

56、OVLW0X55 MOVWF PORTB CALL LATCH_2 RETURN;處理6#搶答子程序S6:BCF FLAG, 0 MOVLW 0X20 MOVWF PORTB CALL LATCH_1 MOVLW0X56 MOVWF PORTB CALL LATCH_2 RETURN;處理7#搶答子程序S7:BCF FLAG, 0 MOVLW 0X40 MOVWF PORTB CALL LATCH_1 MOVLW0X57 MOVWF PORTBCALL LATCH_2RETURN;處理8#搶答子程序S8:BCF FLAG, 0MOVLW 0X80MOVWF PORTBCALL LATCH_1M

57、OVLW 0X58MOVWF PORTBCALL LATCH_2RETURNJIECHU:BSF FLAG, 0; 搶答標志置位 (FLAG=1) , 解除后, 允許繼續搶 答MOVLW0X00;以 W 作中轉MOVWF PORTB;將00H(控制所有指示燈不亮)送B口CALL LATCH_1;調用LATCH_1,進一步將OOH鎖存至鎖存器1MOVLW 0X60;以W作中轉MOVWF PORTB;將60H(控制啟動指示燈X10亮、解除指示燈X9亮、數碼管顯示“0”、控制蜂鳴器停止發聲)送B口CALL LATCH_2;調用LATCH_2,進一步將60H鎖存至鎖存器2RETURN;解除子程序返回;

58、鎖存1子程序LATCH_1:BSF PORTA, 6;RA6產生上升沿,將B口數據鎖存至鎖存器1BCF PORTA, 6;RA6恢復為低電平RETURN;鎖存1子程序返回 ;鎖存2子程序LATCH_2:BCF PORTA, 6;RA6產生下降沿,將B口數據鎖存至鎖存器1BSF PORTA, 6;RA6恢復為高電平RETURN;鎖存2子程序返回END;結束5.4.3基于MPLAB的程序編譯和調試1.創建工程1)選擇器件 使用工程向導創建工程,選擇工程向導。在Welcome(歡迎)對話框中,單擊 “下一步” 繼續。下一個對話框(Step One(第一步)讓您選擇器件(已選 定)。確定所選擇的是PI

59、C16F87。否則,請在下拉列表中選擇PIC16F87。單 擊“下一步”。如圖543(a)所示。圖5.4.3(a)選擇器件2)選擇語言工具 工程向導的第二步是設置該工程所要使用的語言工具。在工具包內容中選“MPASM”,如圖5.4.3(b)所示。圖5.3.4(b)選擇語言工具 完成后,點擊“下一步”。3)為工程命名向導的第三步讓您為工程命名并將它存入文件夾。如圖5.4.3(c)所示。圖5.4.3(c)為工程命名完成后點擊“下一步”。4)添加文件工程向導的第四步允許為工程選擇文件。如圖5.4.3(d)所示。圖5.4.3(d)添加文件 完成后點擊“下一步”。然后點擊“完成”。2.添加源文件 右擊“

60、源文件”,選擇“添加文件”。如圖5.4.3(e)所示。圖5.4.3(e)添加源文件3.編譯源程序選擇“工程/編譯”,這樣就會在Output(輸出)窗口顯示編譯結果。如圖4.5.3 (f)所示。圖4.5.3(f)編譯結果輸出 如果沒有錯誤,那么將成功生成“.HEX”文件。6 仿真與調試6.1 仿真結果分析及說明雙擊PIC16f87,在Program File中選擇已編譯通過,成功生成的.HEX文 件。單擊OK按鈕。如圖6.1 (a)所示。圖6.1 (a)加載.HEX文件單擊play按鈕進入仿真環境。如圖6.1(b)所示。圖6.1(b)進入仿真環境6.1.1仿真分析 仿真過程如下: 電路能完成多路搶答輸入

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論