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

正文內(nèi)容

課題設(shè)計(jì)-基于51單片機(jī)的搶答器設(shè)計(jì)-文庫吧

2024-10-27 17:31 本頁面


【正文】 指令所規(guī)定的操作。運(yùn)算器由算術(shù)邏輯器部件 ALU、累加器 ACC、暫存器、程序狀態(tài)字寄存器 PSW, BCD 碼運(yùn)算調(diào)整電路等組成。 圖 23 AT89S51 單片機(jī)的內(nèi)部結(jié)構(gòu)圖 為了提高數(shù)據(jù)處理和位操作功能,片內(nèi)增加了一個(gè)通用寄存器 B 和一些專用寄存器,還增加了位處理邏輯電路的功能 [3]。其內(nèi)部結(jié)構(gòu)如圖 23 所示 。 第三章 硬件電路的設(shè)計(jì) 總電路原理 為使硬件電路設(shè)計(jì)盡可能合理,應(yīng)注意以下幾方面: (1) 盡可能采用功能強(qiáng)的芯片,以簡(jiǎn)化電路,功能強(qiáng)的芯片可以代替若干普通芯片,隨著生產(chǎn) 工藝的提高,新型芯片的的價(jià)格不斷下降,并不一定比若干普通芯片價(jià)格的總和高。 (2) 留有設(shè)計(jì)余地。在設(shè)計(jì)硬件電路時(shí),要考慮到將來修改擴(kuò)展的方便。因?yàn)楹苌儆幸诲N定音的電路設(shè)計(jì),如果現(xiàn)在不留余地,將來可能要為一點(diǎn)小小的修改或擴(kuò)展而被迫進(jìn)行全面返工。 (3) 程序空間,選用片內(nèi)程序空間足夠大的單片機(jī),本設(shè)計(jì)采用 AT89C51單片機(jī)。 (4) RAM 空間, AT89S51 內(nèi)部 RAM 不多,當(dāng)要增強(qiáng)軟件數(shù)據(jù)處理功能時(shí),往往覺得不足。如果系統(tǒng)配置了外部 RAM,則建議多留一些空間。如選用 8155 作I/O 接口,就可以增強(qiáng) 256字節(jié) ,則應(yīng)配置足夠的RAM,如 6264, 62256 等。隨著軟件設(shè)計(jì)水平的提高,往往只要改變或增加軟件中的數(shù)據(jù)處理算法,就可以使系統(tǒng)功能提高很多,而系統(tǒng)的硬件不必做任何更換就使系統(tǒng)升級(jí)換代。只要在硬件電路設(shè)計(jì)初期考慮到這一點(diǎn),就應(yīng)該為系統(tǒng)將來升級(jí)留足夠的 RAM 空間,哪怕多設(shè)計(jì)一個(gè) RAM的插座,暫不插芯片也好。 (5) I/O 端口:在樣機(jī)研制出來后進(jìn)行現(xiàn)場(chǎng)試用時(shí),往往會(huì)發(fā)現(xiàn)一些被忽視的問題,而這些問題不是靠單純的軟件措施來解決的。如有些新的信號(hào)需要采集,就必須增加輸入檢測(cè)端;有 些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計(jì)就預(yù)留出一些 I/O端口,雖然當(dāng)時(shí)空著沒用,那么用的時(shí)候就派上用場(chǎng)了。 為開始搶答 [9], 為加分, 為減分, 為六八搶答輸入,數(shù)碼管段選 P0 口,位選 P2口低 3位,蜂鳴器輸出為 口。 時(shí)鐘頻率電路的設(shè)計(jì) 時(shí)鐘電路是計(jì)算機(jī)的心臟,它控制著計(jì)算機(jī)的工作節(jié)奏。 MCS51單片機(jī)允許的時(shí)鐘頻率是因型號(hào)而異的。 晶振的選擇: 6MHz 的晶振,其機(jī)器周期是 2us。 12MHz 的晶振,其機(jī)器周期是 1us, 也 就是說在執(zhí)行同一條指令時(shí)用 6MHz的晶振所用的時(shí)間是 12MHz 晶振的兩倍。為了提高整個(gè)系統(tǒng)的性能我選擇了12MHz 的晶振。 振蕩方式的選擇: 內(nèi)部振蕩方式, MCS51 內(nèi)部都有一個(gè)反相放大器, XTAL XTAL2 分別為反相放大器輸入和輸出端,外接定時(shí)反饋元件以后就組成振蕩器,產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部的各個(gè)部件。這樣就構(gòu)成了內(nèi)部振蕩方式 外部振蕩方式是把已有的時(shí)鐘信號(hào)引入單片機(jī)內(nèi)。這種方式適合用來使單片機(jī)的時(shí)鐘與外部信號(hào)一致。 在我的這個(gè)設(shè)計(jì)中沒有也無需與外部時(shí)鐘信號(hào)一致,所以我選擇了內(nèi)部振蕩方式,由于單片機(jī) 內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。晶振我選擇了 12MHz,相對(duì)于 6MHz 的晶振,整個(gè)系統(tǒng)的運(yùn)行速度更快了。電容器 C C2 起穩(wěn)定振蕩頻率、快速起振的作用,電容值我選擇了 30pF。內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)穩(wěn)定性高。 C130pFC230pFY112MX1X2 圖 32 時(shí)鐘電路的設(shè)計(jì) 單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作 .在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路 ,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元 ,決定單片機(jī)的工作速度。 一般選用石英晶體振蕩器。此電路在加電 大約延遲 10ms 后振蕩器起振 ,在 XTAL2 引腳產(chǎn)生幅度為 3V 左右的正弦波時(shí)鐘信號(hào) ,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容 C1,C2 的作用有兩個(gè) :一是幫助振蕩器起振 。二是對(duì)振蕩器的頻率進(jìn)行微調(diào)。 C1,C2 的典型值為 30PF。 單片機(jī)在工作時(shí) ,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號(hào)的周期稱為時(shí)鐘周期。其大小是時(shí)鐘信號(hào)頻率的倒數(shù) ,常用 fosc表示。如時(shí)鐘頻率為 12MHz,即 fosc=12MHz,則時(shí)鐘周期為 1/12181。s。 復(fù)位電路的設(shè)計(jì) 復(fù)位電路的可靠性設(shè)計(jì) 計(jì)算 機(jī)在啟動(dòng)運(yùn)行是都需要復(fù)位,使中央處理器 CPU 和系統(tǒng)中的其它部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。 MCS51 的復(fù)位輸入引腳RST 為 MCS51 提供了初始化的手段,可以使程序從指定處開始執(zhí)行,在 MCS51的時(shí)鐘電路工作后,只要 RST 引腳上出現(xiàn)超過兩個(gè)機(jī)器周期以上的高電平時(shí),即可產(chǎn)生復(fù)位的操作。只要 RST 保持高電平,則 MCS51循環(huán)復(fù)位。只有當(dāng) RST 由高電平變低電平以后, MCS51 才從 0000H 地址開始執(zhí)行程序。本系統(tǒng)采用按鍵復(fù)位方式的復(fù)位電路。 MCS51單片機(jī)有一個(gè)復(fù)位引腳 RST,它 是施密特觸發(fā)輸入,當(dāng)振蕩器起振后,該引腳上出現(xiàn) 2 個(gè)機(jī)器周期(即 24 個(gè)時(shí)鐘周期)以上的高電平。使器件復(fù)位,只要 RST 保持高電平, MCS51 保持復(fù)位狀態(tài)。此時(shí) ALE、 /PSEN、 P0、 P PP3口都輸出高電平。 RST 變?yōu)榈碗娖胶?,退出?fù)位, CPU 從初始狀態(tài)開始工作。復(fù)位以后內(nèi)部寄存器的初始狀態(tài)為( SP=07, P0、 P P P3 為 0FFH 外,其它寄存器都為 0。在 RST 復(fù)位端接一個(gè)電容至 VccHE 一個(gè)電阻至 Vss,就能實(shí)現(xiàn)上電自動(dòng)復(fù)位,對(duì)于 CMOS 單片機(jī)只要接一個(gè)電容至 Vcc 即可。如圖,在加電瞬間, 電容通過電阻充電,就在 RST 端出現(xiàn)一定時(shí)間的高電平,只要高電平時(shí)間足夠長,就可以使 MCS51 有效地復(fù)位。 RST 端在加電時(shí)應(yīng)保持的高電平時(shí)間包括Vcc 的上升時(shí)間和振蕩器起振時(shí)間, Vcc 上升時(shí)間若為 10ms,振蕩器起振時(shí)間和頻率有關(guān)。 10MHz 時(shí)間約為 1ms, 1MHz 時(shí)約為 10ms,所以一般為了可靠地復(fù)位,RST 在上電時(shí)應(yīng)保持 20ms 以上的高電平。圖 中, RC 時(shí)間常數(shù)越大,上電時(shí)RST 端保持高電平的時(shí)間越長。當(dāng)振蕩頻率為 12MHZ 時(shí),典型值為 C=10uF,R=Ω . 圖 33上電復(fù)位電路 人工復(fù)位 除上電自動(dòng)復(fù)位以外,常常需要人工復(fù)位,將一個(gè)按鈕開關(guān)并聯(lián)于上電自動(dòng)復(fù)位電路,按一下開關(guān)就 RST端出現(xiàn)一段時(shí)間的高電平,即使器件復(fù)位。如圖所示 圖 34上電和開關(guān)復(fù)位 而我們?cè)谶@次的畢業(yè)設(shè)計(jì)中運(yùn)用的人工復(fù)位電路 . 其中電平復(fù)位是通過 RST 端經(jīng)電阻和電源 Vcc接通而實(shí)現(xiàn)的,按鍵手動(dòng)電平復(fù)位電路如圖。當(dāng)時(shí) 鐘頻率選用 12MHz時(shí), C選取 10uF,R 選擇 1000 歐。 顯示電路的設(shè)計(jì) 顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。 顯示模塊在系統(tǒng)硬件中的安排 操作者主要設(shè)計(jì)從顯示設(shè)備上獲取微機(jī)系統(tǒng)的信息的,因此,操作者每操作一下,顯示設(shè)備商都應(yīng)該有一定的反應(yīng)。這說明,顯示模塊與操作有關(guān),即監(jiān)控程序是需要調(diào)用顯示模塊。不同的操作需要顯示不同的內(nèi)容,這又說明各執(zhí)行模塊對(duì)顯示模塊的驅(qū)動(dòng)方式是不同的。另一方面,在操作者沒有進(jìn)行操作時(shí),顯示內(nèi)容 也是變化的,如顯示現(xiàn)場(chǎng)各物理量的變化情況。這時(shí)顯示模塊不是由操作者通過命令鍵來驅(qū)動(dòng),而是由各類自動(dòng)執(zhí)行的功能模塊來驅(qū)動(dòng)。自動(dòng)執(zhí)行的各類模塊在安排在各種中斷子程序中,這就是說,各種中斷子程序也要調(diào)用顯示模塊。如果監(jiān)控安排在中斷子程序中,兩者的要求就統(tǒng)一了,問題比較好解決,如果監(jiān)控程序安排在主程序中,在監(jiān)控程序調(diào)用顯示模塊的過程中發(fā)生了中斷,中斷子程序也調(diào)用顯示模塊,這時(shí)就容易出問題。一種比較妥善的辦法是只讓一處調(diào)用顯示模塊,其他各處均不得直接調(diào)用顯示模塊,但有權(quán)申請(qǐng)顯示。這就要設(shè)置一個(gè)顯示申請(qǐng)標(biāo)志,當(dāng)某模塊需 要顯示時(shí),將申請(qǐng)標(biāo)志置位,同時(shí)設(shè)定有關(guān)顯示內(nèi)容(或指針)。由于一處調(diào)用顯示模塊,故不會(huì)發(fā)生沖突。為了使顯示模塊能及時(shí)反應(yīng)系統(tǒng)需要,應(yīng)將顯示模塊安排在一個(gè)重復(fù)執(zhí)行的循環(huán)(如監(jiān)控循環(huán)或時(shí)鐘中斷子程序)中。當(dāng)監(jiān)控程序(鍵盤解釋程序)安排在時(shí)鐘中斷子程序中時(shí),處理比較方便,只要在監(jiān)控程序的匯合處調(diào)用顯示模塊就可以了。 這里將顯示功能集中到一起,作為一個(gè)功能模塊,就要求它的功能全面,能根據(jù)系統(tǒng)軟件提供的信息自動(dòng)完成顯示內(nèi)容的查找,變換和輸出驅(qū)動(dòng)。這樣設(shè)計(jì)使得各功能模塊都不必考慮顯示問題,只要給出一個(gè)簡(jiǎn)單的信息(如顯示 格式編碼)甚至不用再提供額外信息,直接利用當(dāng)前狀態(tài)變量和軟件標(biāo)志就可以完成所需的顯示要求。 如果編寫這樣一個(gè)集中顯示模塊有困難,也可以將顯示模塊編小一些,只完成顯示緩沖區(qū)的內(nèi)容輸出到顯示器件上的工作。這時(shí)各功能模塊在提出顯示申請(qǐng)時(shí),還需要將顯示內(nèi)容按需要的格式送入顯示緩沖區(qū)中。這樣分而治之比較容易編程,但要小心出現(xiàn)顯示混亂。例如后臺(tái)程序需要調(diào)用顯示,將有關(guān)信息送入到現(xiàn)實(shí)緩沖區(qū)進(jìn)行顯示;中斷返回后,后臺(tái)程序繼續(xù)送完后半部分顯示內(nèi)容,但前半部分內(nèi)容已經(jīng)變了,這樣就出現(xiàn)了顯示錯(cuò)誤。解決的辦法是,在申請(qǐng)顯示前,先檢 查是否已經(jīng)有顯示申請(qǐng),如果有,就不再申請(qǐng),等待下次機(jī)會(huì);如果沒有,則先申請(qǐng)標(biāo)志位,再將顯示內(nèi)容送入顯示緩沖區(qū)。這時(shí)就不必?fù)?dān)心其他前臺(tái)模塊來打擾了,就可以得到一次完整的顯示機(jī)會(huì)。 在這里我們使用的是七段數(shù)碼管顯示,通常在顯示 [6]上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動(dòng)態(tài)顯示。其中靜態(tài)顯示的特點(diǎn)是顯示穩(wěn)定不閃爍,程序編寫簡(jiǎn)單,但占用端口資源多;動(dòng)態(tài)顯示的特點(diǎn)是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但是相對(duì)靜態(tài)顯示而言占用端口資源少。在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示方法。 并通過查表法,將其在數(shù) 碼管上顯示出來,其中 P0 口為字型碼輸入端, P2口低 3位為字選段輸入端。在這里我們通過查表將字型碼送給 7段數(shù)碼管顯示的數(shù)字,數(shù)碼管顯示原理如下: MOV A,R5 MOVC A,@A+DPTR ;查字型碼 MOV P2,01H ;送位選碼 MOV P0,A ;送字型碼 ACALL DELAY ;調(diào)延時(shí),去閃爍 在七段數(shù)碼管顯示中可分為共陽極和共陰極兩種類型極 。 以共陰為例,要想a 段 亮,向 a 段送 1 就是,返之送 0,共陽剛好相反。 掃描電路的實(shí)現(xiàn) 鍵盤是人與微機(jī)系統(tǒng)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計(jì)方法也可以在文獻(xiàn)和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計(jì)的立場(chǎng)上來看,僅僅完成鍵盤掃描,讀取當(dāng)前時(shí)刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們?cè)诓僮麈I盤就容易引起誤操作和操作失控現(xiàn)象。在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨(dú)立鍵盤及矩陣鍵盤 。 它們各有自己的特點(diǎn) , 其中獨(dú)立鍵盤硬件電路簡(jiǎn)單 , 而且在程序設(shè)計(jì)上也不復(fù)雜 , 一般用在對(duì)硬件電路要求不高的簡(jiǎn)單電路中 ; 矩陣鍵盤與獨(dú)立鍵盤有很大區(qū)別 , 首先在硬件電路上它要比獨(dú)立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢(shì)得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生 的“毛刺” 現(xiàn)象 。這里采用最常用的方法,即延時(shí)重復(fù)掃描法,延時(shí)法的原理為 : 因?yàn)?“ 毛刺 ” 脈沖一般持續(xù)時(shí)間短 , 約為幾 ms, 而我們按鍵的時(shí)間一般遠(yuǎn)遠(yuǎn)大于這個(gè)時(shí)間 ,所以當(dāng)單片機(jī)檢測(cè)到有按鍵動(dòng)靜后再延時(shí)一段時(shí)間 (這里我們?nèi)?10ms)后再判斷此電平是否保持原狀態(tài) ,如果是則為有效按鍵 , 否則無效 。 按鈕輸入的硬件處理 按鈕的觸點(diǎn)在閉合和斷開時(shí)均會(huì)產(chǎn)生抖動(dòng),這是觸點(diǎn)的邏輯電平是不穩(wěn)定的,如不妥善處理,將會(huì)引起按鍵命令的錯(cuò)誤執(zhí)行或重復(fù)執(zhí)行。現(xiàn)在一般均用軟件延時(shí)的方法來避開抖動(dòng)階段,這一延時(shí)過程一般大于 5ms,例如取 1020ms。如果監(jiān)控程序中的讀鍵操作安排在主程序(后臺(tái)程序)或鍵盤中斷(外部中斷) 子程序中,則該延時(shí)子程序便可直接插 入讀鍵過程中。如果讀鍵過程安排在定時(shí)中斷子程序中,就可省去專門的延時(shí)子程序,利用兩次定時(shí)中斷的時(shí)間間隔來完成抖動(dòng)處理。 發(fā)聲 我們知道,聲音的頻譜范圍約在幾十 到幾千赫茲 [7],若能利用程序來控制單片 機(jī)某個(gè)口線的 “ 高 ” 電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制 “ 高 ”“ 低 ” 電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。 系統(tǒng)復(fù)位 使 CPU 進(jìn)入初始狀態(tài),從 0000H 地址開始執(zhí)行程序的過程叫系統(tǒng)復(fù)位。從實(shí)現(xiàn)系統(tǒng)復(fù)位的方法來看,系統(tǒng)復(fù)位可分為硬件復(fù)位和軟件復(fù)位。硬件復(fù)位必須通過 CPU 外部的硬件電路給 CPU 的 RESET 端加上足夠時(shí)間的高電位才能實(shí)現(xiàn)。上電復(fù)位,人工按鈕復(fù)位和硬件看門 狗復(fù)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1