一種基于MSP430單片機(jī)的日程管理系統(tǒng)
0 引言
日程管理系統(tǒng)是指在指定的時(shí)間自動(dòng)實(shí)現(xiàn)提示、放音、錄音等功能,例如清晨吹起床號(hào)和自動(dòng)定時(shí)上下課響鈴等。該系統(tǒng)廣泛應(yīng)用在學(xué)校、部隊(duì)、工廠(chǎng)等部門(mén)。早期的司號(hào)儀系統(tǒng)存在諸多的缺點(diǎn)。如抗干擾能力差、播放音質(zhì)不好、錄音時(shí)間不長(zhǎng),給日常教學(xué)、工作到來(lái)極大不便。隨著生活水平和需求的不斷提高,人們對(duì)產(chǎn)品的智能化要求越來(lái)越高.老式的司號(hào)儀智能化不夠高必將被淘汰,采用單片機(jī)控制的日程管理系統(tǒng)以其系統(tǒng)穩(wěn)定、智能控制、操作簡(jiǎn)便、價(jià)格便宜等優(yōu)點(diǎn)得到廣泛應(yīng)用。
1 系統(tǒng)結(jié)構(gòu)及功能
系統(tǒng)的組成和程序流程如圖l所示,整個(gè)系統(tǒng)共有七個(gè)部分組成,分別是:主控部件、電源部件、時(shí)鐘部件、錄放音部件、輸入部件、顯示部件、和擴(kuò)展部件。主控部件選用的是MSP430F149超低功耗16位單片機(jī),MSP430單片機(jī)采用FLASH存儲(chǔ)體,此單片機(jī)采用了FLASH在線(xiàn)編程JTAG技術(shù),可以利用片內(nèi)的FLASH方便的實(shí)現(xiàn)軟件升級(jí),以達(dá)到系統(tǒng)升級(jí)的目的。設(shè)定的狀態(tài)直接通過(guò)在系統(tǒng)編程存入FLASH存儲(chǔ)體,掉電可保護(hù),功耗低,其抗干擾能力極強(qiáng),各種響應(yīng)的設(shè)定值均存儲(chǔ)在FLASH存儲(chǔ)體中,強(qiáng)電磁干擾環(huán)境也不會(huì)影響到存儲(chǔ)的狀態(tài)。單片機(jī)通過(guò)I/O口接受按鍵輸入,通過(guò)調(diào)用時(shí)鐘實(shí)現(xiàn)定時(shí)響應(yīng),管理錄音段及號(hào)音,并控制錄放音、液晶顯示和擴(kuò)展口。
電源部件為各部件工作提供工作電源,全系統(tǒng)需要4種電源電壓分別是:+3V、+5V、+12V、一12V。
時(shí)鐘部件提供全系統(tǒng)時(shí)間基準(zhǔn),單片機(jī)定時(shí)和中斷。為了實(shí)現(xiàn)系統(tǒng)的定時(shí)錄音和放音,必須有一個(gè)穩(wěn)定的時(shí)鐘。SD2003A是一種具有內(nèi)置晶振、支持I2C總線(xiàn)接口的高精度實(shí)時(shí)時(shí)鐘芯片。該系列芯片可保證時(shí)鐘精度為±4 ppm(在25±l℃下),即年誤差小于2分鐘。SD2003A的電源由電池提供,當(dāng)單片機(jī)掉電后,SD2003A照樣工作。當(dāng)單片機(jī)恢復(fù)工作時(shí),調(diào)用SD2003A內(nèi)部時(shí)鐘。
錄放音部件實(shí)現(xiàn)語(yǔ)音等信息的存儲(chǔ)和播放。錄放音部件選用的是ISD公司ISD4000系列語(yǔ)音處理芯片,它的工作電壓3V,單片錄放時(shí)間最常可達(dá)16分鐘,音質(zhì)好,適用于移動(dòng)電話(huà)及其他便攜式電子產(chǎn)品中。芯片采用CMOS技術(shù),內(nèi)含振蕩器、防混淆濾波器、平滑濾波器、音頻放大器、自動(dòng)靜噪及高密度多電平閃爍存貯陣列。芯片設(shè)計(jì)是基于所有操作必須由微控制器控制.操作命令可通過(guò)串行通信接口(SPI或Microwire)送入。采樣頻率可為4.0,5.3,6.4,8.O kHz,頻率越低,錄放時(shí)間越長(zhǎng),而音質(zhì)則有所下降,片內(nèi)信息存于閃爍存貯器中,可在斷電情況下保存100年(典型值),反復(fù)錄音10萬(wàn)次。
輸入部件主要用于實(shí)現(xiàn)定時(shí)時(shí)間的修改、錄音放音的轉(zhuǎn)換、時(shí)鐘芯片的時(shí)間調(diào)整、繼電器的響應(yīng)控制等。輸入采用4×4掃描鍵盤(pán),由MSP430單片機(jī)通過(guò)軟件控制實(shí)現(xiàn)輸入。顯示部件采用M12864-11A5液晶顯示器,主要用于顯示操作進(jìn)程,使使用者能夠清楚的看到每步操作的作用,增強(qiáng)了人機(jī)對(duì)話(huà)功能。
考慮到管理系統(tǒng)應(yīng)用的廣泛性,系統(tǒng)增加擴(kuò)展部件,利用繼電器組實(shí)現(xiàn)一些對(duì)大功率器件的控制功能。繼電器的一端是弱電,一端是強(qiáng)電,因此我們采用了光電隔離控制的方法,從而有效地控制大功率輸出部件對(duì)系統(tǒng)的干擾。
2 系統(tǒng)的技術(shù)實(shí)現(xiàn)
主控模塊對(duì)繼電器和按鍵的控制是用I/O口直接控制的。同時(shí)預(yù)留了大量外部接口,這主要用于將來(lái)升級(jí)。主控部分采用了大量的分支跳轉(zhuǎn)表,對(duì)鍵盤(pán)輸入的值根據(jù)不同的環(huán)境,選擇相對(duì)應(yīng)的程序進(jìn)行響應(yīng)。因此整個(gè)系統(tǒng)僅僅使用了5個(gè)按鍵就可以實(shí)現(xiàn)所有的功能,其它鍵作為快捷控制鍵和特殊功能鍵。
該主控部分的單片機(jī)通過(guò)I2C通信協(xié)議對(duì)SD2003時(shí)鐘芯片進(jìn)行控制,調(diào)用SD2003的時(shí)鐘,從而實(shí)現(xiàn)定時(shí)響應(yīng);而液晶顯示模塊是用并行通訊方式進(jìn)行控制的,AO高時(shí)為指令,低時(shí)為數(shù)據(jù)。
它與ISD4004語(yǔ)音片采用SPI同步通信協(xié)議,對(duì)4004語(yǔ)音芯片控制,以下是SPI協(xié)議的控制時(shí)序,SPI協(xié)議由三根線(xiàn)構(gòu)成,MISO信號(hào)輸入,MOSI信號(hào)輸出,UCLK時(shí)鐘線(xiàn)組成,其通訊方式如圖2所示。
SPI協(xié)議是一個(gè)同步串行數(shù)據(jù)傳輸協(xié)議,協(xié)議假定微控制器的SPI移位寄存器在SCLK的下降沿動(dòng)作,因此對(duì)ISD4004而言,在時(shí)鐘上升沿鎖存MOSI引腳的數(shù)據(jù),在下降沿將數(shù)據(jù)送至MISO引腳。從時(shí)序圖可以看出,SPI協(xié)議的實(shí)現(xiàn)比較容易,MSP430Fll49單片機(jī)利用其內(nèi)部定時(shí)器,采用3個(gè)I/O口,用軟件可實(shí)現(xiàn)SPI協(xié)議。
由于放音及錄音有很多種,因此,我們必須找到一種良好的算法來(lái)進(jìn)行這項(xiàng)工作,因此,我們采用了通過(guò)基于信息地址表(以下簡(jiǎn)稱(chēng)MAT)的管理方式對(duì)錄音片進(jìn)行操作,真正實(shí)現(xiàn)了可對(duì)任意段進(jìn)行刪除、重錄、添加任意時(shí)間長(zhǎng)度的錄音的功能。
ISD4004有能力讀回每次錄音結(jié)束時(shí)的內(nèi)部信息指針,據(jù)此建立一個(gè)簡(jiǎn)單的MAT表,將每條信息的位置存入另外的不揮發(fā)性數(shù)字存儲(chǔ)器中。這樣,可按需要重放任一條指定信息。MAT表是信息管理體系的一個(gè)重要組成部分,它跟蹤每一條信息的開(kāi)始地址以及每一個(gè)信息碎塊的開(kāi)始和結(jié)束地址。
在本應(yīng)用中,錄音部分MAT表的建立是這樣的:通常,尋址ISD4004需要12位地址,加上片選4片4004,則需要14位地址,假設(shè)將最低5位地址恒為O,只需9位地址就可以尋址300個(gè)存貯塊中的任意一塊,每塊長(zhǎng)度為6.4秒。此例中,MAT表占用600字節(jié)的存貯空間,每個(gè)字對(duì)應(yīng)著ISD4004的一個(gè)存儲(chǔ)塊。隨著錄音和刪除反復(fù)進(jìn)行,具體對(duì)應(yīng)關(guān)系也許會(huì)改變。下面說(shuō)明工作原理。
MAT表中的一個(gè)表項(xiàng)的數(shù)值或者表示該項(xiàng)與ISD的存儲(chǔ)塊尚無(wú)關(guān)聯(lián),或者表示ISD某個(gè)存儲(chǔ)塊的狀態(tài)。第15位(最高位)有特殊作用:置l表示對(duì)應(yīng)的存儲(chǔ)塊是某條信息的起始?jí)K。其余各位就是存儲(chǔ)塊的地址。級(jí)聯(lián)時(shí),MAT中BITl2、BITl3是用來(lái)指示哪一片器件。這樣,表項(xiàng)有四種可能值:
(1)表項(xiàng)值為全O:表示該項(xiàng)與1SD的存儲(chǔ)塊尚無(wú)關(guān)聯(lián)。
(2)表項(xiàng)值的Bit15為l:表示對(duì)應(yīng)的存儲(chǔ)塊是某段信息的起始?jí)K。
(3)表項(xiàng)值的Bitl5為O,其余各位是有效地址:表示對(duì)應(yīng)的存儲(chǔ)塊是某條信息的其中一塊,但不是起始?jí)K。
(4)第2種情況的特例:我們約定,1SD的第一個(gè)存儲(chǔ)塊總是某條信息的起始?jí)K,因此對(duì)應(yīng)表項(xiàng)值為(1000 0000…)。
錄入若干段信息后,隨著ISD4004空間的使用,MAT表自頂向下逐漸建立起相應(yīng)表項(xiàng)。每使用了一個(gè)存儲(chǔ)塊就建立一字節(jié)的MAT表項(xiàng)。MAT表的特點(diǎn)是:①對(duì)應(yīng)于同一條信息的所有表項(xiàng)在MAT中總是連續(xù)放置的。②對(duì)于由若干個(gè)MAT表項(xiàng)組成的一條信息,它的各個(gè)存儲(chǔ)塊的地址值總是從小到大,但不一定緊緊相連。
重放時(shí),微控制器從MAT表頭開(kāi)始,向下搜索Bit 15為1的表項(xiàng)。要重放第幾條信息,就去尋找第幾個(gè)這樣的表項(xiàng).以重放#3信息為例,微控制器停留在第三個(gè)Bit 15為l的表項(xiàng),該項(xiàng)指向#3信息的第一個(gè)存儲(chǔ)塊。從該表項(xiàng)中,微控制器得到ISD中03信息第一個(gè)存儲(chǔ)塊的塊號(hào)是10,#03信息的重放由SPI送入第1O塊的地址(即塊號(hào)乘以8)后開(kāi)始。
去掉MAT表的相關(guān)表項(xiàng)就可刪除該信息。例如刪除#3信息,對(duì)照表l,#3信息占用了MAT表的第6、7、8字,為了刪除#3信息,須將其對(duì)應(yīng)的最后一個(gè)表項(xiàng)之后的所有表項(xiàng)往后移動(dòng)3字,然后把MAT表已分配的最后三個(gè)表項(xiàng)值置為全O。
3 結(jié)論
基于MSP430單片機(jī)的日程管理系統(tǒng)具有以下特點(diǎn)。
(1)錄音:在指定時(shí)間開(kāi)啟錄音,錄音時(shí)間不小于30分鐘。錄音源為收音機(jī)(默認(rèn))、麥克風(fēng)(選擇音源時(shí),采用手控);
(2)吹號(hào):在指定時(shí)間吹號(hào),號(hào)音種類(lèi)有15種,每個(gè)號(hào)音的時(shí)間是一定的,累計(jì)號(hào)音時(shí)間在10分鐘左右;
(3)放音:在指定時(shí)間,按指定時(shí)長(zhǎng)放音,音源為錄音、錄音機(jī)、收音機(jī)??蛇x擇播放的次數(shù),在播放期間,如有其他指令,則停止播放執(zhí)行新指令;
(4)電鈴:在指定時(shí)間開(kāi)啟電鈴,持續(xù)時(shí)間(固定為5秒)可設(shè)定;
(5)關(guān)燈(開(kāi)燈):在指定時(shí)間關(guān)燈(開(kāi)燈)。
該系統(tǒng)功能強(qiáng)大,人機(jī)接口人性化,外觀(guān)美觀(guān)。已在部分院校推廣使用。
評(píng)論