搶答器單片機課程設計石培林_第1頁
搶答器單片機課程設計石培林_第2頁
搶答器單片機課程設計石培林_第3頁
搶答器單片機課程設計石培林_第4頁
搶答器單片機課程設計石培林_第5頁
已閱讀5頁,還剩20頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設計1緒論1.1課題研究背景及意義本次課程設計制作的是簡易搶答器。對于搶答器我們大家都很熟悉:是用于選手做搶答題目時用的,選手進行搶答,最先搶到題的選手回答問題。本實驗設計的簡易搶答器由主體電路與擴展電路組成。優先編碼電路、鎖存器、譯碼電路將參賽隊的輸入信號在顯示器上輸出;用控制電路和主持人開關啟動報警電路,以上兩部分組成主體電路。通過定時電路和譯碼電路將秒脈沖產生的信號在顯示器上輸出實現計時功能,構成擴展電路。經過布線、焊接、調試等工作后智能搶答器成形。1.2 相關背景介紹搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應的編號,并在數碼管上顯示,同時揚聲器發出報警聲響提示。選手搶

2、答實行優先鎖存,優先搶答選手的編號一直保持到主持人將系統清除為止。用單片機來實現,他的制作比較簡單,與我們學的單片機原理聯系緊密,能將我們所學知識用于實際,對鞏固所學知識有重要意義,使總體方案易于實現。所以本方案用單片機來實現。在有些實際競賽的場合,只要滿足顯示搶答有效和有效組別即可,所以我們打算用一片74HC373(8位數據鎖存器)來實現本課程設計的簡易搶答器的功能,這是一個顯示方式簡單,價格低廉,經濟實用的搶答器設計方案。在要求不高的場合,能完全符合要求。 2 總體設計方案2.1 智能搶答器主要功能搶答器原理:每個選手的座位前安裝一只搶答按鈕開關和一只信號燈。主持人的座位前安裝一只復原按鈕

3、開關、一只蜂鳴器和一只搶答器工作狀態指示燈。每當主持人口頭發出允許搶答的號令之后,哪個選手先按下座位上的按鈕開關,該座位的信號燈就先被點亮,同時封鎖其他按鈕開關的活動。并且熄滅主持人座位上的狀態指示燈和發出 3 聲類似于電話振鈴的提示聲,以“聲明”此次搶答動作已經完成。在主持人確認后,按下復原按鈕,狀態指示燈重新點亮,并且同時發出“笛笛”聲,為下一次的搶答作好準備。電路中的蜂鳴器FM是一只帶有助音腔的壓電陶瓷蜂鳴器,用于模擬發出報警聲的功率放大器和喇叭。發聲的原理是,作用在兩個電極極板的電位在發生變化時,陶瓷材料就發生彎曲,從而振動空氣發出聲音。FM和 4 只按鈕開關 SWaSWd都是在演示板

4、的基礎上額外添加的。由于RB端口內部具有上拉電阻,只要用軟件設置其有效,即可省略在4 只端口引腳上外接上拉電阻。參賽選手在設定的時間內進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統清除為止。如果定時時間已到,無人搶答,本次搶答無效,系統報警并禁止搶答,定時顯示器上顯示0。利用單片機可以用很少元件實現功能。單片機性能穩定,可操作性強。可以只用P0口連接排阻(用作上拉電阻),完成驅動LED的功能,串接按鍵可以由選手自己控制搶答機會。利用單片機程序判斷選手按鍵是否有效,但當選手違規搶答時,利用簡單程序顯示選手序號,啟動蜂鳴器并不間斷,告訴主持人有人違規操

5、作,搶答無效。給出相應的延時,選手按正常的操作搶答,軟件倒記時。如果有選手在規定的時間以前完成問題,主持人通過按鍵開始按鈕來復位,開始新的問題作答,因為程序不是很大不需要擴展存儲空間,選手按鍵跳入相應的子程序,回答倒記時與普通搶答器相比,我們還加入了一些不一樣的想法: 1、具有清零裝置和搶答控制,可由主持人操縱避免有人在主持人說“開始”前提前搶答違反規則。 2、具有定時功能,在10秒內無人搶答表示所有參賽選手獲參賽隊對本題棄權。 3、10秒時仍無人搶答其報警電路工作表示搶答時間耗盡并禁止搶答。2.2 電路設計本搶答器的電路主要有四部分組成:數字搶答電路、時序控制電路、報警電路以及可預置時間的定

6、時電路。其中數字搶答部分有一個74HC373鎖存器和數碼管顯示器組成,可以將四位搶答者的按鈕通過數碼管顯示器顯示出他們最先搶答者的序號。而時序控制電路的功能是當參賽選手按動搶答器時,使揚聲器發聲,這時搶答電路和定時電路停止工作。而且設定的時間(本課題設置為10秒)到達后若無人搶答,則報警電路工作。報警電路工作的條件是當設定時間到達后或者有人搶答時,報警電路被輸入一個高電平,這時此電路工作。2.3 四位搶答器設計要求本次設計的簡易搶答器(四位搶答器)將具有以下功能:(1)搶答器同時供4名選手比賽搶答用,有4個按鈕S0 S3表示。(2)設置一個系統清除和搶答控制開關“開始”,“結束”,該開關由主持

7、人控制。(3)搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應的編號,揚聲器發出聲響提示,并在數碼管上顯示選手號碼。選手搶答實行優先鎖存,優先搶答選手的編號一直保持到主持人將系統清除為止。此外還有一些擴展功能:(1)搶答器具有定時搶答功能,且一次搶答的時間由主持人設定(如10秒)。當主持人啟動“開始”鍵后,定時器進行減計時。(2) 參賽選手在設定的時間內進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統清除為止。(3) 如果定時時間已到,無人搶答,本次搶答無效,系統報警并禁止搶答,定時顯示器上顯示0。2.4硬件介紹2.4.1 AT89S51單片機簡介

8、AT89S51是8位通用微處理器。采用標準的C51內核,在內部功能及管腳排布上 PDIP封裝的AT89S51引腳圖與通用的80C51 相同。功能包括對會聚主IC 內部寄存器、數據RAM及外部接口等功能部件的初始化,會聚調整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復位輸入端口,外接電阻電容組成的復位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負端。P0P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設

9、計中,P0 端口(3239 腳)被定義為N1 功能控制端口,分別與N1的相應功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號功能端口,連接主板CPU 的相應功能端,用于當前制式的檢測及會聚調整狀態進入的控制功能。P0 口:P0 口是一組8 位漏極開路型雙向I/O 口, 也即地址/數據總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8 個TTL邏輯門電路,對端口P0 寫“1”時,可作為高阻抗輸入端用。 在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址

10、(低8 位)和數據總線復用,在訪問期間激活內部上拉電阻。 P1 口:P1 是一個帶內部上拉電阻的8 位雙向I/O 口, P1 的輸出緩沖級可驅動(吸收或輸出電流)4 個TTL 邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 引腳號功能特性P1.0T2,時鐘輸出P1.1T2EX(定時/計數器2)與AT89C51 不同之處是,P1.0 和P1.1 還可分別作為定時/計數器2 的外部計數輸入(P1.0/T2)和輸入(P1.1/T2EX),參見表1。 Flash 編程和程序校驗期間

11、,P1 接收低8 位地址。 P2 口:P2 是一個帶有內部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可驅動(吸收或輸出電流)4 個TTL 邏輯 門電路。對端口P2 寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 在訪問外部程序存儲器或16 位地址的外部數據存儲器(例如執行MOVX DPTR 指令)時,P2 口送出高8 位地址數據。在訪問8 位地址的外部數據存儲器(如執行MOVX RI 指令)時,P2 口輸出P2 鎖存器的內容。 表1 P1.0和P1.1的功能P3 口:P3 口是一組帶

12、有內部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅動(吸收或輸出電流)4 個TTL邏輯門電路。對P3 口寫入“1”時,它們被內部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。 P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能 P3 口還接收一些用于Flash 閃速存儲器編程和程序校驗的控制信號。 RST:復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。 ALE/PROG:當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節。一般情況下,ALE 仍以時鐘振蕩頻

13、率的1/6 輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE 脈沖。 PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52 由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN 有效,即輸出兩個脈沖。在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號。 EA/VPP:外部訪問允許。欲使CPU 僅訪問外部程序存儲器(地址為0000HFFFFH),EA 端必須保持低電平(接地)。需注意的是:如果加密位LB1 被編程,復位時內部會鎖存EA端狀態。 如EA端為高電平(接Vcc端),CPU 則執行內部

14、程序存儲器中的指令。 XTAL1:振蕩器反相放大器的及內部時鐘發生器的輸入端。 XTAL2 :振蕩器反相放大器的輸出端。2.4.2鎖存器鎖存器是一種對脈沖電平敏感的存儲單元電路,它們可以在特定輸入脈沖電平作用下改變狀態。由若干個鐘控D觸發器構成的一次能存儲多位二進制代碼的時序邏輯電路,叫鎖存器件。 邏輯結構與功能表見圖2-4:圖2-4 鎖存器邏輯結構與功能表8位鎖存器74HC373的邏輯圖如下圖所示。其中使能端G加入CP信號,D為數據信號。輸出控制信號為0時,鎖存器的數據通過三態門進行輸出。圖2-5 74HC373引腳(管腳)圖:圖2-6 74LS373內部邏輯圖 圖2-7 74LS

15、373真值表所謂鎖存器,就是輸出端的狀態不會隨輸入端的狀態變化而變化,僅在有鎖存信號時輸入的狀態被保存到輸出,直到下一個鎖存信號到來時才改變。在某些運算器電路中有時采用鎖存器作為數據暫存器數據有效延遲后于時鐘信號有效。這意味著時鐘信號先到,數據信號后到。 典型的鎖存器邏輯電路是 D 觸發器電路。 鎖存,就是把信號暫存以維持某種電平狀態。鎖存器的最主要作用是緩存,其次完成高速的控制其與慢速的外設的不同步問題,再其次是解決驅動的問題,最后是解決一個 I/O 口既能輸出也能輸入的問題。 3系統硬件設計3.1 硬件電路的總體框圖本數字搶答器的硬件電路總體框圖見圖3-1:按鍵與按鈕電路復位等輔助電路數碼

16、管顯示電路總體開關電源系統 圖3-1 數字搶答器電路框圖3.2 電路器件選擇本次設計的數字搶答器采用AT89S51單片機作為系統的控制單元。就搶答器而言,通常可采用液晶顯示或數碼管顯示。由于數碼管作為一種主動顯示器件,具有亮度高、價格便宜等優點,而且市場上也有專門的時鐘顯示組合數碼管。本實驗用數碼管來顯示。3.3最小系統設計3.3.1時鐘頻率電路圖單片機必須在時鐘的驅動下才能工作.由之前所學的單片機原理最小系統內容,在單片機內部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產生一定的時鐘信號送到單片機內部的各個單元,決定單片機的工作速度。晶振電路見圖3-2:·圖3-2晶振電路3.3.2

17、復位電路圖設計單片機的第9腳RST為硬件復位端,只要將該端持續4個機器周期的高電平即可實現復位,復位后單片機的各狀態都恢復到初始化狀態。復位電路圖見圖3-3所示:圖3-3復位電路3.3.3 鍵盤掃描電路的設計在單片機應用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。本實驗用的是獨立式鍵盤。鍵盤掃描電路圖見圖3-4:圖3-4獨立鍵盤3.3.4功能鍵及發聲系統設計聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個口線的“高”電平或低電平,則在該口線上就能產生一定頻率的矩形波,接上喇叭就能發出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續時間,就能改變輸出頻率,從而改變音調,使喇

18、叭發出不同的聲音。通過添加一些具體的功能鍵可以使系統的功能更加完善。功能鍵及發聲系統結構圖見圖3-5:圖3-5功能鍵及發聲系統結構圖3.4總體設計結構圖數字搶答器的總體設計結構見圖3-6:圖3-6總體結構圖4 個人小結 這次的課程設計的在學期開始時進行的,經過一個暑假的“沉淀”,對做課程所要求的嚴謹科學態度還不適應了,所以一開始選題的時候是很不知所措,再加上考研時間的需要,這次就選了個比較簡答的搶答器。 當天選了題目之后,就開始找資料,先是就之前所學的單片機原理及應用技術進行有關芯片的研究,后來又去圖書館找了單片機的實訓教程,最終確定了用芯片AT89C52。這次的課程設計我們希望能加入一些新的

19、想法:比如說不準有人搶答,設定搶答時間。主要是考慮到以前看節目的時候經常會看到主持人還沒說開始的時候有些人已經搶答了,而且也算是為以后的課程設計奠定基礎。找了相關資料,在P3口添加了6個按鍵,設定了主持人的復位鍵(開始,結束),設定搶答時間。確定了電路圖。 然后是在proteus中畫電路,由搭檔在keil中編寫程序,經過反復檢查,修改。總算是調試出來了。 接著就是去采集器件了,一開始也沒想到要用插針,按照電路圖在版子上描畫電路圖,就開始焊,后來發現可能是排版的不夠嚴謹吧,板子背面的排線焊出來會很雜亂。于是就想到了插針,又去電子市場買了些。終于是焊好了,一調試結果也是正確,應該說主要是之前的工作

20、做的比較充分。設計電子智能搶答器,采用了單片機技術、數字電子、模擬電子等相關技術。把在學校三年所學知識連成一串。理論聯系實踐是我懂得了在系統設計中設計方法的選用是系統設計能否成功的關鍵。在以后的道路中,我會嚴格要求自己,追求完美。5 致謝 這次的課程設計是對過去所學知識的系統提高和擴充的過程,為今后的發展打下了良好的基礎。經過反復的查資料以及向同學請教,我學會了很多做課題的思想,套路。老師給我們安排的課程設計就是在之前理論學習的基礎上增加自己的動手能力,是我們的思維更活躍,不至于做只會理論知識的“書呆子”。這對以后我們的出路奠定了很好的基礎。在此,我要感謝指導老師莊志紅和還有其他幫助過我們的同

21、學。6 參考文獻1.單片機原理及應用技術 范力旻 電子工業出版社2.單片機應用技術實訓教程 胡文金 鐘秉翔 楊健 重慶大學出版社 3.8051單片機徹底研究實習篇 林申茂編著 人民郵電出版社 4.單片機原理及接口技術實踐教程 胡建編著 機械工業出版社 5.新型單片機接口器件與技術 林凌,李剛,丁茹,李小霞.西安:西安電子科技大學出版社,2005年6.單片機原理與應用及C51程序設計 謝維城,楊加國.清華大學出版社,2006年7. 附錄附錄1:程序清單OK EQU 20H;搶答開始標志位 RING EQU 22H;響鈴標志位 ORG 0000H AJMP MAIN ORG 0003H AJMP

22、INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#10;初設搶答時間為10s MOV R2,#10;初設答題時間為10s MOV TMOD,#11H;設置未定時器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高發聲頻率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms為一次溢出中斷 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允許四個中斷,T0/T1/INT0/IN

23、T1 CLR OK CLR RING SETB TR1 SETB TR0;一開始就運行定時器,以開始顯示FFF.如果想重新計數,重置TH1/TL1就可以了;=查詢程序=START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;未開始搶答時候顯示FFF JB P3.0,NEXT;ddddddd ACALL DELAY JB P3.0,NEXT;去抖動,如果"開始鍵"按下就向下執行,否者跳到非法搶答查詢 ACALL BARK;按鍵發聲 MOV A,R1 MOV R6,A;送R1->R6,因為R1中保存了搶答時間 SE

24、TB OK;搶答標志位,用于COUNT只程序中判斷是否查詢搶答 MOV R7,#01H ;讀搶答鍵數據信號標志,這里表示只讀一次有用信號 MOV R3,#0AH;搶答只顯示計時,滅號數 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;=非法搶答處理程序=FALS

25、E1: MOV R3,#01H AJMP ERRORFALSE2: MOV R3,#02H AJMP ERRORFALSE3: MOV R3,#03H AJMP ERRORFALSE4: MOV R3,#04H AJMP ERRORFALSE5: MOV R3,#05H AJMP ERRORFALSE6: MOV R3,#06H AJMP ERRORFALSE7: MOV R3,#07H AJMP ERRORFALSE8: MOV R3,#08H AJMP ERROR;=INT0(搶答時間R1調整程序)=INT0SUB: MOV A,R1 MOV B,#0AH DIV AB MOV R5,A

26、MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在兩個時間LED上顯示R1 JNB P3.4,INC0;P3.4為+1s鍵,如按下跳到INCO JNB P3.5,DEC0;P3.5為-1s鍵,如按下跳到DECO JNB P3.1,BACK0;P3.1為確定鍵,如按下跳到BACKO AJMP INT0SUBINC0: MOV A,R1 CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0

27、SUBDEC0: MOV A,R1 JZ SETR1;如果R1為0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBBACK0: RETI ;=INT1(回答時間R2調整程序)=INT1SUB: MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P3.1,BACK1 AJMP INT1SUBINC1: MOV A,R2

28、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 ;=倒計時程序(搶答倒計時和回答倒計時都跳到改程序)=REPEAT: MOV A,R2 ;使用錦囊時重新計時 MOV R6,A CLR RING COUNT: MOV R0,#00H;重置定時

29、器中斷次數 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 CJNE A,#0AH,FULL;1s中0.5s向下運行 CLR RING AJMP CHECKFULL:

30、CJNE A,#14H,CHECK;下面是1s的情況,響并顯示號數并清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.1,QUIT;如按下停止鍵退出 JNB OK,CHECKK ;只在回答倒計時才有效 AJMP NEXTTCHECKK: JNB P3.0,REPEAT ;判斷是否

31、使用錦囊NEXTT: ACALL DISPLAY JB OK,ACCOUT;如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續倒數(這里起到鎖搶答作用) AJMP RECOUNTACCOUT: MOV A,36H JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TRUE3 JNB ACC.3,TRUE4 JNB ACC.4,TRUE5 JNB ACC.5,TRUE6 JNB ACC.6,TZ1 JNB ACC.7,TZ2 AJMP RECOUNTTZ1: JMP TRUE7TZ2: JMP TRUE8 QUIT: CLR OK;如果按下了"停止鍵&

32、quot;執行的程序 CLR RING AJMP START;=正常搶答處理程序=TRUE1: ACALL BARK 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 R

33、6,A MOV R3,#04H CLR OK AJMP COUNTTRUE5: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNTTRUE6: ACALL BARK MOV A,R2 MOVR6,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;=犯規搶答程序

34、=ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3;犯規號數暫存與(34H)HERE: MOV A,R0 CJNE A,#06H,FLASH;0.3s向下運行->滅并停響 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三燈全滅 AJMP CHECK1FLASH: CJNE A,#0CH,CHECK1;下面是0.8s的情況,響并顯示號數并清R0,重新計 SETB RING MOV R0,#00H MOV R3,34H;取回號數 MOV R5,#0BH MOV R4,#0BH;顯示FF

35、和號數 AJMPCHECK1CHECK1: JNB P3.1,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START;=顯示程序=DISPLAY: MOV DPTR,#DAT1;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出, MOV A,R3 MOVC A,A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY2 MOV DPTR,#DAT2 MOV A,R5 MOVC A,A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY2 MOV A,R4 MOVC A,A+DPTR MOV P2,#0fbH MOV P0,A ACALL DELAY2 RETDAT1: DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;"滅","1","2","3","4","5","6","7","8","9","滅","F"

溫馨提示

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

評論

0/150

提交評論