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

正文內(nèi)容

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

2024-08-16 19:24 本頁(yè)面
 

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