電工課程設(shè)計裝控09-1 文永備35號_第1頁
電工課程設(shè)計裝控09-1 文永備35號_第2頁
電工課程設(shè)計裝控09-1 文永備35號_第3頁
電工課程設(shè)計裝控09-1 文永備35號_第4頁
電工課程設(shè)計裝控09-1 文永備35號_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、評分:學(xué) 校:廣東石油化工學(xué)院學(xué) 院:機電工程學(xué)院課程設(shè)計題目: 智力競賽搶答器 班 級: 裝 控 09-1 姓 名: 文永備 學(xué) 號: 09024100135 指導(dǎo)教師: 李 進 昌 老師 時 間:2011.3.1-2011.3.7目錄一 緒 論.31.1的背景及意義.31.2搶答器的分類.31.3設(shè)計的主要目標任務(wù).5二總體方案的設(shè)計.52.1功能要求.52.2介紹兩個設(shè)計方案.6三硬件電路的設(shè)計.73.1硬件主要組成電路.73.2電路工作的基本原理.73.3主控電路的設(shè)計.73.4按鍵電路的設(shè)計.103.5顯示電路的設(shè)計.103.6報警電路的設(shè)計.123.7總電路圖.13四軟件的設(shè)計.1

2、34.1語言選擇.134.2軟件總體設(shè)計.144.3系統(tǒng)程序.14五仿真及調(diào)試.235.1仿真軟件介紹.23六方案二.29七心得體會.31第1章 緒 論1.1課題研究的背景及意義今的社會競爭日益激烈,選拔人才,評選優(yōu)勝,知識競賽之類的活動愈加頻繁。無論是學(xué)校、工廠、軍隊還是益智性電視節(jié)目,都會舉辦各種各樣的智力競賽,那么也就必然離不開搶答器。目前市場上已有各種各樣的智力競賽搶答器,但絕大多數(shù)是早期設(shè)計的,以模擬電路、 數(shù)字電路或者模擬電路與數(shù)字電路相結(jié)合的產(chǎn)品。這部分搶答器已相當成熟,但功能越多的電路相對來說就越復(fù)雜,且成本偏高,故障高,顯示方式簡單(有的甚至沒有顯示電路) ,無法判斷提前搶按

3、按鈕的行為,不便于電路升級換代。近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異。本設(shè)計就是利用微電腦芯片(單片機)作為核心部件進行邏輯控制及信號的產(chǎn)生,用單片機本身的優(yōu)勢使競賽真正達到公正、 公平、 公開。1.2搶答器的分類電子搶答器 電子搶答器的中心構(gòu)造一般都是由搶答器由單片機以及外圍電路組成,其搭配的配件不同又分為,非語音非記分搶答器和語音記分搶答器。 按鈕多適用于學(xué)校和企事業(yè)單位舉行的簡單的搶答活動。 電子顯示牌 搶答器 非語音記分搶答器構(gòu)造很簡單,就是一個搶答器的主機和一個搶答按鈕組成,在搶答過程中選手是沒有記分的顯示屏。語音記分搶答器是有一個搶

4、答器的主機和主機的顯示屏和選手的記分顯示屏。 電腦搶答器電腦搶答器又分為無線電腦搶答器和有線電腦搶答器。無線電腦搶答器的構(gòu)成是由:主機和搶答器專用的軟件和無線按鈕。無線電腦搶答器利用電腦和投影儀,可以把搶答氣氛活躍起來,一般多使用于電臺等大型的活動。有線電腦搶答器也是由主機和電腦配合起來,電腦在和投影儀配合起來,利用專門研發(fā)的配套的搶答器軟件,可以十分完美的表現(xiàn)搶答的氣氛。 有線電腦搶答器 1.3設(shè)計的主要目標任務(wù) 通過此次設(shè)計,理解搶答器的基本原理,掌握單片機在該系統(tǒng)中的應(yīng)用,掌握LED顯示的工作原理,掌握89C51的接口分配,并能設(shè)計出合理的電原理圖,并仿真成功利用微電腦芯片(單片機)作為

5、核心部件進行邏輯控制及信號的產(chǎn)生,用單片機本身的優(yōu)勢使競賽真正達到公正、 公平、 公開。第2章 總體方案的設(shè)計2.1 功能要求我設(shè)計的搶答器有如下功能:有人按下時,顯示是誰按下的。同時,其他人再按下時電路不做任何處理。也就是說,如果有人按下以后,別人再按的話電路既不會顯示是他按下的。LED顯示器可顯示搶答或答題時間的倒計時,在時間快要用盡或者有人犯規(guī)的情況下,蜂鳴器可發(fā)出聲音報警。2.2介紹兩套設(shè)計方案:一、方案一系統(tǒng)功能框圖單片機八段數(shù)碼管顯示蜂鳴器報警電路選手主持人控制的開始及結(jié)束按鈕時間調(diào)整按鈕 圖2-1 系統(tǒng)功能框圖開始鍵按下后,搶答倒計時開始,同時系統(tǒng)掃描選手搶答按鈕,選手按下按鈕,

6、顯示器顯示選手號,同時進入答題計時,答題計時結(jié)束后,系統(tǒng)自動復(fù)位,顯示器顯示“FFF”。第3章 硬件電路的設(shè)計3.1 硬件主要組成電路硬件電路主要由AT89C51單片機及其外圍電路(包括復(fù)位電路、外部晶振)、按鍵電路、顯示電路、蜂鳴器報警電路。3.2 電路工作的基本原理整個電路由按鍵控制,當按下相應(yīng)的按鍵時,單片機開始工作,搶答倒計時開始,同時系統(tǒng)掃描選手搶答按鈕,選手按下按鈕,顯示器顯示選手號,同時進入答題計時,答題計時結(jié)束后,系統(tǒng)自動復(fù)位,顯示器顯示“FFF”。3.3主控電路的設(shè)計3.3.1 關(guān)于AT89C51單片機AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFa

7、lsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。其主要特性是與MCS-51 兼容、4K字節(jié)可編程閃爍存儲器、 壽命是1000寫/擦循環(huán)、數(shù)據(jù)保留時間10年、全靜態(tài)工作0Hz-24MHz、三級程序存儲器鎖定、128×8位內(nèi)部

8、RAM、32可編程I/O線、兩個16位定時器/計數(shù)器、5個中斷源、可編程串行通道、低功耗的閑置和掉電模式、片內(nèi)振蕩器和時鐘電路,其中由于其具有32個I/O口,可以滿足此次設(shè)計的需要,不用在其外部擴展I/O口。管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8個TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P

9、1口緩沖器能接收輸出4個TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時

10、,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口 管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。/EA/VPP:當/EA保持低電平時,則此期間訪問外部程序存儲器(0000H-FFFFH),不管是否有

11、內(nèi)部程序存儲器。加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間訪問內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。3.3.2振蕩器電路的設(shè)計晶振是晶體振蕩器的簡稱,在電氣上它可以等效成一個電容和一個電阻并聯(lián)再串聯(lián)一個電容的二端網(wǎng)絡(luò),電工學(xué)上這個網(wǎng)絡(luò)有兩個諧振點,以頻率的高低分其中較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。由于晶體自身的特性致使這兩個頻率的距離相當?shù)慕咏谶@個極窄的頻率范圍內(nèi),晶振等效為一個電感,所以只要晶振的兩端并聯(lián)上合適的電

12、容它就會組成并聯(lián)諧振電路。這個并聯(lián)諧振電路加到一個負反饋電路中就可以構(gòu)成正弦波振蕩電路,由于晶振等效為電感的頻率范圍很窄,所以即使其他元件的參數(shù)變化很大,這個振蕩器的頻率也不會有很大的變化。晶振有一個重要的參數(shù),那就是負載電容值,選擇與負載電容值相等的并聯(lián)電容,就可以得到晶振標稱的諧振頻率。一般的晶振振蕩電路都是在一個反相放大器(注意是放大器不是反相器)的兩端接入晶振,再有兩個電容分別接到晶振的兩端,每個電容的另一端再接到地,這兩個電容串聯(lián)的容量值就應(yīng)該等于負載電容,請注意一般IC的引腳都有等效輸入電容,這個不能忽略。一般的晶振的負載電容為15p或30p,如果再考慮元件引腳的等效輸入電容,則兩

13、個22p的電容構(gòu)成晶振的振蕩電路就是比較好的選擇。 圖 3-3-2 振蕩電路3.3.3復(fù)位電路的設(shè)計復(fù)位即是在復(fù)位端加不小于指定寬度的低電平(低電平復(fù)位)或高電平(高電平復(fù)位)信號使單片機的硬件處于初始狀態(tài)。以MCS-51系列單片機為例,復(fù)位端為RST/Vpd,高電平復(fù)位。在振蕩電路運行時,使RST引腳至少保持兩個機器周期(24個振蕩周期)高電平,實現(xiàn)一次復(fù)位動作。CPU響應(yīng)內(nèi)部復(fù)位,將ALE和PSEN引腳置為輸入方式,并在RST端變低以前重復(fù)執(zhí)行內(nèi)部復(fù)位。 圖 3-3-3 復(fù)位電路3.4 按鍵電路的設(shè)計鍵盤有兩類:一個是獨立鍵盤,另一個是矩陣鍵盤。獨立鍵盤的特點是每個按鍵單獨占用一個I/O口

14、,每個按鍵工作不會影響其他的I/O口線的狀態(tài),多用于按鍵不多的場合??刹捎肑NB或JB來查詢是哪一個按鍵按下,并轉(zhuǎn)向相應(yīng)的功能處理程序。當按鍵較多時,就用到了矩陣鍵盤。矩陣鍵盤又稱行列鍵盤,它是用四條I/O線作為行線,四條I/O線作為列線組成的鍵盤,在行線和列線的每個交叉點上設(shè)置一個按鍵,這樣鍵盤上按鍵的個數(shù)就是4*4個。這種行列式鍵盤結(jié)構(gòu)能夠有效地提高單片機系統(tǒng)中I/O口的利用率。但由于本設(shè)計的按鍵不多,所以我們采用獨立鍵盤,編寫程序也比較簡單,運行速度較快。 圖3-4 選手搶答按鍵3.5 顯示電路的設(shè)計3.5.1 LED顯示器件簡介數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。數(shù)碼管

15、的分類:數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到+5V,當某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮。當某一字段的陰極為高電平時,相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到地線GND上,當某一字段發(fā)光二極管的陽極為高

16、電平時,相應(yīng)字段就點亮。當某一字段的陽極為低電平時,相應(yīng)字段就不亮。數(shù)碼管的驅(qū)動方式:數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。本設(shè)計由于只用兩個數(shù)碼管,所以采用靜態(tài)顯示驅(qū)動,這里只介紹靜態(tài)顯示驅(qū)動。靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進行驅(qū)動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×840根I/O端口來驅(qū)動,一個89C51單

17、片機可用的I/O端口才32個,實際應(yīng)用時必須增加譯碼驅(qū)動器進行驅(qū)動,增加了硬件3.5.2 顯示部分的設(shè)計顯示功能與硬件關(guān)系極大,當硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。圖3-5 顯示電路(采用共陰極LED數(shù)碼管)3.6 報警電路的設(shè)計36.1蜂鳴器的介紹蜂鳴器的作用: 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機、打印機、復(fù)印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器的分類:1壓電式蜂鳴器 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝

18、有發(fā)光二極管。多諧振蕩器由晶體管或集成電路構(gòu)成。當接通電源后(1.515V直流工作電壓),多諧振蕩器起振,輸出1.52.5kHZ的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。2電磁式蜂鳴器 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。3.6.2 報警電路 3.7 總電路圖第4章 軟件的設(shè)計4.1 語言選擇在目前單片機的發(fā)展中,其編程語言

19、主要有C語言和匯編語言。C語言是高級語言,編寫起來比較程序比較簡便且易維護,匯編語言介于機器語言和高級語言之間,更接近于硬件,但編寫起來比較冗長。但介于本次程序不是太復(fù)雜,本人較C語言來說更熟悉匯編,所以本次設(shè)計的程序采用匯編語言來編寫。4.2 軟件總體設(shè)計本程序采用子程序設(shè)計,在主程序中調(diào)用子程序來完成特定的功能,這樣程序會通俗易懂,同時也有利于程序的調(diào)試和修改。本程序的程序流程圖如下: 4.3 系統(tǒng)程序P1.0為開始搶答,P1.7為停止,p1.1-p1.6為六路搶答輸入 數(shù)碼管段選P0口,位選P2口,蜂鳴器輸出為P3.6口。OK EQU 20H;搶答開始標志位 RING EQU 22H;響

20、鈴標志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#0FH; 初設(shè)搶答時間為15s MOV R2,#0AH; 初設(shè)答題時間為10s MOV TMOD,#11H; 設(shè)置未定時器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH; 越高發(fā)聲頻率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H; 50ms為一次溢出中斷 SETB EA SETB ET0

21、SETB ET1 SETB EX0 SETB EX1; 允許四個中斷,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0; 一開始就運行定時器,以開始顯示FFF.如果想重新計數(shù),重置TH1/TL1就可以了查詢程序:START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY; 未開始搶答時候顯示FFF JB P3.1,NEXT ACALL DELAY JB P3.1,NEXT;去抖動,如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢 ACALL BARK;按鍵發(fā)聲 MOV

22、A,R1 MOV R6,A; 送R1->R6,因為R1中保存了搶答時間 SETB OK; 搶答標志位,用于COUNT只程序中判斷是否查詢搶答 MOV R3,0AH; 搶答只顯示計時,滅號數(shù) AJMP COUNT;進入倒計時程序,"查詢有效搶答的程序"在COUNT里面NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,FALSE7 JNB P1.7,FALSE8 AJMP START非法搶答處理程序:F

23、ALSE1: ACALL BARK; 按鍵發(fā)聲 MOV R3,#01H AJMP ERRORFALSE2: ACALL BARK MOV R3,#02H AJMP ERRORFALSE3: ACALL BARK MOV R3,#03H AJMP ERRORFALSE4: ACALL BARK MOV R3,#04H AJMP ERRORFALSE5: ACALL BARK MOV R3,#05H AJMP ERRORFALSE6: ACALL BARK MOV R3,#06H AJMP ERRORFALSE7:ACALL BARK MOV R3,#07H AJMP ERRORFALSE8:AC

24、ALL BARK MOV R3,#08H AJMP ERROR INT0(搶答時間R1調(diào)整程序): INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在兩個時間LED上顯示R1 JNB P3.2,INC0; P3.2為+1s鍵,如按下跳到INCO JNB P3.3,DEC0; P3.3為-1s鍵,如按下跳到DECO JNB P3.0,BACK0; P3.0為確定鍵,如按下跳到BACKO AJMP INT0SUBINC0: MOV A,R1 CJNE A,#63H,ADD0; 如果不是9

25、9,R2加1,如果加到99了,R1就置0,重新加起 MOV R1,#00H ACALL DELAY1 AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0SUBDEC0: MOV A,R1 JZ SETR1;如果R1為0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBBACK0: RETIINT1(回答時間R2調(diào)整程序):INT1SUB:MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MO

26、V R3,#0AH ACALL DISPLAY JNB P3.2,INC1 JNB P3.3,DEC1 JNB P3.0,BACK1 AJMP INT1SUBINC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUBADD1: INC R2 ACALL DELAY1 AJMP INT1SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUBSETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUBBACK1: RETI倒計時

27、程序(搶答倒計時和回答倒計時都跳到該程序): COUNT: MOV R0,#00H; 重置定時器中斷次數(shù) MOV TH1,#3CH MOV TL1,#0B0H; 重置定時器RECOUNT: MOV A,R6; R6保存了倒計時的時間,之前先將搶答時間或回答時間給R6 MOV B,#0AH DIV AB; 除十分出個位/十位 MOV 30H,A; 十位存于(30H) MOV 31H,B; 個位存于(31H) MOV R5,30H; 取十位 MOV R4,31H; 取個位 MOV A,R6 SUBB A,#07H JNC LARGER;大于5s跳到LARGER,小于等于5s會提醒 MOV A,R0

28、 CJNE A,#0AH,FULL;1s中0.5s向下運行 CLR RING AJMP CHECKFULL: CJNE A,#14H,CHECK; 下面系1s的情況,響并顯示號數(shù)并清R0,重新計時 SETB RING MOV A,R6 JZ QUIT; 計時完畢 MOV R0,#00H DEC R6; 一秒標志減1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK; 如果1s向下運行,否者跳到查"停/顯示" DEC R6; 計時一秒R6自動減1 MOV R0,#00HCHECK: JNB P3.0,QUIT; 如按下停止鍵退出 ACA

29、LL DISPLAY JB OK,ACCOUT; 如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) AJMP RECOUNTACCOUT: JNB P1.0,TRUE1 JNB P1.1,TRUE2 JNB P1.2,TRUE3 JNB P1.3,TRUE4 JNB P1.4,TRUE5 JNB P1.5,TRUE6 JNB P1.6,TRUE7 JNB P1.7,TRUE8 AJMP RECOUNTQUIT: CLR OK; 如果按下了"停止鍵"執(zhí)行的程序 CLR RING AJMP START正常搶答處理程序:TRUE1: ACALL BAR

30、K; 按鍵發(fā)聲 MOV A,R2 MOV R6,A; 搶答時間R2送R6 MOV R3,#01H CLR OK; 因為答題的計時不再查詢搶答,所以就鎖了搶答 AJMP COUNTTRUE2:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNTTRUE4:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNTTRUE5: ACALL BAR

31、K; MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNTTRUE6: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNTTRUE7: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNTTRUE8: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#08H CLR OK AJMP COUNT;犯規(guī)搶答程序;ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H

32、MOV 34H,R3; 犯規(guī)號數(shù)暫存與(34H)HERE: MOV A,R0 CJNE A,#0AH,FLASH; 0.5s向下運行->滅并停響 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH; 三燈全滅 AJMP CHECK1FLASH: CJNE A,#14H,CHECK1; 下面系1s的情況,響并顯示號數(shù)并清R0,重新計 SETB RING MOV R0,#00H MOV R3,34H; 取回號數(shù) MOV R5,#0BH MOV R4,#0BH; 顯示FF和號數(shù) AJMP CHECK1CHECK1: JNB P3.0,QUIT1 ACALL

33、 DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START顯示程序:DISPLAY:MOV DPTR,#DAT1; 查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出 MOV A,R5 MOVC A,A+DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R4 MOVC A,A+DPTR MOV P2,#02H MOV P0,A ACALL DELAY MOV A,R3 MOVC A,A+DPTR MOV P2,#04H MOV P0,A ACALL DELAY RETDA

34、T1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H;"滅","1","2","3","4","5","6","7","8","9","滅","F"DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71HDELAY1: MOV 35H,#08HLOOP

35、0: ACALL DISPLAY DJNZ 35H,LOOP0 RET;延時(顯示和去抖動用到):;DELAY: MOV 32H,#12HLOOP: MOV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET發(fā)聲程序:BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING; 按鍵發(fā)聲 RET;TO溢出中斷(響鈴程序):;T0INT:MOV TH0,#0ECH MOV TL0,#0FFH JNB RING,OUT CPL P3.6 ; RING標志位為1時候P3.6口不短取反使喇叭發(fā)出一定頻率的聲音OUT

36、:RETI;T1溢出中斷(計時程序):;T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI END第5章 仿真及調(diào)試5.1 仿真軟件介紹5.1.1 Proteus軟件介紹Proteus(海神)的ISIS是一款Labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和IC,并支持單片機,元件庫齊全,使用方便,是不可多得的專業(yè)的單片機軟件仿真系統(tǒng)。 該軟件的特點: 全部滿足我們提出的單片機軟件仿真系統(tǒng)的標準,并在同類產(chǎn)品中具有明顯的優(yōu)勢。 具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS一232動態(tài)仿真、1 C調(diào)試器、SPI調(diào)試器

37、、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。 目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。 支持大量的存儲器和外圍芯片??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真軟件,功能極其強大 ,可仿真51、AVR、PIC。 Proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內(nèi)容的改變,而是

38、從工程的角度直接看程序運行和電路工作的過程和結(jié)果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。 5.1.2 keil軟件介紹 ,Keil 軟件是目前最流行開發(fā) MCS-51 系列單片 機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持 Keil 即可看出。Keil 提供了包括 C 編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通 過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。 5. 1. 3GP/WIN-C軟件介紹該軟件為三菱FX系列可編程序控制器(PLC)編程用,主要適用于:FX0/FX0S、FXON、FX1、FXF

39、X2/FX2C、FX1S、FX1N、FX2N/FX2NC。有梯形圖、指令表、SFC三種編程方式,用本軟件可對PLC進行實時監(jiān)控。 SWOPC-FXGPWIN-C編程軟件使用方法:一:程序文件操作(一)新建建立一個程序文件,可用文件(FILE)菜單中的新建(NEW)命令,在主窗口將顯示新建的程序文件程序區(qū),也可用工具中按鈕來完成。新建的程序文件用戶可以根據(jù)實際變成需要做以下操作:確定主機型號,根據(jù)實際應(yīng)用情況選擇PLC型號。按下“確定“按鈕,即可進入變成界面。(二)打開已有文件 打開一個磁盤中已有的程序文件,可用“文件(FILE)菜單中的“打開”,命令,在彈出的對話框中選擇打開的程序文件,也可用

40、工具條中的按鈕來完成。(三)怎樣上傳 在已經(jīng)與PLC建立通信的前提下,如果要上傳到PLC的存儲器中,可用PLC菜單中的“傳送”命令中的“讀出”子命令來完成。(四)怎樣下載 在已經(jīng)與PLC建立通信的前提下,如果要下載到PLC的存儲器文件,可用PLC菜單中的“傳送”命令中的“寫出”子命令來完成。同時為了提高傳送程序文件的效率,還可以在下載前設(shè)置傳送的范圍。(五)編輯程序編輯和修改控制程序是程序員利用三菱SWOPC-FXGPWIN-C編程軟件要做的基本工作,就是該軟件的編輯功能,現(xiàn)在以梯形圖編輯器為例來介紹一些基本的編輯操作功能。1、編程元件,梯形圖的編程元件主要有線圈、觸點、指令盒、標號及連接線,

41、其輸入方法有兩種:方法一是功能圖輸出。首先在編輯窗口中光標定位,在功能圖中選擇元件類型、輸入編號等,然后按下“確定”就算完成某一元件的輸入,若有錯誤,如有元件編號錯誤、違反梯形圖的編程規(guī)則等,系統(tǒng)軟件會會馬上拒絕輸入的提示對話框,提醒設(shè)計者改正過來。方法二就是利用功能鍵輸出操作,其方法與上面相同。2、方法還有:順序輸入,在是在一個邏輯行中,如果只有編程元件的串聯(lián)連接,輸入和輸出都無分支,則就可認為是順序輸入。該方法非常簡單,只需要從邏輯行的開始依次輸入各變成2元件即可,每輸入一個元件,光標都會自動的移動到下一列。任意添加輸入:如果想在任意位置添加一個編程元件,只需要單擊這一位置后,光標就會移動

42、到此處,然后輸入需要編程的元件即可。3、插入和刪除編程中經(jīng)常要用到插入和刪除某一行或者某一列、一邏輯行等,所以可采取下措施:(1)、插入:將光標移動到要插入的位置,然后選擇:“編輯”菜單,執(zhí)行菜單中的“行插入”命令,即可輸入編程元件,從而實現(xiàn)邏輯行的輸入。(2)、刪除:首先通過鼠標選擇要刪除的邏輯行,然后利用“編輯”菜單中的“行刪除”命令就可以刪除該邏輯行的所有元件了。 對于元件的剪切、復(fù)制和粘貼和PROTSL99SE軟件的操作方法一樣,從略。4、注釋選定將要給予注釋的元件,雙擊該元件、會出現(xiàn)一個對話框,即可輸入文字注釋。5、 語言轉(zhuǎn)換 軟件可實現(xiàn)編程語言(編輯器)之間的任意切換,選擇“視圖”

43、菜單中的STL、LAD便可進入對應(yīng)的編程環(huán)境,使用最多的是STL和、LAD之間的互相轉(zhuǎn)換。 6、轉(zhuǎn)換程序編輯完成后,一定要利用“編輯”菜單中的“轉(zhuǎn)換”命令,將在編輯窗口中創(chuàng)建的電路圖轉(zhuǎn)換格式存入計算機中。反之,如果要退出編輯界面,不保存編制的程序。(六)測試/運行三菱SWOPC-FXGPWIN-C編程軟件提供了一系列的工具,便于我們直接在軟件環(huán)境下進行調(diào)試和監(jiān)控用戶程序的執(zhí)行情況。1、 監(jiān)控/測試 (1)、元件監(jiān)控(X、Y、M) 選擇“監(jiān)控/測試”菜單,執(zhí)行“進入元件監(jiān)控”命令彈出元件監(jiān)控的對話框,輸入要監(jiān)控的元件啟始編號,輸入要監(jiān)控元件的數(shù)量,按下“確定”按鈕,在屏幕上顯示的元件的狀態(tài)。 (

44、2)、元件監(jiān)控(T、C、D) 選擇“監(jiān)控/測試”菜單,執(zhí)行“進入元件監(jiān)控”命令,彈出元件監(jiān)控的對話框,輸入要監(jiān)控的元件啟始編號,輸入要監(jiān)控的元件數(shù)量,按下“確定”按鈕,在屏幕上顯示是十六進制的形式還是以十進制的形式表示所監(jiān)控元件的當前值。 (3)、元件監(jiān)控(光標)選擇“監(jiān)控/測試”菜單,執(zhí)行“元件監(jiān)控(光標)”命令,直接進入程序界面,在程序上就可以觀察元件的狀態(tài)和數(shù)值。2、強制用戶可以強制指定值對變量賦值,所有強制改變的值都存在主機固定的ROM中。強制輸出利用該功能來是指定元件的ON/OFF。選擇“監(jiān)控/測試”菜單,執(zhí)行“強制輸出”命令,可以對元件X、Y、M以及特殊的M、S、T、C等類型的元件

45、進行置位操作,可以對X、Y、M以及M、S、T、C、D、V、Z等類型的元件復(fù)位操作。改變設(shè)定值利用該功能來是指定元件設(shè)定值的改變選擇“監(jiān)控/測試”菜單,執(zhí)行“改變設(shè)定值”命令,可以對字元件T、C、D以及特殊字符D、V、Z等進行設(shè)定值的改變。5.1.4方案一的仿真過程:仿真過程操作如下:1) 在Protues中畫出系統(tǒng)電路圖,即附件2;2) 將程序在keil中編譯并生成hex文件。3)把在keil中編譯生成的HEX文件載入AT89C51芯片中;3) 運行仿真。 仿真結(jié)果:1) 系統(tǒng)初始狀態(tài)2) 搶答開始后,搶答倒計時狀態(tài) 圖為搶答倒計時11秒時的系統(tǒng)狀態(tài)3) 有人搶答后答題倒計時狀態(tài) 圖為5號選手

46、搶到該題且答題倒計時7秒時的系統(tǒng)狀態(tài)4) 有人犯規(guī)狀態(tài) 圖為8號選手犯規(guī) 第六章:方案二方案二的設(shè)計思路:搶答器同時供8名選手或8個代表隊比賽,分別用8個按鈕S0 S7表示。設(shè)置一個系統(tǒng)清除和搶答控制開關(guān)S,該開關(guān)由主持人控制。 搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應(yīng)的編號,并在LED數(shù)碼管上顯示。選手搶答實行優(yōu)先鎖存,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。 搶答器具有定時搶答功能,且一次搶答的時間由主持人設(shè)定(如30秒)。當主持人啟動"開始"鍵后,定時器進行減計時。參賽選手在設(shè)定的時間內(nèi)進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶

47、答的時間,并保持到主持人將系統(tǒng)清除為止。 如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。其工作原理為:接通電源后,主持人將開關(guān)撥到"清除"狀態(tài),搶答器處于禁止狀態(tài),編號顯示器滅燈,定時器顯示設(shè)定時間;主持人將開關(guān)置開始"狀態(tài),宣布"開始"搶答器工作。選手在定時時間內(nèi)搶答時,搶答器完成:優(yōu)先判斷、編號鎖存、編號顯示。當一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由主持人再次操作"清除"和"開始"狀態(tài)開關(guān)。電路完成兩個功能:一是分辨出選手按

48、鍵的先后,并鎖存優(yōu)先搶答者的編號,同時譯碼顯示電路顯示編號;二是禁止其他選手按鍵操作無效。 由節(jié)目主持人根據(jù)搶答題的難易程度,設(shè)定一次搶答的時間,通過預(yù)置時間電路對計數(shù)器進行預(yù)置,計數(shù)器的時鐘脈沖由秒脈沖電路提供。本電路所用到的儀器:X1:八人智力搶答器、SPDT、GROUND、VCC、DCD-HEX、CLOCK-SOURCE、X2:八人智力搶答器、PB NO等。方案二的總體電路圖:第七章:心得體會通過此次課程設(shè)計,總體來說,收獲頗豐,無論是在培養(yǎng)自己的實驗動手能力還是培養(yǎng)自己的性情方面。在此次的數(shù)字搶答器設(shè)計過程中。我更進一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和其具體的使用方法。在連接六進制,十進制,六十進制的進位及二十四進制的接法中,要求熟悉邏輯電路及其芯片各引腳的功能,那么在電路出錯時便能準確地找出錯誤所在并及時糾正了。在設(shè)計電路中,往往是先仿真后連接實物圖,但有時候仿真和電路連接

溫馨提示

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

評論

0/150

提交評論