摘 要:本文講述了用單片機(jī)、時(shí)鐘芯片和無(wú)線傳輸系統(tǒng)來(lái)控制實(shí)時(shí)系統(tǒng),是它可以實(shí)時(shí)提供當(dāng)前系統(tǒng)時(shí)間,在系統(tǒng)掉電的情況下,仍然可以維持時(shí)鐘的運(yùn)行和內(nèi)部的數(shù)據(jù)不丟失,并能通過(guò)無(wú)線傳輸系統(tǒng)對(duì)時(shí)鐘進(jìn)行時(shí)間、鬧鈴的調(diào)整。
關(guān)鍵詞:實(shí)時(shí)系統(tǒng)單片機(jī)無(wú)線傳輸
中圖分類號(hào):TP273文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1674-098X(2011)06(b)-0131-02
1 前言
當(dāng)今,電子電路幾乎無(wú)處不在,無(wú)孔不入,可謂之“電子時(shí)代”。實(shí)時(shí)系統(tǒng)無(wú)論是在廠礦、家庭、學(xué)校、電臺(tái)等地方都必不可少,在實(shí)時(shí)系統(tǒng)中,時(shí)鐘功能是實(shí)現(xiàn)這一系統(tǒng)的關(guān)鍵技術(shù),它可以實(shí)時(shí)提供當(dāng)前系統(tǒng)時(shí)間,在系統(tǒng)掉電的情況下,仍然可以維持時(shí)鐘的運(yùn)行和內(nèi)部的數(shù)據(jù)不丟失,并能通過(guò)無(wú)線傳輸系統(tǒng)對(duì)時(shí)鐘進(jìn)行時(shí)間、鬧鈴的調(diào)整,對(duì)于一些需提供工作時(shí)間的系統(tǒng)是必不可缺的。本文以時(shí)鐘芯片DS12887、液晶驅(qū)動(dòng)器ST7920和無(wú)線傳輸模塊NRF905為例,講述了它們與STC89C52RC單片機(jī)接口的軟硬件設(shè)計(jì)。
2 硬件設(shè)計(jì)
2.1 DS12887與單片機(jī)進(jìn)行接口設(shè)計(jì)
MOT腳接地,其作用是使DS12887的工作的總線類型選擇為INTEL,因?yàn)镾TC89C52RC是采用INTEL總線類型。
18腳接電容和電阻。電阻的一端接VCC,電容的一端接地;這種接法上電時(shí),18腳電壓為低電平,可是DS12887復(fù)位,經(jīng)過(guò)一段時(shí)間(T>200ms)電容充滿電后,18腳電壓為高電平。
AD0~AD7接單片機(jī)的P0口,用于數(shù)據(jù)和命令的傳送。
R/W接單片機(jī)的/WR口,用于寫(xiě)控制;DS接單片機(jī)的/RD口,用于讀控制。
CS接單片機(jī)的P2.7,用于尋址,其地址是7FFFH。
IRQ接單片機(jī)的INT0,當(dāng)IRQ發(fā)中斷請(qǐng)求時(shí),單片機(jī)讀取DS12887的數(shù)據(jù)。
AS接單片機(jī)的ALE口。
DS12887因內(nèi)部有電池,可以在掉電的情況下工作,并可以保存數(shù)據(jù)達(dá)十年不丟失。
2.2 液晶驅(qū)動(dòng)芯片與單片機(jī)進(jìn)行接口設(shè)計(jì)
液晶驅(qū)動(dòng)芯片ST7920有自動(dòng)電源啟動(dòng)復(fù)位(RESET)功能;提供2M中文字型ROM,總共8192個(gè)中文字型(16x16點(diǎn)陣);提供16位半字型ROM,總共126個(gè)符號(hào)字型(16x8點(diǎn)陣);能繪圖及文字混合顯示功能;提供8位控制模式、4位控制模式及串行控制模式。
內(nèi)建振蕩器由外部電阻調(diào)整;電源供電范圍2.7到5.5V。
本文采用的是串行控制模式,用P2.0(是使能端)、P2.1(是數(shù)據(jù)口)、P2.2(是時(shí)鐘脈沖口)來(lái)控制液晶的顯示。
串行控制模式PSB腳必須接地。其地址為EFFFH。
2.3 無(wú)線傳輸系統(tǒng)
無(wú)線傳輸系統(tǒng)采用的是NRF905模塊。
VCC腳電源電壓為1.9-3.6V;超過(guò)3.6V將會(huì)燒毀模塊,推薦電壓為3.3V,建議加塊3.3V穩(wěn)壓1117芯片;
TX_EN腳設(shè)置發(fā)送模式或接收模式;
DR腳接收或發(fā)射數(shù)據(jù)完成;
MISO腳SPI輸出;
MOSI腳SPI輸入;
SCK腳SPI時(shí)鐘;
CSN腳SPI使能。
3 軟件設(shè)計(jì)
3.1 DS12887轉(zhuǎn)換說(shuō)明
1)DS12887復(fù)位以后,送#0A0H到寄存器A中,使DS12887中的電池工作,才能產(chǎn)生振蕩;2)在送#26H到寄存器B,使DS12887可以產(chǎn)生鬧鐘中斷;時(shí)鐘的數(shù)據(jù)形式為BCD碼方便單片機(jī)的調(diào)用;時(shí)鐘是以24小時(shí)計(jì)時(shí)。
DS12887的初始化程序:
CLR SZCS;時(shí)鐘芯片的設(shè)置
MOV A,#0A0H
MOV R0,#0AH
MOVX @R0,A
MOV A,#26H
MOV R0,#0BH
MOVX @R0,A
3.2 液晶顯示屏顯示說(shuō)明
1)在液晶復(fù)位以后,送#01H的指令到ST7920,使ST7920清空內(nèi)部RAM的數(shù)據(jù)等待單片機(jī)輸送數(shù)據(jù);2)在送#0CH的指令到ST7920,使液晶顯示打開(kāi),才能在液晶屏上看到顯示的內(nèi)容。
液晶顯示屏的初始化程序:
MOV A,#01H
LCALL SDCON;串行輸入指令子程序
LCALL T10M;清除DDRAM
MOV A,#0CH
LCALL SDCON;設(shè)置顯示
LCALL T75U
3.3 主程序流程圖
略。
4 結(jié)語(yǔ)
依據(jù)本文的介紹方法,可以用時(shí)鐘芯片DS12887、液晶顯示屏(驅(qū)動(dòng)芯片ST7920)、無(wú)線傳輸NRF905和STC89C52RC單片機(jī)的接口設(shè)計(jì)實(shí)時(shí)系統(tǒng),并能完成無(wú)線調(diào)時(shí)和鬧鈴功能,增加音樂(lè)芯片提高本系統(tǒng)的娛樂(lè)功能。單片機(jī)可以讀取DS12887的數(shù)據(jù),并且能在液晶顯示屏上顯示年、月、日、星期、小時(shí)、分鐘、秒、時(shí)鬧、分鬧和秒鬧,還可以用DS12887中的非易失性RAM來(lái)設(shè)置星期鬧、日鬧、月鬧等。由于DS12887內(nèi)部有鋰電池的作用可以保持時(shí)鐘正常運(yùn)行十年。
參考文獻(xiàn)
[1]楊寧.單片機(jī)與控制技術(shù)[M].北京航空航天大學(xué)出版社.
[2]雷伏容.VHDL電路設(shè)計(jì)[M].清華大學(xué)出版社.