數(shù)字鐘設(shè)計方案ppt課件
《數(shù)字鐘設(shè)計方案ppt課件》由會員分享,可在線閱讀,更多相關(guān)《數(shù)字鐘設(shè)計方案ppt課件(46頁珍藏版)》請在裝配圖網(wǎng)上搜索。
任務(wù) 一 數(shù)字鐘,功能要求 整體方案調(diào)研 整體方案論證 硬件電路設(shè)計 程序設(shè)計,功能要求,功能要求: (1)正常顯示系統(tǒng)時間。 (2)可調(diào)整系統(tǒng)時間。 (3)計時誤差:1天誤差10s。 (4)由用電設(shè)備提供+6V電源。 (5)低價位。,二、 整體方案調(diào)研,不論是設(shè)計練習或是一個實際的工程項目,在明確其性能要求的基礎(chǔ)上,首先要做的應(yīng)該是調(diào)研相關(guān)情況,了解與該項目相關(guān)的成果,以便吸收前人的成功經(jīng)驗,開闊自己的思路。在網(wǎng)絡(luò)高度發(fā)達的今天,利用網(wǎng)絡(luò)查詢無疑是最便捷、最全面的方法。,三、 整體方案論證,根據(jù)設(shè)計題目的功能要求,采用自頂向下的拼湊法可以構(gòu)成如圖1所示的方框圖。 自頂向下法(Top to Down) 首先從系統(tǒng)級設(shè)計開始,根據(jù)系統(tǒng)級所描述的該系統(tǒng)應(yīng)具備的各項功能,將系統(tǒng)劃分為單一功能的子系統(tǒng),再根據(jù)子系統(tǒng)任務(wù)劃分各部件,完成部件設(shè)計后,最后才是元件級設(shè)計。 優(yōu)點:避開具體細節(jié),有利于抓住主要矛盾。 適用于大型的、復(fù)雜的系統(tǒng)設(shè)計,整體方案論證,方案一 直接利用專用時鐘芯片計時。,整體方案論證,該方案的優(yōu)點是各器件的功能清晰。缺點是所用芯片數(shù)多、PCB面積大、接線多、焊點多。因此可靠性略差,而且成本也較高,不符合低價位的要求。 低價位是所有電子系統(tǒng)設(shè)計在保證性能的前提下都必須認真考慮的因素,有時它直接關(guān)于產(chǎn)品能否推廣應(yīng)用。,整體方案論證,方案二 圖9.1.2電路中的虛線內(nèi)部分完全可以由CPLD或FPGA來實現(xiàn)。這也是參考文獻中采用的一個方法。 這個方案的優(yōu)點是電路大為簡化,系統(tǒng)可靠性高。最大的問題是CPLD或FPGA的成本高,做為這種低端產(chǎn)品,其價格難以接受。,整體方案論證,方案三 以MCU為核心來構(gòu)架整個電路。時鐘產(chǎn)生,秒信號、分信號形成均可利用MCU片內(nèi)資源解決。分減法計時利用程序完成。LED的譯碼也可以由軟件完成。至于按鍵的設(shè)置,則可以更加靈活,并將鍵數(shù)減至最少。 這一方案的最大優(yōu)點是充分發(fā)揮了MCU軟件的功能,并使電路簡化到可以和CPLD或FPGA相媲美。,整體方案論證,電子系統(tǒng)設(shè)計的一個重要原則是:“安軟勿硬”。即能用軟件解決的同一問題,則不用硬件。這主要是因為軟件的壽命不受限制,而且軟件的編制如果完美無暇的話,其可靠性也是硬件無法比擬的。何況又能降低硬件開消。這一方案符合這一原則。 MCU的品種繁多,適合這種低端應(yīng)用的芯片也不少,其價位已低到MSI的水平,所以應(yīng)該是最低價位的方案。 很明顯,方案三是合適的。,四、 硬件電路設(shè)計,1MCU的選擇 2資源分配 3程序流程圖 4 容錯設(shè)計 5軟件的簡單抗干擾措施 6計時精度 7程序清單,硬件電路設(shè)計,9.1.4 硬件電路設(shè)計 1MCU的選擇 為降低價位和節(jié)省使用MCU的端口數(shù),LED宜采用共陰極動態(tài)驅(qū)動方式,它共需八根段位口線,兩根陰極驅(qū)動口線,即LED需要十根MCU I/O口線。 按鍵可以減少到只要兩個:功能切換和預(yù)置時間加一鍵。功能鍵完成二個任務(wù):移動預(yù)置時間的個位和分位;啟動計時。它需要二根I/O口線,而且最好接在外接中斷輸入端,以便按鍵可以用中斷或查詢兩種辦法處理。 驅(qū)動執(zhí)行器件通斷負載需要一根口根。 即共需MCU13根口線。,硬件電路設(shè)計,系統(tǒng)所需的時鐘信號可以由MCU的定時器/計數(shù)器完成。一般低端MCU均有二個定時器/計數(shù)器,可以滿足要求。 整個課題對指令執(zhí)行的速度沒有什么要求,不要求執(zhí)行速度快的MCU,一般低端MCU至少可以工作在12MHz的時鐘下,速度不成問題。,硬件電路設(shè)計,LED數(shù)碼管采用應(yīng)用最廣的0.5英寸,高亮度紅色的共陰極器件。動態(tài)驅(qū)動時每個筆段平均IF0.5mA已可明亮顯示。 若VF=1.5V,每筆段的限流電阻為2k,則LED點亮時每筆段IF1.75mA,動態(tài)掃描時每個筆段的平均電流約為0.875mA,滿足亮度要求??紤]到MCU口線的IOH較小,限流電阻應(yīng)接為上拉形式。 八段筆劃直接由P1口驅(qū)動。被點亮LED數(shù)碼管的最大電流為81.75=14mA,利用P3.0、P3.1的IOL是可以承受的。,硬件電路設(shè)計,按鍵共設(shè)兩個:功能切換鍵“S”,和加鍵“+”。分別接至INT0(P3.2)和INT1(P3.3)。 設(shè)計的功能為:上電后,定時器處于等待時間設(shè)置狀態(tài),隱含時間10分。按下“S”鍵,分個位LED閃爍。按“+”鍵,可設(shè)置分個位值。設(shè)好后,再按“S”鍵,分個位LED停止閃爍,分十位LED開始閃爍,再按一次“S”鍵,分十位LED停止閃爍,定時器啟動,設(shè)置的時間值存儲,并開始倒計數(shù)。兩只10k的上拉電阻,保證鍵按下低電平有效,相應(yīng)的硬件電路如圖9.1.3所示。,硬件電路設(shè)計,數(shù)字定時器硬件電路,硬件電路設(shè)計,考慮到上電過程中不允許用電設(shè)備瞬間動作,強電執(zhí)行部件應(yīng)為低電平驅(qū)動,它由P3.4完成。 強電執(zhí)行部件選用價格低的小型電磁繼電器,而不用性能雖好,但價格較高的SSR。根據(jù)負載以及+12V供電的情況可選用JQX-14F12V的電磁繼電器(特性見表2.6.1)。其電氣壽命達105次,應(yīng)能滿足用電設(shè)備的要求。相應(yīng)的驅(qū)動電路如圖9.1.3所示。 AT89C2051采用簡單的RC復(fù)位電路。,硬件電路設(shè)計,MCU時鐘頻率直接影響指令執(zhí)行速度與芯片的功耗。本課題對執(zhí)行速度并不要求快,而且希頻率低一點可降低功耗,故選為6MHz,由于機器周期為時鐘頻率的1/12,即2s,為整數(shù)值,定時器中斷時間亦為2s的整數(shù)倍,對計時精度有利,何況6MHz的石英晶振為長線器件,價格較低。,硬件電路設(shè)計,+12V供電由7805降至+5V供系統(tǒng)使用。按LED所有筆段全亮,所需電流約12.5mA。 JQX14F通電時線圈耗電約45mA,AT89C2051 5V供電時工作電流約12.5mA,電路總電流約70mA。 7805壓降為7V,管耗為0.49W。其熱阻/W,即使不加散熱片,其相對環(huán)境溫度的溫升約22。即使在+50環(huán)境溫度下,結(jié)溫才72。,五、 程序設(shè)計,1確定整體的程序結(jié)構(gòu) 硬件電路采用的動態(tài)掃描方式,編程序時要不停地掃描它。由于只有兩位LED數(shù)碼管,若掃描頻率選為50Hz,則每個數(shù)碼管點亮的時間為10ms。,程序設(shè)計,(1)最常用的程序結(jié)構(gòu) 圖9.1.4為設(shè)計人員最喜歡采用的主程序流程圖。主程序執(zhí)行它初值化以后,即進入循環(huán)的顯示掃描程序。其它所有的功能模塊,如設(shè)置命令、設(shè)置時間的輸入、計時等統(tǒng)統(tǒng)以中斷的方式切入。如果初值化以后只是一個簡單的循環(huán)等待,這種方式從可靠性和程序編寫上都是很可取的。,程序設(shè)計,但是本設(shè)計中的兩個按鍵,由于本身固有的抖動特性(如歐姆龍公司B3F-4055按鍵開關(guān)的抖動時間10ms),一般均采用軟件去抖,即查覺按鍵動作后,先軟件延時20ms,躲過抖動時間再接著處理按鍵相應(yīng)的功能。 在軟件延遲的時間里,顯示掃描被打斷,會導(dǎo)致顯示閃動的不良現(xiàn)象。,程序設(shè)計,(2)RTOS 多任務(wù)實時操作系統(tǒng)(RTOS,如C/OS-)可以很好的解決這一并行請求的矛盾。然而這似乎“殺雞用牛刀”。況且89C2051的程序存儲器容量也有限。,程序設(shè)計,(3)以系統(tǒng)時鐘為核心的程序結(jié)構(gòu) 我們統(tǒng)計一下本設(shè)計要使用的幾個時間量:10ms每個數(shù)碼管顯示時間;20ms按鍵去抖時間;0.5s分個位LED小數(shù)點亮/滅時間;1s計時的單位時間。,程序設(shè)計,選擇其最短的時間10ms做系統(tǒng)時鐘基準。即利用MCU的定時器每10ms中斷一次。然后確定每個時鐘需完成的任務(wù): 輪流點亮LED一次; 判有無鍵按下,若有鍵按下激活一個標志,并記錄鍵按下的時間; 檢查鍵標志,并檢查是否已到去抖時間(20ms,二個系統(tǒng)時鐘時間),若已到則判定哪個鍵按下并做相應(yīng)處理。因為每個時鐘均訪問LED一次,動態(tài)驅(qū)動得以保證。而進行鍵功能處理,有10ms的時間足矣!,程序設(shè)計,至于0.5s和1s時鐘事件處理可以由計另一時時鐘來完成,它承擔每0.5s設(shè)置位LED閃爍和1s計時信號產(chǎn)生的任務(wù),分為二個計時器可以使程序編寫起來更容易一些。,程序設(shè)計,2資源分配 (1)硬件資源分配 功能鍵KS,邊沿觸發(fā); 加鍵KAD,邊沿觸發(fā) P1.0P1.7 LED段碼輸出,高電平有效 P3.0 LED數(shù)碼管分十位陰極,低電平有效,K1 P3.1 LED數(shù)碼管分十位陰極,低電平有效,K2 P3.4 繼電器驅(qū)動輸出,低電平輸出有效,J T0 16位計時器,系統(tǒng)時鐘,10ms中斷一次 T1 16位計時器,計時時鐘,0.1ms中斷一次,程序設(shè)計,(2)寄存器資源分配 (3)標志位資源分配與功能 以上兩項請直接參閱程序清單,程序設(shè)計,3程序流程圖 圖9.1.5為主程序流程圖。,程序設(shè)計,圖9.1.6為系統(tǒng)時鐘程序流程圖。其中在進行分個位或分十位值加一時,有可能分個位或分十位正處于消隱期,即此值為20,這樣會導(dǎo)致錯誤的時間。故必須在加之前調(diào)時間值,加完以后再存入時間值。,程序設(shè)計,圖9.1.7為顯示子程序流程圖。顯示分個位還是分十位由DSS標志值決定,由于每顯示一次DSS取反,所以分個位和分十位得以輪流顯示。因為在設(shè)置時間時,設(shè)置的那一位LED 0.5s閃爍一次,故程序首先判定是否消隱或正常顯示,這要由閃爍標志位FMF決定。,程序設(shè)計,圖9.1.8為計時時鐘程序流程圖。在設(shè)置時間時,用閃爍控制標志FMF決定是否閃爍,通過SFF來決定在顯示時是消隱還是正常顯示。在計時時,停止時間閃爍,用DP取反的辦法,使分個位小數(shù)點每秒閃動一次。,程序設(shè)計,圖9.1.9(a)和(b)分別是功能鍵和加鍵的中斷子程序X0和X1。這兩個中斷程序只執(zhí)行將有鍵按下的標志位KEY置1的同一語句。程序短到無可再短,當然不會因中斷影響顯示,更不會影響其它程序的參數(shù)。,程序設(shè)計,4容錯設(shè)計 允許錯誤存在,并能防止它對系統(tǒng)正常工作的破壞,稱為“容錯”。 人為操作失誤是造成系統(tǒng)工作失敗的最重要的因素。世界上許多次嚴重的事故,如切爾諾貝利核洩漏,就是錯誤操作造成的。,程序設(shè)計,4容錯設(shè)計 一個沒有考慮容錯的設(shè)計,包括一個程序,不能算一個完美的設(shè)計。 上述數(shù)字定時器程序就至少沒有考慮二種人-機交互易產(chǎn)生的錯誤: (1)上電后,顯示10分隱含時間。正常操作應(yīng)當是:不設(shè)新時間;或者先按功能鍵,設(shè)分個位。再按功能鍵,設(shè)分十位。再按一次功能鍵正常倒計時。但是如果上電后直接按加鍵,則分個位將動作,這將導(dǎo)致功能鍵動作次數(shù)紊亂。 (2)倒計時開始后,如果按任何一鍵,也將出現(xiàn)非正常情況。,程序設(shè)計,4容錯設(shè)計 對于第一種情況,可以在系統(tǒng)時鐘程序檢測到“+”鍵時,先判別一下功能鍵次數(shù)是否為零,若是則不做加法而直接退出,見下面所列程序。 對于第二種情況,可以在開始計時后關(guān)閉外部中斷,而在計時結(jié)束后再重新允許外部中斷。,程序設(shè)計,5軟件的簡單抗干擾措施 (1)指令冗余 現(xiàn)以CK0程序中的含有冗余指令的幾個語句為例簡單說明一下它的抗干擾原理。語句如下:(具體程序見程序清單),程序設(shè)計,(1)指令冗余 程序正常運行時,程序計數(shù)器(PC)指針在執(zhí)行JMP MPRO語句時指向095H,這條指令對應(yīng)的機器碼為80H,25H。前者是指令碼,后者為相對跳轉(zhuǎn)地址,即執(zhí)行此指令后程序指針應(yīng)跳轉(zhuǎn)到25H加下條指令的PC值,即跳至OBCH。后面的三條空操作冗余指令對程序運行毫無影響。,程序設(shè)計,(1)指令冗余 倘若程序計數(shù)器的值受到了外界干擾,指向25H(如虛線所示),如果不加冗余指令,則25H被當做指令碼,將執(zhí)行ADD A, data addr,即執(zhí)行累加器ACC加一個數(shù)據(jù)地址為緊跟其后的20H。下一條指令,由于PC指向B2H,將執(zhí)行CPL bit addr,即對18H這個位地址了反??梢姵绦虮煌耆茐?。,程序設(shè)計,(1)指令冗余 如果干擾后指針仍是指向25H,但下面有三條NOP指令,程序執(zhí)行的是ADD A,00H,累加器的值會改變。但PC下一個指向的二個NOP,再下一個指向的將是正常的JB KS, RCKO語言。至少減少了程序被破壞的程度,能接著恢復(fù)正常運行。 冗余指令NOP通常加在2字節(jié)或3字節(jié)指令的后面。,程序設(shè)計,5軟件的簡單抗干擾措施 (2)軟件陷阱 程序的長度總是小于程序存儲器的容量,本課題中程序長度為170H(368 Byte),而89C2051內(nèi)部Flash memory的容量為2kB(800H),有大片的內(nèi)存的FFH剩余區(qū)。FFH為MCS-51內(nèi)核的指令代碼MOV A,R7。在剩余區(qū)里可以安排若干跳轉(zhuǎn)到初值化地址的指令,以便程序跳飛時能被這些陷阱所捕獲,還原到初值化或其它程序,請參看程序清單。,程序設(shè)計,5軟件的簡單抗干擾措施 (3)監(jiān)視定時器 監(jiān)視定時器(Watch Dog Timer-WDT)俗稱“看門狗”,是一種最常用的很有效的抗干擾方法。它的工作原理可以用圖9.1.10來說明。,程序設(shè)計,監(jiān)視定時器是一個時間計數(shù)器,復(fù)位以后,每隔一個固定的時間tWDT由Q端發(fā)生一個進位脈沖,迫使MCU復(fù)位。MCU在程序正常運行時,啟動WDT,并每隔tWDT的時間通過I/O口向WDT發(fā)送復(fù)位信號,所以WDT永遠沒有強迫MCU復(fù)位的可能。當程序受到干擾,“跑飛”以后,程序不能正常的向WDT發(fā)送,于是在跑飛tWDT時間以后,MCU復(fù)位,程序又納入正常運行。 WDT可以用外部器件自行設(shè)計,也可以使用具有WDT功能的IC,如X5045?,F(xiàn)在已經(jīng)有不少MCU內(nèi)部已帶有WDT,只需程序控制其運行即可。 對低端產(chǎn)品的本設(shè)計而言還沒有必要使用WDT。,程序設(shè)計,6計時精度 既然課題提出了對時間精度的要求,設(shè)計時就必須予以考慮。 本設(shè)計是利用MCU的定時器軟件計時。計時誤差首先取決于MCU的時鐘。 (1)MCU時鐘引起的計時誤差 MCU的fosc=6MHz,是由石英晶體振蕩器產(chǎn)生的,其頻率穩(wěn)定度優(yōu)于106,有時可達1011。按106計算,每秒變化6s,100分的變化僅0.036s,故此變化可以忽略。,程序設(shè)計,6計時精度 (2)中斷響應(yīng)時間造成的誤差 計時定時器的初填值,是按下式計算出來的 式中為計時器的容量,這里是65536,TINT為中斷(計數(shù)溢出)的時間,TC為機器周期,這里TC=2s。0.1s中斷的初填值為15536(3CB0H)。由TC為整數(shù),此初填值是無誤差的。,程序設(shè)計,6計時精度 但是由于中斷請求到執(zhí)行中斷服務(wù)程序的第一條指令是需要幾個TC的時間,即中間響應(yīng)時間。何況執(zhí)行第一條執(zhí)令填入TL1還需要三個TC。若中斷響應(yīng)時間為3TC,0.1s內(nèi)的計時誤差為6T=12s,100分計時誤差為0.72s,完全滿足計時精度要求。 如果將初填值補償(加大)6個字,則可使精度大大提高。,程序設(shè)計,7程序清單 (略),- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
200 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)字 設(shè)計方案 ppt 課件
鏈接地址:http://italysoccerbets.com/p-845090.html