基于STM32的四路搶答器課程設計說明書_第1頁
基于STM32的四路搶答器課程設計說明書_第2頁
基于STM32的四路搶答器課程設計說明書_第3頁
基于STM32的四路搶答器課程設計說明書_第4頁
基于STM32的四路搶答器課程設計說明書_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程設計說明書第頁課程設計說明書題目:基于STM32的四路搶答器學院:年級專業(yè):學號:學生姓名:指導教師:摘要在各種智力競賽場合,搶答器是必不可少的最公正的用具。在我們各種競賽中我們也經(jīng)常能看到有搶答的環(huán)節(jié),某些舉辦方采用讓選手通過舉答題板的方法判斷選手的答題權,這在某種程度上會因為主持人的主觀誤斷造成比賽的不公平性,而搶答器的應用就能避免這種弊端。今天隨著科技的不斷進步搶答器的制作也更加追求精益求精,人們擺脫了耗費很多元件僅來實現(xiàn)用指示燈和一些電路來實現(xiàn)簡單的搶答功能,使第一個搶答的參賽者的編號能通過指示燈顯示出來,避免不合理的現(xiàn)象發(fā)生。但這種電路不易于擴展,而且當有更高要求時就無法實現(xiàn),例如參賽人數(shù)的增加。隨著數(shù)字電路的發(fā)展,數(shù)字搶答器誕生了,它易于擴展,可靠性好,集成度高,而且費用低,功能更加多樣,是一種高效能的產(chǎn)品。而如今在市場上銷售的搶答器大多采用可編程邏輯元器件,或利用單片機技術進行設計。本文實現(xiàn)了一個基于嵌入式STM32單片機的4路搶答器系統(tǒng)設計,本系統(tǒng)設計主要 分為硬件設 備和軟件控制兩大部分。外部硬件使用STM32單片機作為控制中心,用4 個按鍵作為搶答輸入,搶答開始后,搶答成功者的LED燈標識為紅色閃爍,并且顯示各 搶答輸入的時間。關鍵詞:智能搶答器,STM32,按鍵輸入,數(shù)碼管顯示目錄TOC\o"1-3"\h\u23655摘要 226844目錄 33406第1章緒論 5247001.1課題研究的相關背景 5106991.2選題的目的和意義 521331.3課題研究的內(nèi)容 5148881.4國內(nèi)外研究現(xiàn)狀 644841.5搶答器目前存在的主要問題 61376第2章?lián)尨鹌鞯南到y(tǒng)概述 7150212.1系統(tǒng)的主要功能 7112872.2搶答器的工作流程 761722.3STM32的功能及簡介 7303892.4搶答器的優(yōu)點及組成 1022042.5本章小結 1118623第3章系統(tǒng)的硬件設計與開發(fā) 11271363.1系統(tǒng)硬件總體設計 11224453.2STM32最小系統(tǒng) 13304723.4時鐘頻率電路的設計 1424973.5復位電路的設計 15167423.6數(shù)碼管顯示 16175303.7鍵盤電路的設計 1743303.8LED電路 18285483.9本章小結 1931013第4章系統(tǒng)的軟件設計與開發(fā) 19226264.4主要程序分析 21166394.5本章小結 3017437第5章總結與展望 31215195.1總結 31101785.2展望 3229633致謝 331395參考文獻 34第1章緒論課題研究的相關背景搶答器是一種應用非常廣泛的設備,在各種競賽、搶答場合中,它能迅速、客觀地分辨出最先獲得發(fā)言權的選手。早期的搶答器只由幾個三極管、可控硅、發(fā)光管等組成,能通過發(fā)光管的指示辯認出選手號碼?,F(xiàn)在大多數(shù)搶答器均使用單片機和數(shù)字集成電路,并增加了許多新功能,如選手號碼顯示、搶按前或搶按后的計時、選手得分顯示等功能。本系統(tǒng)設計主要分為硬件設備和軟件控制兩大部分。外部硬件使用STM32單片機作為控制中心,用4個按鍵作為搶答輸入,搶答開始后,搶答成功者的 LED燈標識為紅色閃爍,并且顯示各搶答輸入的時間。選題的目的和意義通過這次設計,掌握STM32單片機的原理,了解簡單多功能搶答器組成原理,初步掌握多功能搶答器的調(diào)整及測試方法,提高動手能力和排除故障的能力。同時通過本課題設計與仿真進行調(diào)試,提高自己的動手能力,鞏固已學的理論知識,建立單片機理論和實踐的結合,了解多功能搶答器各單元電路之間的關系及相互影響,從而能正確設計、應用各個單元電路。課題研究的內(nèi)容本系統(tǒng)采用模塊化設計智能搶答器,在搶答比賽中廣泛應用,各組分別有一個搶答按鈕。搶答開始后,搶答成功者的 LED燈標識為紅色閃爍,并且顯示各搶答輸入的時間。在通過研究并在設計驗證后發(fā)現(xiàn),采用單片機技術設計的搶答器與目前常用的搶答器相比,首先,電路連接簡單,因為大多數(shù)功能單元都通過程序設計在單片機內(nèi)部,第二,工作性能可靠,抗干擾能力優(yōu)于目前搶答器。所以本研究是一個實用的工程設計,具有創(chuàng)新性。國內(nèi)外研究現(xiàn)狀搶答器作為一種電子產(chǎn)品,早已廣泛應用于各種智力和知識競賽場合,但目前所使用的搶答器有的電路較復雜不便于制作,可靠性低,實現(xiàn)起來很困難;有的則用一些專用的集成塊,而專用集成塊的購買又很困難。為適應高校等多代表隊單位活動的需要而設計一個多功能搶答器,這種搶答器具有電路簡單,元件普通,易于購買等優(yōu)點,很好地解決了制作者制作困難和難于購買的問題。在國內(nèi)外已經(jīng)開始了普遍的應用。搶答器目前存在的主要問題隨著改革開放事業(yè)的不斷深入,促使人們學科學、學技術、學知識的手段多種多樣,搶答器作為一種工具,已廣泛應用于各種智力和知識競賽場合。但搶答器的使用頻率校低,且有的要么制作復雜,要么可靠性低,減少興致。作為一個單位若專購一臺搶答器雖然在經(jīng)濟上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就會影響活動的開展。而且目前多數(shù)搶答器存在3個不足之處:第一,現(xiàn)場線路連接復雜。因為每個選手位于搶答現(xiàn)場的不同位置,每個選手與控制臺之間要有長長的連接線。選手越多,連接線就越多、越亂,這些連接線不僅影響了現(xiàn)場的美觀,而且降低了搶答器的可靠性,增加了安裝的難度,甚至影響了現(xiàn)場人員的走動。第二,電路復雜。因為單片機只完成號碼處理、計時、數(shù)據(jù)運算等功能,其它功能如選手號碼的識別、譯碼、計分顯示等仍只能通過數(shù)字集成電路完成。采用單片機掃描技術識別選手搶按號碼時,電路的延遲時間較大。第三,選手搶按成功,但出現(xiàn)沒有搶答被記錄的問題。搶答器的系統(tǒng)概述2.1系統(tǒng)的主要功能本系統(tǒng)是借用單片機采用模塊化設計的4路搶答器,包括4路搶答按紐、計時顯示、搶答成功標識,各種相關顯示調(diào)控功能等本系統(tǒng)采用模塊化設計的四路搶答器,在搶答比賽中廣泛應用,各組分別有一個搶答按鈕。一共有4個按鍵輸入,分別對應4路選手的搶答按鍵。單片機是整個搶答器的核心,內(nèi)部電路設計用匯編語言編寫。它完成了時間參數(shù)的設定,搶按號碼的譯碼,保存;顯示;輸出,搶按及答題倒計時功能等。本設計中,有四個共陽的數(shù)碼管,四個數(shù)碼管。主持人按下復位鍵(RESET)后開始搶答。搶答成功者的LED燈標識為紅色閃爍,并且顯示各搶答輸入的時間。2.2搶答器的工作流程搶答器的基本工作原理:在搶答后,按鍵產(chǎn)生的下降沿,被中斷的LINE線捕捉,從而實現(xiàn)進入中斷服務函數(shù),進行LED閃爍,以及實現(xiàn)相應數(shù)碼管的計時顯示工作,進而標識識別出搶答成功者的標號,進行相應的回答。2.3STM32的功能及簡介現(xiàn)階段,市場上低端產(chǎn)品處理器以8位單片機為主,例如廣為人知的C51系列,而高端則是以32位單片機為主,例如基于ARMCortex-M3內(nèi)核的STM32系列,是專門為要求高性能、低功耗、低成本的嵌入式系統(tǒng)設計的芯片。本系統(tǒng)是使用STM32單片機,采用模塊化設計的4路搶答器,包括4路搶答按紐、計時顯示、各種相關顯示調(diào)控功能等。采用STM32F103VET6的100管腳的單片機,連接四路按鍵,四路LED,以及要顯示四個獨立的數(shù)碼管,故需要比較多的I/O口.使用外部中斷包含16個的邊沿檢測器,用于產(chǎn)生中斷,每個中斷線都可以獨立地配置它的觸發(fā)事件(上升沿或下降沿或雙邊沿),并能夠單獨地被屏蔽;有一個掛起寄存器維持所有中斷請求的狀態(tài)。EXTI可以檢測到脈沖寬度小于內(nèi)部APB2的時鐘周期。多達112個通用I/O口連接到16個外部中斷線,滿足系統(tǒng)功能的需要。從性能、價格、實際需要,STM32F103VET6較之8位8051單片機等,更為符合設計要求。圖2.4STM32單片機的內(nèi)部結構圖ARMCortex-M3處理器是新一代的32位處理器,是一個高性能、低成本的開發(fā)平臺,適用于微控制器、工業(yè)控制系統(tǒng)以及無線網(wǎng)絡傳感器等應用場合。其特點為:性能豐富成本低。專門針對微控制處理器應用特點而開發(fā)的32位MCU,具有高性能、低成本、易應用等特點。低功耗。把睡眠模式與狀態(tài)保留功能結合在一起,確保Cortex-M3處理器既可提供低能耗,又不影響很高的運行性能。可配置性強。Cortex-M3處理器的NVIC功能提高了設計的可配置性,提供了多達240個具有單獨優(yōu)先級、動態(tài)重設優(yōu)先級功能和集成系統(tǒng)時鐘的系統(tǒng)中斷。豐富的鏈接。功能和性能兼顧的良好組合,使基于Cortex-M3的設備可以有效處理多個I/O通道和協(xié)議標準。STM32系列處理器先進的內(nèi)部結構:1.哈佛結構。使其在處理器整數(shù)性能測試上有著出色的表現(xiàn),可以達1.25DMIPS/MHz,而功耗僅為0.19mW/MHz。2.Thumb-2指令集以16位的代碼密度帶來了32位的性能。3.內(nèi)置了快速的中斷控制器,提供了優(yōu)越的實時特性,中斷的延遲時間降到只需6個CPU周期,從低功率模式喚醒的時間也只需6個CPU周期。4.單周期懲罰指令和硬件除法指令。STM32在嵌入式系統(tǒng)應用領域有著無可比擬的優(yōu)勢,本系統(tǒng)應用的STM32F103ZET6的增強型系列單片機的功能也十分強大。詳細介紹如下:1.內(nèi)核:(位的Cortex?-M3

CPU)最高工作頻率,在存儲器的0等待周期訪問時可達1.25DMips/MHz;單周期乘法和硬件除法。2.存儲器:從至512K字節(jié)的閃存程序存儲器;高達64K字節(jié)的SRAM;帶4個片選的靜態(tài)存儲器控制器、支持CF卡、SRAM、PSRAM、NOR和NAND存儲器;并行LCD接口,兼容8080/6800模式。3.時鐘、復位和電源管理:2.0~3.6V供電和I/O引腳;上電/斷電復位(POR/PDR)、可編程點壓監(jiān)測器(PVD);4~晶體振蕩器;內(nèi)嵌經(jīng)出廠調(diào)校的的振蕩器;內(nèi)嵌帶校準的的振蕩器;帶校準功能的32kHzRTC振蕩器。4.低功耗:睡眠、停機和待機模式;VBAT為和后備寄存器供電。5.3個位模數(shù)轉換器,1μs轉換時間(多達個輸入通道轉換范圍:0至3.6V;三倍采樣和保持功能;溫度傳感器6.2通道12位D/A轉換器7.DMA(12通道DMA控制器):支持的外設:定時器、ADC、DAC、SDIO、I^2S、SPI、I^2C和USART。8.調(diào)試模式:串行單線調(diào)試(SWD) 和JTAG接口;Cortex-M3內(nèi)嵌跟蹤模塊(ETM)。9.多達112個快速I/O端口:51/80/112個多功能雙向I/O口,所有I/O口可以映像到16個外部中斷;幾乎所有端口均可容忍5V信號。10.多達11個定時器:多達4個16位定時器,內(nèi)個定時器有多達4個用于輸入捕獲/輸出比較/PWM或脈沖計數(shù)的通道和增量編碼器輸入;2個16位位帶死區(qū)控制和急剎車,用于電機控制的PWM高級控制定時器;2個看門狗定時器(獨立和窗口型的);系統(tǒng)時間定時器;24位自減型計數(shù)器;2個16位基本定時器用于驅動DAC。11.多達13個通信接口:多達2個I^2C接口(支持SM-Bus/PM-Bus);多達5個USART接口(支持ISO7816,LIN,Ir-DA接口和調(diào)制解調(diào)控制);多達3個SPI接口(18M位/秒),2個可復用為I^2S接口;CAN接口(2.0B主動);USB2.0全速接口;SDIO接口。12.CRC計算單元,96位的芯片唯一代碼13.ECOPACK?封裝2.4搶答器的優(yōu)點及組成在知識比賽中,特別是做搶答題目的時候,在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設計一個系統(tǒng)來完成這個任務。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機系統(tǒng)來設計搶答器,使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也可分辨出哪組優(yōu)先答題。本文主要介紹了單片機搶答器設計及工作原理,以及它的實際用途。系統(tǒng)工作原理本系統(tǒng)采用STM32單片機作為核心??刂葡到y(tǒng)的四個模塊分別為:存儲模塊、顯示模塊、計時模塊、搶答開關模塊。該搶答器系統(tǒng)通過四個個按鍵輸入搶答信號;利用存儲程序來完成軟件的設計;利用四個4位七段共陽數(shù)碼管來完成顯示功能。工作時,用按鍵通過開關電路輸入各路的搶答信號,經(jīng)單片機的處理,輸出控制信號,控制四個七段數(shù)碼管和喇叭工作。在數(shù)碼管上顯示哪一組先答題,從而實現(xiàn)整個搶答過程。2.5本章小結本章主要講述了搶答器的工作原理和本設計系統(tǒng)的工作流程。在說明工作原理的過程中,突出了電路的組成單元以及這些單元如何實現(xiàn)搶答功能;在說明系統(tǒng)的流程時,結合本設計的內(nèi)容,指出了參數(shù)設置的方法和意義。搶答正常流程的實現(xiàn),同時也說明了搶答器的優(yōu)點和STM32的功能及簡介。第3章系統(tǒng)的硬件設計與開發(fā)3.1系統(tǒng)硬件總體設計本章主要內(nèi)容是系統(tǒng)的硬件電路的實現(xiàn),即現(xiàn)場檢測設備的硬件電路設計,四路按鍵作為輸入信號傳給STM32單片機,STM32作為主控制芯片,四盞LED作為輸出,搶答成功者的LED燈紅色閃爍,四個獨立數(shù)碼管,分別顯示各自的搶答時間,電源模塊采用的12V的開關電源,再通過穩(wěn)壓芯片轉換為所需5V和3.3V電源輸出。還需要USB轉串口電路,JTAG調(diào)試電路,晶振、BOOT等外圍電路。STM32單片機STM32單片機4位七段數(shù)碼管顯示LED顯示=4路搶答按鍵輸入復位電源晶振JTAG3.2STM32最小系統(tǒng)采用STM32F103VET6最小系統(tǒng),100引腳,512閃存,32位CPU,最高72Mhz工作頻率,完全可滿足本系統(tǒng)設計的需要。3.3JTAG電路JTAG(JointTestActionGroup,即聯(lián)合測試行動小組)是一種國際標準的測試協(xié)議,主要應用于芯片的內(nèi)部測試,現(xiàn)在主流的DSP、FPGA芯片等都支持JTAG協(xié)議。標準的接口是4線制的,包括:TMS、TCK、TDI、TDO,分別代表模式選擇、時鐘設置、數(shù)據(jù)輸入和數(shù)據(jù)輸出。JTAG的基本原理是在器件內(nèi)部定義一個TAP(TestAccessPort,即測試訪問口)然后通過專門的調(diào)試工具對芯片內(nèi)部的節(jié)點進行測試。圖3.3STM32的JTAG調(diào)試接口電路3.4時鐘頻率電路的設計單片機必須在時鐘的驅動下才能工作。在單片機內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的工作速度。時鐘電路如圖5所示。圖3.4外部振蕩源電路一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容C1,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調(diào)。C1,C2的典型值為30PF。單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù),常用fosc表示。圖中時鐘頻率為12MHz,即fosc=12MHz,則機器周期為1μs.3.5復位電路的設計單片機的第9腳RST為硬件復位端,只要將該端持續(xù)4個機器周期的高電平即可實現(xiàn)復位,復位后單片機的各狀態(tài)都恢復到初始化狀態(tài),其電路圖如圖6所示:圖3.5復位電路圖6中由復位鍵以及電解電容C3、電阻R2構成按鍵及上電復位電路。由于單片機是高電平復位,所以當復位鍵按下的時候,單片機的9腳RESET管腳將處于高電平,此時單片機就處于復位狀態(tài)。當上電后,由于電容的緩慢充電,單片機的9腳電壓會逐步由高向低轉化,經(jīng)過一段時間后,單片機的9腳處于穩(wěn)定的低電平狀態(tài),此時單片機上電就復位完畢,系統(tǒng)程序從0000H開始執(zhí)行。值得注意的是,在設計當中使用到了硬件復位和軟件復位這兩種功能,由上面的硬件復位后的各狀態(tài)可知寄存器及存儲器的值都恢復到了初始值,而前面的功能介紹中提到了倒計時時間的記憶功能,該功能的實現(xiàn)的前提條件就是不能對單片機進行硬件復位,所以設定了軟件復位功能。軟件復位實際上就是當程序執(zhí)行完畢之后,將程序指針通過一條跳轉指令讓它跳轉到程序執(zhí)行的起始地址。3.6數(shù)碼管顯示顯示功能與硬件關系極大,當硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。在這里我們使用的是四個獨立七段數(shù)碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動態(tài)顯示。其中靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多;動態(tài)顯示的特點是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復雜,但是相對靜態(tài)顯示而言占用端口資源少。在本設計中根據(jù)實際情況采用的是動態(tài)顯示方法。圖3.6共陰極數(shù)碼管圖2.6中數(shù)碼管采用的是4個七段共陽數(shù)碼管,其中選手A數(shù)碼管連接PB0-PB6口,選手B連接PB7-PB13,選手C連接PC7-PC13,選手D連接PC0-PC6口。3.7鍵盤電路的設計鍵盤是人與單片機打交道的主要設備。關于鍵盤硬件電路的設計方法也可以在文獻和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也會提供相應的鍵盤程序,在單片機應用中鍵盤用得最多的形式是獨立鍵盤和矩陣鍵盤。它們都有各自的特點,其中獨立鍵盤的硬件電路簡單,而且在程序設計上也不復雜,一般都用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復雜很多,而且在程序算法上要比它煩瑣,而且在觸點抖動按鍵同與斷過程中可能會出現(xiàn)判斷錯誤。應該采用軟件去抖方法,即延時重復掃描法,延時法的原理為:在檢測到有按鍵被按下時,執(zhí)行一個10ms左右(具體時間應該視所使用的按鍵進行調(diào)整)的延時程序,再確認該鍵電平是否仍保持閉合狀態(tài)的電平,若仍保持閉合狀態(tài)電平,則確認該鍵處于閉合狀態(tài);同理,在檢測到該鍵釋放后,也應該采用相同的步驟進行確認,從而消除去抖的影響。在本文設計中采用了獨立鍵盤的方式,本設計中有4個搶答按鍵輸入,如圖3.7所示。圖3.7搶答按鍵在圖3.7中4個搶答按鍵分別接入單片機的PA0-PA3端口,單片機通過讀寫PA0-PA7的值來判斷當前輸入的是4個搶答按鍵中的哪一個,從而觸發(fā)斷,完成搶答成功者LED顯示及搶答時間顯示。3.8LED電路各類LED發(fā)展非常迅速,已經(jīng)成為各種照明標識常用的顯示元件,本系統(tǒng)采用IO口直接連接的LED驅動電路,如下圖3.8。在圖308中4盞LED燈分別接入單片機的PA4-PA7端口,單片機通過寫0寫1,進而控制LED的亮滅與否。3.9本章小結本章詳細講述了以STM32為核心元件的搶答器的硬件電路具體設計過程,分析了具體電路。在設計過程中,實現(xiàn)搶答功能的是通過編寫程序的方法集成在STM32內(nèi)部。接著將程序下載到硬件電路中,配合周邊的時鐘電路,復位電路等,制作出符合設計要求的搶答器。系統(tǒng)的軟件設計與開發(fā)4.1系統(tǒng)總體設計本系統(tǒng)的軟件設計采用模塊化編程,由LED顯示,按鍵輸入,數(shù)碼管,主函數(shù)構成,使用中斷,在按鍵輸入后,下降沿檢測,進而進入中斷函數(shù),完成數(shù)碼管,LED的顯示。程序編譯環(huán)境為KEILu-Vision5,主控制器采用ARMcortex-M3內(nèi)核的STM32,調(diào)試工具為J-Link的JTAG仿真器,便于在線調(diào)試。4.2STM32開發(fā)調(diào)試環(huán)境介紹基于ARMcortex-M3內(nèi)核的STM32微處理器得到越來越廣泛的應用,所以開發(fā)工具也分為好多種,當下最流行的STM32的開發(fā)工具為KEILMDK和IAREWARM,兩種工具各有千秋,作下簡要介紹。KEILMDK作為一個套件,包含了全套的軟件模塊,其中就包括KEIL公司的IDE環(huán)境“KEILu-Vision”,KEILu-Vision5是它的第五個版本。而本文所使用的RVMDK全稱是REALVIEWMDK,是KEIL公司專門用于嵌入式開發(fā)所使用的軟件,REALVIEWMDK集成了包括u-Vision5的開發(fā)環(huán)境與REALVIEW編譯器.另外一種開發(fā)工具IAREWARM,全稱IAREmbeddedWorkbenchforARM,是ISRSystem公司為ARM芯片開發(fā)的一個集成環(huán)境,IAREWARM中包含了一個全軟件的模擬程序,使得用戶甚至不需要任何硬件的支持就可以模擬各種ARM內(nèi)核、中斷甚至外部設備,使用方便且便于操作,尤其適用于內(nèi)核的移植。調(diào)試工具J-Link是SEGGER公司為支持仿真內(nèi)核芯片推出的一款JTAG仿真器,適用于KEIL、IAREWARM、REALVIEW等多種集成開發(fā)環(huán)境,特別適合開發(fā)基于ARM的嵌入式系統(tǒng)。4.3程序流程圖在本設計中包括了以下主要的程序:主程序,LED,數(shù)碼管,按鍵,中斷服務函數(shù),主流程圖如4.3所示:圖4.3程序設計流程圖4.4主要程序分析4.4.1主程序分析#include"main.h"intmain(void){LED_GPIO_Config(); KEY_Config();DIGITRON_GPIO_Config(); TimeCount(); NVIC_Config(); while(1) { }}程序分析:進入主函數(shù)后,進行LED配置,按鍵配置,數(shù)碼管配置,顯示函數(shù),以及中斷配置,隨后進入while死循環(huán),等待中斷響應。4.4.2LED函數(shù)分析 #include"led.h"voidLED_GPIO_Config(void) { /*定義一個GPIO_InitTypeDef類型的結構體*/GPIO_InitTypeDefGPIO_InitStructure; /*選擇要控制的GPIOA引腳*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5| GPIO_Pin_6;/*設置引腳模式為通用推挽輸出*/GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; /*設置引腳速率為50MHz*/GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; /*調(diào)用庫函數(shù),初始化GPIOA*/GPIO_Init(GPIOA,&GPIO_InitStructure);/*關閉所有l(wèi)ed燈*/ GPIO_SetBits(GPIOA,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5| GPIO_Pin_6); }程序分析:進入LED_GPIO_Config后,完成LED相關引腳配置。4.4.3按鍵配置函數(shù)#include"key.h"voidKEY_Config(void){ //GPIO配置 EXTI_InitTypeDefEXTI_InitStructure; GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA| RCC_APB2Periph_AFIO,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2| GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU; GPIO_Init(GPIOA,&GPIO_InitStructure); //EXTI配置 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0|\ GPIO_PinSource1|GPIO_PinSource2|GPIO_PinSource3);//中斷源 EXTI_InitStructure.EXTI_Line=EXTI_Line0|EXTI_Line1|EXTI_Line2|EXTI_Line3;//中斷線路 EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt; //外部觸發(fā) EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//下降沿 EXTI_InitStructure.EXTI_LineCmd=ENABLE; EXTI_Init(&EXTI_InitStructure); }程序分析:完成KEY相關引腳配置,并設置相應的中斷線,中斷模式,觸發(fā)方式,使能EXTI的配置。4.4.4NVIC配置#include"nvic.h"voidNVIC_Config(void){ //éù?÷NVIC?á11ì? NVIC_InitTypeDefNVIC_InitStructure; //設置中斷0 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1; NVIC_InitStructure.NVIC_IRQChannelSubPriority=3; //設置中斷1 NVIC_InitStructure.NVIC_IRQChannel=EXTI1_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1; NVIC_InitStructure.NVIC_IRQChannelSubPriority=3; //設置中斷2 NVIC_InitStructure.NVIC_IRQChannel=EXTI2_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1; NVIC_InitStructure.NVIC_IRQChannelSubPriority=3; //設置中斷3 NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1; NVIC_InitStructure.NVIC_IRQChannelSubPriority=3; NVIC_Init(&NVIC_InitStructure);}程序分析:在NVIC中,分別完成相應的中斷1,2,3,4中斷分組,搶占優(yōu)先級,響應優(yōu)先級的配置,由于是均等條件的搶答,故搶占及響應優(yōu)先級均為同一等級。4.4.5DIGITRON函數(shù)#include"digitron.h"u8table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};//共陽極 0-9intFlagA=1,FlagB=1,FlagC=1,FlagD=1;u16TIME=500;voiddelayms(u16time);//延時1msvoidTimeCount(void); //計時voidDIGITRON_GPIO_Config(void) { /*定義一個GPIO_InitTypeDef類型的結構體*/ GPIO_InitTypeDefGPIO_InitStructure;/*開啟GPIOA的外設時鐘*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE); /*選擇要控制的GPIOB引腳*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;/*設置引腳模式為通用推挽輸出*/ GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; /*設置引腳速率為50MHz*/ GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/*調(diào)用庫函數(shù),初始化GPIOA*/ GPIO_Init(GPIOB,&GPIO_InitStructure);}voidTimeCount(){ u8i=0,j=0,m=0,n=0; //選手A for(;i<10;i++) { GPIO_ResetBits(GPIOB,GPIO_Pin_All); switch(i) { case0:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\ GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4| GPIO_Pin_5);delayms(TIME); break; // 0 case1:GPIO_SetBits(GPIOB,GPIO_Pin_1|GPIO_Pin_2);delayms(TIME); break; // 1 case2:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\ GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_6);delayms(TIME); break; // 2 case3:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\ GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_6);delayms(TIME); break; // 3 case4:GPIO_SetBits(GPIOB,GPIO_Pin_1|GPIO_Pin_2|\ GPIO_Pin_5|GPIO_Pin_6);delayms(TIME); break; // 4 case5:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_2|\ GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_6);delayms(TIME); break; // 5

case6:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_2|\ GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5| GPIO_Pin_6);delayms(TIME); break; // 6

case7:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\ GPIO_Pin_2);delayms(TIME); break; // 7

case8:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\ GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5\ |GPIO_Pin_6);delayms(TIME); break; // 8

case9:GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|\ GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_5| GPIO_Pin_6);delayms(TIME); break; // 9

} if(FlagA==1) { break; } }voiddelayms(u16time)//延時1ms{ u16i=0; while(time--) { i=12000; while(i--); } }程序分析:在數(shù)碼管函數(shù)中,采用switch-case語句進行數(shù)碼管從0-9的顯示,每個數(shù)字顯示500ms,在響應中斷后,跳出for循環(huán),從而實現(xiàn)搶答時間的顯示。4.4.6中斷服務函數(shù)voidEXTI0_IRQHandler(void){if(EXTI_GetITStatus(EXTI_Line0)!=RESET){ for(;i<=repeat;i++) { LED1(ON); Delay(100); LED1(OFF); Delay(100); } FlagA=1; EXTI_ClearITPendingBit(EXTI_Line0);}}程序分析;當按鍵按下后,產(chǎn)生下降沿,從而進入中斷函數(shù),LED閃爍,并將FlagA置1,實現(xiàn)數(shù)碼管函數(shù)的跳出for循環(huán)。4.5本章小結本章是搶答器的軟件設計,采用庫函數(shù)編程的方法,實現(xiàn)搶答功能,將程序下載到硬件電路中,實現(xiàn)搶答功能。第5章總結與展望5.1總結本文研究與設計的八路多功能搶答器采用了通用的電子元器件,利用80C51單片機及外圍接口實現(xiàn)搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和計數(shù)的原理,將軟、硬件有機地結合起來。通過查資料和搜集有關的文獻,理論聯(lián)系實踐,培養(yǎng)了自學能力和動手能力。并且由原先的被動的接受知識轉換為主動的尋求知識,這可以說是學習方法上的一個很大的突破。在設計過程中由于時間倉促和能力有限使很多地方難免存在不足之處,硬件設計和軟件設計中有些功能還尚未開發(fā)出來。但在以后的工作中,我會嚴格要求自己,追求完美。整個設計通過了軟件和硬件上的調(diào)試,我想這對于自己以后的學習和工作都會有很大的幫助的。在這次設計中遇到了很多實際性的問題,在實際設計中才發(fā)現(xiàn),書本上理論性的東西與在實際運用中的還是有一定的出入的,所以有些問題不但要深入地理解,而且要不斷地更正以前的錯誤思維。對于單片機設計,其硬件電路是比較簡單的,主要是解決程序設計中的問題。而程序設計是一個很靈活的東西,它反映了你解決問題的邏輯思維和創(chuàng)新能力。它才是一個設計的靈魂所在。因此在整個設計過程中大部分時間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個子程序才是關鍵的問題所在,這需要對單片機的結構很熟悉。因此可以說單片機的設計是軟件和硬件的結合,二者是密不可分的。但是,通過這次設計我也發(fā)現(xiàn)自己的很多不足之處。在設計過程中我發(fā)現(xiàn)自己考慮問題很不全面,自己的專業(yè)知識掌握的很不牢固,所掌握的計算機應用軟件還不夠多,我希望自己的這些不足之處能在今后的工作和學習中得到改善。而且,通過這次設計,我懂得了學習的重要性,學會了堅持和努力,這將為以后的學習做出了最好的榜樣!5.2展望回頭再看看該設計,還可以將設計的擴展功能增強:1、可以設計聲控裝置,在主持人說開始時,系統(tǒng)自動完成清零并開始計時的功能。2、增加記分模塊,可以設定初始積分,并記錄每次搶答完成后的積分。3、將搶答按鍵用無線實現(xiàn),如紅外線,使搶答者可以遠距離進行搶答,并簡化按鍵模塊的線路布置。如果提供相應的器材及時間上的寬限,一定可以完成上述擴展功能,進一步完善作品。致謝在此要感謝我的指導老師對我悉心的指導,感謝給我的幫助。在設計過程中,我通過查閱大量有關資料,與導師交流經(jīng)驗和自學,并向請教,使自己學到了不少知識,也經(jīng)歷了不少艱辛,但收獲同樣巨大。在整個設計中我懂得了許多東西,也培養(yǎng)了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創(chuàng)造過程中探索的艱難和成功時的喜悅。雖然這個設計做的不完美,但是在設計過程中所學到的東西是這次課程設計的最大收獲和財富,使我終身受益。參考文獻[1]張淑清,張立國,金海龍,胡永濤.嵌入式單片機STM32設計及應用技術.國防工業(yè)出版社,2015:5-8。[2]李增生.對《搶答器》的改進[J].電子制作,2008,(12).[3]高偉.單片機原理及應用[M].北京:國防工業(yè)出版社,2008年.[4]蔡朝陽.單片機控制實習與專題制作[M].北京:北京航空航天大學出版社,2006年.[5]胡學海.單片機原理及應用系統(tǒng)設計[M].北京:北京電子工業(yè)出版社,2005年.基于C8051F單片機直流電動機反饋控制系統(tǒng)的設計與研究基于單片機的嵌入式Web服務器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設計及其應用研究基于單片機的遠程抄表系統(tǒng)的設計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構件開發(fā)的技術研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設計和應用基于單片機的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉變壓器-數(shù)字轉換器的研究基于單片機的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設計Pico專用單片機核的可測性設計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)基于單片機的電液伺服控制系統(tǒng)用于單片機系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機和CPLD的粗光柵位移測量系統(tǒng)研究單片機控制的后備式方波UPS提升高職學生單片機應用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設計基于單片機的單晶金剛石刀具刃磨設備的數(shù)控改造基于單片機的溫度智能控制系統(tǒng)的設計與實現(xiàn)基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協(xié)議轉換器基于單片機和DSP的變壓器油色譜在線監(jiān)測技術研究基于單片機的膛壁溫度報警系統(tǒng)設計基于AVR單片機的低壓無功補償控制器的設計基于單片機船舶電力推進電機監(jiān)測系統(tǒng)基于單片機網(wǎng)絡的振動信號的采集系統(tǒng)基于單片機的大容量數(shù)據(jù)存儲技術的應用研究基于單片機的疊圖機研究與教學方法實踐基于單片機嵌入式Web服務器技術的研究及實現(xiàn)基于AT89S52單片機的通用數(shù)據(jù)采集系統(tǒng)基于單片機的多道脈沖幅度分析儀研究機器人旋轉電弧傳感角焊縫跟蹤單片機控制系統(tǒng)基于單片機的控制系統(tǒng)在PLC虛擬教學實驗中的應用研究基于單片機系統(tǒng)的網(wǎng)絡通信研究與應用基于PIC16F877單片機的莫爾斯碼自動譯碼系統(tǒng)設計與研究基于單片機的模糊控制器在工業(yè)電阻爐上的應用研究基于雙單片機沖床數(shù)控系統(tǒng)的研究與開發(fā)

溫馨提示

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

評論

0/150

提交評論