徐錦鋼鄢 妍/.江西師范大學(xué)科學(xué)技術(shù)學(xué)院 .江西機(jī)電職業(yè)技術(shù)學(xué)院
一種定時(shí)充電控制器的設(shè)計(jì)與研究
徐錦鋼1鄢妍2/1.江西師范大學(xué)科學(xué)技術(shù)學(xué)院 2.江西機(jī)電職業(yè)技術(shù)學(xué)院
本文描述了一種基于單片機(jī)的定時(shí)充電控制器軟硬件設(shè)計(jì)方法,講述了該控制器的工作原理,重點(diǎn)闡述了液晶模塊、時(shí)鐘芯片的讀寫操作方式及繼電器通斷控制原理,給出了部分電路原理圖及C語言程序代碼。
單片機(jī);繼電器;時(shí)鐘
隨著我國(guó)經(jīng)濟(jì)社會(huì)持續(xù)快速發(fā)展,能源供應(yīng)緊張的問題日益顯現(xiàn),綠色低碳節(jié)能的概念逐漸深入人心,充電式電動(dòng)自行車已經(jīng)大量進(jìn)入普通百姓家庭,電動(dòng)汽車的研究與應(yīng)用也正在逐步推進(jìn),電瓶、電池的安全充電問題被人們所關(guān)注,過充電是影響電瓶、電池使用壽命的重要原因,本文設(shè)計(jì)的控制器可以精確控制充電時(shí)長(zhǎng),有效防止過充電。[1]。
單片機(jī)通過讀取時(shí)鐘芯片獲得時(shí)間信息,用戶通過按鍵設(shè)定預(yù)約充電時(shí)間及充電時(shí)長(zhǎng),設(shè)定的時(shí)間值通過液晶模塊顯示。設(shè)定完成后,按開始鍵充電。充電時(shí)間到,單片機(jī)發(fā)送指令給繼電器,控制繼電器斷開充電回路,停止充電。
2.1系統(tǒng)硬件框圖和實(shí)物圖
系統(tǒng)硬件框圖如圖1所示,主要包括STC89C52單片機(jī)、時(shí)鐘芯片(DS12C887)、12864型液晶顯示模塊、按鍵、繼電器、蜂鳴器、主控板電源。
圖1 .系統(tǒng)硬件框圖和實(shí)物圖
芯片及電子元器件選型簡(jiǎn)介:
1)單片機(jī)型號(hào)為STC89C52,具有8K片內(nèi)程序存儲(chǔ)器和256字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器。
2)時(shí)鐘芯片型號(hào)DS12C887,能自動(dòng)產(chǎn)生世紀(jì)、年、月、日、時(shí)、分、秒等時(shí)間信息,自帶鋰電池,外部掉電時(shí),內(nèi)部時(shí)間信息還能夠保持10年之久。
3)液晶顯示模塊為12864型,內(nèi)含有國(guó)標(biāo)簡(jiǎn)體中文字庫,內(nèi)置128個(gè)16*8點(diǎn)ASCII字符集和8192個(gè)16*16點(diǎn)漢字,構(gòu)成本系統(tǒng)的人機(jī)交互界面。
4)繼電器采用直流控制交流型固態(tài)繼電器,輸出端接入220V市電交流回路,控制端與輸出端有光耦隔離保護(hù),開關(guān)噪聲非常小。
2.2單片機(jī)與時(shí)鐘芯片DS12C887的接口電路設(shè)計(jì)
圖2. 時(shí)鐘芯片接口電路
時(shí)鐘芯片接口電路原理圖如圖2所示。DS12C887內(nèi)部自帶晶振,故無需外接晶振。AD0-AD7為信號(hào)線,通過10K的上拉電阻分別連至單片機(jī)的P0.0-P0.7端口。MOT管腳懸空決定了本系統(tǒng)的時(shí)鐘芯片采用Intel工作模式,此時(shí)DS管腳作為讀允許輸入端使用。R/W 管腳在Intel工作模式下作為寫允許輸入端使用。AS是地址選通輸入腳,在進(jìn)行讀寫操作時(shí),AS 的上升沿將AD0~AD7 上出現(xiàn)的地址信息鎖存到DS12C887上,而下一個(gè)下降沿到來時(shí)清除 AD0~AD7 上的地址信息。CS是片選輸入端,該管腳為低電平時(shí),DS12C887工作。
2.3單片機(jī)與12864液晶模塊的接口電路設(shè)計(jì)
圖3.12864液晶模塊接口電路
圖3是單片機(jī)與12864液晶模塊的接口電路原理圖,圖中的“D0-D7”為液晶模塊的數(shù)據(jù)端口,通過10K上拉電阻分別與單片機(jī)的P0.0-P0.7連接,用以傳輸液晶模塊的信號(hào)數(shù)據(jù)和命令數(shù)據(jù)。RS端為“數(shù)據(jù)/命令”選擇端,高電平時(shí),D0-D7傳輸信號(hào)數(shù)據(jù);低電平時(shí),D0-D7傳輸命令數(shù)據(jù)。RW為“讀/寫”選擇端,高電平時(shí),單片機(jī)讀取液晶數(shù)據(jù);低電平時(shí),單片機(jī)將數(shù)據(jù)寫入液晶。EN為使能端,高電平時(shí)液晶模塊與單片機(jī)交互信息。PSB為串行/并行工作方式選擇端,本系統(tǒng)采用并行數(shù)據(jù)傳輸方式,所以將PSB固定接高電平。2、3引腳跨接一個(gè)10K歐姆的精密可調(diào)電阻,通過改變其阻值來調(diào)節(jié)液晶模塊的顯示亮度[2]。
定時(shí)充電控制器的程序主要包括三個(gè)部分:DS12C887時(shí)鐘芯片的讀寫程序、繼電器通斷程序、人機(jī)交互程序。
3.1程序流程圖
圖4.程序流程圖
系統(tǒng)上電后,單片機(jī)復(fù)位初始化寄存器及外圍器件,讀取時(shí)鐘芯片,并在液晶屏上顯示時(shí)間信息。此時(shí),系統(tǒng)等待用戶的按鍵操作,用戶可以通過按鍵校準(zhǔn)時(shí)間,設(shè)置預(yù)約充電時(shí)間和充電時(shí)長(zhǎng),按下確定鍵后,系統(tǒng)開始倒計(jì)時(shí)。當(dāng)預(yù)約時(shí)間到時(shí),單片機(jī)向繼電器控制端發(fā)出高電平信號(hào),繼電器合上充電回路,開始充電。當(dāng)充電時(shí)間到時(shí),單片機(jī)向繼電器控制端發(fā)出低電平信號(hào),繼電器斷開充電回路,充電結(jié)束[3]。
3.2DS12C887時(shí)鐘芯片讀寫程序
DS12C887讀寫操作規(guī)則是先送地址,后讀數(shù)據(jù)。以下給出讀時(shí)鐘數(shù)據(jù)完整代碼及注釋:
unsigned char read_ DS12C887 (unsigned char add)//讀時(shí)鐘數(shù)據(jù)
{
unsigned char ds_date;//定義變量,用于存儲(chǔ)時(shí)鐘數(shù)據(jù)
dsas=1;
dsds=1;
dsrw=1;
dscs=0;// DS12C887暫時(shí)停止與單片機(jī)交互
P0=add;//向DS12C887送入將要讀取數(shù)據(jù)的地址
dsas=0;//將送入的地址清除
dsds=0;//禁止讀操作
P0=0xff;//將時(shí)鐘信號(hào)線全部初始化高電平
ds_date=P0;
dsds=1;//開始讀操作
dsas=1;//置高,允許接收下一個(gè)地址信息
dscs=1;// 允許DS12C887向單片機(jī)傳送信息
return (ds_date);//返回讀取的時(shí)鐘數(shù)據(jù)
}
3.3繼電器動(dòng)作程序
繼電器控制端獲得高電平時(shí),輸出端閉合,否則輸出端斷開。
void jidianqi_ctrl()//繼電器通斷控制子程序
{
if((shi==dian)&&(xiaoshi!=0))//預(yù)約時(shí)間到
{
jidianqi=1;//繼電器回路接通,開始充電
if( (shi==(dian+xiaoshi)) || (shi==(dian+xiaoshi-24)) )//充電時(shí)長(zhǎng)到,結(jié)束充電
{
jidianqi=0;// 繼電器回路斷開,停止充電
}
}
else
{
jidianqi=0;//其他時(shí)間段,禁止充電
}
}
本文研究了定時(shí)充電控制器軟硬件設(shè)計(jì)問題,完整地設(shè)計(jì)了控制器的硬件電路,對(duì)關(guān)鍵的程序代碼做了詳細(xì)闡述,同時(shí)利用萬能電路板搭建硬件系統(tǒng),通過實(shí)驗(yàn)測(cè)試,取得了預(yù)期效果。
[1] 陳詩一.節(jié)能減排、結(jié)構(gòu)調(diào)整與工業(yè)發(fā)展方式轉(zhuǎn)變研究[M].北京:北京大學(xué)出版社,2011-07.
[2] 彭偉.單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例:基于8051+Proteus仿真[M].北京:電子工業(yè)出版社,2009-01.
[3] 李祖安,郭艷春.光MOS固體繼電器抗電離輻射研究[J].半導(dǎo)體光電,2012年第4期.
徐錦鋼(1983-),江西高安人,碩士研究生,研究方向:嵌入式控制系統(tǒng)軟硬件研制。