雷寧 朱凡元
【摘要】本文設計了一款基于單片機控制的多功能電子日歷,兼具數碼相框功能。軟件采用C51模塊化編程。系統(tǒng)具有時間、日歷、溫度實時顯示,圖片循環(huán)播放,調時、調鬧、整點報時等功能。具有低功耗、小型化、運行穩(wěn)定、操作方便等特點。
【關鍵詞】單片機;TFT彩屏;SD卡;語音芯片
Abstract:This paper presents a design of multi-function electronic calendar based on MCU.It is also a digital photo frame.Software use C51 modular programming.The system has many functions including time,data,temperature display in real time,pictures loop play,time adjustment,alarm adjustment,broadcast when integral hours.It has the characteristics of low power consumption,small size,run stable,easy to operate.
Keywords:MCU;TFT;SD card;voice chip
0.引言
隨著我國電子產業(yè)的飛速發(fā)展,各種功能強大、款式新穎的電子產品不斷問世,電子時鐘日歷便是這一發(fā)展趨勢中的代表,因其擁有時間精確、界面友好、擴展性能強等特點,而廣泛應用于家庭、賓館、醫(yī)院、學校、企業(yè)、商店等相關行業(yè)的大廳、會議室、門衛(wèi)等場所。
本設計為基于單片機控制的多功能電子日歷,該系統(tǒng)具備電子日歷和電子相框兩種功能。日歷模式下可以對年、月、日、星期、時、分、秒,實時溫度進行顯示,并可通過按鍵手動調整日期、時間、設置鬧鈴,同時具備整點報時功能;相框模式下可將SD卡中存儲的圖片進行循環(huán)顯示。
1.硬件電路設計
本設計采用STC單片機為控制核心,包括單片機、TFT顯示、 時鐘日歷、溫度采樣、語音模塊、SD存儲卡,鍵盤接口幾部分組成。硬件系統(tǒng)框圖如圖1所示。
圖1 硬件系統(tǒng)框圖
1.1 主控芯片
主控芯片選用宏晶科技生產的增強型單片機STC12C5A60S2,該型號單片機屬于高速,低功耗,超強抗干擾的單時鐘/機器周期(1T)單片機。其指令代碼完全兼容傳統(tǒng)8051,工作頻率范圍:0-35MHz,內部集成1280字節(jié)RAM,可通過STC-ISP下載軟件經串口(P3.0/P3.1)直接快速下載用戶程序。此款單片機可以適應本設計中控制TFT彩屏顯示,并與SD卡進行數據交換的場合,滿足高速且內存空間較大的要求。
1.2 TFT彩屏
顯示部分為突出美觀,靚麗的特點,采用2.4寸TFT彩屏實現。TFT顯示屏是一種薄膜晶體管液晶顯示器,具有獨立的像素點控制方式,每一個像素點都是由集成在其后的薄膜晶體管來驅動,一方面具有較高的響應速度,另一方面可以精準顯示色階,具備亮度高,層次感強、對比度高等特點。TFT的驅動IC選用ILI9325,與單片機接口需要13根數據線:8位數據線,片選/CS、寫/WR、讀/RD,命令數據切換/RS,復位/RST??紤]到單片機控制方便以及顯示圖片必須清晰,顏色鮮艷的要求,本設計中每一個像素選用16位真彩(RGB565)顯示,即紅色、綠色、藍色對應的數據格式分別為5位、6位、5位。8位單片機控制TFT屏顯示輸出時需要向每一個像素點寫入顏色,此時需要分兩次寫入。
1.3 測溫電路
實時溫度檢測部分選用由DALLAS公司生產的單線數字傳感器DS18B20,通過其進行溫度檢測后經單片機送TFT顯示。該芯片內部測溫范圍-55℃~+125℃,常溫下測量精度為±0.5℃;內部設有64位的ROM單元,存儲芯片唯一序列號;9字節(jié)暫存器單元,用來存放轉換好的溫度,設置最高、最低報警溫度,配置轉換精度(9位~12位)等。該芯片共三個引腳:VCC,GND,DQ,硬件電路中通過P3.7連接DQ,實現單片機與DS18B2的數據交換,解決本設計中單片機I/O口不足的問題。
1.4 日歷時鐘
日歷時鐘芯片選用DALLAS公司的一種具有涓細電流充電能力的電路芯片DS1302,該芯片外部連接普通32.768kHz晶振,通過串行方式與單片機進行數據傳送,能夠向單片機提供秒、分、時、日、月、年等實時時間信息,并可對月末日期、閏年天數自動進行調整。它還擁有用于主電源和備份電源的雙電源引腳,在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。該芯片與單片機通訊需要3根數據線,I/O串行數據線,SCLK串行時鐘線,RST復位線。
1.5 鍵盤接口
本設計中設置5個按鍵,采用獨立式鍵盤模式,鍵盤經單片機P1.0~P1.4輸入,分別對應“模式鍵”、“調時鍵”、“加鍵”、“減鍵”、“確認鍵”。當無鍵按下時I/O口為高電平,有鍵按下時對應I/O口為低電平。“模式鍵”可切換日歷模式和相框模式;在日歷模式下按下“調時鍵”可對日期、時間、鬧鈴等進行設置;短時按下“加鍵”、“減鍵”可實現加1、減1功能,持續(xù)按下“加鍵”、“減鍵”1.5s可連續(xù)加1、減1。
圖2 主函數流程
2.軟件系統(tǒng)設計
2.1 模塊化編程
考慮到所編寫的C51程序工程中包含顯示、語音、存儲、日歷、溫度檢測等多個模塊,因此采用C51模塊化編程思路,每個模塊由一個*.c 文件和一個*.h文件組成。其中:*.h文件對模塊中的數據結構和函數原型進行描述;*.c文件對數據實例或對象進行定義,體現函數的具體實現算法。主函數需要調用以上各模塊,各模塊中也存在函數互相調用的情況,需要在相應文件的開頭寫入include語句,包含上面模塊的*.h文件。模塊化編程的方法不僅有利于程序結構劃分、程序調試,還增加了程序的可讀性和可移植性。主函數流程如圖2所示。
各模塊初始化部分由以下幾條語句構成:
Ds1302_init();
Lcd_init();
Sd_init();
Ds18b20_init();
Isd1760_init();
由于硬件電路中時鐘芯片接入了備用電源,掉電后可繼續(xù)走時,不需要每次上電都重置時間,所以DS1302初始化語句僅在第一次調試時寫入,以后調試運行時可注釋此條語句。
日歷模式下的流程如圖3所示
圖3 日歷模式流程
2.2 圖片存放與讀取
相框模式中使用的彩色圖片需要占用很多存儲空間,因此選用SD卡來存放。SD卡是目前日常生活與工作中常用的數據存儲卡,在MP3、數碼相機等設備上廣泛應用,具有價格低廉、存儲容量大、安全性強等優(yōu)點。在圖片存儲的過程中,事先通過軟件將相應圖片轉化為.bin文件,存儲于SD卡中。本設計中單片機對SD卡進行讀寫時采用SPI模式,即使用CS、CLK、DataIn、DataOut的4線制模式進行數據通信。通信過程中需要對SD卡扇區(qū)進行讀寫,要求一次性對512個字節(jié)進行操作。存放圖片的扇區(qū)首地址通過WinHex軟件獲得。
圖4 日歷模式顯示效果
2.3 整點報時功能及鬧鈴實現
日歷模式中具備整點報時和鬧鈴功能,這部分功能的實現采用語音芯片ISD1760來完成,該芯片屬于Winbond 推出的單片優(yōu)質語音錄放電路ISD1700系列,可錄、放音十萬次,處理多達255段以上信息。
圖5 相框模式顯示效果
整點時刻要求播報“現在時刻:xxxx年xx月xx日,星期x,上午(下午、中午、凌晨、晚上)xx點整”。定時鬧鈴采用特定的樂曲鈴聲。這些語音片段及樂曲均需保存在語音芯片ISD1760中??紤]到整點報時播放的內容是隨機的,需要事先將播放的聲音一段一段的錄入到語音芯片中,然后將錄制好的語音片段組合播放出來。這時確定錄音片段的首地址非常關鍵。通過另外編寫單片機程序,實現在播放錄音片段的同時讀取每段錄音的首地址。需要將“現在時刻”、“年”、“月”、“日”、“星期”、“點”、“分”、“上午”、“中午”、“下午”、“凌晨”、“晚上”“1”、“2”……“零”、“十”、“整”,以及鬧鈴樂曲等25段語音片段的首地址記錄下來,保存在數組中,供語音模塊調用,從而實現整點播報的功能以及定時鬧鈴功能。
3.系統(tǒng)調試與結果
通過Keil uVision4軟件調試程序,生成hex文件后下載到STC12C5A60S2單片機中,通過不斷測試,修改程序,優(yōu)化代碼,完成系統(tǒng)硬件功能,最終較好地實現了數碼相框和電子日歷的功能。圖4為日歷模式下正常顯示和鬧鐘調節(jié)狀態(tài)效果圖,圖5為相框模式下正常顯示和兩幅圖切換時的效果圖。
參考文獻
[1]郭天祥.51單片機C語言教程[M].北京:電子工業(yè)出版社,2009,1.
[2]李婕,蒲忠勝.簡易數碼相框與電子閱讀器的設計[J].現代電子技術,2013(5).
[3]李永平,李杰,徐一峰.基于單片機的語音電子日歷[J].電子世界,2012(2).
作者簡介:
雷寧(1978—),女,講師,現供職于江陰職業(yè)技術學院,主要從事電子技術的教學與研究。
朱凡元(1993—),男,現就讀于江陰職業(yè)技術學院電子信息工程系。