多功能數(shù)字時(shí)鐘輔導(dǎo)教師:秦文華 趙建平作者:邢慶翠 王式龍 張乾 完成時(shí)間:2004 年 9 月 13 日電子設(shè)計(jì)參賽隊(duì):B 甲 0816 曲阜師范大學(xué)2004 年 9 月 13 日目 錄一. 方案論證與比較二. 系統(tǒng)設(shè)計(jì)三. 軟件設(shè)計(jì)四. 系統(tǒng)測(cè)試與分析五. 設(shè)計(jì)總結(jié)六. 參考資料摘要本設(shè)計(jì)由單片機(jī) 89鐘芯片、數(shù)轉(zhuǎn)換芯片為核心,輔以必要的電路,構(gòu)成了一個(gè)具有多功能的數(shù)字時(shí)鐘 它由220V、50流電源供電,能夠準(zhǔn)確的顯示時(shí)間、調(diào)整時(shí)間、鬧鐘定時(shí),并能夠?qū)r(shí)鐘所在的環(huán)境溫度、工作時(shí)的電網(wǎng)電壓、電網(wǎng)頻率進(jìn)行顯示,還具有電壓欠壓、過(guò)壓報(bào)警以及非接觸止鬧功能一、方案論證與比較1.?dāng)?shù)字時(shí)鐘數(shù)字時(shí)鐘是本設(shè)計(jì)的最主要的部分根據(jù)需要,可利用兩種方案實(shí)現(xiàn)方案一:本方案完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘原理為:在單片機(jī)內(nèi)部存儲(chǔ)器設(shè)三個(gè)字節(jié)分別存放時(shí)鐘的時(shí)、分、秒信息利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn) 1 秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器內(nèi)相應(yīng)的秒值加 1;若秒值達(dá)到 60,則將其清零,并將相應(yīng)的分字節(jié)值加 1;若分值達(dá)到 60,則清零分字節(jié),并將時(shí)字節(jié)值加 1;若時(shí)值達(dá)到 24,則將十字節(jié)清零該方案具有硬件電路簡(jiǎn)單的特點(diǎn)。
但由于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)鐘將不工作方案二:本方案采用 司的專用時(shí)鐘芯片 芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于 10,且具有完備的時(shí)鐘鬧鐘功能,因此,可直接對(duì)其以用于顯示或設(shè)置,使得軟件編程相對(duì)簡(jiǎn)單為保證時(shí)鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池當(dāng)電網(wǎng)電壓不足或突然掉電時(shí),系統(tǒng)自動(dòng)轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)而且即使系統(tǒng)不上電,程序不執(zhí)行時(shí),鋰電池也能保證芯片的正常運(yùn)行,以備隨時(shí)提供正確的時(shí)間基于時(shí)鐘芯片的上述優(yōu)點(diǎn),本設(shè)計(jì)采用方案二完成數(shù)字時(shí)鐘的功能2.?dāng)?shù)碼管顯示方案一:靜態(tài)顯示所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止該方式每一位都需要一個(gè) 8 位輸出口控制靜態(tài)顯示時(shí)較小的電流能獲得較高的亮度,且字符不閃爍但當(dāng)所顯示的位數(shù)較多時(shí),靜態(tài)顯示所需的 I/O 口太多,造成了資源的浪費(fèi)方案二:動(dòng)態(tài)顯示所謂動(dòng)態(tài)顯示就是一位一位的輪流點(diǎn)亮各個(gè)位,對(duì)于顯示器的 每一位來(lái)說(shuō),每隔一段時(shí)間點(diǎn)亮一次利用人的視覺(jué)暫留功能可以看到整個(gè)顯示,但必須保證掃描速度足夠快,字符才不閃爍。
顯示器的亮度既與導(dǎo)通電流有關(guān),也于點(diǎn)亮?xí)r間與間隔時(shí)間的比例有關(guān)調(diào)整參數(shù)可以實(shí)現(xiàn)較高穩(wěn)定度的顯示動(dòng)態(tài)顯示節(jié)省了 I/O 口,降低了能耗本設(shè)計(jì)從節(jié)省 I/O 口和降低能耗出發(fā),采用方案二二、系統(tǒng)設(shè)計(jì)1.總體設(shè)計(jì)(1)系統(tǒng)框圖系統(tǒng)框圖如圖 1 所示 圖 1 系統(tǒng)框圖(2)模塊說(shuō)明a. 數(shù)碼管顯示模塊:用數(shù)碼管顯示時(shí)間、環(huán)境溫度、電網(wǎng)頻率及電壓溫度轉(zhuǎn)換模塊:測(cè)量環(huán)境溫度,并經(jīng)過(guò)模數(shù)轉(zhuǎn)換后送單片機(jī)b. 時(shí)鐘芯片:用 鐘芯片向單片機(jī)提供時(shí)間與鬧鈴信息c. 報(bào)警系統(tǒng):用蜂鳴器當(dāng)鬧鈴開(kāi)且所設(shè)置的鬧鈴時(shí)刻到時(shí),蜂鳴器報(bào)警,當(dāng)電網(wǎng)電壓欠壓或過(guò)壓時(shí),蜂鳴器也報(bào)警當(dāng)“鬧鈴關(guān)”鍵按下或有遙控器止鬧時(shí),停止報(bào)警d. 鍵盤和狀態(tài)顯示模塊:用可編程并行 I/O 芯片 8255 接狀態(tài)顯示所用的發(fā)光二極管及選擇各功能的鍵盤e. 單片機(jī)控制模塊:用 89現(xiàn)是系統(tǒng)的主控制器,控制其它模塊協(xié)調(diào)工作f. 電源模塊:向各用電系統(tǒng)提供電源g. 電壓轉(zhuǎn)換模塊:測(cè)量電網(wǎng)電壓,并經(jīng)過(guò)模數(shù)轉(zhuǎn)換后送單片機(jī) 2.模塊設(shè)計(jì)與參數(shù)計(jì)算(1) 碼管顯示:本設(shè)計(jì)采用串行輸出顯示,利用一片 8 位移位寄存器74所有數(shù)碼管提供顯示信號(hào),且利用動(dòng)態(tài)顯示,節(jié)約了單片機(jī) I/O 口,降低了能耗。
數(shù)碼管采用 路如圖 2 所示2) 電源模塊:由于單片機(jī)及其處圍的用電模塊都用 5V 或 12V 直流電源,而電網(wǎng)電壓為 220V 交流電,因此需要設(shè)計(jì)電源利用 8W 的變壓器將220V 的電網(wǎng)電壓變壓后加在橋式整流電路的兩端進(jìn)行全波整流利用三端穩(wěn)壓電源分別產(chǎn)生 12V 和 5V 的電壓三端穩(wěn)壓電源選擇 因是它們有過(guò)壓保護(hù)和過(guò)流保護(hù)而使其免受高壓或大電流的襲擊;而且與其他三端穩(wěn)壓電源相比,它們更具經(jīng)濟(jì)性的特點(diǎn)根據(jù)該電源所帶的負(fù)載知流過(guò)該電源的電壓不超過(guò) I=1A因?yàn)樽儔浩鬏敵龃蠹s為 2V,所以電阻 因?yàn)殡娋W(wǎng)電壓一??12 單 片 機(jī)溫度轉(zhuǎn)換模塊頻率采集模塊時(shí)鐘芯片報(bào)警系統(tǒng)鍵盤 狀態(tài)顯示電源 電壓轉(zhuǎn)換模塊般為 220V ,50所以全波整流后的電壓周期大約為 10 毫秒又因?yàn)闀r(shí)間常數(shù) 以取 102??02?圖 2 數(shù)碼管顯示電路圖 3 小電容用于濾掉電路路頻率較高的部分,使電壓輸出更加平穩(wěn)3)頻率采集模塊:如圖4所示,對(duì)電源電路中全波整流后的信號(hào)進(jìn)行判斷:若電壓大于+5V,則二極管正極電壓被嵌位于為 小于 5V,則為原值不變因此形成向下的尖脈沖,經(jīng)施密特觸發(fā)器為正脈沖如圖5所示施密特觸發(fā)器的輸出接單片機(jī)的 。
在單片機(jī)內(nèi)部數(shù) 1S 內(nèi)脈沖的個(gè)數(shù),除以 2 后即為電網(wǎng)電壓的頻率圖4 頻率采集電路圖5 頻率采集電路的波形變換(4) 溫度轉(zhuǎn)換模塊:用溫度傳感器采集環(huán)境溫度將其轉(zhuǎn)化成模擬量,并將該模擬量送入 輸入端進(jìn)行模數(shù)轉(zhuǎn)換最后將轉(zhuǎn)換后的數(shù)字量送入單片機(jī) 89行處理電路圖如圖 6 所示圖 6 測(cè)溫電路(5) 電壓轉(zhuǎn)換模塊:因?yàn)殡娋W(wǎng)電壓也是模擬量,要想利用單片機(jī)對(duì)其進(jìn)行處理仍需將模擬量進(jìn)行模數(shù)轉(zhuǎn)換轉(zhuǎn)換電路如圖7所示它仍利用電源電路中全波整流后的信號(hào)作為輸入因?yàn)轭l率采集電路也以全波整流后的信號(hào)作為輸入,為了防止電壓轉(zhuǎn)換電路的路產(chǎn)生的穩(wěn)態(tài)電壓影響頻率采集電路的工作,應(yīng)在電壓轉(zhuǎn)換模塊的輸入端接入二極管圖7 電壓轉(zhuǎn)換電路(6) 鍵盤、狀態(tài)顯示模塊:為了使軟件編程簡(jiǎn)單,本設(shè)計(jì)利用可編程I/O 芯片 8255接法如表 1 所示接按鍵,則用于控制狀態(tài)顯示所用的發(fā)光二極管每個(gè)按鍵都通過(guò)一個(gè) 10K 的上拉電阻接電源+ ,按鍵的另一端接地當(dāng)有鍵按下時(shí),與該B 口的相應(yīng)位變?yōu)榈碗娖?,單片機(jī)檢測(cè)到該變化后即轉(zhuǎn)到相應(yīng)的鍵處理程序,同時(shí)在程序中點(diǎn)亮相應(yīng)的發(fā)光二極管表 1 C 口與鍵和狀態(tài)的對(duì)應(yīng)關(guān)系 能 設(shè)置時(shí)間設(shè)置鬧鈴小時(shí) 分鐘 鬧鈴開(kāi) 鬧鈴關(guān) 鐘 溫度 電壓 頻率 M 鬧鈴響 鈴不響(7) 報(bào)警系統(tǒng):將蜂鳴器一端接在單片機(jī)的 上,另一端接地。
當(dāng)需要報(bào)警時(shí),在口上送上高電平即可;需要關(guān)報(bào)警時(shí),則送低電平8) 紅外非接觸止鬧系統(tǒng):紅外線傳輸穩(wěn)定、可靠,不容易受外界雜散信號(hào)的干擾,信號(hào)處理簡(jiǎn)單為了簡(jiǎn)化系統(tǒng)電路,我們采用了遙控電視機(jī)中經(jīng)常使用紅外遙控系統(tǒng)遙控器直接使用電視機(jī)的遙控器,不用改裝紅外信號(hào)的接收,采用紅外光電二極管與放大電路一體的紅外接收器,該器件只有三只引腳,使用極其簡(jiǎn)單,電路如圖 8 所示用接收器輸出的信號(hào)送到三極管 基極,集電極、發(fā)射極并接在“鬧鈴關(guān)”兩端當(dāng)接收器接收到信號(hào)并輸出脈沖時(shí),三極管 通,相當(dāng)于“鬧鈴關(guān) ”接通按下,單片機(jī)的相應(yīng)引腳被置為低電平單片機(jī)檢測(cè)到該信號(hào),執(zhí)行相應(yīng)的關(guān)鬧鈴程序 圖 8 紅外遙控止鬧電路三、軟件設(shè)計(jì)1.主程序流程圖主程序流程圖如圖 9 所示2. 蜂鳴器鬧鈴中斷服務(wù)子程序蜂鳴器鬧鈴中斷服務(wù)子程序流圖如圖 10 所示當(dāng)數(shù)字時(shí)鐘處在鬧鈴開(kāi)狀態(tài)下到達(dá)所設(shè)置的鬧鈴時(shí)間時(shí),進(jìn)入該中斷服務(wù)子程序此中斷服務(wù)子程序的作用是當(dāng)系統(tǒng)處在鬧鈴狀態(tài)下時(shí),若鬧鈴關(guān)鍵按下或有遙控止鬧,則關(guān)閉蜂鳴器;蜂鳴器在 后自動(dòng)停止四、系統(tǒng)測(cè)試與分析1.測(cè)試儀器 :秒表溫度表電壓表調(diào)壓器頻率計(jì)低頻信號(hào)發(fā)生器2.基本要求部分的測(cè)試與分析(1) 按下“設(shè)置時(shí)間”鍵,觀察到“鐘表” 和“溫度”的發(fā)光二極管同時(shí)點(diǎn)亮,此時(shí)可對(duì)時(shí)間進(jìn)行設(shè)置。
按下“小時(shí)” , “分鐘”鍵,觀察數(shù)碼管的小時(shí)部分和分鐘部分是否隨相應(yīng)按鍵的變化而變化經(jīng)測(cè)試該步可以很好的實(shí)現(xiàn)調(diào)整時(shí)間完畢后,再按一下“設(shè)置時(shí)間” 主程序流圖開(kāi)啟報(bào)警系統(tǒng)開(kāi)始初始化顯示時(shí)間讀電壓電壓>240V?電壓<200V?有鍵按下嗎?判斷鍵值功能顯示時(shí)間顯示溫度顯示頻率顯示電壓設(shè)置時(shí)間設(shè)置鬧鐘鬧鈴關(guān)處理鬧鈴開(kāi)處理關(guān)閉報(bào)警系統(tǒng)顯示電壓0 蜂鳴器鬧鈴中斷服務(wù)子程序進(jìn)入中斷子程序保護(hù)現(xiàn)場(chǎng)蜂鳴器響 #20秒“鬧鈴關(guān)”鍵按下或有遙控止鬧2?1?關(guān)閉蜂鳴器恢復(fù)現(xiàn)場(chǎng)返回鍵,即可完成對(duì)時(shí)間的設(shè)置2) 按下“設(shè)置鬧鈴”鍵,觀察到“電壓” 、 “頻率”二極管同時(shí)點(diǎn)亮;按下“小時(shí)” 、 “分鐘”鍵,觀察數(shù)碼管的小時(shí)部分和分鐘部分是否隨相應(yīng)按鍵的變化而變化,經(jīng)測(cè)試該部分可很好的實(shí)現(xiàn)調(diào)整好后,再按一下“設(shè)置鬧鈴”鍵,則設(shè)置完畢3) 利用秒表測(cè)量數(shù)字時(shí)鐘變化 1 分鐘時(shí)的時(shí)間間隔由測(cè)試結(jié)果知,誤差范圍很小,其中包括人的反映誤差若除去人的反映誤差,則由電路造成的誤差可忽略不計(jì)這其中主要的原因是設(shè)計(jì)中使用了12887 專用時(shí)鐘芯片4) 設(shè)置好鬧鈴時(shí)間后,按下“鬧鈴開(kāi)”鍵,在所設(shè)置的鬧鈴時(shí)刻觀察蜂鳴器是否產(chǎn)生鬧鈴報(bào)警,并觀察代表鬧鈴響與不響的發(fā)光二極管是否點(diǎn)亮。
經(jīng)測(cè)試該部分也能很好的完成5) 在系統(tǒng)鬧鈴時(shí)按下“鬧鈴關(guān)”鍵,觀察鬧鈴是否停止,并觀察代表鬧鈴響與不響的發(fā)光二極管是否點(diǎn)亮經(jīng)測(cè)試該部分也能很好的完成6) 當(dāng)數(shù)字時(shí)鐘的小時(shí)位大于 12 時(shí),觀察代表 M 的發(fā)光二極管是否點(diǎn)亮經(jīng)驗(yàn)證,當(dāng)數(shù)字時(shí)鐘的小時(shí)位大于 12 時(shí),發(fā)光二極管點(diǎn)亮2. 發(fā)揮部分的測(cè)試與分析在該部分中,利用“功能”鍵實(shí)現(xiàn)各個(gè)功能之間的切換此時(shí)“鬧鈴開(kāi)”鍵作為各個(gè)功能的“確認(rèn)”鍵按下功能鍵,選擇相應(yīng)的功能,然后按下確認(rèn)鍵即執(zhí)行相應(yīng)的功能再按一下“確認(rèn)”鍵,即可回到時(shí)鐘狀態(tài)1)鍵盤切換現(xiàn)場(chǎng)環(huán)境溫度顯示:按“功能”鍵選擇“溫度” ,將溫度傳感器和溫度計(jì)放入不同的測(cè)試環(huán)境中進(jìn)行測(cè)試,結(jié)果如表 2 所示表 2 與標(biāo)準(zhǔn)溫度計(jì)測(cè)量值比較表溫度計(jì)示值(攝氏度) 氏度) 000.0 025.3 050.0 070.3 字鐘的輸出與溫度計(jì)值基本上相等,誤差不大于 2)鍵盤切換電網(wǎng)頻率、電壓顯示:利用調(diào)壓器改變電網(wǎng)電壓,調(diào)壓器輸出分別接數(shù)字時(shí)鐘與電壓表,將它們的電壓值進(jìn)行比較如表 3 所示利用低頻信號(hào)發(fā)生器模擬電網(wǎng)頻率的變化,并將其輸出分別接頻率計(jì)和數(shù)字時(shí)鐘,將所得頻率值進(jìn)行比較,如表 4 所示。
表 3 電壓值電壓表 220 215 200 230 235數(shù)字時(shí)鐘 220.0 頻率值 頻率計(jì) 50 48 46 52 54數(shù)字時(shí)鐘 )欠壓、過(guò)壓報(bào)警:利用調(diào)壓器改變電壓值。



![[精編]吳教人[]13號(hào)](/Images/s.gif)








