王永忠
(北京服裝學(xué)院信息工程學(xué)院,北京 100029)
電子提醒器相當(dāng)于一個具有語音提示功能的“電子秘書”。對于一個辦公室工作人員,只要預(yù)先把要提醒的數(shù)條語音信息分別錄制到電子提醒器中,設(shè)置好每條相應(yīng)的播放時間,到時電子提醒器會自動播放3遍預(yù)先錄制好的語音信息,以提醒此時該做什么事情。
電子提醒器的顯示功能,主要用于顯示年、月、日、星期、時鐘以及各種設(shè)置信息等,由可以顯示2行7.5個漢字的LCD液晶顯示器來實(shí)現(xiàn)。電子提醒器主畫面如圖1上部所示,第一行顯示年月日及星期。第二行顯示分兩部分:第一部分顯示時分秒,字號較大;第二部分顯示事件數(shù),字號較小。所有顯示采用圖形方式實(shí)現(xiàn)。
由于電子提醒器是按照時間的不同來提醒用戶的,所以電子提醒器必須具有時鐘及時鐘設(shè)置功能,這和普通鐘表的功能是一樣的。當(dāng)進(jìn)行時鐘設(shè)置時就要用到鍵盤,如圖1下部所示,在每相鄰兩次按鍵的時間間隔不超過5 s時就能選擇不同的功能和設(shè)置,如果超過5 s顯示器則自動切回主畫面。每按一下功能鍵,顯示屏上就對應(yīng)顯示出相應(yīng)的功能畫面,如果要選擇對此功能進(jìn)行設(shè)置,則按下確認(rèn)鍵就可以進(jìn)一步設(shè)置。功能鍵的按鍵次數(shù)與其功能對應(yīng)如表1所示。
圖1 電子提醒器主畫面圖
表1 功能鍵的按鍵次數(shù)與功能對應(yīng)表
由表1可知,連續(xù)按2次功能鍵就進(jìn)入時鐘設(shè)置畫面,按一下確認(rèn)鍵,進(jìn)入時鐘選項(xiàng)畫面,此時,時鐘數(shù)字開始閃爍顯示,按上調(diào)鍵或下調(diào)鍵可以改變時鐘數(shù),再按一下確認(rèn)鍵,時鐘數(shù)設(shè)置完畢,分鐘數(shù)開始閃爍顯示,再對分鐘數(shù)進(jìn)行設(shè)置,依次還可以設(shè)置秒—年—月—日。
按功能鍵一次即進(jìn)入錄音設(shè)置畫面如圖2所示,再按一下確認(rèn)鍵進(jìn)入錄音功能選項(xiàng)畫面如圖3所示,這時按上調(diào)鍵或下調(diào)鍵可以選擇禁止錄音,允許錄音和清除錄音的狀態(tài),再按確認(rèn)鍵即設(shè)置完畢。初始狀態(tài)為禁止錄音狀態(tài),這時按錄音鍵不起作用,可以避免錄音誤操作;當(dāng)選擇錄音狀態(tài)時,按住錄音鍵不放則開始錄音,放開錄音鍵則錄音停止,每錄制一段語音信息,則主畫面的事件數(shù)自動加一;當(dāng)選擇清除狀態(tài)時,所有用戶錄音內(nèi)容全部被清除掉。
由表1可知,連續(xù)按功能鍵3次即進(jìn)入鬧鐘設(shè)置畫面,再按確認(rèn)鍵進(jìn)入鬧鐘設(shè)置選項(xiàng)畫面如圖4所示,默認(rèn)狀態(tài)為關(guān)。由上調(diào)鍵或下調(diào)鍵可以改變其狀態(tài),按確認(rèn)鍵可確定其狀態(tài)。當(dāng)確定為“開”狀態(tài)時,鬧鐘時間時鐘數(shù)開始閃爍,按上調(diào)鍵或下調(diào)鍵可對其進(jìn)行調(diào)整,按確認(rèn)鍵后時鐘數(shù)確定,分鐘數(shù)開始閃爍,同樣可對分鐘數(shù)進(jìn)行調(diào)整確定。鬧鐘設(shè)置完畢后,返回到主畫面,這時主畫面的左上角多了一個鬧鈴形狀如圖5所示,表明已經(jīng)設(shè)定了鬧鐘功能,取消鬧鐘功能,取消鬧鐘設(shè)置后,鬧鈴形狀的圖示消失。
圖4 鬧鐘設(shè)置選項(xiàng)畫面圖
圖5 主畫面鬧鐘提示圖
連續(xù)按功能鍵4次即可進(jìn)入鬧鐘鈴聲設(shè)置畫面,再按確認(rèn)鍵后進(jìn)入鬧鐘鈴聲選擇畫面如圖6所示。鬧鐘鈴聲分為標(biāo)準(zhǔn)和自定義兩種,標(biāo)準(zhǔn)鈴聲即為電子提醒器已經(jīng)錄制好的不可清除的鬧鈴聲,而自定義鈴聲主要取決于用戶自己錄音的情況,如果用戶沒有錄制任何語音內(nèi)容,則鬧鐘鈴聲只有標(biāo)準(zhǔn)鈴聲;如果用戶錄制了幾段語音內(nèi)容,則按上調(diào)鍵或下調(diào)鍵可以循環(huán)選擇:標(biāo)準(zhǔn)—事件1—事件2—事件3—事件4—事件5—標(biāo)準(zhǔn),事件的順序是按照錄音段的順序分的,用戶選定鈴聲后按確認(rèn)鍵確認(rèn)。當(dāng)定時時間到后,“鈴聲”會連續(xù)響1 min,這期間按任何一個鍵都可以消除“鈴聲”。
圖6 鬧鐘鈴聲選項(xiàng)畫面圖
連續(xù)按功能鍵5次即可進(jìn)入事件設(shè)置畫面,同樣再按確認(rèn)鍵進(jìn)入事件選擇畫面,按上調(diào)或下調(diào)鍵可以循環(huán)選擇第幾個事件,按確認(rèn)鍵后進(jìn)入該事件的時間設(shè)置畫面,分別設(shè)置完月—日—時—分,按確認(rèn)鍵后返回到事件選擇畫面,重新選擇其他事件,重復(fù)上述過程。每個事件的時間設(shè)置完畢后,電子提醒器會按照事件設(shè)定的時間順序,每到一個事件提醒時間,則會播放3遍提前錄好的語音提示聲,同時主畫面的事件數(shù)自動減1,直到所有事件都提醒完畢,主畫面的事件數(shù)減為00。而在播放語音提示聲的過程中,同樣按任何一個鍵都可以停止播放。
電子提醒器硬件由主控單元、LCD顯示單元、鍵盤接口單元、語音錄放單元和時鐘控制單元組成,框圖如圖7所示。主控單元核心芯片為AT89C51單片機(jī);鍵盤接口單元包括功能鍵、確認(rèn)鍵、上調(diào)鍵、下調(diào)鍵和錄音鍵;LCD顯示單元中的顯示器選用LCM12232ZK中文液晶顯示模塊,該模塊可顯示兩行,每行可顯示7.5個漢字,且能夠?qū)崿F(xiàn)漢字、ASCII碼、點(diǎn)陣圖形同屏的顯示。該模塊的供電范圍為2.75.5 V,可滿足低功耗省電要求[1]。
圖7 電子提醒器硬件組成框圖
語音錄放單元中的核心芯片采用ISD4004語音芯片,其供電電壓3 V,最大錄放時間為16 min,音質(zhì)較好。ISD4004芯片內(nèi)含靜噪及高密度多電平閃爍存貯陳列,每個采樣值直接存貯在片內(nèi)閃爍存貯器中,因此能夠較好地再現(xiàn)語音、音樂、音調(diào)和效果聲,避免了因量化和壓縮造成的量化噪聲和"金屬聲",片內(nèi)信息存于閃爍存貯器中,可在斷電情況下保存100年,反復(fù)錄音10萬次[2]。ISD4004內(nèi)部具有特殊的信息尋址機(jī)制,可對每行首地址進(jìn)行尋址,但每行中的列不可尋址,因此每一行為最小信息單位,ISD4004內(nèi)部共分為2 400行,這樣,ISD4004內(nèi)部最多可錄或放的語音信息為2 400段。每個信息段由起始地址指針、記錄的語音信息和信息結(jié)束標(biāo)志位(EOM)3部分組成,一個信息段可占用一行或多行存儲空間。行尋址是通過行地址時鐘(RAC)來實(shí)現(xiàn)的,對于ISD4004-16MP其錄放時間為960 s,因此它的分辨率為960 s/2 400=400 ms,即一個行地址時鐘周期為400 ms,這樣只要對行地址時鐘輸出端RAC的低電平進(jìn)行計(jì)數(shù)就可以得到每一信息段占用了多少行和每一信息段的起始地址和結(jié)束地址。從第1行到第400行,作為本電子提醒器標(biāo)準(zhǔn)鬧鈴聲的存儲段,一次性錄制好,不允許再改變和清除。從401行到2 400行為用戶錄制區(qū),用戶可以隨意錄制、改變和清除語音信息。
時鐘控制單元中的核心芯片采用帶報警功能的串行實(shí)時時鐘芯片DS1305,該時鐘/日歷芯片可以提供秒、分、時、日、月、年、星期信息。對于少于31天的月份,到每月的最后一天會自動進(jìn)行調(diào)節(jié),包括閏年修正。該時鐘有AM/PM指示器,可以工作在24小時模式或12小時模式。
另外DS1305還提供雙電源輸入和一個電池輸入引腳。利用雙電源輸入和一個可編程交流充電電路,可以對作為后備電源的可充電電池進(jìn)行充電。通過VBATT引腳,該器件也可用一個非充電電池作為備用。
DS1305還提供了兩個可編程日歷報警。報警通過編程可設(shè)定在秒、分、時和星期發(fā)出中斷。兩個可編程日歷報警可以通過編程設(shè)定為發(fā)出兩個不同的中斷輸出,也可以只觸發(fā)一個公共的中斷輸出。本電子提醒器中時鐘芯片DS1305的中斷控制位設(shè)定為0,即兩路報警都使用一個公共的中斷輸出
電子提醒器的軟件設(shè)計(jì)分為主程序和中斷服務(wù)子程序兩部分。主程序的主要作用是判斷各功能設(shè)置的狀態(tài)以便執(zhí)行相應(yīng)的功能設(shè)置,實(shí)時讀取DS1305中的日歷時鐘數(shù)據(jù),送LCD各畫面顯示及事件月日比較。由于DS1305的報警功能只有每秒、每分、每時、每周報警一次的功能,沒有每日、每月報警功能。所以,在主程序的事件月日比較子程序里,由編程來實(shí)現(xiàn)該功能?;驹硎歉鶕?jù)事件設(shè)定的時間順序來排定事件的順序,依次把各事件的月日數(shù)據(jù)讀出來,與從DS1305中讀出的實(shí)時的月日數(shù)據(jù)相比較,如二者不相等則繼續(xù)比較,如相等則把該事件的時分秒數(shù)據(jù)寫入DS1305的相應(yīng)的報警存儲單元中,時分秒則由DS1305自動比較,都相等后,報警輸出端變?yōu)榈碗娖?,向CPU申請報警中斷。主程序框圖如圖8所示。中斷服務(wù)子程序也包括兩部分:鍵盤中斷服務(wù)程序和鬧鐘事件報警提示中斷服務(wù)程序。5個按鍵通過與門接到89C51的外部中斷0口/INT0,而DS1305的報警中斷輸出端與89C51的外部中斷1口相連。設(shè)置鍵盤中斷為高優(yōu)先級,報警中斷為低優(yōu)先級,即保證按任何鍵都能夠中斷鬧鈴聲或語音提示聲[4]。鍵盤中斷服務(wù)程序框圖如圖9所示。
鍵盤中斷服務(wù)程序主要實(shí)現(xiàn)各按鍵的功能,由于是多功能鍵盤,每一個按鍵在不同的場合有不同的作用,所以程序結(jié)構(gòu)較為復(fù)雜,為簡化鍵盤中斷服務(wù)程序框圖結(jié)構(gòu),每個按鍵的程序由相應(yīng)的程序塊來代替,在確認(rèn)鍵程序塊中,在完成相應(yīng)的確認(rèn)功能的同時應(yīng)把功能鍵程序塊中的按鍵次數(shù)計(jì)數(shù)單元清零,以便再次按功能鍵時能夠正常操作。其他按鍵程序塊按照各自任務(wù)的不同各不相同。
鬧鐘事件報警提示中斷服務(wù)程序主要功能是實(shí)現(xiàn)在預(yù)定時間播放相應(yīng)的鈴聲或語音提示聲,在錄音鍵程序塊里,當(dāng)錄音結(jié)束后同時讀出該語音信息段的首地址,存放在相應(yīng)的單元中,當(dāng)預(yù)定的鬧鐘或事件時間到時,則從指定地址循環(huán)播放相應(yīng)的提示音。
圖8 主程序框圖
電子提醒器是基于單片機(jī)控制的一個應(yīng)用。通過合理的軟硬件設(shè)計(jì),電子提醒器可以較好地實(shí)現(xiàn)事件定時語音提醒功能。如果再增加上溫濕度傳感器SHT1x,就可以實(shí)時播報室內(nèi)溫度和濕度以及實(shí)現(xiàn)溫濕度上下限報警,使電子提醒器的功能進(jìn)一步擴(kuò)展,以滿足用戶的更多需求。
圖9 鍵盤中斷服務(wù)子程序框圖
[1]北京青云創(chuàng)新科技發(fā)展有限公司.帶中文字庫圖形點(diǎn)陣液晶顯示模塊LCMxxZK使用說明書[M].北京:北京青云創(chuàng)新科技發(fā)展有限公司,2004.
[2]Winbond Electronics Corporation.ISD4004 series single -chip voice record/playback devices 8 - ,10 -,12 -,and 16- minute durations operation instruction[M].Taiwan:Winbond Electronics Corporation,2004.
[3]Dallas Semiconductor Ltd.DS1305 serial alarm real time clock(RTC)operation instruction[M].USA:Dallas Semiconductor Ltd.,1999.
[4]張毅剛.MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997.