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

正文內(nèi)容

課程設(shè)計論文-基于89c51單片機(jī)的數(shù)字電子鐘設(shè)計(編輯修改稿)

2024-11-30 19:17 本頁面
 

【文章內(nèi)容簡介】 的制作 本次設(shè)計的數(shù)字鐘系統(tǒng)中由于頻率不是特別高,所以在設(shè)計 PCB 板時不存在考慮走線之間頻率干擾問題, 但由于設(shè)計規(guī)定了 PCB 板的大小為 7*9cM,并且是單面板,所以對我們的設(shè)計帶來了一定的難度,在設(shè)計中不得不通過走飛線的方式完成 PCB 板的制作。 5. 1 PCB 板的制作規(guī)則 我在數(shù)字鐘設(shè)計中采用 Orcad 軟件平臺, 完成了 PCB 的制作, 在 PCB 的設(shè)計中需注意以下的一些規(guī)則: ( 1) 在 Orcad 中制作 PCB 時一定要注意板層的設(shè)置,我們本次設(shè)計的是單面板,所以需將 Bottom 層設(shè)為走線層, TOP 層設(shè)為絲印層( DOC 層),別的板層全部設(shè)為 不走線層。 ( 2) 由于本次設(shè)計的單面板大小規(guī)定為 7*9Cm,所以在開始制定板框大小時,在 Global 層畫邊框時,將其設(shè)置為規(guī)定的大小,然后根據(jù)一定的規(guī)則放置元件,放置元件時應(yīng)讓元件間的走線距離最小。 ( 3) 放置元件時須注意一些規(guī)則,例如將單片機(jī)的晶振和 電容靠近單片機(jī)放置, 將電源供電的 USB 接口靠近板框放置等。 ( 4) 在放置完元件之后,進(jìn) 行布線時需注意一些走線時的設(shè)置,最重要的是元件過孔的孔徑設(shè)置,為了制作方便,本次制作設(shè)為 、 、當(dāng)然,設(shè)置了孔徑,還需注意焊盤的大小,軟件默認(rèn)的焊盤大小一般太小,焊接時不太方便 ;其次是走線的安全間距設(shè)置, 走線間距一般默認(rèn)為軟件的設(shè)置,即 ;下來就是走線的一些規(guī)則設(shè)置,如果是自動布線,則可設(shè)置布線時的一些規(guī)則,如果是手工布線,則可根據(jù)需要進(jìn)行布線。 ( 5) 在走線時一定要注意電源走線的設(shè)置,電源的走線一定要寬,這樣承載的電流會更大, 電流的大小與走線的寬度之間有一定的計算公式,可以作 參考。為了使單面板的布線方便,飛線更少,我們將地線設(shè)為敷銅種子,在敷銅時與大面積的銅相接。 5. 2 飛線的處理 由于 制作的 是單面板,難免有很多的飛線,在制作完 PCB 板之后,需處理飛線。 經(jīng)常選取的辦法是打過孔,這樣在加工之后可以采用飛線將其連接。當(dāng)然,飛線的多少取決于布線的水平高低。有時為了減少飛線而走很遠(yuǎn)的路,這樣帶來高頻的影響,我覺得這種方法應(yīng)該避免。 5. 3 PCB 制作中的注意事項 USB 供電 單片機(jī)數(shù)字鐘設(shè)計報告 10 ( 1)要注意焊盤的大小、過孔的大小、走線的安全間距及走線的寬帶,在適當(dāng)?shù)臅r候應(yīng)該用游標(biāo)卡尺進(jìn)行測量,保證元器件能夠合適的 插進(jìn)去。 ( 2)對于一些自己制作的原件封裝,一定要測量使之合理。 ( 3)電源走線一定要寬,實際上是越寬越好,但過寬會影響布線的效率。適當(dāng)?shù)臅r候我們可以大概的計算一下, 使之更加合理。 ( 4)在布線時我們一定要弄清楚板層,有時一個放錯了板層的字符,會帶來制作時的困難,要想合理的完成制作,必須清楚板層。 ( 5)首次在 PCB 板上放置 USB 接口,一定要注意正負(fù)極不能接反。 ( 6)如果有必要,可以在每個芯片的 VCC 極和 GND極之間跨接一個 ~之間的瓷片電容。為了使電源電壓穩(wěn)定,可以在電源電壓與 地之間接一個濾波電容,如果電源電壓波動較大,則可以使用穩(wěn)壓芯片來穩(wěn)壓。 ( 7)在敷完銅之后,需要觀察敷銅區(qū)域,避免有些接地的敷銅區(qū)域形成孤島。如果存在孤島,則需要與最近敷銅區(qū)連接起來,經(jīng)常采用打過孔走飛線的方式使其連接起來。 ( 8)在放置元件時,由于設(shè)置了安全間距,元件放置較近時會出現(xiàn)報錯提示,但這對 PCB 板的制作是沒影響的。 5. 4 制作后的 PCB 板如下 軟件模塊的設(shè)計 本次設(shè)計單片機(jī)數(shù)字鐘,供可選擇的語言有匯編語言和 C 語言兩種選擇,單片機(jī)數(shù)字鐘設(shè)計報告 11 從總體角度考慮,兩種語言各有其優(yōu)缺點(diǎn)。匯編語言在編寫過程中 可以較容易的計算出機(jī)器周期,這樣可以計算出相應(yīng)的延時與誤差,并且在編譯過程中精度較高,執(zhí)行效率也較高,是各種語言中執(zhí)行效率最高的一種。相反,匯編語言又是一種較為低級的語言,編寫起來難度較大,程序量也較大, 不易編寫大規(guī)模的系統(tǒng)。 C 語言它的靈活性較強(qiáng),語法功能也比較強(qiáng)大,對于同一個設(shè)計,與匯編語言相比,工作量較小,完全可以實現(xiàn)匯編無法實現(xiàn)的一些功能。雖然 C 語言具有強(qiáng)大的功能,但也有不足之處,比如在循環(huán)延時時不易計算出相應(yīng)的機(jī)器周期,還有,采用不同的編譯器,可能以不同的方式編譯出不同的機(jī)器碼。 由于本次設(shè)計的單片 機(jī)數(shù)字鐘編程量較大,又考慮到后面的工作過程中將大量使用 C 語言編程,所以本次編寫過程采用 C 語言,基于 Kiel C3 軟件來完成軟件模塊的設(shè)計工作。 6. 1 數(shù)字鐘總體設(shè)計框圖 編程 設(shè)計 數(shù)字鐘大家可能最常用的就是采用單片機(jī)中的定時器定時的方法,由于定時器不能一次定時 1s,所以需采用定時一定的時間,循環(huán)疊加的方法,加到一秒后,將其顯示的秒加一,然后判斷分和時是否加一,這樣就完成了數(shù)字鐘的最基本制作。 我在此次設(shè)計中采用的方法完全不同于上面的常規(guī)方法,主要是受到了EDA 中并行的影響,當(dāng)然,單片機(jī)中是不可能實現(xiàn)并 行的,但我們可以用串行的方式模擬并行 ,實現(xiàn)數(shù)碼管的掃描及采用延時粗略計算出 1s 的延時,這樣很多人可能認(rèn)為不準(zhǔn)確,但我們可以分好多的延時,這樣在校時時不會出現(xiàn)改一個數(shù)字出現(xiàn)大的變化的情況。 程序設(shè)計框圖如下: 開 始 F0 = 1 設(shè)置鬧鐘的時間 =當(dāng)前時間 F0 = 0 F0 = 1 鬧鐘報警 Y Y N N 鬧鐘流程圖 單片機(jī)數(shù)字鐘設(shè)計報告 12 開 始 掃 描 顯示時間 I + + 總延時 1s i=0 秒加一 分 =60 秒 =00 分加一 秒 =60 分 =00 時加一 時 =24 時 =00 Y Y Y Y N N N N 正常走時流程圖 單片機(jī)數(shù)字鐘設(shè)計報告 13 開 始 給時分秒 6位數(shù)分配6 字節(jié)靜態(tài)存儲空間 中斷優(yōu)先級設(shè)置 開外中斷 設(shè)置鬧鐘? 防抖延時 設(shè)置鬧鐘? 開定時器 0,定時 50ms 定時器中斷? 將當(dāng)前時分秒保 存到靜態(tài)空間 N 時分秒全置零 掃描顯示 是否外中斷? N 設(shè)置鬧鐘? Y 保存鬧鐘設(shè)置時間 中斷服務(wù),對時及設(shè)置鬧鐘,相 應(yīng)的時分加一 Y 計數(shù)器 m++ Y 取出設(shè)鬧鐘之前保存時間 加上 m*50ms 的設(shè)置鬧鐘耗時時間,掃描顯示正常時間 Y Y 延 時 正常走時 N N N 鬧鐘設(shè)置流程圖 單片機(jī)數(shù)字鐘設(shè)計報告 14 6. 2 源程序 源程序見 附件 Ⅰ 。 設(shè)計中的問題分析與解決 由于這是我第一次系統(tǒng)地進(jìn)行設(shè)計,難免會遇到很多的問題。當(dāng)然,作為我們初學(xué)者來說,遇到問題越多收獲也就也多,這就要看我們解決問題能力及方案了。下面是我在這次設(shè)計中所遇到的一些問題總結(jié)。 ( 1) 由于此次設(shè)計數(shù)字鐘,主要是由軟件來完成的,所以硬件中的問題相對來說較少。當(dāng)我們將 PCB 板設(shè)計完之后,焊接上元件之后,如果出現(xiàn)不正常工作的情況,我們可以確定是硬件問題。 解決方案:①檢查單片機(jī)是否正常工作,我們可以使用示波器進(jìn)行觀察單片機(jī)ALE(第 30 引腳)的輸出波形,如果輸出波形的頻率是晶振頻率 的 6 分頻,則證明單片機(jī)是正常工作的。 ②如果單片機(jī)第 31 引腳沒有輸出波形,首先應(yīng) 檢查晶振 的好壞,我們可以更換晶振看其是否能正常工作。 ③如果還不正常工作,說明是硬件電路的設(shè)計有問題,首先我們應(yīng)該檢查的是所有芯片的電源是否正常。 ( 2) 我們采用 C 語言,利用單片機(jī)中的優(yōu)點(diǎn)中斷和定時器,完成數(shù)字鐘其實很容易實現(xiàn),但要完成精度相當(dāng)高的數(shù)字鐘設(shè)計,加上實現(xiàn)校時和鬧鐘功能之后,我們會遇到很多的問題。 首先是怎么避免由按鍵造成的延時誤差,我們 總結(jié) 的方案有 4 種,分別是: ① 計算出按鍵延時的具體時間,按鍵一次則給定時器加上相應(yīng)的按鍵延時時間,這樣雖然可以大大的減小按鍵延時帶來的時間誤差,但還是有一定量的機(jī)器周 期的延時。例如使用這種方法又需在定時器中添加一些判斷語句,當(dāng)符合條件時,將會增加一定 的機(jī)器周期。 ②通過采用設(shè)置優(yōu)先級的方式可以清除按鍵防抖延時,在主程序中我們需要將定時器的中斷優(yōu)先級設(shè)為最高,別的中斷優(yōu)先級設(shè)為低,這樣我們在按鍵中斷時,如果定時器還未中斷,則響應(yīng)外部中斷,這樣對定時器的定時沒有影響;如果在響應(yīng)外部中斷的時候,有定時中斷,則優(yōu)先響應(yīng)定時中斷,這樣又對定時器的定時沒有影響;如果在響應(yīng)定時中斷時,則別的中斷不會影響到定時器的正常定時。 ( 3)在設(shè)定鬧鐘時間時,我們要確保定時器的 正常工作,如何 既要讓數(shù)碼管顯示鬧鐘設(shè)置的相應(yīng)時間,并且定時器的正常計數(shù)不能受到影響,我們應(yīng)該如何解決這個矛盾呢 ? 解決方案:為了使編程更加方便,我們專門設(shè)置了一個啟動設(shè)置鬧鐘的開關(guān),當(dāng)開關(guān)設(shè)為高電平時,則為鬧鐘設(shè)置,首先數(shù)碼管上全部顯示零,即清零。然后按相應(yīng)的校時按鈕,則數(shù)碼管顯示被設(shè)置的相應(yīng)時間,在設(shè)置鬧鐘的這期間,是如何確保相應(yīng)時間的準(zhǔn)確性呢?我是這樣解決的,當(dāng)啟動設(shè)置鬧鐘開關(guān)之后,在程序中同時啟動另一個定時器開始定時工作,當(dāng)定到 50ms 時,發(fā)生中斷,相應(yīng)的變量加一,這樣我們就可以計算出在設(shè)置鬧鐘時所花費(fèi)的時間 。當(dāng)設(shè)置鬧鐘開關(guān)置到相應(yīng)的低電平時,說明設(shè)置鬧鐘結(jié)束,在這同時,我們將變量所記的數(shù) 與50ms 相乘,計算出與之對應(yīng)的秒數(shù),加到鬧鐘設(shè)置之前保存到靜態(tài)變量中的數(shù)上。這種方法有一定的缺陷,會造成一定的延時,經(jīng)過軟件處理,延時將在 0~之間隨機(jī)產(chǎn)生。 ( 4)在測量數(shù)字鐘精度時,我們發(fā)現(xiàn)了一個問題,在數(shù)字鐘正常工作時,會單片機(jī)數(shù)字鐘設(shè)計報告 15 出現(xiàn)秒與秒之間不相等的情況,比如在 10 分鐘之內(nèi)我們與標(biāo)準(zhǔn)時間進(jìn)行比較會發(fā)現(xiàn),有時發(fā)現(xiàn)時間走的快,有時時間走的慢。 解決方案:后面在程序中發(fā)現(xiàn),原因是由于程序中的 if 判斷語句 ,在判斷過程中 當(dāng)滿足條件時,會執(zhí)行更多的語句,這樣會有相應(yīng)的機(jī)器周期的延時,所以會出現(xiàn)時間一會走的快一會走的慢的情況。這種情況只有通過減少 if 語句,怎么減少 if 語句呢?我們可以充分利用單片機(jī)的自身條件,充分利用單片機(jī)中的定時器,定時器不夠用時我們可以選用 89c52 系列。 設(shè)計總結(jié)與心得 單片機(jī)數(shù)字鐘可以說是一個較小的系統(tǒng), 開始時我們覺得通過 C 語言較容易實現(xiàn),確實,只實現(xiàn)一個能夠正常走時并且能夠校時的數(shù)字鐘是比較容易的。但我們想錯了,畢竟是第一次從總體角度來考慮地完成一個小系統(tǒng),好多的實際性的問題我們沒有考慮,所以造成 我們最終設(shè)計的數(shù)字鐘精度不高,并且存在好多問題,當(dāng)然問題多了對我們來說是好事,這樣我們在解決更多問題時學(xué)會更多解決問題的方法,對我們也算是長長經(jīng)驗吧。 最開始我們需要總體設(shè)計,這就是常常說的算法。平時的編程實現(xiàn)的都是小功能,我們按照自己的想法直接寫下去就可以實現(xiàn),但這次不一樣,我們不但要實現(xiàn)數(shù)字鐘的正常工作,而且需要加上設(shè)置鬧鐘及鬧鐘到報警和是否已經(jīng)設(shè)置了鬧鐘的指示燈提示,這在我們設(shè)計時會遇到好多的矛盾,當(dāng)然矛盾我們可以一個個的解決,當(dāng) 然 更重要的是在解決矛盾時 我們要確保時間的準(zhǔn)確性,這又需要我們計算機(jī)器周期和處理一些延時程序的延時,這可能是我們本次設(shè)計中最 困難的問題,我們在解決這個問題中更深入的理解了單片機(jī)的內(nèi)部結(jié)構(gòu),也學(xué)會了合理利用單片機(jī)中的定時器和中斷處理。 除了在編寫程序中遇到的問題之外,我對程序又有了更深一層的認(rèn)識,就像王老師經(jīng)常說的那樣,人類只是現(xiàn)在還沒有弄清楚人類的思維方式,如果有一天生物科技真正研究通了人類自己的思維方式,機(jī)器人將真的會有自己的思維方式,可能真的就會戰(zhàn)勝人類了。在這次設(shè)計中,讓我真的明白了,只要我們想明白的事情,我們一定會用程序?qū)⑵涿枋龀鰜?,不管它有多么的復(fù)雜。 接 下來就是 PCB 的制作,這次可算是經(jīng)歷了全部過程,從畫原理圖到 PCB的導(dǎo)出,最后到生產(chǎn)加工出成品,尤其是 PCB 板的加工生產(chǎn)過程尤為重要,從生產(chǎn)加工中我們可以學(xué)到很多在畫 PCB 時的注意事項,也理解了我們在軟件中的各種設(shè)置的重要性及 的差距??粗庸C(jī)床的機(jī)械臂在那兒來回著工
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1