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

正文內(nèi)容

基于522單片機(jī)的搶答器設(shè)計(jì)-文庫(kù)吧

2025-06-10 14:05 本頁(yè)面


【正文】 晶振的選擇:6MHz的晶振,其機(jī)器周期是2us。12MHz的晶振,其機(jī)器周期是1us, 也就是說(shuō)在執(zhí)行同一條指令時(shí)用6MHz的晶振所用的時(shí)間是12MHz晶振的兩倍。為了提高整個(gè)系統(tǒng)的性能我選擇了12MHz的晶振。振蕩方式的選擇:內(nèi)部振蕩方式,MCS51內(nèi)部都有一個(gè)反相放大器,XTALXTAL2分別為反相放大器輸入和輸出端,外接定時(shí)反饋元件以后就組成振蕩器,產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部的各個(gè)部件。這樣就構(gòu)成了內(nèi)部振蕩方式外部振蕩方式是把已有的時(shí)鐘信號(hào)引入單片機(jī)內(nèi)。這種方式適合用來(lái)使單片機(jī)的時(shí)鐘與外部信號(hào)一致。在我的這個(gè)設(shè)計(jì)中沒(méi)有也無(wú)需與外部時(shí)鐘信號(hào)一致,所以我選擇了內(nèi)部振蕩方式,由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。晶振我選擇了12MHz,相對(duì)于6MHz的晶振,整個(gè)系統(tǒng)的運(yùn)行速度更快了。電容器CC2起穩(wěn)定振蕩頻率、快速起振的作用,電容值我選擇了30pF。內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)穩(wěn)定性高。 圖32時(shí)鐘電路的設(shè)計(jì),只需要外接一個(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)開(kāi)始工作。MCS51的復(fù)位輸入引腳RST為MCS51提供了初始化的手段,可以使程序從指定處開(kāi)始執(zhí)行,在MCS51的時(shí)鐘電路工作后,只要RST引腳上出現(xiàn)超過(guò)兩個(gè)機(jī)器周期以上的高電平時(shí),即可產(chǎn)生復(fù)位的操作。只要 RST保持高電平,則MCS51循環(huán)復(fù)位。只有當(dāng)RST由高電平變低電平以后,MCS51才從0000H地址開(kāi)始執(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、PPP3口都輸出高電平。RST變?yōu)榈碗娖胶?,退出?fù)位,CPU從初始狀態(tài)開(kāi)始工作。復(fù)位以后內(nèi)部寄存器的初始狀態(tài)為(SP=07,P0、PPP3為0FFH外,其它寄存器都為0。在RST復(fù)位端接一個(gè)電容至VccHE 一個(gè)電阻至Vss,就能實(shí)現(xiàn)上電自動(dòng)復(fù)位,對(duì)于CMOS單片機(jī)只要接一個(gè)電容至Vcc即可。如圖,在加電瞬間,電容通過(guò)電阻充電,就在RST端出現(xiàn)一定時(shí)間的高電平,只要高電平時(shí)間足夠長(zhǎng),就可以使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í)間越長(zhǎng)。當(dāng)振蕩頻率為12MHZ時(shí),典型值為C=10uF,R=. 圖33上電復(fù)位電路除上電自動(dòng)復(fù)位以外,常常需要人工復(fù)位,將一個(gè)按鈕開(kāi)關(guān)并聯(lián)于上電自動(dòng)復(fù)位電路,按一下開(kāi)關(guān)就RST端出現(xiàn)一段時(shí)間的高電平,即使器件復(fù)位。如圖所示圖34上電和開(kāi)關(guān)復(fù)位而我們?cè)谶@次的畢業(yè)設(shè)計(jì)中運(yùn)用的人工復(fù)位電路. 其中電平復(fù)位是通過(guò)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)硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來(lái)解決。 顯示模塊在系統(tǒng)硬件中的安排操作者主要設(shè)計(jì)從顯示設(shè)備上獲取微機(jī)系統(tǒng)的信息的,因此,操作者每操作一下,顯示設(shè)備商都應(yīng)該有一定的反應(yīng)。這說(shuō)明,顯示模塊與操作有關(guān),即監(jiān)控程序是需要調(diào)用顯示模塊。不同的操作需要顯示不同的內(nèi)容,這又說(shuō)明各執(zhí)行模塊對(duì)顯示模塊的驅(qū)動(dòng)方式是不同的。另一方面,在操作者沒(méi)有進(jìn)行操作時(shí),顯示內(nèi)容也是變化的,如顯示現(xiàn)場(chǎng)各物理量的變化情況。這時(shí)顯示模塊不是由操作者通過(guò)命令鍵來(lái)驅(qū)動(dòng),而是由各類自動(dòng)執(zhí)行的功能模塊來(lái)驅(qū)動(dòng)。自動(dòng)執(zhí)行的各類模塊在安排在各種中斷子程序中,這就是說(shuō),各種中斷子程序也要調(diào)用顯示模塊。如果監(jiān)控安排在中斷子程序中,兩者的要求就統(tǒng)一了,問(wèn)題比較好解決,如果監(jiān)控程序安排在主程序中,在監(jiān)控程序調(diào)用顯示模塊的過(guò)程中發(fā)生了中斷,中斷子程序也調(diào)用顯示模塊,這時(shí)就容易出問(wèn)題。一種比較妥善的辦法是只讓一處調(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)控程序(鍵盤(pán)解釋程序)安排在時(shí)鐘中斷子程序中時(shí),處理比較方便,只要在監(jiān)控程序的匯合處調(diào)用顯示模塊就可以了。這里將顯示功能集中到一起,作為一個(gè)功能模塊,就要求它的功能全面,能根據(jù)系統(tǒng)軟件提供的信息自動(dòng)完成顯示內(nèi)容的查找,變換和輸出驅(qū)動(dòng)。這樣設(shè)計(jì)使得各功能模塊都不必考慮顯示問(wèn)題,只要給出一個(gè)簡(jiǎn)單的信息(如顯示格式編碼)甚至不用再提供額外信息,直接利用當(dāng)前狀態(tài)變量和軟件標(biāo)志就可以完成所需的顯示要求。如果編寫(xiě)這樣一個(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ì);如果沒(méi)有,則先申請(qǐng)標(biāo)志位,再將顯示內(nèi)容送入顯示緩沖區(qū)。這時(shí)就不必?fù)?dān)心其他前臺(tái)模塊來(lái)打擾了,就可以得到一次完整的顯示機(jī)會(huì)。在這里我們使用的是七段數(shù)碼管顯示,通常在顯示[6]上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動(dòng)態(tài)顯示。其中靜態(tài)顯示的特點(diǎn)是顯示穩(wěn)定不閃爍,程序編寫(xiě)簡(jiǎn)單,但占用端口資源多;動(dòng)態(tài)顯示的特點(diǎn)是顯示穩(wěn)定性沒(méi)靜態(tài)好,程序編寫(xiě)復(fù)雜,但是相對(duì)靜態(tài)顯示而言占用端口資源少。在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示方法。并通過(guò)查表法,將其在數(shù)碼管上顯示出來(lái),其中P0口為字型碼輸入端,P2口低3位為字選段輸入端。在這里我們通過(guò)查表將字型碼送給7段數(shù)碼管顯示的數(shù)字,數(shù)碼管顯示原理如下: MOV A,R5 MOVC A,@A+DPTR ;查字型碼 MOV P2,01H ;送位選碼 MOV P0,A ;送字型碼ACALL DELAY ;調(diào)延時(shí),去閃爍在七段數(shù)碼管顯示中可分為共陽(yáng)極和共陰極兩種類型極。以共陰為例,要想a段亮,向a段送1就是,返之送0,共陽(yáng)剛好相反。 掃描電路的實(shí)現(xiàn)鍵盤(pán)是人與微機(jī)系統(tǒng)打交道的主要設(shè)備。關(guān)于鍵盤(pán)硬件電路的設(shè)計(jì)方法也可以在文獻(xiàn)和書(shū)籍中找到,配合各種不同的硬件電路,這些書(shū)籍中一般也提供了相應(yīng)的鍵盤(pán)掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計(jì)的立場(chǎng)上來(lái)看,僅僅完成鍵盤(pán)掃描,讀取當(dāng)前時(shí)刻的鍵盤(pán)狀態(tài)是不夠的,還有不少問(wèn)題需要妥善解決,否則,人們?cè)诓僮麈I盤(pán)就容易引起誤操作和操作失控現(xiàn)象。在單片機(jī)應(yīng)用中鍵盤(pán)用得最多的形式是獨(dú)立鍵盤(pán)及矩陣鍵盤(pán)。 它們各有自己的特點(diǎn),其中獨(dú)立鍵盤(pán)硬件電路簡(jiǎn)單,而且在程序設(shè)計(jì)上也不復(fù)雜,一般用在對(duì)硬件電路要求不高的簡(jiǎn)單電路中;矩陣鍵盤(pán)與獨(dú)立鍵盤(pán)有很大區(qū)別,首先在硬件電路上它要比獨(dú)立鍵盤(pán)復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢(shì)得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過(guò)程中產(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)?0ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無(wú)效。 按鈕輸入的硬件處理按鈕的觸點(diǎn)在閉合和斷開(kāi)時(shí)均會(huì)產(chǎn)生抖動(dòng),這是觸點(diǎn)的邏輯電平是不穩(wěn)定的,如不妥善處理,將會(huì)引起按鍵命令的錯(cuò)誤執(zhí)行或重復(fù)執(zhí)行?,F(xiàn)在一般均用軟件延時(shí)的方法來(lái)避開(kāi)抖動(dòng)階段,這一延時(shí)過(guò)程一般大于5ms,例如取1020ms。如果監(jiān)控程序中的讀鍵操作安排在主程序(后臺(tái)程序)或鍵盤(pán)中斷(外部中斷)子程序中,則該延時(shí)子程序便可直接插入讀鍵過(guò)程中。如果讀鍵過(guò)程安排在定時(shí)中斷子程序中,就可省去專門的延時(shí)子程序,利用兩次定時(shí)中斷的時(shí)間間隔來(lái)完成抖動(dòng)處理。 發(fā)聲我們知道,聲音的頻譜范圍約在幾十到幾千赫茲[7],若能利用程序來(lái)控制單片機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。 系統(tǒng)復(fù)位使CPU進(jìn)入初始狀態(tài),從0000H地址開(kāi)始執(zhí)行程序的過(guò)程叫系統(tǒng)復(fù)位。從實(shí)現(xiàn)系統(tǒng)復(fù)位的方法來(lái)看,系統(tǒng)復(fù)位可分為硬件復(fù)位和軟件復(fù)位。硬件復(fù)位必須通過(guò)CPU外部的硬件電路給CPU的RESET端加上足夠時(shí)間的高電位才能實(shí)現(xiàn)。上電復(fù)位,人工按鈕復(fù)位和硬件看門狗復(fù)位均為硬件復(fù)位。硬件復(fù)位后,各專用寄存器的狀態(tài)均被初始化,且對(duì)片內(nèi)通用寄存器的內(nèi)容沒(méi)有影響。但是,硬件復(fù)位還能自動(dòng)清除中斷激活標(biāo)志,使中斷系統(tǒng)能夠正常工作,這樣一個(gè)事實(shí)卻容易為不少編碼人員所忽視。軟件復(fù)位就是用一系列指令來(lái)模擬硬件復(fù)位功能,最后通過(guò)轉(zhuǎn)移指令使程序從0000H地址開(kāi)始執(zhí)行。對(duì)各專用寄存器的復(fù)位操作是容易的,也沒(méi)有必要完全模擬,可根據(jù)實(shí)際需要去主程序初始化過(guò)程中完成。而對(duì)中斷激活標(biāo)志的清除工作常被遺忘,因?yàn)樗鼪](méi)有明確的位地址可供編程。有的編程人員用020000(LJMP 0000H)作為軟件陷阱,認(rèn)為直接轉(zhuǎn)向0000H地址就完成了軟件復(fù)位,就是這類錯(cuò)誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進(jìn)行的工作,這時(shí)程序出錯(cuò)完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將阻止同級(jí)中斷響應(yīng)。由于軟件看門是高級(jí)中斷,它將阻止說(shuō)要中斷響應(yīng),由此可見(jiàn)清除中斷激活標(biāo)志的重要性。在所有的指令中,只有RETI指令能夠清除中斷激活標(biāo)志。前文各處提案到的出錯(cuò)處理程序ERR主要完成這一功能,其他的善后工作交由復(fù)位后的系統(tǒng)去完成。有復(fù)位時(shí)系統(tǒng)的歷史狀況,可將復(fù)位分為“冷啟動(dòng)”和“熱啟動(dòng)”。 “冷啟動(dòng)”時(shí),系統(tǒng)的狀態(tài)全部無(wú)效,進(jìn)行徹底的初始化操作;而“熱啟動(dòng)”時(shí),對(duì)系統(tǒng)的當(dāng)前狀態(tài)進(jìn)行修復(fù)和有選擇的初始化。系統(tǒng)初次上電投入運(yùn)行時(shí),必須是“冷啟動(dòng)”,以后由抗干擾措施引起的復(fù)位操作一般均為“熱啟動(dòng)”初次上電投入運(yùn)行時(shí),必須是“冷啟動(dòng)”,以后由抗干擾措施引起的復(fù)位操作一般均為“熱啟動(dòng)”。復(fù)位關(guān)中斷,設(shè)定堆棧上電標(biāo)志冷啟自檢全面初始化熱啟動(dòng)恢復(fù)被破壞的信息部分初始化建立上電標(biāo)志開(kāi)始運(yùn)轉(zhuǎn)為了使系統(tǒng)能正確決定采用何種啟動(dòng)方式,常用上電標(biāo)志來(lái)區(qū)分,如圖36所示。圖36 系統(tǒng)復(fù)位策略圖
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1