基于89c51的八位搶答器單片機(jī)系統(tǒng)課程設(shè)計(jì)_第1頁
基于89c51的八位搶答器單片機(jī)系統(tǒng)課程設(shè)計(jì)_第2頁
基于89c51的八位搶答器單片機(jī)系統(tǒng)課程設(shè)計(jì)_第3頁
基于89c51的八位搶答器單片機(jī)系統(tǒng)課程設(shè)計(jì)_第4頁
基于89c51的八位搶答器單片機(jī)系統(tǒng)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)系統(tǒng)課 程 設(shè) 計(jì)成績(jī)?cè)u(píng)定表設(shè)計(jì)課題 : 基于89C51的八位搶答器 學(xué)院名稱 : 電氣工程學(xué)院 專業(yè)班級(jí) : 自動(dòng)化F1206 學(xué)生姓名 : 學(xué) 號(hào) : 指導(dǎo)教師 : 設(shè)計(jì)地點(diǎn) : 設(shè)計(jì)時(shí)間 : 2014-12-292015-01-09 指導(dǎo)教師意見:成績(jī): 簽名: 年 月 日單片機(jī)系統(tǒng)課 程 設(shè) 計(jì)課程設(shè)計(jì)名稱: 基于89C51的八位搶答器 專 業(yè) 班 級(jí) : 自動(dòng)化F1206 學(xué) 生 姓 名 : 學(xué) 號(hào) : 指 導(dǎo) 教 師 : 課程設(shè)計(jì)地點(diǎn): 課程設(shè)計(jì)時(shí)間: 2014-12-292015-01-09 單片機(jī)系統(tǒng) 課程設(shè)計(jì)任務(wù)書學(xué)生姓名 專業(yè)班級(jí)自動(dòng)化F1206學(xué)號(hào) 題 目基于89C

2、51的八位搶答器課題性質(zhì)工程設(shè)計(jì)課題來源自擬指導(dǎo)教師 主要內(nèi)容(參數(shù))(1)搶答器可以同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕S1S8表示。(2)主持人可以通過智能搶答器的按鍵設(shè)定每道題的搶答時(shí)間和回答時(shí)間。(3)具有清零和非法搶答控制功能,設(shè)置一個(gè)系統(tǒng)清除和搶答控制開關(guān),并由主持人操控,避免選手在主持人說“開始”前提前搶答,違反規(guī)則。(4)當(dāng)主持人啟動(dòng)“開始搶答按鍵”后,定時(shí)器進(jìn)行減計(jì)時(shí),在20秒內(nèi)無人搶答表示所有參賽選手或參賽隊(duì)對(duì)本題棄權(quán),搶答時(shí)間耗盡后禁止搶答。(5)倒計(jì)時(shí)5秒時(shí),如果仍無人搶答,則系統(tǒng)每1s報(bào)警一次,用以提示參賽選手。任務(wù)要求(進(jìn)度)第1-2天:熟悉課程設(shè)計(jì)任務(wù)及

3、要求,查閱技術(shù)資料,確定設(shè)計(jì)方案。第3-4天:按照確定的方案設(shè)計(jì)單元電路。要求畫出單元電路圖,元件及元件參數(shù)選擇要有依據(jù),各單元電路的設(shè)計(jì)要有詳細(xì)論述。第5-6天:軟件設(shè)計(jì),編寫程序。第7-8天:實(shí)驗(yàn)室調(diào)試。第9-10天:撰寫課程設(shè)計(jì)報(bào)告。要求內(nèi)容完整、圖表清晰、文理流暢、格式規(guī)范、方案合理、設(shè)計(jì)正確,篇幅合理。主要參考資料1 張迎新單片微型計(jì)算機(jī)原理、應(yīng)用及接口技術(shù)(第2版)M北京:國防工業(yè)出版社,20042偉福LAB6000系列單片機(jī)仿真實(shí)驗(yàn)系統(tǒng)使用說明書3 閻石數(shù)字電路技術(shù)基礎(chǔ)(第五版)北京:高等教育出版社,2006審查意見系(教研室)主任簽字: 年 月 日 目 錄 第一章 概述1第二章

4、 單片機(jī)系統(tǒng)原理32.1單片機(jī)的工作過程42.2單片機(jī)的引腳及其作用5第三章 八路搶答器的電路設(shè)計(jì)7電路設(shè)計(jì)原理7八路搶答器模塊化設(shè)計(jì)7時(shí)鐘與復(fù)位模塊8 時(shí)鐘模塊8 復(fù)位模塊9顯示模塊93.5按鍵輸入模塊11 鍵盤的去抖動(dòng)11 按鍵電路圖12報(bào)警模塊12第四章 軟件設(shè)計(jì)14系統(tǒng)程序設(shè)計(jì)14搶答器主程序流程圖15非法搶答查詢子程序15搶答時(shí)間調(diào)整子程序16第五章 軟件仿真及程序調(diào)試17軟件仿真17謝 辭19參考文獻(xiàn)20附 錄21附錄1:電路原理圖21附錄2:程序清單22 第一章 緒論當(dāng)今的社會(huì)競(jìng)爭(zhēng)日益激烈,選拔人才,評(píng)選優(yōu)勝,知識(shí)競(jìng)賽之類的活動(dòng)愈加頻繁,比賽中為了準(zhǔn)確、公正、直觀地判斷出第一搶答

5、者,這就要有一種搶答設(shè)備作為裁判員,于是搶答器應(yīng)用而生。早期的搶答器只由幾個(gè)三極管、可控硅、發(fā)光管等組成,能通過發(fā)光管的指示辨認(rèn)出選手號(hào)碼?,F(xiàn)在大多數(shù)搶答器均使用單片機(jī)(如MCS-51型)和數(shù)字集成電路,并增加了許多新功能,如選手號(hào)碼顯示、搶答前或搶答后的計(jì)時(shí)、選手得分顯示等功能。 第二章 單片機(jī)系統(tǒng)原理單片機(jī)自動(dòng)完成賦予它的任務(wù)的過程,也就是單片機(jī)執(zhí)行程序的過程,即一條條執(zhí)行指令的過程,所謂指令就是把要求單片機(jī)執(zhí)行的各種操作用命令的形式寫下來,這是由設(shè)計(jì)人員賦予它的指令系統(tǒng)所決定的,一條指令對(duì)應(yīng)著一種基本操作;單片機(jī)所能執(zhí)行的全部指令,就是該單片機(jī)的指令系統(tǒng),不同種類的單片機(jī),其指令系統(tǒng)亦不

6、同。為使單片機(jī)能自動(dòng)完成某一特定任務(wù),必須把要解決的問題編成一系列指令(這些指令必須是選定單片機(jī)能識(shí)別和執(zhí)行的指令),這一系列指令的集合就成為程序,程序需要預(yù)先存放在具有存儲(chǔ)功能的部件存儲(chǔ)器中。存儲(chǔ)器由許多存儲(chǔ)單元(最小的存儲(chǔ)單位)組成,就像一幢大樓由許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出并執(zhí)行就像大樓的每個(gè)房間的被分配到唯一一個(gè)房間號(hào)一樣,每一個(gè)存儲(chǔ)單元也必須被分配到唯一的地址號(hào),該地址號(hào)稱為存儲(chǔ)單元的地址,這樣只要知道了存儲(chǔ)單元的地址,就可以找到這個(gè)存儲(chǔ)單元,其中存儲(chǔ)的指令就可以被取出,然后再被執(zhí)行89C51單片機(jī)的引腳圖如下:圖2-1 89C51單片機(jī)的引腳圖Vcc(

7、40腳):接+5V電源正端;Vss(20腳):接+5V電源正端。XTAL1(19腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳接地;對(duì)于CHOMS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端。XTAL2(18腳):接外部晶體的另一端。在單片機(jī)內(nèi)部,接至片內(nèi)振蕩器的反相放大器的輸出端。當(dāng)采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端。對(duì)于CHMOS芯片,該引腳懸空不接。控制信號(hào)或與其它電源復(fù)用引腳有RST/VPD、ALE/P、PSEN和EA/VPP等4種形式。(1)RST/VPD(9腳):RST即為RE

8、SET,VPD為備用電源,所以該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。當(dāng)單片機(jī)振蕩器工作時(shí),該引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期的高電平,就可實(shí)現(xiàn)復(fù)位操作,使單片機(jī)復(fù)位到初始狀態(tài)。當(dāng)VCC發(fā)生故障,降低到低電平規(guī)定值或掉電時(shí),該引腳可接上備用電源VPD(+5V)為內(nèi)部RAM供電,以保證RAM中的數(shù)據(jù)不丟失。(2)ALE/ P (30腳):當(dāng)訪問外部存儲(chǔ)器時(shí),ALE(允許地址鎖存信號(hào))以每機(jī)器周期兩次的信號(hào)輸出。(3)PSEN(29腳):片外程序存儲(chǔ)器讀選通輸出端,低電平有效。當(dāng)從外部程序存儲(chǔ)器讀取指令或常數(shù)期間,每個(gè)機(jī)器周期PESN兩次有效,以通過數(shù)據(jù)總線口讀回指令或常數(shù)。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器期間,PE

9、SN信號(hào)將不出現(xiàn)。(4)EA/Vpp(31腳):EA為訪問外部程序儲(chǔ)器控制信號(hào),低電平有效。當(dāng)EA端保持高電平時(shí),單片機(jī)訪問片內(nèi)程序存儲(chǔ)器4KB(MS52子系列為8KB)。若超出該范圍時(shí),自動(dòng)轉(zhuǎn)去執(zhí)行外部程序存儲(chǔ)器的程序。當(dāng)EA端保持低電平時(shí),無論片內(nèi)有無程序存儲(chǔ)器,均只訪問外部程序存儲(chǔ)器。對(duì)于片內(nèi)含有EPROM的單片機(jī),在EPROM編程期間,該引腳用于接21V的編程電源Vpp。輸入/輸出(I/O)引腳P0口、P1口、P2口及P3口(1)P0口(39腳22腳):P0.0P0.7統(tǒng)稱為P0口。當(dāng)不接外部存儲(chǔ)器與不擴(kuò)展I/O接口時(shí),它可作為準(zhǔn)雙向8位輸入/輸出接口。當(dāng)接有外部程序存儲(chǔ)器或擴(kuò)展I/O

10、口時(shí),P0口為地址/數(shù)據(jù)分時(shí)復(fù)用口。它分時(shí)提供8位雙向數(shù)據(jù)總線。對(duì)于片內(nèi)含有EPROM的單片機(jī),當(dāng)EPROM編程時(shí),從P0口輸入指令字節(jié),而當(dāng)檢驗(yàn)程序時(shí),則輸出指令字節(jié)。(2)P1口(1腳8腳):P1.0P1.7統(tǒng)稱為P1口,可作為準(zhǔn)雙向I/O接口使用。對(duì)于MCS52子系列單片機(jī),P1.0和P1.1還有第2功能:P1.0口用作定時(shí)器/計(jì)數(shù)器2的計(jì)數(shù)脈沖輸入端T2;P1.1用作定時(shí)器/計(jì)數(shù)器2的外部控制端T2EX。對(duì)于EPROM編程和進(jìn)行程序校驗(yàn)時(shí),P0口接收輸入的低8位地址。(3)P2口(21腳28腳):P2.0P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向I/O接口。當(dāng)接有外部程序存儲(chǔ)器或擴(kuò)展I/O

11、接口且尋址范圍超過256個(gè)字節(jié)時(shí),P2口用于高8位地址總線送出高8位地址。對(duì)于EPROM編程和進(jìn)行程序校驗(yàn)時(shí),P2口接收輸入的8位地址。(4)P3口(10腳17腳):P3.0P3.7統(tǒng)稱為P3口。它為雙功能口,可以作為一般的準(zhǔn)雙向I/O接口,也可以將每1位用于第2功能,而且P3口的每一條引腳均可獨(dú)立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見下表:表2-1單片機(jī)P3口管腳含義引腳第2功能RXD(串行口輸入端)TXD(串行口輸出端)INT0(外部中斷0請(qǐng)求輸入端,低電平有效)INT1(外部中斷1請(qǐng)求輸入端,低電平有效)T0(定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)脈沖端)T1(定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)脈沖端)

12、WR(外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)輸出端,低電平有效)RD(外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸出端,低電平有效) 第三章 八路搶答器的電路設(shè)計(jì)為使硬件電路設(shè)計(jì)盡可能簡(jiǎn)潔合理,應(yīng)主要以下幾點(diǎn):(1)工業(yè)上盡可能采用功能強(qiáng)的芯片,以簡(jiǎn)化電路,功能強(qiáng)的芯片可以代替若干普通芯片。(2)留有設(shè)計(jì)余地。在設(shè)計(jì)硬件電路時(shí),要考慮到將來修改擴(kuò)展的方便。(3)程序空間,選用片內(nèi)程序空間足夠大的單片機(jī),(4)RAM空間,大部分51系列單片機(jī)的內(nèi)部RAM不多,當(dāng)要增強(qiáng)軟件數(shù)據(jù)處理功能時(shí),往往覺得不足。如果系統(tǒng)配置了外部RAM,則建議多留一些空間。(5)I/O端口,在樣機(jī)研制出來后進(jìn)行現(xiàn)場(chǎng)試用時(shí),往往會(huì)發(fā)現(xiàn)一些被忽視的問題,而這

13、些問題不是靠單純的軟件措施來解決的。如有些新的信號(hào)需要采集,就必須增加輸入檢測(cè)端;有些物理量需要控制,就必須增加輸出端。所以一般在設(shè)計(jì)硬件電路時(shí)就預(yù)留出一些I/O端口。圖3-1 主要功能模塊原理框圖該搶答器系統(tǒng)的硬件設(shè)計(jì)是以單片機(jī)為中心控制模塊,采用模塊化設(shè)計(jì)的八路搶答器,具有五個(gè)模塊,分別為:按鍵輸入模塊、顯示模塊、時(shí)鐘與復(fù)位模塊、報(bào)警模塊、核心控制模塊。系統(tǒng)的主要功能模塊原理框圖如圖3-1所示。按鍵輸入模塊共有14個(gè)按鍵,分為搶答按鍵和控制按鍵。搶答按鍵共有八個(gè),分別為S1S8,供搶答選手進(jìn)行搶答使用,P1口為八個(gè)按鍵搶答信號(hào)的輸入口,低電平有效??刂瓢存I有六個(gè),分別為S9S14, 其中S

14、9和S10分別為“搶答時(shí)間調(diào)整鍵”和“回答時(shí)間調(diào)整鍵”, 其對(duì)應(yīng)的IO接口分別為P3.3和P3.4;S11和S12分別為時(shí)間“加1”和“減1”按鍵,其對(duì)應(yīng)的IO接口分別為P3.5和P3.6;S13和S14分別為時(shí)鐘與復(fù)位模塊包括時(shí)鐘電路和復(fù)位電路,單片機(jī)的最小系統(tǒng)就是由時(shí)鐘電路、復(fù)位電路及單片機(jī)構(gòu)成。單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)片內(nèi)各種操作的時(shí)間基準(zhǔn),單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。復(fù)位操作則使單片機(jī)的片內(nèi)電路初始化,使單片機(jī)從一種確定的初態(tài)開始運(yùn)行。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位或開關(guān)復(fù)位。當(dāng)51系列單片機(jī)的復(fù)位引腳RST(全稱RE

15、SET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。報(bào)警模塊在本系統(tǒng)中為附加模塊,它的主要用途就是起到提示并引起人們的注意。它只有在兩種情況下才發(fā)出報(bào)警,一是“開始搶答”按鍵沒有按下時(shí),選手就按下了“搶答鍵”,報(bào)警電路發(fā)出報(bào)警,提示有選手發(fā)生搶答;二是每道題的搶答時(shí)間和問題的回答時(shí)間在倒計(jì)時(shí)5秒時(shí),報(bào)警電路發(fā)出報(bào)警,提示選手倒計(jì)時(shí)的時(shí)間即將耗盡。核心控制模塊就是人們所謂的CPU,它是整個(gè)系統(tǒng)的總控制部分,本系統(tǒng)的核心控制模塊為51系列的單片機(jī),只有我們通過軟件程序的編寫,并將程序?qū)懭雴纹瑱C(jī),該系統(tǒng)才會(huì)正確的工作。時(shí)鐘模塊圖3-2 時(shí)鐘

16、電路單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作。AT89C51單片機(jī)的時(shí)鐘產(chǎn)生方法有兩種:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。無論何種形式,都需要外部附加電路,產(chǎn)生時(shí)鐘脈沖。本系統(tǒng)中采用的是內(nèi)部時(shí)鐘方式。時(shí)鐘電路如圖3-2所示。主要作用有兩點(diǎn):一是可以促使單片機(jī)系統(tǒng)快速起振;二是C1、C2具有對(duì)頻率進(jìn)行微調(diào)作用,有利于單片機(jī)系統(tǒng)振蕩頻率的穩(wěn)定,維持單片機(jī)的正常運(yùn)行。諧振電容的容值選擇,與所用的晶體振蕩器的頻率值有關(guān)。晶體振蕩器的振蕩頻率越高,相應(yīng)的諧振電容的容值也要提高。二者如果配合的好,可以發(fā)揮諧振電容的積極作用。反之,自激振蕩器頻率的穩(wěn)定性將受到影響。經(jīng)過大量的實(shí)際應(yīng)用,晶體振蕩器的頻率與諧振電容的容值之間

17、形成了一定的固定搭配。例如:當(dāng)晶體振蕩器的頻率為12MHz時(shí),諧振電容的容值一般為30pF左右。復(fù)位模塊單片機(jī)的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)2個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖3-3所示:圖3-3 復(fù)位電路數(shù)碼管發(fā)光原理分兩種情況:共陰極型a、b、c、d、e、f、g 各引腳輸入高電平有效。只要哪個(gè)引腳輸入為高電平,對(duì)應(yīng)的二極管就會(huì)發(fā)亮;共陽極型結(jié)構(gòu)數(shù)碼管的a、b、c、d、e、f、g 各引腳輸入低電平有效。只要哪個(gè)引腳輸入低電平,對(duì)應(yīng)的二極管就會(huì)發(fā)亮。通過點(diǎn)亮不同的發(fā)光段可組成不同的字形。輸入到數(shù)碼管 dp 、g、f、e、d、c、b、

18、a 的二進(jìn)制碼稱為字段碼(或稱字形碼),數(shù)碼管顯示的結(jié)果為字形。本文顯示電路使用七段數(shù)碼管7SEG-MPX4-CC,它是共陰極的,由高電電平點(diǎn)亮。圖3-4 七段數(shù)碼顯示管并通過查表法,將其在數(shù)碼管上顯示出來,其中P0口為字型碼輸入端,P2口低3位為字選段輸入端。在這里我們通過查表將字型碼送給7段數(shù)碼管,數(shù)碼管顯示原理如下:表3-1 顯示字形字段碼對(duì)應(yīng)關(guān)系(字體)顯示字型共陽極段選碼共陰極段選碼0C0H3FH1F9H06H2A4H5BH3B0H4FH499H66H592H6DH682H7DH7F8H07H880H7FH990H6FHF8EH71H“滅”FFH00HMOV A,R5MOVC A,A

19、+DPTR ;查字型MOV P2,#0FDH ;送位選碼MOV P0,A ;送字型碼ACALL DELAY ;調(diào)延時(shí),去閃爍鍵盤的去抖動(dòng)組成鍵盤的按鍵有觸點(diǎn)式和非觸點(diǎn)式兩種,單片機(jī)中應(yīng)用的一般是由機(jī)械觸點(diǎn)構(gòu)成的。按鍵如圖3-5所示,當(dāng)開關(guān)S1斷開時(shí),單片機(jī)接入口輸入為高電平,S1閉合時(shí),單片機(jī)接入口輸入為低電平。圖3-5 按鍵圖由于按鍵是機(jī)械觸點(diǎn),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),會(huì)有抖動(dòng),P1輸入端的波形如圖3-6所示。這種抖動(dòng)對(duì)于人來說是感覺不到的,但對(duì)單片機(jī)來說,則是完全可以感應(yīng)到的,因?yàn)閱纹瑱C(jī)處理的速度是在微秒級(jí),而機(jī)械抖動(dòng)的時(shí)間至少是毫秒級(jí),對(duì)單片機(jī)而言,這已是一段“漫長(zhǎng)”的時(shí)間了。如果鍵處理

20、程序采用中斷方式的話,在響應(yīng)按鍵時(shí)就可能會(huì)出現(xiàn)問題,也就是說按鍵有時(shí)靈,有時(shí)不靈,其實(shí)就是這個(gè)原因,你只按了一次按鍵,可是單片機(jī)卻已執(zhí)行了多次中斷的過程,若執(zhí)行的次數(shù)正好是奇數(shù)次,那么結(jié)果正如你所料,若執(zhí)行的次數(shù)是偶數(shù)次,那就不對(duì)了。而如果鍵處理程序采用查詢方式的話也會(huì)存在響應(yīng)按鍵遲鈍的現(xiàn)象,甚至可能會(huì)漏掉信號(hào)。圖3-6 抖動(dòng)波形圖按鍵電路圖八路智能搶答器設(shè)計(jì)中由于按鍵較少,端口資源豐富,因此采用了獨(dú)立鍵盤的方式,無雙功能和多功能設(shè)計(jì),本設(shè)計(jì)中有8個(gè)搶答按鍵輸入,一個(gè)開始按鍵、一個(gè)結(jié)束按鍵,此外還有搶答時(shí)間調(diào)整鍵、回答時(shí)間調(diào)整鍵,加一按鍵減一按鍵各一個(gè)。按鍵連接圖如圖3-7所示。圖3-7 按鍵

21、電路圖實(shí)現(xiàn)單頻音報(bào)警的接口電路比較簡(jiǎn)單,其發(fā)音元件通??刹捎脡弘姺澍Q器,當(dāng)在蜂鳴器兩引腳上加315V直流工作電壓,就能產(chǎn)生3KHz左右的蜂鳴振蕩音響。圖3-8 報(bào)警電路壓電式蜂鳴器結(jié)構(gòu)簡(jiǎn)單、耗電少,更適于在單片機(jī)系統(tǒng)中應(yīng)用。壓電式蜂鳴器,約需 10mA的驅(qū)動(dòng)電流,可在某端口接上一只三極管和電阻組成的驅(qū)動(dòng)電路來驅(qū)動(dòng)。第四章 軟件設(shè)計(jì)4.1系統(tǒng)程序設(shè)計(jì)本系統(tǒng)由于較簡(jiǎn)單,程序內(nèi)容相對(duì)較少,本著簡(jiǎn)單易懂的原則,所以采用匯編語言實(shí)現(xiàn)其軟件的設(shè)計(jì)。圖4-1 主程序流程圖4.2搶答器主程序流程圖任何控制系統(tǒng)開始正常工作前都必須要進(jìn)行初始化,在其它應(yīng)用程序確定之后,本部分程序設(shè)計(jì)在于協(xié)調(diào)各部分程序之間的關(guān)系,

22、以促使各部分程序之間有序運(yùn)行,達(dá)到進(jìn)一步優(yōu)化程序設(shè)計(jì)的目的。該智能搶答器的初始化子程序主要是兩個(gè)定時(shí)器和兩個(gè)外部中斷的初始化。主程序流程圖如圖4-1所示。在主持人未按下“搶答開始鍵”時(shí),為防止參賽選手發(fā)生搶答,專門設(shè)計(jì)了非法搶答查詢子程序。當(dāng)有選手發(fā)生搶答時(shí),系統(tǒng)會(huì)將選手的號(hào)碼保持下來,并送到LED顯示裝置進(jìn)行顯示,同時(shí)調(diào)用非法搶答子程序。非法搶答查詢子程序流程圖如圖4-2所示。該智能搶答器的搶答時(shí)間是可以根據(jù)實(shí)際需要進(jìn)行調(diào)整的,如果想調(diào)節(jié)搶答時(shí)間,按下“搶答時(shí)間調(diào)整鍵”。此時(shí),LED顯示裝置會(huì)顯示當(dāng)前搶答時(shí)間的設(shè)定值,如果想加1S,按下“加1”鍵;如果想減1S,按下“減1”鍵。LED顯示裝置

23、會(huì)自動(dòng)顯示修改后的搶答時(shí)間。搶答時(shí)間的設(shè)定值范圍是099S,0S再減1S會(huì)變成99S,同理99S再加1S會(huì)變成0S?;卮饡r(shí)間的調(diào)整與此類似。搶答時(shí)間調(diào)整子程序流程圖如圖4-3所示。圖4-3 搶答時(shí)間調(diào)整子程序流程圖 第五章 軟件仿真及程序調(diào)試隨著仿真軟件的廣泛推廣應(yīng)用,為我們的設(shè)計(jì)帶來了極大的方便。軟件仿真及程序調(diào)試這一部分是焊接實(shí)物前必須要做的一步。本設(shè)計(jì)采用的是Proteus仿真軟件進(jìn)行八路搶答器的模擬仿真,用Keil軟件對(duì)程序進(jìn)行編譯和調(diào)試。進(jìn)行Proteus軟件仿真的步驟如下:(1)打開Proteus軟件選擇新建設(shè)計(jì)。如下圖:圖5-1 新建Proteus設(shè)計(jì)(2)選擇默認(rèn)模板DEFAU

24、LT保存設(shè)計(jì),接著設(shè)定圖紙大?。簣?zhí)行菜單“系統(tǒng)”“設(shè)置圖紙大小”彈出對(duì)話框,在此對(duì)話框中選擇“A4”,單擊“確定”。(3)添加所需的元器件:?jiǎn)纹瑱C(jī)AT89C51、30Pf電容CAP、12MHz晶振CRYSTAL、共陰極七段數(shù)碼管7SEG-MPX4-CC、HITEMP10U50V、八輸入與非門74HC30、六反相器74LS04、揚(yáng)聲器SPEAKER、電阻RES、按鍵BUTTON。添加步驟:在器件選擇按鈕中單擊P,彈出對(duì)話框,在關(guān)鍵字框中輸入所需元器件的名稱就可以找到相關(guān)元器件,然后雙擊元器件名稱就可以添加元器件。(4)將器件放置到繪圖區(qū),放置電源、地,然后進(jìn)行連線,最后設(shè)置、修改原件屬性。完成以

25、上步驟。 謝 辭課程設(shè)計(jì)是對(duì)我們知識(shí)運(yùn)用能力的一次全面的考核,也是對(duì)我們進(jìn)行科學(xué)研究基本功的訓(xùn)練,培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí)獨(dú)立地分析問題和解決問題的能力。我在學(xué)習(xí)上和思想上都受益非淺,這除了自身的努力外,與各位老師、同學(xué)和朋友的關(guān)心、支持和鼓勵(lì)是分不開的。 我的心情無法平靜,從開始進(jìn)入課題到順利完成,有許多師長(zhǎng)、同學(xué)、朋友給了我無言的幫助,在這里請(qǐng)接受我誠摯的謝意!同時(shí)也感謝學(xué)院為我提供良好的做課程設(shè)計(jì)的環(huán)境。最后再次感謝所有幫助過我并給我鼓勵(lì)的老師、同學(xué)和朋友,謝謝你 參考文獻(xiàn) 1 余發(fā)山.單片機(jī)原理及應(yīng)用技術(shù)M.徐州:中國礦業(yè)大學(xué)出版社2008.2 徐建軍.MCS-51 系列單片機(jī)應(yīng)用及接

26、口技術(shù)M.北京:人民郵電出版社2003.3 李光飛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo).北京:北京航天航空大學(xué)出版社,2004.4 馮育長(zhǎng).單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)例指導(dǎo).西安:西安電子科技大學(xué)出版社,2007. 附 錄附錄1:電路原理圖附錄2:程序清單/主程序/OK EQU 20H ;搶答開始標(biāo)志位RING EQU 22H ;響鈴標(biāo)志位DATAO EQU 36H ;搶答按鍵口數(shù)據(jù)存放地址ORG 0000HAJMP MAINORG 0003HAJMP INTT0ORG 000BHAJMP T0INTORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,#20 ;初設(shè)搶答時(shí)間20sMO

27、V R2,#30 ;初設(shè)答題時(shí)間30sMOV 38H,#60 ;啟用錦囊時(shí)間為60sMOV TMOD,#11H ;設(shè)置為定時(shí)器/方式1MOV TH0,#0F0H MOV TL0,#0FFH ;越高發(fā)聲頻率越高M(jìn)OV TH1,#3CHMOV TL1,#0B0H ;50ms為一次溢出中斷SETB EA SETB ET0SETB ET1 ;允許兩個(gè)中斷T0/T1CLR OKCLR RINGSETB TR1SETB TR0 ;一開始就運(yùn)行定時(shí)器,以顯示FFF。如果想從新計(jì)數(shù),重置TH1/TL1就可以了 /查詢程序/START: MOV DATAO,#0FFH ;初始化MOV R5,#0bHMOV R4

28、,#0bHMOV R3,#0bHACALL DISPLAY ;未開始搶答時(shí)顯示FFFJNB P3.3,SELSUB0JNB P3.4,TZ3 ;倒計(jì)時(shí)調(diào)整JB P3.0,NEXTACALL DELAYJB P3.0,NEXT ;去抖動(dòng),如果按下“開始鍵” 就向下執(zhí)行,否則跳到非法搶答查詢SETB EX0 ;開放INT0ACALL BARK ;按鍵發(fā)聲MOV A,R1MOV R6,A ;送R1到R6,因?yàn)镽1中保存了搶答時(shí)間SETB OK ;搶答標(biāo)志位,在使用錦囊時(shí)用作判斷是搶答倒計(jì)時(shí)還是回答倒計(jì)時(shí)MOV R3,#0AH ;搶答只顯示計(jì)時(shí),滅號(hào)數(shù)AJMP COUNT ;進(jìn)入倒計(jì)時(shí)程序,查詢有效搶

29、答NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2JNB P1.2,FALSE3JNB P1.3,FALSE4JNB P1.4,FALSE5JNB P1.5,FALSE6JNB P1.6,TZ1JNB P1.7,TZ2AJMP STARTTZ1: AJMP FALSE7TZ2: AJMP FALSE8TZ3: AJMP SELSUB1/非法搶答處理程序/FALSE1: MOV R3,#01HAJMP ERRORFALSE2: MOV R3,#02HAJMP ERRORFALSE3: MOV R3,#03HAJMP ERRORFALSE4: MOV R3,#04HAJM

30、P ERRORFALSE5: MOV R3,#05HAJMP ERRORFALSE6: MOV R3,#06HAJMP ERRORFALSE7: MOV R3,#07HAJMP ERRORFALSE8: MOV R3,#08HAJMP ERROR/SELSUB0搶答時(shí)間R1調(diào)整程序/SELSUB0: MOV A,R1MOV B,#0AHDIV ABMOV R4,AMOV R5,BMOV R3,#0AHACALL DISPLAY ;先在兩個(gè)時(shí)間LED上顯示R1JNB P3.5,INC0 ;P3.5為+1s,按下跳到INC0JNB P3.6,DEC0 ;P3.6為-1s,按下跳到DEC0JNB P

31、3.1,BACK0 ;P3.1為確定鍵,按下跳到BACK0AJMP SELSUB0INC0: MOV A,R1CJNE A,#63H,ADD0 ;如果R1不是99,R1就加1,如果是99,R1就置0MOV R1,#00HACALL DELAY1AJMP SELSUB0ADD0: INC R1ACALL DELAY1AJMP SELSUB0,DEC0: MOV A,R1JZ SETR1DEC R1ACALL DELAY1AJMP SELSUB0SETR1: MOV R1,#63HACALL DELAY1AJMP SELSUB0BACK0: AJMP START/SELSUB1(回答時(shí)間R2調(diào)整程

32、序)/SELSUB1: MOV A,R2MOV B,#0AHDIV ABMOV R4,AMOV R5,BMOV R3,#0AHACALL DISPLAYJNB P3.5,INC1JNB P3.6,DEC1JNB P3.1,BACK1AJMP SELSUB1INC1: MOV A,R2CJNE A,#63H,ADD1MOV R2,#00HACALL DELAY1AJMP SELSUB1ADD1: INC R2ACALL DELAY1AJMP SELSUB1DEC1: MOV A,R2JZ SETR2DEC R2ACALL DELAY1AJMP SELSUB1SETR2: MOV R2,#63HA

33、CALL DELAY1AJMP SELSUB1BACK1: AJMP START/啟用錦囊程序/REPEAT: MOV A,38HMOV R6,ACLR RING/倒計(jì)時(shí)程序/COUNT: MOV R0,#00H ;重置定時(shí)器中斷次數(shù)MOV TH1,#3CHMOV TL1,#0B0H ;重置定時(shí)器RECOUNT: MOV A,R6 ;R6保存了倒計(jì)時(shí)的時(shí)間MOV B,#0AHDIV AB ;除10分出十位和各位MOV 30H,A ;十位存到(30H) MOV 31H,B ;個(gè)位存到(31H)MOV R4,30H ;取十位MOV R5,31H ;取個(gè)位MOV A,R6SUBB A,#07HJNC

34、 LARGER ;大于5s跳到LARGER,小于等于5s會(huì)提醒MOV A,R0CJNE A,#0AH,FULLCLR RINGAJMP CHECKFULL: CJNE A,#14H,CHECKSETB RINGMOV A,R6JZ QUIT ;計(jì)時(shí)MOV R0,#00HDEC R6 AJMP CHECKLARGER: MOV A,R0CJNE A,#14H,CHECKDEC R6MOV R0,#00HCHECK: JNB P3.1,QUIT ;按下停止鍵就退出JNB OK, CHECKK ;只有回答倒計(jì)時(shí)有效AJMP NEXTTCHECKK: JNB P3.0,REPEAT ;判斷是否使用錦囊

35、NEXTT:ACALL DISPLAYJB OK,ACCOUTAJMP RECOUNTACCOUT: MOV A,DATAOJNB ACC.0,TRUE1JNB ACC.1,TRUE2JNB ACC.2,TRUE3JNB ACC.3,TRUE4JNB ACC.4,TRUE5JNB ACC.5,TRUE6JNB ACC.6,TZ7JNB ACC.7,TZ8AJMP RECOUNTTZ7: AJMP TRUE7TZ8: AJMP TRUE8QUIT: CLR OKCLR RING AJMP START/正常搶答處理程序/TRUE1: ACALL BARKMOV A,R2MOV R6,AMOV R3

36、,#01HCLR OKAJMP COUNTTRUE2: ACALL BARKMOV A,R2MOV R6,AMOV R3,#02HCLR OKAJMP COUNTTRUE3: ACALL BARKMOV A,R2MOV R6,AMOV R3,#03HCLR OKAJMP COUNTTRUE4: ACALL BARKMOV A,R2MOV R6,AMOV R3,#04HCLR OKAJMP COUNTTRUE5: ACALL BARKMOV A,R2MOV R6,AMOV R3,#05HCLR OKAJMP COUNTTRUE6: ACALL BARKMOV A,R2MOV R6,AMOV R3,#06HCLR OKAJMP COUNTTRUE7: ACALL BARKMOV A,R2MOV R6

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論