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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文----單片機(jī)電子時(shí)鐘-畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-02-24 04:13 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 S51的 20腳、 40腳、 74LS164的 7腳、 14腳。發(fā)現(xiàn)電壓 分別為 5V、 0V、 5V、0V。當(dāng)有 5V時(shí)并非很平滑的 5V,而是在 5V左右的有毛刺的電平。此時(shí)三端穩(wěn)壓塊仍有發(fā)燙的現(xiàn)象。立即關(guān)掉電源,發(fā)現(xiàn)每個(gè) IC即 89S51和 74LS164的電源和地線都接反了。 調(diào)整好之后用示波器再次測(cè)試得到預(yù)期的結(jié)果 電源正常。 2 檢查單片機(jī)的振蕩信號(hào)。 示波器的探頭放在單片機(jī)的 18腳和 19腳即 XTAL2和 XTAL1上示波器顯示無(wú)信號(hào),這時(shí)單片機(jī)不能正常工作。說(shuō)明外部的振蕩器件出現(xiàn)了問(wèn)題,要么是晶振要么是起振電容出現(xiàn)了問(wèn)題。晶振是新的所以損壞的機(jī)率比較小,想到可能是 起振電容有問(wèn)題。然后查看電容上面印有的標(biāo)稱(chēng)值發(fā)現(xiàn)是 1UF的,更替為 30PF的電容后,在示波器上看到頻率為 11MHz的正弦波 信號(hào)(雖然用 14 的晶振的頻率為 ,但由于示波器的精度問(wèn)題,就不可能看到頻率讀數(shù)顯示為 ) ,說(shuō)明單片機(jī)的震蕩信號(hào)正常,可以為單片機(jī)提供工作的震蕩信 號(hào)。 3 把程序燒錄到單片機(jī),然后進(jìn)行 測(cè)試,發(fā)現(xiàn)單片機(jī)沒(méi)有輸出信號(hào)。先寫(xiě)一段程序使單片機(jī)的 32腳( )輸出為 250Hz的方波 ,下載好之后把單片機(jī)插到 40腳的 IC座, 32腳并沒(méi)有方波信號(hào)輸出 (這時(shí)的程序 僅有輸出方波的功能, 已經(jīng)編譯通過(guò) 是絕對(duì)沒(méi)有錯(cuò)誤問(wèn)題的 ),說(shuō)明硬件還是沒(méi)有完全調(diào)試通過(guò) 。在該畢業(yè)設(shè)計(jì)中 MCU只有三個(gè)地方可調(diào): 1 40腳 VCC, 2 18和 19腳振蕩信號(hào), 3 復(fù)位信號(hào)。在調(diào)試的第一步和第二步已經(jīng)把電源和振蕩信號(hào)調(diào)好,所以只可能是復(fù)位信號(hào)出現(xiàn)了問(wèn)題。 電源通電之后,從三端穩(wěn)壓塊的第三腳引出 一條線,在 MCU的第九腳輕觸,再看單片機(jī)的 32腳,看到示波器上面有 250Hz的方波出現(xiàn)。說(shuō)明復(fù)位信號(hào)確實(shí)有問(wèn)題。原來(lái)復(fù)位電路接法如下圖 a。 圖 a MCU無(wú)法復(fù)位,原因是開(kāi)機(jī)瞬間, MCU沒(méi)有達(dá)到穩(wěn)定狀態(tài), RST就由低變?yōu)楦咴僮優(yōu)榈投鴱?fù)位, (也可以理解為復(fù)位信號(hào)的持續(xù)時(shí)間沒(méi)有達(dá)到 24個(gè)振蕩周期之上) 。 調(diào)整方法:加大電容容量 。 而設(shè)計(jì)中換為另外一種復(fù)位方式 按鍵復(fù)位。 如圖 b。 圖 b 按照上圖所示的電路連接元器件,開(kāi)機(jī)后按下復(fù)位按鈕,在單片機(jī)的 32腳 250Hz的方波出現(xiàn)。另 15 外還可以按照課本上的第三種接法: 外部脈沖復(fù)位,即在開(kāi)機(jī)后外部給出一個(gè)脈沖信號(hào),同樣也要使脈沖寬度要大于兩個(gè)機(jī)器周期( 24個(gè)振蕩周期)。但考慮到成本問(wèn)題,不用了。 4 因?yàn)?250Hz的正弦波信號(hào)是作為 74LS164的 CLOCK( CLK)信號(hào),即 74LS164的移位信號(hào),是和74LS164的第八腳相連的,用示波器觀察第八腳,卻發(fā)現(xiàn)沒(méi)有任何信號(hào)。單片機(jī)的 32腳有 CLK信號(hào),而和其相連的 74LS164的第八腳卻沒(méi)有信號(hào),說(shuō)明連接出現(xiàn)了問(wèn)題。用萬(wàn)用表查看發(fā)現(xiàn)兩個(gè)管腳是斷開(kāi)的。原來(lái) 74LS164的第八腳和 GND連在了一起。 重新焊接之后,第八腳上面有了 CLK信號(hào)。 5 利用程序一直送出一組串行數(shù)據(jù),用示波器在單片機(jī)的 33 腳可以看出。 單片機(jī)的 33腳是和74LS164的 1腳和 2腳連在一起的, 按照習(xí)慣 把兩個(gè)串行輸入端 A和 B連接起來(lái),用示波器在這兩個(gè)腳上也看到了數(shù)據(jù),在 74LS164的輸出端應(yīng)該有并行的數(shù)據(jù)送出來(lái)。用示波器只看到了 同樣的高電平,說(shuō)明 74LS164的外圍電路 不對(duì), 查閱 74LS164相關(guān)資料發(fā)現(xiàn)它的第九腳為使能信號(hào)端,空置著沒(méi)用。正確的接法應(yīng)該是接 +5V。接好之后測(cè)試發(fā)現(xiàn) 74LS164的輸出端有數(shù)據(jù)送出。再看 LED上也有數(shù)字顯示。 至此 74LS164部分調(diào)試完畢。 6 單片機(jī)和 74LS164的電源都已經(jīng)調(diào)試通過(guò),用手觸摸三端穩(wěn)壓塊感覺(jué)還是燙的, 每個(gè) IC消耗的電流大約幾十 mA,這兩個(gè) IC的電流加起來(lái)也不過(guò)四五十 mA,在這種情況下是不會(huì)這么燙的,說(shuō)明其他電路流過(guò)的電流比較大, 再次查看分析電路,出現(xiàn)問(wèn)題的地方可能是共陽(yáng)極數(shù)碼管消耗的功率太大,從而導(dǎo)致 7805發(fā)燙。如果數(shù)碼管的每段消耗 10mA電流,則 40段就會(huì)消耗 400mA。在一般情況下每段 LED通過(guò) 3~ 4mA的電流就能正常發(fā)光,為了減小 7805的溫度和減弱共陽(yáng)極數(shù)碼管的亮度,決定在 74LS164和共陽(yáng)極數(shù)碼管之間加上限流電阻,經(jīng)過(guò)計(jì)算電阻選用 1K的阻值,使每段通過(guò)的電流在 3~ 4mA。這樣使得總共的消耗的電流才一百多 mA, 7805才不會(huì)那么燙。 把所有的電阻焊接后,再打開(kāi)電源,果真三端穩(wěn)壓塊沒(méi)有原來(lái)那么燙。 這樣加上了限流電阻后主要有 兩個(gè)好處: 1 減小了總功耗,延長(zhǎng)了器件的壽命; 2 減小了 LED中通過(guò)的電流,減弱了 LED的亮度,防止 LED長(zhǎng)時(shí)間工作而燒壞。 7 最大的一個(gè)問(wèn)題: 接通電源后, LED雖有顯示,全顯示為一個(gè) 8字型,而非開(kāi)機(jī)時(shí)顯示 0字型, 在 顯示數(shù)據(jù)時(shí),數(shù)碼管的 G、 D兩節(jié)始終顯示 ,用萬(wàn)用表測(cè)試發(fā)現(xiàn)是顯示 G和 D的兩個(gè)引腳和電源連在一起。 8 去耦電容沒(méi)加,電源雜波較大,輸出顯示不穩(wěn),有錯(cuò)位現(xiàn)象,原因是電源本來(lái)就不穩(wěn),加上了三端穩(wěn)壓和濾波電容后得到比較干凈的電源,此時(shí)顯示的數(shù)據(jù)比較穩(wěn)定。 9 對(duì) 三極管 進(jìn)行調(diào)試, 三極管與數(shù)碼管的共陽(yáng) 極相連。 R9~ R14為各個(gè)三極管基極提供偏置電流,使三極管達(dá)到飽和,當(dāng) P0口有高電平送出時(shí),三極管飽和,相對(duì)應(yīng)的 LDi為高電平, LED發(fā)光。 最后, 結(jié) 合計(jì)算機(jī)對(duì) 電子時(shí)鐘 板進(jìn)行全面調(diào)試,具體為 AT89S51 接受數(shù)據(jù),然后傳給 74LS164 芯片,通過(guò) 74LS164 芯片向 LED數(shù)碼管一位一位傳送數(shù)據(jù)。另外,可以通過(guò)人為的對(duì)開(kāi)關(guān)的按鍵控制數(shù) 16 據(jù)顯示。 軟件 調(diào)試 軟件部分主要完成 數(shù)據(jù)的發(fā)送 、 74LS164 移位脈沖信號(hào)的輸出、定時(shí)和中斷。 1 首先向 74LS164 發(fā)送 字型碼,使 LED 顯示對(duì)應(yīng)的數(shù)字。 將字型碼送入 字型鎖存器鎖存,這時(shí)所有的顯示塊都有可能顯示 。 同樣的字符;再將需要顯示的位置代碼送入字位鎖存器鎖存。為防止閃爍,每位顯示時(shí)間在 1~ 2mS, 然后顯示另一位,單片機(jī)需要不斷的進(jìn)行顯示刷新。 在這之前應(yīng)該定義好單片機(jī)的引腳并對(duì)內(nèi)存初始化。因?yàn)槎丝?3是一個(gè)雙向 I/O 端口,每個(gè)腳 有內(nèi)部升壓電阻 ,可 以直接驅(qū)動(dòng)外部電路。 所以把單片機(jī)的 12 腳即 作為按鍵的公共端,并 定 義每個(gè)按鈕 的另 一端: SW1 BIT SW2 BIT SW3 BIT SW4 BIT SW5 BIT SW6 BIT DIG1 BIT DIG2 BIT DIG3 BIT DIG4 BIT DIG5 BIT DIG6 BIT 之所以 DIG1~DIG6 定義的引腳和按鍵定義的引腳重復(fù),是因?yàn)榘存I和每個(gè) DIG 共用同一個(gè)引 腳,每個(gè)引腳用于控制 對(duì)應(yīng)的 LED 的選通,并且 通過(guò)單片機(jī)檢測(cè)按鍵引腳電平的高低來(lái)對(duì)時(shí)分秒 進(jìn)行加減。 2 定義好 程序段的起始地址和數(shù)據(jù)段的起始地址后就可以初始化內(nèi)存 了 : ORG 0000H JMP MAIN MAIN: MOV SP,40H 17 MOV PSW,00H MOV R0,7FH CLR_RAM : MOV A,00H DJNZ @R0,A MOV P1,0FFH MOV P2,0FFH MOV P0,0FFH MOV P3,0FFH 3 這樣單片機(jī)經(jīng)過(guò)復(fù)位以后就開(kāi)始正常工作,從主程序開(kāi)始執(zhí)行,可以看到四個(gè)口輸出的全都是高電平 。此時(shí),想測(cè)試以下 LED 顯示是否正常,以下幾條指令往 送數(shù)據(jù)即可, MOV BUFF_164, 08H PUSH ACC SND164_LP: RLC A MOV DAT164,C DJNZ BUFF_164, SND164_LP POP ACC RET 本段程序是利用串行傳送數(shù)據(jù)的思想,即先把要發(fā)送的數(shù)據(jù)發(fā)送到專(zhuān)用寄存器 A,然后把累加器A中的數(shù)據(jù)循環(huán)左移 。當(dāng)然這之前是一定要把各個(gè)寄存器定義好的,否則會(huì)是錯(cuò)誤百出, 我原來(lái)想當(dāng)然的把 0C0H 發(fā)送到 P0口,用示波器在 引腳看信號(hào),只發(fā)現(xiàn)該引腳一直都是低電平, 不論怎么調(diào)試輸出的結(jié)果都是低電平,還是向在實(shí)習(xí)的公司工作的人才知道了所以然:原來(lái)我用的方法是把八位的數(shù)據(jù)直接送到一個(gè)口上,當(dāng)然,每個(gè)引腳只能占到 一位的數(shù)據(jù)。后來(lái)在他的講解下我才知道 關(guān)鍵是把八位的數(shù)據(jù)變成串行數(shù)據(jù)輸出,即用循環(huán)移位的方法把數(shù)據(jù)一位一位的送出去, 由于在學(xué)校的時(shí)候自己寫(xiě)的程序不多,再加上我們學(xué)校開(kāi)設(shè)的硬件反面的課程不是很多,所以對(duì)程序與硬件之間的關(guān)系不是太了解,但是經(jīng)過(guò)反復(fù)的翻書(shū)、查閱資料,使自己在程序和硬件方面比以前都得到了很大的提高。 然后,我把每八位數(shù)據(jù)對(duì)應(yīng)的數(shù)字都試過(guò)了一遍,從 0~ F 直到所有的顯示都完全正確,其實(shí)也是把 書(shū)本上面的字型碼又驗(yàn)證了一遍而已,發(fā)現(xiàn)和書(shū)上給的字型碼是完全一致的。 所以決定程序中使用以下數(shù) 形表: TAB_LED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H,83H,0A7H 18 DB 0A1H,86H,8EH 4 每次僅僅發(fā)送數(shù)據(jù)是不行的,還要 和每一位的選通碼結(jié)合起來(lái),才能實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)顯示。要不然就是一個(gè)實(shí)實(shí)在在的靜態(tài)顯示的例子。所以要用到了定時(shí)和中斷??紤]到時(shí)間的精確性,決定 每4MS 中斷一次, 1S中斷 250次, 4MS 的時(shí)間既不會(huì)使六個(gè)數(shù)碼管有閃爍感,也使中斷的編程容易一些。 由于 89S51 的計(jì)數(shù)器是往上計(jì)數(shù)的, 晶振為 12MHZ,所以機(jī)器好 周期位 1US,定時(shí)器初值的計(jì)算方法如下 。溢出率 =1/T=Fosc/12(2LTC),溢出率為定時(shí)時(shí)間的倒數(shù); T 為定時(shí)時(shí)間; Fosc為振蕩器的頻率; L 為計(jì)數(shù)器的長(zhǎng)度; TC 為定時(shí)器的初值;帶入公式:計(jì)算初值為( 655364000)。編程如下 : MOV TMOD,21H ;設(shè)定定時(shí)器的工作方式: T1 為方式 2(自動(dòng)重裝載的 8 位計(jì)數(shù) ) T0為方式 1( 16 位計(jì)數(shù)器) MOV TH0,HIGH(655364000) 。T0=4MS MOV TL0,LOW(6555364000) SETB TR0 。啟動(dòng) T0 MOV IE,10000011B 。設(shè)置中斷使能:外部中斷 0 允許中斷 MOV IP,00000010B 。T0 中斷優(yōu)先 原來(lái)調(diào)試之前,并沒(méi)有加上 SETB TR0這一條指令,所以 T0并不正完成計(jì)數(shù),使得后面的程在 在工作時(shí)出現(xiàn)了異常,不能夠在規(guī)定的地方中斷。加上去就恢復(fù)了正常。 5 在課本的 149 頁(yè)也講到了擴(kuò)展的多個(gè)外部中斷的方法: SW1~SW6 六個(gè)按鍵每個(gè)按鍵的引腳都連接在一起,然后在連接 到 口, 口實(shí)際上是外部中斷零的引腳。 六個(gè)擴(kuò)展外部中斷源有一個(gè)或幾個(gè)出現(xiàn)低電平,引起 INT0低電平出發(fā)中斷,所以這些中斷源都是電平觸發(fā)方式。當(dāng)滿(mǎn)足外部中斷請(qǐng)求條件時(shí) ,則 CPU響應(yīng)中斷;轉(zhuǎn)入 0003H 單元開(kāi)始執(zhí)行中斷服務(wù)程序。在這里為什么是 0003H 單元呢?翻閱資料便可以發(fā)現(xiàn)原來(lái)外部中斷矢量地址是 0003H。不過(guò),在剛開(kāi)始寫(xiě)程序時(shí)并沒(méi)有把這個(gè)地址加進(jìn)去,所以即使有了中斷出發(fā)電平也不能使中斷觸發(fā),這個(gè) 0003H 是我在編寫(xiě)軟件時(shí)遇到的最大的問(wèn)題之一,光是解決這個(gè)問(wèn)題就花了好長(zhǎng)時(shí)間。當(dāng)翻看課本時(shí)才發(fā)現(xiàn)原 來(lái)老師講課時(shí)就給我們畫(huà)下了重點(diǎn),要我們 記住幾個(gè)中斷的中斷矢量地址。而我們卻忽略了。 如下的六條指令便完成擴(kuò)展外部中斷。 JNB SW1,SW1_OK ; SW1=0 則轉(zhuǎn) SW1_OK,否則執(zhí)行下一條指令 JNB SW2,SW2_OK ; SW2=0 則轉(zhuǎn) SW2_OK,否則執(zhí)行下一條指令 JNB SW3,SW3_O
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1