freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的電子智能搶答器_畢業(yè)設(shè)計論文-資料下載頁

2025-08-16 14:28本頁面

【導(dǎo)讀】成了一定的市場。但目前市場上銷售的搶答器一般價格較高,而且功能較為單一,顯示界面不夠友。好,不能為使用者帶來較好的體驗。本設(shè)計是采用單片機(jī)設(shè)計的一款八路多功能的電子搶答器。鈴提示答題時間等功能。它具有結(jié)構(gòu)簡單,可靠性好,界面友好的特點。片機(jī)作為主控制芯片,加外圍電路實現(xiàn)搶答和顯示功能。利用單片機(jī)的定時計數(shù)器,使系統(tǒng)能正確。用LCD12864液晶作為顯示模塊,顯示時間和選手分?jǐn)?shù)等,用4×3的鍵盤陣列做輸入,蜂鳴

  

【正文】 計中的按鍵,12864 液晶沒有封裝,需自行封裝。 (5) 元件布局。元件布局可以采用自動布局和手工布局。一般自動布局后進(jìn)行調(diào)整。 (6) 布線。一般先進(jìn)行自動布線,然后手工布線進(jìn)行調(diào)整。 (7) 文件保存及輸出。完成電路板的布線后,保存完成的電路線路圖文件。按照需求可以打印成紙質(zhì)文檔。 最終本設(shè)計生成的 PCB 圖如圖 36 所示。 西南大學(xué) 電子信息工程學(xué)院 2020 屆本科畢業(yè)論文 19 圖 36 PCB 設(shè)計圖 Fig. 36 PCB design 西南大學(xué) 電子信息工程學(xué)院 2020 屆本科畢業(yè)論文 20 第 4 章 軟件設(shè)計 軟件任務(wù)分析 一個單片機(jī)系統(tǒng)是有軟硬件結(jié)合而成的,硬件電路的設(shè)計解決了系統(tǒng)的物理層面實現(xiàn),而要賦予這些硬件 “靈魂 ”,就需要軟件來實現(xiàn)。軟件設(shè)計主要是針對主控芯片來講的,由軟件設(shè)計來告訴主控芯片如何去控制外圍電路完成某些特定的功能。 在本設(shè)計中,根據(jù)我們需要實現(xiàn)的功能來看,軟件設(shè)計主要可以分為一下機(jī)個部分: ? 顯示模塊:在整個搶答過程中顯示信息的功能貫穿始終,是最主要的模塊。控制顯示屏顯示正確的信息是顯示模塊軟件的主要職責(zé)。 ? 輸入模塊:本設(shè)計的輸入模塊是由 43 的矩陣鍵盤構(gòu)成的,正確檢測出從鍵盤上輸入的信息非常重要。輸入模塊軟件就是要完成這一任務(wù)。 ? 計時模塊:在搶答器的工作過程中多出設(shè)計的倒計時功能,計時模塊軟件主要完成準(zhǔn)確計時的功能。并在需要的時候提供當(dāng)前的時間供其他模塊調(diào)用。 ? 初始化模塊:整個系統(tǒng)要穩(wěn)定的運行,就需要自始至終都在我們的 控制之下。系統(tǒng)最初啟動是所處的狀態(tài)無法確定,就需要初始化程序?qū)τ布到y(tǒng)進(jìn)行設(shè)定,使之符合系統(tǒng)運行的要求。本設(shè)計中初始化主要包括對單片機(jī)的初始化和對LCD12864 液晶的初始化。 ? 主函數(shù)模塊:程序都是從主函數(shù)開始運行的,主函數(shù)要控制這個程序運行的流程,將各個模塊有機(jī)的結(jié)合起來,使系統(tǒng)穩(wěn)定的工作。 軟件系統(tǒng)的模塊結(jié)構(gòu)圖如圖 41 所示。 M a i n( 主 函 數(shù)模 塊 )顯 示模 塊輸 入模 塊計 時 模塊初 始 化模 塊 圖 41 軟件系統(tǒng)模塊結(jié)構(gòu)圖 Fig. 41 module structure of software system 圖 41 中列出了軟件系統(tǒng)的主要模塊的機(jī)構(gòu)組成。除了以上主要模塊外還包含一些西南大學(xué) 電子信息工程學(xué)院 2020 屆本科畢業(yè)論文 21 其他函數(shù)和模塊,例如引腳定義、延時函數(shù)、加減分模塊等。 主要模塊的流程圖及分析 本設(shè)計中根據(jù)我們的設(shè)計要求和搶答器系統(tǒng)的工作流程,可以得到系統(tǒng)的程序總流程圖,如圖 42 所示。 初始化開始倒計時并按鍵掃描有無選手犯規(guī) k e y == 0顯示當(dāng)前倒計時時間屏幕顯示犯規(guī)選手編號倒計數(shù) q = = = 0顯示當(dāng)前倒計時時間按鍵掃描是否有選手搶答在屏幕上顯示搶答成功選手編號和當(dāng)前分?jǐn)?shù)倒計時數(shù)t 6上電N YYNYN蜂鳴器發(fā)聲提醒最后 5 s倒計時數(shù) t = 0屏幕顯示無人搶答NNY總開始s t a r t == 0NY主持人按下復(fù)位此時顯示各個選手的分?jǐn)?shù)時間減一主持人復(fù)位進(jìn)入下一輪搶答選手答題回答是否正確主持人加分主持人減分NY 圖 42 程序總流程圖 Fig. 42 program flow chart 圖 42 給出了程序的總體流程圖,之后,我們將對一些主要的程序進(jìn)行詳細(xì)的分析。 西南大學(xué) 電子信息工程學(xué)院 2020 屆本科畢業(yè)論文 22 按鍵掃描程序 本設(shè)計中采用的按鍵是矩陣式鍵盤。比較好的識別按鍵的方法是進(jìn)行按鍵掃描。對矩陣鍵盤進(jìn)行按鍵掃描的基本原理是對矩陣鍵盤的一條列線置為低電平,然后掃描行線,根據(jù)各行線的狀態(tài)就能判斷該列線上所有按鍵的狀態(tài)。依次分別對所有列線置低,再掃面行線,就完成了一次對所有按鍵的掃描。 [18]考慮到可能 出現(xiàn)的毛刺現(xiàn)象在掃描按鍵的過程中要做消抖動處理,消抖動的原理在 前面介紹過,這里不再敘述。 根據(jù)上述原理,我們繪制出按鍵掃描程序的流程圖如圖 43 所示。 開始初始化將第一根行線置低掃描列線延時一次列線是否有信號列線是否有信號返回對應(yīng)值YY將上一根行線至高將下一根列線置低掃描列線列線是否有信號延時一次列線是否有信號返回對應(yīng)值NNYY是否是第四根行線NNN開始Y 圖 43 按鍵掃描流程圖 Fig. 43 buttons scan flow chart 從圖 43 中我們可以看出程序是先將一根行線置高,然后掃描列線。一次對所有行線置高之后就完成一次掃描,延時一段時間是為了消除按鍵抖動的影響。最后返回對應(yīng)的按鍵鍵值。源程序見附錄。 計時模塊 定時器分為軟件定時器和硬件定時器,軟件定時器是靠指令延時完成定時任務(wù)的。因此,軟件定時器的基本思想是使某條指令循環(huán)若干次達(dá)到定時效果,軟件定時主要用于定時進(jìn)度不高的情況下。 [19]軟件定時器的原理簡單,但有時不能滿足需求,這是就需西南大學(xué) 電子信息工程學(xué)院 2020 屆本科畢業(yè)論文 23 要硬件定時 /技術(shù)器。硬件定時器的基本原理:硬件定時 /技術(shù)器獨立于 CPU工作,可以由軟件控制它的啟動和停止。當(dāng)預(yù)定的定時時間后向 CPU 發(fā)送一次中斷請求,執(zhí)行中斷服務(wù)程序。定時 /計數(shù)器有內(nèi)部定時和外部計數(shù)功能,但實質(zhì)上是計數(shù),數(shù)器對外部時間的計數(shù)就是計數(shù)器,以單片機(jī)內(nèi)部機(jī)器周期計數(shù)累加它就是系統(tǒng)定時器 [20]。選擇定時還是計數(shù)是可編程的。對計數(shù)的寄存器設(shè)定初值后,定時器與 CPU 并行工作,計數(shù)器累加溢出時發(fā)出中斷請求,系統(tǒng)響應(yīng)中斷。 為了確保計時的準(zhǔn)確性,本設(shè)計中我們采用單片機(jī)內(nèi)部的定時器并且以中斷的方式計數(shù)。定時器中斷服務(wù)函 數(shù)流程圖如圖 44 所示。 開始初始化計數(shù)器C e n t加一C e n t == 20倒計時減一YT i m e == 0關(guān)定時器Y中斷返回NN 圖 44 定時器中斷流程圖 Fig. 44 flow charts of the timer interrupt 從圖 44 中可以看出,在本設(shè)計中每次計數(shù)器累加溢出后進(jìn)入中斷服務(wù)程序,對 Cent加一,返回繼續(xù)運行主程序,累計到 cent 等于 20 時為 1 秒,這時對 time 的值減一,返回繼續(xù)運行主程序。直到 time 為零時關(guān)閉定時器。 顯示模塊 顯示模塊程序主要用于控制 LCD12864 顯示各種需要的信息。我們所使用的是由ST7920 控制器控制的帶字庫液晶,該液晶能夠顯示 12864 像素的圖像和 4 行 8 列的漢字以及 4 行 16 列的半寬字符 [21]。關(guān)于它的顯示原理可以參考相關(guān)文獻(xiàn)和使用手冊。在這里僅對它的指令系統(tǒng)做一介紹。 LCD12864 與單片機(jī)之間的通信有并行和串行兩種方式。串行方式需要的端口較少,但是寫入指令和數(shù)據(jù)需要的時間比較長,并行方式占用端口多,寫入速度較快。本設(shè)計中我們才用并行方式進(jìn)行通信。對 LCD12864 的操作實際上是對 ST7920 驅(qū)動芯片的操西南大學(xué) 電子信息工程學(xué)院 2020 屆本科畢業(yè)論文 24 作,單片機(jī)將指令發(fā)送給 ST7920 再由 ST7920 控制 LCD 顯示頻顯 示出各種圖形和文字。表 41 中給出了 ST7920 的主要指令表。 表 41 ST7920 基本指令集 Table 41 ST7920 basic instruction set 指令 指令碼 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 清除顯示 0 0 0 0 0 0 0 0 0 1 地址歸位 0 0 0 0 0 0 0 0 1 X 顯示狀態(tài)開 /關(guān) 0 0 0 0 0 0 1 D C B 進(jìn)入點設(shè)定 0 0 0 0 0 0 0 1 I/D S 游標(biāo)或顯 示移位控制 0 0 0 0 0 1 S/C R/L X X 功能設(shè)定 0 0 0 0 1 DL X RE X X 設(shè)定 CGRAM 地址 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 設(shè) 定 DDRAM 地址 0 0 1 0 AC5 AC4 AC3 AC2 AC1 AC0 讀取忙標(biāo)志和地址 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 寫數(shù)據(jù)到 RAM 1 0 數(shù) 據(jù) 讀出 RAM 的值 1 1 數(shù) 據(jù) 除了基本指令集外,還有擴(kuò)充指令集。關(guān)于各個指令的功能,在相關(guān)的手冊中都詳細(xì)的介紹,這里不再做進(jìn)一步講述。 根據(jù)表 41 中的指令,我們就能夠根據(jù)我們自己的需求編寫出所需要的函數(shù)來命令12864 液晶顯示特定的內(nèi)容。在本設(shè)計中,我們要顯示的內(nèi)容有圖片,漢字和數(shù)字等。需要我們自己編寫的程序主要有寫指令函數(shù)、設(shè)定顯示圖片、設(shè)定顯示漢字、 LCD12864初始化函數(shù)、漢字寫入函數(shù)、圖片輸入函數(shù)等一系列的液晶控制函數(shù)。以上函數(shù)的源程序見附錄。 有了上述的基本液晶控制函數(shù)之后,就可以通過調(diào)用以上的控制函數(shù)來進(jìn)一步的完成我們先 是模塊的程序設(shè)計。 首先應(yīng)該是倒計時顯示程序。在本設(shè)計中有兩處用到倒計時,一處是主持人按下開始后的 5 秒預(yù)備時間,第二處是搶答時間的 15 秒倒計時。其中第一處倒計時顯示采用的是顯示圖像的方式,第二處則是采用顯示字符的方式。對圖像的顯示需要事先制作好圖像的字模數(shù)據(jù),將數(shù)據(jù)存放在一個數(shù)組中以供圖像顯示函數(shù)調(diào)用。由于圖像字模要占用大量的代碼空間,所以為了節(jié)省空間本設(shè)計中只做了 5 秒倒計時,第二處的 15 秒倒計時仍舊采用字符的顯示方式。并且為了進(jìn)一步的減少圖像字模數(shù)據(jù)占用的空間,本設(shè)西南大學(xué) 電子信息工程學(xué)院 2020 屆本科畢業(yè)論文 25 計中的字模數(shù)據(jù)都刪除了每一行最后六個字節(jié) 的無用字節(jié)。這樣帶來的問題是后六個字節(jié)刪除后會造成后六個字節(jié)的圖像顯示花屏。是因為 GDRAM 中的這部分字節(jié)的值是隨機(jī)的,為了解決這個問題,我們需要事先清空繪圖區(qū)的數(shù)據(jù),即對繪圖區(qū)全部寫 0。 其次是犯規(guī)選手的顯示。犯規(guī)選手的顯示仍然是用字符顯示的方式,有選手犯規(guī)是在屏幕上顯示犯規(guī)選手的編號并響鈴提示。 然后是搶答成功選手的顯示。搶答成功選手的顯示和犯規(guī)選手顯示相同,采用字符顯示方式。并且搶答成功后還會顯示該選手當(dāng)前的得分。 分?jǐn)?shù)統(tǒng)計的顯示。本設(shè)計中要求主持人按下復(fù)位鍵后顯示所有選手的得分。這部分首先我們將 8 為選手的登封存在一個數(shù)組中,顯示程序根據(jù)需要來調(diào)用每位選手的分?jǐn)?shù)顯示在屏幕上。 顯示模塊源代碼見附錄。 初始化模塊 本設(shè)計中的初始化主要包含兩個部分。液晶的初始化和定時器的初始化。 對液晶的初始化,生產(chǎn)廠商給了以下建議流程,如圖 45 所示。 圖 45 LCD12864 初始化流程 Fig. 45 LCD12864 initialization process 西南大學(xué) 電子信息工程學(xué)院 2020 屆本科畢業(yè)論文 26 根據(jù)上述流程對 LCD12864 液晶進(jìn)行初始化。第一步是功能設(shè)置,即選擇基本指令集還是擴(kuò)充指令集。第二步是顯示開關(guān)控制,這一步選擇顯示的 開關(guān)盒游標(biāo)的開關(guān)。第三步顯示清屏。第四步進(jìn)入點設(shè)定,設(shè)定游標(biāo)的移動方向和指定顯示的位移。 定時器的初始化主要在于選擇模式、開中斷和對累加寄存器賦初值。根據(jù)自己的設(shè)計需求計算初值即可。 計分模塊 計分模塊主要功能是對所有選手的得分進(jìn)行統(tǒng)計并在主持人的控制下對以為選手的得分進(jìn)行加分或者減分的操作。 設(shè)計中將所有選手的得分存在一個數(shù)組之中,需要顯示選手分?jǐn)?shù)時就從數(shù)組中調(diào)用對應(yīng)的值進(jìn)行顯示,需要進(jìn)行加減分操作時,就對數(shù)組中對應(yīng)的值進(jìn)行加或減。加減分的操作主要由加分函數(shù)和減分函數(shù)兩個函來完成。 發(fā)聲模塊 系統(tǒng)的發(fā)聲模塊由一個有源的蜂鳴器構(gòu)成,只要對響應(yīng)的引腳置低,蜂鳴器就會發(fā)出一定頻率的聲響。這種操作簡單便捷,在需要發(fā)出提示音的時候(本設(shè)計中需要發(fā)生的有倒計時的最后 5 秒提示音和選手搶答犯規(guī)是的告警音)能夠方便的的控制蜂鳴器的停啟。 西南大學(xué) 電子信息工程學(xué)院 2020 屆本科畢業(yè)論文 27 第 5 章 系統(tǒng)綜合調(diào)試 系統(tǒng)實現(xiàn)的功能 通過了一系列的硬件設(shè)計和軟件設(shè)計,并將軟硬件進(jìn)行整合。最后我們需要對我們的設(shè)計進(jìn)行測試,看它是否能完成我們最初設(shè)定的各種功能。 在搶答是只有,主持人按下開始后才能搶答。在預(yù)備時間結(jié)束前搶答視為犯規(guī)。 可以顯示搶答成功的選手和搶答犯規(guī)的選手。搶答成功的選手顯示他當(dāng)前得分。 顯示倒計時,倒計時將要結(jié)束時有響鈴提示。 搶答成功后鎖定按鍵,使其他選手的按鍵無效。 選手答題后主持人進(jìn)行加分或減分。并顯示為當(dāng)前得分。 主持人復(fù)位后進(jìn)入下一輪搶答,并顯示所有選手的分?jǐn)?shù)。 系統(tǒng)運行效果 開機(jī)初始狀態(tài)。如圖 51 所示。 圖 51 開機(jī)初始狀態(tài) Fig. 51 power on initial state 上電啟動后屏幕顯示當(dāng)前所有選手的分?jǐn)?shù),初始狀態(tài)下,所有選手得分都為 10。這一步
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1