基于PCF8563戶(hù)外型倒計(jì)時(shí)系統(tǒng)的設(shè)計(jì)
摘要:介紹基于PCF8563設(shè)計(jì)戶(hù)外侄計(jì)時(shí)系統(tǒng)的硬件接口電路及PCF8563軟件編程。該系統(tǒng)在強(qiáng)日光下顯示屏的字符清晰可見(jiàn),能夠長(zhǎng)時(shí)間連續(xù)穩(wěn)定地工作。
關(guān)鍵詞:PCF8563 I2C 倒計(jì)時(shí)系統(tǒng) 引言 倒計(jì)時(shí)系統(tǒng)的任務(wù),就是對(duì)某一設(shè)定日期進(jìn)行倒數(shù),在顯示屏顯示當(dāng)前距離設(shè)定日期的時(shí)間;廣泛應(yīng)用于重大的節(jié)日或活動(dòng),以增強(qiáng)人們的關(guān)切程度和緊迫感。戶(hù)外型倒計(jì)時(shí)系統(tǒng),首先要求在強(qiáng)日光下顯示屏的字符依然清晰可見(jiàn),而且要求系統(tǒng)能夠長(zhǎng)時(shí)間連續(xù)穩(wěn)定地工作。本文介紹的系統(tǒng)正是針對(duì)這樣的要求而開(kāi)發(fā)出來(lái)的。 1 總體設(shè)計(jì)方案 整個(gè)系統(tǒng)由時(shí)鐘芯片、中央處理單元、譯碼、驅(qū)動(dòng)、顯示、鍵盤(pán)幾部分構(gòu)成,系統(tǒng)框圖如圖1所示。 2.1 時(shí)鐘芯片 PCF8563是Philips公司推出的一款帶I2C總線(xiàn)具有極低功耗的多功能時(shí)鐘/日歷芯片,具有四種報(bào)警功能和定時(shí)功能;內(nèi)部時(shí)鐘電路、內(nèi)部振蕩電路、內(nèi)部低電壓檢測(cè)以?xún)删€(xiàn)制I2C總線(xiàn)通信方式,不但使用外圍電路簡(jiǎn)潔,而且增加了芯片的可靠性。 PCF8563的SCL為時(shí)鐘輸入端,數(shù)據(jù)隨時(shí)鐘信號(hào)同步輸入器件或從器件輸出;SDA為雙向引腳,用于串行數(shù)據(jù)的輸入輸出;INT是中斷信號(hào)輸出端,可通過(guò)設(shè)置報(bào)警寄存器按指定時(shí)間在該腳產(chǎn)生報(bào)警信號(hào),低電平有效;SDA、SCL、INT均為漏極開(kāi)路,必須上拉電阻;X1、X2分別為反相放大器的輸入、輸出端;可在X1端接入32.768kHz的石英晶振,配置成片內(nèi)振蕩器。本系統(tǒng)PCF8563與89C51接口采用圖2所示接口方案。 圖2中,在X1、X2端接入32.768kHz的石英晶振,將時(shí)鐘源配置為片內(nèi)振蕩器。VDD與地之間國(guó)入1個(gè)1μF的大電容供電維持時(shí)鐘芯片,鋰電池(3.6V)同時(shí)開(kāi)始工作,給時(shí)鐘芯片供電,使時(shí)鐘芯片工作不受影響。PCF8563與89C51接口采用3根口線(xiàn),PCF8563的INT腳產(chǎn)生周期為1s的脈沖中斷信號(hào)給89C51的INT0引腳,89C51產(chǎn)生中斷后,通過(guò)I2C總線(xiàn)讀取PCF8563的基準(zhǔn)時(shí)間。 譯碼、顯示、驅(qū)動(dòng)、鍵盤(pán)電路如圖3所示、單片機(jī)將讀入的PCF8563時(shí)間信息,經(jīng)過(guò)程序處理,輸出顯示信號(hào)到P1口(數(shù)據(jù)4位,選擇信號(hào)4位)。顯示信息包括倒計(jì)時(shí)信息(當(dāng)前距離設(shè)定時(shí)間的天數(shù))和當(dāng)前時(shí)間的星期、時(shí)、分、秒信息。4位數(shù)據(jù)信號(hào)送入MC14513(BCD-鎖存/7段譯/碼驅(qū)動(dòng)器),共有10個(gè)MC14513:倒計(jì)時(shí)占用3個(gè),時(shí)間時(shí)、分、秒各占用2個(gè),星期占用1個(gè)。4位選擇信號(hào)送到74LS145譯碼器(4位鎖存/4-10線(xiàn)譯碼),選擇接收數(shù)據(jù)的MC14513芯片。 被選擇的MC14513譯碼驅(qū)動(dòng)對(duì)應(yīng)共陰數(shù)碼管字段(a、b、c、d、e、f、g)。 戶(hù)外顯示要求在強(qiáng)日光下依然清楚可見(jiàn),所以我們采用超高度φ5 LED管組成LED點(diǎn)陣字符。其中每個(gè)字段由4塊LED點(diǎn)陣埠并聯(lián)組成,而每個(gè)LED點(diǎn)陣塊先由5個(gè)LED串聯(lián)1組,再將4個(gè)串聯(lián)組并聯(lián)而成。先用的超高亮度LED工作電流約為20mA,工作電壓約為2V,每字段的總電流約為320mA,工作電壓為10V;字段的驅(qū)動(dòng),采用大電流反相驅(qū)動(dòng)器ULN2003(由7組NPN達(dá)林頓驅(qū)動(dòng)器組成);倒計(jì)時(shí)信號(hào)經(jīng)MC14153輸入到ULN2003,ULN2003輸出接字段的陰極,字段陽(yáng)極接電源正極;電源采用10A、5V的兩個(gè)開(kāi)關(guān)電源串聯(lián)供電。 3 軟件設(shè)計(jì) PCF8563中共有16個(gè)寄存器,其中00~01H為控制寄存器,09~0CH為報(bào)警寄存器,0DH為時(shí)鐘輸出寄存器,0E~0FH為定時(shí)器功能寄存器,02~08H為秒~年時(shí)間寄存器。表1、表2列出了各寄存器概況及對(duì)應(yīng)的內(nèi)存地址和功能。
表2 BCD格式寄存器概況
按I2C總線(xiàn)規(guī)約,PCF8563的從地址:讀地址SLAR為A3H、寫(xiě)地址SLAW為A2H,PCF8563I2C通信實(shí)現(xiàn)有字節(jié)寫(xiě)/讀兩種狀態(tài)。適用80C51的虛擬I2C總線(xiàn)軟件包。本系統(tǒng)直接調(diào)用該I2C總線(xiàn)軟件包的數(shù)據(jù)讀寫(xiě)子程序(其中WRNBYT為N字節(jié)的子程序,RDNBYT為讀取N字節(jié)的字節(jié)),來(lái)實(shí)現(xiàn)PCF8563的I2C總線(xiàn)操作。 根據(jù)硬件電路及資源分配,將I2C軟件包中符號(hào)單元賦值如下: SDA EQA P0.0 ;數(shù)據(jù)傳送 SCL EQU P0.1 ;時(shí)鐘控制狀態(tài) MIN DATA 30H ;秒寄存器 SEC DATA 31H ;分寄存器 HOUR DATA 32H ;時(shí)寄存器 DAY DATA 33H ;日寄存器 WEEK DATA 34H ;周寄存器 MONTH DATA 35H ;月寄存器 YEAR DATA 36H ;年寄存器 SLA DATA 37H ;37H為被控器的地址 NUMBYT DATA 38H ;38H為數(shù)據(jù)字節(jié)計(jì)數(shù)器 MRT DATA 40H ;接收數(shù)據(jù)緩沖區(qū)首地址 MTD DATA 50H ;發(fā)送數(shù)據(jù)緩沖區(qū)首地址 ①PCF8563定時(shí)器工作模式 MOV 51H ,#81H ;設(shè)置PCF8563的0EH為81H,啟動(dòng)定時(shí)器,定時(shí)器頻率64Hz MOV 52H ,#64 ;設(shè)置PCF8563的0FH為64,定時(shí)器倒計(jì)數(shù)值為64 MOV MTD ,#0EH ;定時(shí)器控制寄存器字節(jié)首地址 MOV NUMBYT,#3 ;寫(xiě)字節(jié) MOV SLA ,#0A2H;取寫(xiě)器件地址 LCALL WRNBYT ;寫(xiě)8563 ②PCF8563當(dāng)前時(shí)間設(shè)定子程序如下: MOV 51H,#00H ;啟動(dòng)時(shí)鐘 MOV 52H,#11H ;定時(shí)器為中斷模式,脈沖形式 MOV 53H,MIN ;將秒至年的時(shí)間寫(xiě)入發(fā)送緩沖區(qū) MOV 54H,SEC MOV 55H,HOUR MOV 56H,DAY MOV 57H,WEEK MOV 58H,MON MOV 59H,YEAR MOV SLA,#0A2H ;取寫(xiě)器件地址 MOV NUMBYT,#10;寫(xiě)字節(jié)數(shù) MOV MTD,#00H ;寫(xiě)入8563寄存器首地址為00H LCALL WRNBYT ;寫(xiě)入8563 RET ③讀出時(shí)鐘芯片當(dāng)前值子程序設(shè)計(jì) MOV MTD,#02H ;讀時(shí)鐘寄存器首字節(jié)地址02H MOV SLA,#0A2H ;取寫(xiě)器件地址 MOV NUMBYT,#1 ;寫(xiě)字節(jié)數(shù) LCALL WRNBYT ;寫(xiě)8563 MOV SLA,#0A3H ;取讀器件地址 MOV NUMBYT,#7 ;讀七個(gè)時(shí)鐘信息 LCALL RDNBYT ;讀取時(shí)間并放入緩沖區(qū) MOV A,40H ;取潷字節(jié) ANL A,#7FH ;屏蔽無(wú)效位 MOV MIN,A ;送秒寄存器 MOV A,41H ;取分字節(jié) ANL A,#7EH ;屏蔽無(wú)效位 MOV MIN,A ;送分寄存器 MOV A,42H ;取小時(shí)字節(jié) ANL A,#3FH ;屏蔽無(wú)效位 MOV HOUR,A ;送時(shí)寄存器 MOV A,43H ;取天字節(jié) ANL A,#3FH ;屏蔽無(wú)效位 MOV DAY,A ;送天寄存器 MOV A,44H ;取星期字節(jié) ANL A,#07H ;屏蔽無(wú)效位 MOV WEEK,A ;送星期寄存器 MOV A,45H ;取月字節(jié) ANL A,#1FH ;屏蔽無(wú)效位 MOV MOTH,A ;送月寄存器 RET 系統(tǒng)程序流程如圖4所示,中斷服務(wù)程序如5所示。 結(jié)語(yǔ) 此倒計(jì)時(shí)系統(tǒng)于廣東省六屆大運(yùn)會(huì)中標(biāo),在整個(gè)運(yùn)行過(guò)程正常穩(wěn)定工作,達(dá)到了大會(huì)提出的要求。 |