蔡燕玲
摘要:歷來校園打鈴系統在校園時間控制管理方面起主要作用,隨著校園任務多樣化及人性化發展,所有教室能有時鐘并使這些時鐘的時間同步,將對校園教學及秩序管理起重要作用。應用單片機及無線通信技術設計的同步時鐘系統,可在不影響教室其它設備及布線的基礎上,實現多教室時鐘顯示同步時間。
關鍵詞:單片機;時鐘;nRF24L01+
中圖分類號:TP319 文獻標識碼:A 文章編號:1007-9416(2017)08-0016-02
1 引言
校園日常活動中會遇到兩個問題。一個是作為全國統一考試的考場,特別是四六級考試時,考生在不同的時間段有不同的任務,理論上所有考生應同步進行。但因各考室采用的石英鐘未能完全同步,室外廣播的效果有時不太好,實際操作中會出現偏差。另一個就是在教學管理中對上下課時間要求嚴格,不準提前下課,學校的打鈴系統不穩定時教師將自行決定,易造成管理中的麻煩。如果每間教室的時鐘都能同步,就能很好地解決一些問題,由此設計了教室同步時鐘。
2 設計思路
每間教室的時間要同步,其時鐘的信號來源必須是同一個。可以從教室電腦獲取網絡標準時間,前提是電腦必須打開并聯網,多了一層操作,特別作為考場時是不允許的。這里的設計采用單片機應用技術的方法,可以在不牽扯教室其它設備的基礎上實現時鐘同步。
2.1 總體框圖
整個設計由一個主時鐘模塊和多個從時鐘模塊構成。標準時鐘作為主時鐘,各間教室的時鐘作為從時鐘。由主時鐘模塊通過無線傳輸方式發送標準時間信號,各從時鐘模塊同時接收并顯示時間。同步時鐘系統結構圖如圖1所示。
2.2 主時鐘模塊設計
主時鐘模塊的作用是提供標準時間,由單片機、時鐘芯片ds1302、6位數碼管顯示器和無線收發nRF24L01+模塊組成。
2.2.1 時鐘產生
為了保證時間的準確性,采用時鐘芯片作為標準時鐘的來源。DS1302[1]是美國DALLAS公司推出的一種串行接口實時時鐘芯片,計時準確,工作電壓范圍寬(2.5-5.5V),功耗低,芯片自身還具有對備份電池進行涓流充電功能,可有效延長備份電池的使用壽命。芯片采用3線串行通信方式與單片機連接,在以單片機為主控芯片控制RST、SCLK信號的基礎上從I/O引腳傳送數據信號。芯片內部有可編程的日歷時鐘寄存器和31個字節的靜態RAM,每次傳送數據前需向DS1302寫入一個命令字以確定是選擇RAM操作還是時鐘操作、是讀操作還是寫操作。DS1302芯片有年星期月日時分秒寄存器,此處只用到時分秒三個寄存器,其寄存器地址分別為時80H(寫)和81H(讀)、分82H(寫)和83H(讀)、秒84H(寫)和85H(讀),對應函數是:
寫:
Write1302(0x80,秒值); //向秒寄存器寫入秒的值
Write1302(0x82,分值); //向寄存器寫入分的值
Write1302(0x84,時值); //向寄存器寫入小時的值
讀:
ReadValue = Read1302(0x81); //從秒寄存器讀秒值
ReadValue = Read1302(0x83); //從分寄存器讀分值
ReadValue = Read1302(0x85); //從小時寄存器讀小時的值
電路設計中外接三個按鍵,用以調節時分秒的值,從而校準時間。
2.2.2 時鐘顯示
主時鐘模塊可以考慮液晶顯示或數碼管顯示,若時間設定之后大部分時間不使用這個時鐘,可采用液晶顯示,此處假設作為主考室的時鐘,為了方便眾人觀察需采用LED數碼管顯示。
MAX7219[1]是7段共陰極LED顯示驅動器,采用三線串行方式與單片機接口,其片內含有的段譯碼器、掃描電路、字段字位存儲器等可以減輕單片機負擔,且可通過引腳V+與ISET之間所接的外部電阻來控制顯示亮度。
單片機通過MAX7219驅動數碼管顯示,顯示函數為:
DisplayChar(uchar digit,uchar character); //在指定數位上顯示指定字符
例如“DisplayChar(0x03,'8');”表示在數碼管第5位顯示字符8。
圖2為主時鐘模塊的標準時鐘電路及仿真結果。
2.2.3 時鐘參數發送
從DS1302讀取當前“時分秒”數據,通過無線收發nRF24L01+模塊進行發送。
nRF24L01+[2]是Nordic公司出品的一種2.4GHz ISM波段的通信芯片,工作頻率范圍是2.400GHz-2.525GHz,支持的空中數據速率有250kbps、1Mkbps和2Mkbps,使用電源1.9-3.6V并有兩種電源節能模式適于超低功率的設計,通過配置寄存器值可工作在掉電、待機、發射和接收模式。
芯片有20個引腳,其中6個引腳與單片機連接,其余接固定元件,電路如圖3所示。
主時鐘模塊上的nRF24L01+設置為發送模式,發送“時分秒”三個字節的數據:
TX_Mode();// 配置為發送模式
Write_Buffer(Write_TX_PLD,TX_Buffer,TX_PLD_ Width);//寫發送的數據及數據長度。
2.3 從時鐘模塊設計
在主時鐘模塊電路的基礎上去掉時鐘芯片,就構成從時鐘模塊電路。
為了接收主時鐘模塊發送來的時間參數,需把從時鐘模塊上的nRF24L01+設置為接收模式并設置與主時鐘模塊上nRF24L01+相同的頻道、地址、數據速率和數據寬度,由函數Read_Buffer(Read_RX_PLD,RX_Buffer,TX_PLD_Width)接收,并把接收到的時間參數處理后送數碼管,顯示出與主時鐘模塊同步的時間。
3 結語
此設計僅限于實驗室模型,實際應用中需考慮多種因素。例如考慮信號傳播距離需增大發射功率、考慮數據傳輸時延需在程序中修正時間參數等技術問題,以及時鐘顯示部分應選用時間格式的數碼管等人性化方面的考慮等。
參考文獻
[1]徐愛鈞,彭秀華,編著.Keil Cx51 V7.0單片機高級語言編程與uVision2應用實踐[M].北京:電子工業出版社,2006.
[2]劉曉紅,何永洪.基于nRF2401的無線數據通信系統[J].電視技術,2008,(S1):72-73+81.endprint