張治海
(山西省廣播電視局228 臺,山西 太原 030001)
在現(xiàn)代社會快節(jié)奏的生活狀態(tài)下,人們對時間觀念更加注重。目前,許多人都在使用電子時鐘,但大多數(shù)電子時鐘只顯示時間,功能比較單一,無法滿足廣大消費者的需求,功能多樣的電子萬年歷應運而生。
多功能電子萬年歷除能夠清晰準確地顯示信息,還應當根據(jù)需求隨時對日期、時間、星期、溫度、鬧鐘進行設置。應當具有數(shù)據(jù)直觀顯示、功能多樣、成本低廉等特點。
按照預期想要實現(xiàn)的功能,硬件系統(tǒng)以AT89C52 芯片作為主控核心,它的大部分功能與AT89C51 相同,不同的部分是,它內部存儲空間為8 KB ROM。
電源模塊:使用電壓值為6 V 的干電池,為了得到穩(wěn)定電壓,所以需要將電源系統(tǒng)穩(wěn)壓器LDO 將電源穩(wěn)壓成5 V的電源,這種方案設計簡單,設備輕便,方便攜帶。
按鍵控制模塊:采用獨立按鍵,程序處理簡單,可大大節(jié)省CPU 資源。
時鐘模塊:采用時鐘芯片DS1302,它的性能相對較高,可自動實現(xiàn)年、月、日、星期、時、分、秒的計數(shù),精度及準確度都較高。
溫度采集模塊:采用溫度傳感器DS18B20,被測的溫度可以直接讀出,顯示直觀清晰。編程簡單,使用電壓范圍比較大,可操作性強,分辨率和精確度也都比較高[1]。
顯示模塊:采用LCD1602 顯示,功率損耗低,價格便宜,顯示內容豐富??芍苯优c單片機接口,硬件操作簡單。
硬件設計主要在Proteus 仿真,設計采用Proteus 的ISIS,進入仿真主界面,找到要仿真的元件,將各模塊的元件按電路連接后,設置參數(shù),編寫程序。
AT89C52 單片機的最小系統(tǒng)分為復位電路和晶振電路兩部分。
1)復位電路
考慮到設計要求,復位電路集上電自動復位和手動復位于一體。
時鐘電路進入工作狀態(tài),當高電平的時間大約超出2 us的時候,就需要是單片機復位,該操作是系統(tǒng)自動實現(xiàn)的[2]。手動復位則要通過一個按鍵就可以實現(xiàn),在程序運行時,若出現(xiàn)問題,如程序計數(shù)器PC 沒有按照預計的功能運行,即程序“跑飛”、死機或死循環(huán)等現(xiàn)象,手動復位就可以恢復正常了。其電路設計如圖1 所示。
圖1 復位電路
2)時鐘振蕩電路
考慮系統(tǒng)運行速度,可用12 MHz 的石英晶振,并使用兩個小電容作為微調電容,可以大大提高電路的運行速度[3]。
DS1302 最主要的功能是實時顯示時間,具有高性能、低功耗的優(yōu)點。在工作時需要先進行初始化,否則不能正常運行。它是3 線的串行接口,占用的引腳相對較少,在內部集成可以編程的時鐘日歷,操作者可以根據(jù)自己對功能的需求,在單片機上進行設置??梢允褂猛獠侩娫春蛡浞蓦娫措p電源供電,當外部電源能源耗盡時,可以使用備份電源使時鐘芯片繼續(xù)運作。
當單電源與電池供電時,VCC1 提供低電源。當雙電源供電時,VCC2 是主電源,VCC1 是備份電源。DS1302 在工作前必須進行初始化,要將SCLK 端置“0”,RST 端置“1”,這樣SCLK 才能得到脈沖信號??刂谱值奈? 至位5 是操作單元的地址。DS1302 進行讀寫數(shù)據(jù)時,位7 必須置1。至于位6,對時間進行讀寫時,CK=0,對程序進行讀寫時RAM=1。進行讀操作時,位0 置1;進行寫操作時,位0 置0。
溫度采集采用溫度傳感器DS18B20,它的測量精度較高,便于數(shù)據(jù)采集,更加符合設計要求。DS18B20 溫度傳感器由美國DALLAS 半導體公司生產(chǎn),相比較于傳統(tǒng)的熱敏電阻等其他這類元件,它可以直接顯示被測溫度,還可以根據(jù)實際情況的要求,編寫簡單的程序來實現(xiàn)讀數(shù)方式為9-12位的數(shù)字值[4]。溫度傳感器接口電路如圖2 所示。
圖2 溫度傳感器DS18B20 接口電路
通過三極管來控制蜂鳴器,三極管導通蜂鳴器響,三極管截止蜂鳴器不響,鬧鐘模塊電路圖如圖3 所示。
圖3 蜂鳴器電路
管腳3 用于調節(jié)LCD1602 的灰度。4、5、6 是控制管腳,控制LCD1602 寫入或讀出指令。7 至14 是數(shù)據(jù)口與P0 連接,將數(shù)據(jù)傳送到LCD1602 中。LCD1602 與單片機的接口電路如圖4 所示。
圖4 LCD1602 與單片機接口電路
按鍵電路由四個輕觸開關組成,用按鍵來對時間進行調整,還可以實現(xiàn)設置鬧鐘的功能。電路右端接地,另一端接單片機的端口。把按鍵按下時,與它對應的端口就會轉變成低電平。通過檢測低電平,可以找到對應按下的按鍵,就可以及時作出對應的操作。
整個軟件系統(tǒng)采用C51 編程,主要實現(xiàn):時間數(shù)據(jù)的采集、溫度的采集、鬧鈴的設置、按鍵的識別處理、LCD 的驅動等。
編程軟件采用Keil uVision4,是51 系列單片機C 語言軟件開發(fā)系統(tǒng)。Keil C51 軟件能夠提供大量的庫函數(shù),把高級語言翻譯成單片機能識別的語言,生成目標代碼的效率較高,語句緊湊,容易理解[5]。
軟件總體設計流程圖如圖5 所示。
當接通電源開始工作后,程序從main()函數(shù)開始運行,隨后對溫度模塊、時間模塊和顯示模塊進行初始化。DS18B20 必須先與單片機芯片達成通信協(xié)議,完成初始化并取得通信后,啟動溫度測量程序,測量過程完成后,發(fā)出溫度轉換指令,從而便可將溫度轉化成數(shù)字模式進行顯示讀取;同時DS1302 將讀取時分秒星期以及年月日寄存器然后通過液晶顯示實時時間、星期及日期;鍵盤電路中按鍵可對實時日歷時鐘進行調整;進行顯示時要對標志位賦初值,隨后進入循環(huán)中運行按鍵掃描程序和液晶顯示程序。
圖5 總設計流程圖
采用時間芯片DS1302 對時間進行采集時,必須對系統(tǒng)初始化。設置時間后,看是否對時間進行調整,若時間需要調整,則調整時間后才能顯示,讀取時間;若不需要調整,則可以直接顯示并讀取時間。
DS18B20 單線通信的功能要求,需要分時完成,確保一定的時延控制。否則,不能進行讀寫控制。系統(tǒng)對溫度采集,開始必須進行初始化,對溫度進行寫操作,要對溫度采樣,然后復位。再進行初始化,存儲溫度數(shù)據(jù),對溫度進行讀操作就完成了。
LCD1602 在工作時,要進行初始化操作。LCD1602 有以下幾個基本時序:
1)讀狀態(tài):RS=L,RW=H,E=H
2)寫指令:RS=L,RW=L,D0~D7=指令碼,E=高脈沖
3)讀數(shù)據(jù):RS=H,RW=H,E=H
4)寫數(shù)據(jù):RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖
將要設置的鬧鐘時間寫入存儲器,當前時間與設置的時間一致時,鬧鈴就會響;當前時間與設置的時間不一致時,鬧鈴不響。
設計中識別按鍵采用查詢法,程序簡單。系統(tǒng)中含有命名為SET、UP、DOWN、OUT/STOP 四個調整按鍵。SET、OUT/STOP 兩個按鍵是否按下在主函數(shù)里面查詢,由SET 鍵來激活UP、DOWN 鍵的功能。這樣設計,CPU 的工作量大大減少。OUT/STOP 是多功能鍵,當OUT/STOP 是響鈴停止功能時,SET 鍵未被按下,當OUT/STOP 是退出調整模式的功能時,SET 按下。
編程器Genius G540 在聯(lián)機時將Keil uVision4 編寫的程序燒寫到AT89C52 主控芯片中。步驟如下[6]:
1)啟動Keil 編程軟件,新建工程,選擇與單片機型號相匹配的CPU(該設計使用的是AT89C52),再新建文件,擴展名為“.c”。
2)在建好的文件中用C 語言編寫程序。
3)對編寫好的C 程序進行編譯,確定無誤后,生成HEX文件。
4)把單片機固定在G540 編程精靈上,用數(shù)據(jù)線將編程器和計算機相連。
5)啟動G540 編程軟件,選擇使用的CPU 型號,首先對單片機進行擦除,然后加載HEX 文件,再通過查空、編程、比較、加密等步驟,完成程序的燒寫。
論文分別從硬件方面和軟件方面,對基于單片機的多功能萬年歷設計作了詳細論述。
在設計的整個過程中,硬件方面主要設計了AT89C52單片機的最小系統(tǒng);設計了DS1302 接口電路實現(xiàn)時鐘設置,設置了具體時間;設計了DS18B20 接口電路顯示溫度;整個設計成果在LCD 液晶顯示。軟件主要設計了鬧鈴程序、溫度采集程序、以及LCD 顯示程序;系統(tǒng)的調試主要是通過一塊AT89C52 開發(fā)板,再借助于Keil4、單片機仿真軟件Proteus 7 Professional 來實現(xiàn)。
[1]張萌.單片機應用系統(tǒng)開發(fā)綜合實例[M].北京:清華大學出版社,2007.
[2]樓然苗.單片機課程設計指導[M].北京:北京航空航天大學出版社,2007.
[3]林志琦,郎建軍.基于Proteus 的單片機可視化軟硬件仿真[M].北京:北京航空航天大學出版社,2006.
[4]馬忠梅.單片機C 語言應用程序設計[M].北京:北京航天航空大學出版社,2007.
[5]肖炎根,舒望.基于實時鐘芯片的電子萬年歷的設計[J].電子技術,2007(3) :91-94.
[6]王越明.電子萬年歷的設計[J].黑龍江科技信息,2004(8) :18-22.
[7]陳明熒.8051 單片機課程設計實訓教程[M].北京:清華大學出版社,2003.
[8]何立民.單片機高級教程[M].北京:北京航空航天大學出版社,2003.
[9]魯剛強.基于液晶顯示器的單片機系統(tǒng)設計[J].科技資訊,2008(35) :22-23.