基于單片機的多功能電子萬年歷設計(一)
溫度采集模塊
溫度采集模塊設計
如圖5所示。采用數字式溫度傳感器DS18B20,它具有測量精度高,電路連接簡單特點,此類傳感器僅需要一條數據線進行數據傳輸,使用P1.7與DS18B20的I/O口連接加一個上拉電阻,Vcc1接電源,Vcc2接地。
DS18B20的測溫原理
低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,當計數門打開時,DS18B20就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-55℃所對應的基數分別置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在-55℃所對應的一個基數值。減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時溫度寄存器的值將加1,減法計數器1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值。
表2 DS1302的日歷、時間寄存器
圖5 DS18B20溫度采集
顯示模塊的設計
本次設計采用的是LED動態顯示方式,由于PROTEUS內沒有LED,故用LCD代替LED進行仿真,與主控制芯片AT89C52相連。如圖6所示。
系統的軟件設計
圖6 LED動態掃描顯示
圖7 主程序流程圖
評論