【正文】
2 31 數(shù)字技術(shù)是當(dāng)前發(fā)展最快的學(xué)科之一,數(shù)字邏輯器件已從 60 年代的小規(guī)模集成電路( SSI)發(fā)展到目前的中、大規(guī)模集成電路( MSI、 LSI)及超大規(guī)模集成電( VLSI)。本文設(shè)計(jì)出以 AT89S51 單片機(jī)為核心的八路搶答器 , 采用了數(shù)字顯示器直接指示,自動(dòng)鎖存顯示結(jié)果,并自動(dòng)復(fù)位的設(shè)計(jì)思想 ,它能根據(jù)不同的搶答輸入信號(hào),經(jīng)過(guò)單片機(jī)的控制處理并產(chǎn)生不同的與輸入信號(hào)相對(duì)應(yīng)的輸出信號(hào),最后通過(guò) LED 數(shù)碼管顯示相應(yīng)的路數(shù), 即使兩組的搶答時(shí)間相差幾微秒,也可分辨出是哪組優(yōu)先按下的按鍵, 充分利用了單片機(jī) 系統(tǒng) 結(jié)構(gòu)簡(jiǎn)單、功能強(qiáng)大、可靠性好、實(shí)用性強(qiáng)的特點(diǎn)。例如在現(xiàn)代測(cè)量技術(shù)中,數(shù)字測(cè)量?jī)x表不僅比模擬測(cè)量?jī)x表精度高,功能高,而且容易實(shí)現(xiàn)測(cè)量的自動(dòng)化和智能化。 ( 2)設(shè)置一個(gè)系統(tǒng)清除 和搶答控制開(kāi)關(guān) S,該開(kāi)關(guān)由主持人控制。 搶答器的需求分析 在搶答中,只有開(kāi)始后搶答才有效,如果在開(kāi)始搶答前搶答為無(wú)效。 89S51 就是在這樣的背景下取代 89C51 的,現(xiàn)在, 89S51 目前已經(jīng)成為了實(shí)際應(yīng)用市場(chǎng)上新的寵兒,作為市場(chǎng)占有率第一的 Atmel 目前公司已經(jīng)停產(chǎn) AT89C51,將用 AT89S51 代替。他將通用 CPU和在線可編程 Flash 集成在一個(gè)芯片上,形成了功能強(qiáng)大、使用靈活和具有較高性能性價(jià)比的微控制器。其內(nèi)部結(jié)構(gòu)如圖 23 所示 。因?yàn)楹苌儆幸诲N定音的電路設(shè)計(jì), 如果現(xiàn)在不留余地,將來(lái)可能要為一點(diǎn)小小的修改或擴(kuò)展而被迫進(jìn)行全面返工。如有些新的信號(hào)需要采集,就必須增加輸入檢測(cè)端;有些物理量需要控制,就必須增加輸出端。 振蕩方式的選擇: 內(nèi)部振蕩方式, MCS51 內(nèi)部都有 一個(gè)反相放大器, XTAL XTAL2 分別為反相放大器輸入和輸出端,外接定時(shí)反饋元件以后就組成振蕩器,產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部的各個(gè)部件。 第三章硬件電路的設(shè)計(jì) 2 31 一般選用石英晶體振蕩器。s。此時(shí) ALE、 /PSEN、 P0、 PP P3 口都輸出高電平。當(dāng)振蕩頻率為 12MHZ 時(shí),典型值為 2 31 C=10uF,R= . 圖 33上電復(fù)位電路 人工復(fù)位 除上電自動(dòng)復(fù)位以外,常常需要人工復(fù)位,將一個(gè)按鈕開(kāi)關(guān)并聯(lián)于上電自動(dòng)復(fù)位電路,按一下開(kāi)關(guān)就 RST 端出現(xiàn)一段時(shí)間的高電平,即使器件復(fù)位。這時(shí)顯示模塊不是由操作者通過(guò)命令鍵來(lái)驅(qū)動(dòng),而是由各類自動(dòng)執(zhí)行的功能模塊來(lái)驅(qū)動(dòng)。 這里將顯示功能集中到一起,作為一個(gè)功能模塊,就要求它的功能全面,能根據(jù)系統(tǒng)軟件提供的信息自動(dòng)完成顯示內(nèi)容的查找,變換和輸出驅(qū)動(dòng)。 在這里我 們使用的是七段數(shù)碼管顯示,通常在顯示 [6]上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動(dòng)態(tài)顯示。站在系統(tǒng)監(jiān)控軟 件設(shè)計(jì)的立場(chǎng)上來(lái)看,僅僅完成鍵盤掃描,讀取當(dāng)前時(shí)刻的鍵盤狀態(tài)是不夠的,還有不少問(wèn)題需要妥善解決,否則,人們?cè)诓僮麈I盤就容易引起誤操作和操作失控現(xiàn)象。如果讀鍵過(guò)程安排在定時(shí)中斷子程序中,就可省去專門的延時(shí)子程序,利用兩次定時(shí)中斷的時(shí)間間隔來(lái)完成抖動(dòng)處理。軟件復(fù)位就是 用一系列指令來(lái)模擬硬件復(fù)位功能,最后通過(guò)轉(zhuǎn)移指令使程序從 0000H 地址開(kāi)始執(zhí)行。 有復(fù)位時(shí)系統(tǒng)的歷史狀況,可將復(fù)位分為“冷啟動(dòng)”和“熱啟動(dòng)”。在各執(zhí)行模塊進(jìn)行定義時(shí),將要牽扯到的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型問(wèn)題也一并規(guī)劃好。也可以將全部 程序均安排在前臺(tái),后臺(tái)程序?yàn)?“ 使系統(tǒng)進(jìn)入睡眠狀態(tài) ” ,以利于系統(tǒng)節(jié)電和抗干擾。因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答 ,所以就鎖了搶答 AJMP COUNT TRUE2:ACALL BARK。搶答開(kāi)始標(biāo)志位 RING EQU 22H 。一開(kāi)始就運(yùn)行定時(shí)器 ,以開(kāi)始顯示 FFF. 如果想重新計(jì)數(shù) ,重置 TH1/TL1 就可以了 查詢程序 START: MOV R5,0BH MOV R4,0BH MOV R3,0BH ACALL DISPLAY 。按鍵發(fā)聲 MOV R3,01H AJMP ERROR FALSE2: ACALL BARK MOV R3,02H AJMP ERROR FALSE3: ACALL BARK MOV R3,03H AJMP ERROR 程序分析 2 31 FALSE4: ACALL BARK MOV R3,04H AJMP ERROR FALSE5: ACALL BARK MOV R3,05H AJMP ERROR FALSE6: ACALL BARK MOV R3,06H AJMP ERROR FALSE7: ACALL BARK MOV R3,07H AJMP ERROR FALSE8: ACALL BARK MOV R3,08H AJMP ERROR INT0(搶答時(shí)間 R1 調(diào)整程序 ) INT0SUB : MOV A,R1 MOV B,0AH DIV A,B MOV R5,A MOV R4,B MOV R3,0AH ACALL DISPLAY 。=====INT1(回答時(shí)間 R2 調(diào)整程序 )===== INT1SUB:MOV A,R2 MOV B,0AH DIV AB MOV R5,A MOV R4,B MOV R3,0AH ACALL DISPLAY JNB ,INC1 JNB ,DEC1 JNB ,BACK1 AJMP INT1SUB INC1: MOV A,R2 CJNE A,63H,ADD1 MOV R2,00H ACALL DELAY1 AJMP INT1SUB ADD1: INC R2 ACALL DELAY1 AJMP INT1SUB DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUB SETR2: MOV R2,63H ACALL DELAY1 AJMP INT1SUB BACK1: RETI 。取十位 MOV R4,31H。計(jì)時(shí)一秒 R6 自動(dòng)減 1 MOV R0,00H CHECK: JNB ,QUIT。 MOV A,R2 MOV R6,A MOV R3,02H CLR OK AJMP COUNT TRUE3:ACALL BARK。犯規(guī)號(hào)數(shù)暫存與 (34H) HERE: MOV A,R0 CJNE A,0AH,FLASH。滅 ,1,2,3,4,5,6,7,8,9,滅 ,F DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H 。RING標(biāo)志位為 1 時(shí)候 率的聲音 OUT: RETI 。我想這對(duì)于自己以后的學(xué)習(xí)和工作都會(huì)有很大的幫助的。 但是,通過(guò)這次設(shè)計(jì)我也發(fā)現(xiàn)自己的很多不足之處。s antiracism taskforce, is in London for the Football Association39。 May be back in the past, to oneself the paranoid weird belief disillusionment, these days, my mind has been very messy, in my mind constantly. Always feel oneself should go to do something, or write something. Twenty years of life trajectory deeply shallow, suddenly feel something, do it. 一字開(kāi)頭的年齡已經(jīng)到了尾聲。t want to give vent to out your inner voice can be in the high school children of the feelings in a period, but was eventually infarction when graduation party in the throat, later again stood on the pitch he has sweat profusely, looked at his thrown a basketball hoops, suddenly found himself has already can39。 The end of our life, and can meet many things really do? 而窮盡我們的一生,又能遇到多少事情是真正地非做不可? During my childhood, think lucky money and new clothes are necessary for New Year, but as the advance of the age, will be more and more found that those things are optional。s 21 win. Michel Platini, president of European football39。t agree with the disciplinary action your employer has taken against you ? your employer dismisses you and you think that you have been dismissed unfairly. For more information about dismissal and unfair dismissal, see Dismissal. You can make a claim to an employment tribunal, even if you haven39。它才是一個(gè)設(shè)計(jì)的靈魂所在。 本設(shè)計(jì)中,利用常規(guī)的單片機(jī)掃描識(shí)別的方法。=====發(fā)聲程序 ===== BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING。取回號(hào)數(shù) MOV R5,0BH MOV R4,0BH。 MOV A,R2 MOV R6,A MOV R3,06H CLR OK AJMP COUNT TRUE7: ACALL BARK。=====正常搶答處理程序 ===== TRUE1: ACALL BARK。下面是 1s 的情況 ,響并顯示號(hào)數(shù)并清 R0,重新計(jì) SETB RING MOV A,R6 JZ QUIT。R6保存了倒計(jì)時(shí)的時(shí)間 ,之前先將搶答時(shí)間或回答時(shí)間給 R6 MOV B,0AH DIV AB。 為確定鍵 ,如按下跳到 BACKO AJMP INT0SUB INC0: MOV A,R1 CJNE A,63H,ADD0 。送 R1R6,因?yàn)?R1 中保存了搶答時(shí)間 SETB OK 。設(shè)置未定時(shí)器 /模式 1 MOV TH0,0F0H MOV TL0,0FFH 。 MOV A,R2 MOV R6,A MOV R3,05H CLR OK AJMP COUNT TRUE6: ACALL BARK。 CPL 。這如同當(dāng)一名操作工人比較容易,而當(dāng)一個(gè)廠長(zhǎng)就比較難了。 軟件任務(wù)分析環(huán)節(jié)是為軟件設(shè)計(jì)做一個(gè)總體規(guī)劃。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進(jìn)行的工作,這時(shí)程序出錯(cuò)完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將阻止同級(jí)中斷響應(yīng) 。硬件復(fù)位必 發(fā)聲