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

正文內(nèi)容

單片機(jī)課程設(shè)計八路搶答器設(shè)計(編輯修改稿)

2024-07-23 10:15 本頁面
 

【文章內(nèi)容簡介】 升級換代。只要在硬件電路設(shè)計初期考慮到這一點,就應(yīng)該為系統(tǒng)將來升級留足夠的 RAM 空間,哪怕多設(shè)計一個 RAM 的插座,暫不插芯片也好。(5) I/O 端口:在樣機(jī)研制出來后進(jìn)行現(xiàn)場試用時,往往會發(fā)現(xiàn)一些被忽視的問題,而這些問題不是靠單純的軟件措施來解決的。如有些新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設(shè)計就預(yù)留出一些 I/O 端口,雖然當(dāng)時空著沒用,那么用的時候就派上用場了。單片機(jī)課程設(shè)計11 總體原理圖 本原理圖是利用 Proteus 軟件是英國 Labcenter electronics 公司出版的 EDA 工具(仿真軟件 )。它不僅具有其它仿真軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)的工具。雖然目前國內(nèi)推廣剛起步,但已受到從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者和單片機(jī)愛好者的青睞。在編譯方面,它支持 IAR、Keil 和 MPLAB 等多種編譯器[9]。Proteus 軟件除了可以編輯設(shè)計電路原理圖,還可以進(jìn)行電路仿真。首先在畫好的電路原理圖中選中需要編寫程序的芯片,并單擊鼠標(biāo)左鍵,打開 Edition Component 對話框,設(shè)置單片機(jī)晶振頻率為 12MHZ,在此窗口中的 program file 欄中,選擇之前用keil 軟件生成的 KEIL 生成的 HEX 文件。在 Proteus 的菜單欄中選擇 file 并 Save Desig選項,保存設(shè)計。在 Proteus 的菜單欄中,打開 Debug 下拉菜單,在菜單中選中 Use start/restart debugging 選項,這樣 proteus 中繪制的電路原理圖就可以鏈接上, keil 中生成的 HEX 文件進(jìn)行仿真了。打開 proteus 軟件,在 File 的下拉菜單中找到 New Design 新建 Proteus 并選擇 A4版面,然后保存,這樣就完成 proteus 的新建了。把元件排布好后,使用導(dǎo)線將各個元件連接起來,最后繪制完成八路掃描式搶答器電路原理圖。單片機(jī)課程設(shè)計12圖 系統(tǒng)仿真原理圖圖中 U1 為單片機(jī) AT89C51,U2 為芯片 74HC30,U3 為芯片 74LS04。K1~K8 分別為 8 路搶答按鍵,分別接到單片機(jī)的~ 中。開始按鍵與結(jié)束按鍵分別接到單片機(jī)的11 腳,由于單片機(jī)的 11 腳既有串行接口RXD、TXD 功能,又有 、的 IO 端口功能,此處按鍵用到單片機(jī) 11 腳的 IO端口功能。搶答時間調(diào)整按鍵和回答時間調(diào)整按鍵分別接到單片機(jī)的114 管腳,加一按鍵和減一按鍵分別接到單片機(jī)的116 管腳。4 位七段數(shù)碼管段選P0 口。4 位七段數(shù)碼管的位選接 P2口低 3 位,蜂鳴器輸出為 口 [8]。XTAL2 18XTAL1 19ALE 30EA 31PSEN 29RST 9P0./AD039 1P1. 4 8U1AT89C51X1CRYSTALC13p C23pC310uR120RR2510RLS1 SPEAKER12U2:A74LS04 1234561128U474S30R310kR410kR510kR610kR710kR810kR910k單片機(jī)課程設(shè)計13 時鐘頻率電路的設(shè)計單片機(jī)必須在時鐘的驅(qū)動下才能工作。在單片機(jī)內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機(jī)內(nèi)部的各個單元,決定單片機(jī)的工作速度。時鐘電路如圖 所示。圖 外部振蕩源電路一般選用石英晶體振蕩器。此電路在加電大約延遲 10ms 后振蕩器起振,在 XTAL2引腳產(chǎn)生幅度為 3V 左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容 C1,C2 的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。C1 , C2 的典型值為 20PF。單片機(jī)在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù),常用 fosc 表示。圖中時鐘頻率為 12MHz,即 fosc=12MHz,則時鐘周期為 1/12181。s。 復(fù)位電路的設(shè)計單片機(jī)的第 9 腳 RST 為硬件復(fù)位端,只要將該端持續(xù) 4 個機(jī)器周期的高電平即可實現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖 所示:單片機(jī)課程設(shè)計14圖 復(fù)位電路圖 中由按鍵 RESET1 以及電解電容 C電阻 R2 構(gòu)成按鍵及上電復(fù)位電路。由于單片機(jī)是高電平復(fù)位,所以當(dāng)按鍵 RESET1 按下時候,單片機(jī)的 9 腳 RESET 管腳處于高電平,此時單片機(jī)處于復(fù)位狀態(tài)。當(dāng)上電后,由于電容的緩慢充電,單片機(jī)的 9 腳電壓逐步由高向低轉(zhuǎn)化,經(jīng)過一段時間后,單片機(jī)的 9 腳處于穩(wěn)定的低電平狀態(tài),此時單片機(jī)上電復(fù)位完畢,系統(tǒng)程序從 0000H 開始執(zhí)行。值得注意的是,在設(shè)計當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知寄存器及存儲器的值都恢復(fù)到了初始值,而前面的功能介紹中提到了倒計時時間的記憶功能,該功能的實現(xiàn)的前提條件就是不能對單片機(jī)進(jìn)行硬件復(fù)位,所以設(shè)定了軟復(fù)位功能。軟復(fù)位實際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。 顯示電路的設(shè)計顯示功能與硬件關(guān)系極大,當(dāng)硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。在這里我們使用的是七段數(shù)碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態(tài)顯示,一種是動態(tài)顯示。其中靜態(tài)顯示的特點是顯示穩(wěn)定不閃爍,程序編寫簡單,但占用端口資源多;動態(tài)顯示的特點是顯示穩(wěn)定性沒靜態(tài)好,程序編寫復(fù)雜,但是相對靜態(tài)顯示而言占用端口資源少。在本設(shè)計中根據(jù)實際情況采用的是動態(tài)顯示方法。通過查表法,將其在數(shù)碼管上顯示出來,其中 P0 口為字型碼輸入端,P2 口低 3 位為字選段輸入端。在這里我們通過查表將字型碼送給 7 段數(shù)碼管顯示的數(shù)字,數(shù)碼管顯示原理如下: 單片機(jī)課程設(shè)計15 MOV A,R3 MOVC A,@A+DPTR MOV P2,0feH MOV P0,A ACALL DELAY MOV DPTR,DAT2 MOV A,R5 MOVC A,@A+DPTR MOV P2,0fdH MOV P0,A ACALL DELAY MOV A,R4 MOVC A,@A+DPTR MOV P2,0fbH MOV P0,A ACALL DELAY RET4 位七段數(shù)碼管顯示電路如圖 7 所示。圖 共陰極數(shù)碼管圖 中數(shù)碼管采用的是 4 位七段共陰數(shù)碼管,其中 A~H 段分別接到單片機(jī)的 P0口,由單片機(jī)輸出的 P0 口數(shù)據(jù)來決定段碼值,位選碼 COMCOMCOM4 分別接單片機(jī)課程設(shè)計16到單片機(jī)的 、 、 ,由單片機(jī)來決定當(dāng)前該顯示的是哪一位。在圖中還有八個 1K 的電阻,連接在 P0 口上,用作 P0 口的上拉電阻,保證 P0 口沒有數(shù)據(jù)輸出時候處于高電平狀態(tài)。 鍵盤掃描電路的設(shè)計鍵盤是人與單片機(jī)打交道的主要設(shè)備。關(guān)于鍵盤硬件電路的設(shè)計方法也可以在文獻(xiàn)和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應(yīng)的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設(shè)計的立場上來看,僅僅完成鍵盤掃描,讀取當(dāng)前時刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機(jī)應(yīng)用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設(shè)計上也不復(fù)雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復(fù)雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的“毛刺”現(xiàn)象。這里采用最常用的方法,即延時重復(fù)掃描法,延時法的原理為:因為“毛刺”脈沖一般持續(xù)時間短,約為幾 ms,而我們按鍵的時間一般遠(yuǎn)遠(yuǎn)大于這個時間,所以當(dāng)單片機(jī)檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?10ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。在本文設(shè)計中采用了獨立鍵盤的方式,本設(shè)計中有 8 個搶答按鍵輸入,一個開始按鍵、一個結(jié)束按鍵,此外還有搶答時間調(diào)整鍵、回答時間調(diào)整鍵,加一按鍵、減一按鍵各一個。如圖 所示。 單片機(jī)課程設(shè)計17圖 搶答按鍵及調(diào)整按鍵在圖 中 8 個搶答按鍵分別接入單片機(jī)的 ~ 端口,單片機(jī)通過讀取~ 的值來判斷當(dāng)前輸入的是 8 個搶答按鍵中的哪一個。搶答時間調(diào)整和回答時間調(diào)整接到單片機(jī)的 和 接口,加一及減一按鍵接到單片機(jī)的 和 接口。圖 開始、結(jié)束按鍵在圖 中,開始及結(jié)束按鍵接到單片機(jī)的 11 腳,這里用到了單片機(jī) 11腳復(fù)合功能中的 IO 端口功能,單片機(jī)通過讀取 11 腳的 、 的 IO 端口值來判斷當(dāng)前是否處于搶答開始狀態(tài)或搶答結(jié)束狀態(tài)。按鍵的觸點在閉合和斷開時均會產(chǎn)生抖動,這時觸點的邏輯電平是不穩(wěn)定的,如不妥善處理,將會引起按鍵命令的錯誤執(zhí)行或重復(fù)執(zhí)行?,F(xiàn)在一般均用軟件延時的方法來避開抖動階段,這一延時過程一般大于 5ms,例如取 1020ms。如果監(jiān)控程序中的讀鍵操作安排在主程序(后臺程序)或鍵盤中斷(外部中斷)子程序中,則該延時子程序便可直接插入讀鍵過程中。如果讀鍵過程安排在定時中斷子程序中,就可省去專門的延時子程序,利用兩次定時中斷的時間間隔來完成抖動處理。K1~K8 八個按鍵的輸入電平靠 74HC30 輸入與非門和 74LS04 反向器組成的電路改變輸入電平。圖 中電路就是由一個 74HC30 輸入與非門和 74LS04 反向器組成的去抖電路。單片機(jī)課程設(shè)計18圖 去抖電路 發(fā)聲電路我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機(jī)某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高” “低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。本文設(shè)計如圖 所示。圖中單片機(jī)的 14 腳輸出具有復(fù)合功能,此處用到了單片機(jī) 17 腳的 IO 端口功能,單片機(jī)通過內(nèi)部定時器的操作實現(xiàn)交替變換的波形輸出驅(qū)動揚(yáng)聲器發(fā)聲。圖 發(fā)聲電路單片機(jī)課程設(shè)計19 系統(tǒng)復(fù)位使 CPU 進(jìn)入初始狀態(tài),從 0000H 地址開始執(zhí)行程序的過程叫系統(tǒng)復(fù)位。從實現(xiàn)系統(tǒng)復(fù)位的方法來看,系統(tǒng)復(fù)位可分為硬件復(fù)位和軟件復(fù)位。硬件復(fù)位必須通過 CPU 外部的硬件電路給 CPU 的 RESET 端加上足夠時間的高電位才能實現(xiàn)。上電復(fù)位,人工按鈕復(fù)位和硬件看門狗復(fù)位均為硬件復(fù)位。硬件復(fù)位后,各專用寄存器的狀態(tài)均被初始化,且對片內(nèi)通用寄存器的內(nèi)容沒有影響。但是,硬件復(fù)位還能自動清除中斷激活標(biāo)志,使中斷系統(tǒng)能夠正常工作,這樣一個事實卻容易為不少編碼人員所忽視。軟件復(fù)位就是用一系列指令來模擬硬件復(fù)位功能,最后通過轉(zhuǎn)移指令使程序從 0000H 地址開始執(zhí)行。對各專用寄存器的復(fù)位操作是容易的,也沒有必要完全模擬,可根據(jù)實際需要去主程序初始化過程中完成。而對中斷激活標(biāo)志的清除工作常被遺忘,因為它沒有明確的位地址可供編程。有的編程人員用 020220(LJMP 0000H)作為軟件陷阱,認(rèn)為直接轉(zhuǎn)向 0000H地址就完成了軟件復(fù)位,就是這類錯誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進(jìn)行的工作,這時程序出錯完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將阻止同級中斷響應(yīng)。由于軟件看門是高級中斷,它將阻止說要中斷響應(yīng),由此可見清除中斷激活標(biāo)志的重要性。在所有的指令中,只有 RETI 指令能夠清除中斷激活標(biāo)志。出錯處理程序 ERR 主要完成這一功能,其他的善后工作交由復(fù)位后的系統(tǒng)去完成。程序一般先關(guān)中斷,以便后續(xù)處理能順利進(jìn)行,然后用兩個 RETI 指令代替兩個LJMP 指令,
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1