<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)T89S52單片機的多功能電子萬(wàn)年歷

基于A(yíng)T89S52單片機的多功能電子萬(wàn)年歷

作者: 時(shí)間:2013-05-21 來(lái)源:網(wǎng)絡(luò ) 收藏

DS1302的寄存器

DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數據位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見(jiàn)表2。

此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器外的所有寄存器內容。DS1302與RAM相關(guān)的寄存器分為兩類(lèi):一類(lèi)是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節,其命令控制字為C0H~FDH,其中奇數為讀操作,偶數為寫(xiě)操作;另一類(lèi)為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫(xiě)所有的RAM的31個(gè)字節,命令控制字為FEH(寫(xiě))、FFH(讀)。

時(shí)鐘模塊實(shí)現功能

該模塊為系統提供精準的秒、分、時(shí)、日、月、年等實(shí)時(shí)時(shí)間信息,星期則由編程計算得到。

溫度采集模塊

溫度采集模塊設計

如圖5所示。采用數字式溫度傳感器DS18B20,它具有測量精度高,電路連接簡(jiǎn)單特點(diǎn),此類(lèi)傳感器僅需要一條數據線(xiàn)進(jìn)行數據傳輸,使用P1.7與DS18B20的I/O口連接加一個(gè)上拉電阻,Vcc1接電源,Vcc2接地。

DS18B20的測溫原理

低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數器2的脈沖輸入,當計數門(mén)打開(kāi)時(shí),DS18B20就對低溫度系數振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計數,進(jìn)而完成溫度測量。計數門(mén)的開(kāi)啟時(shí)間由高溫度系數振蕩器來(lái)決定,每次測量前,首先將-55℃所對應的基數分別置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在-55℃所對應的一個(gè)基數值。減法計數器1對低溫度系數晶振產(chǎn)生的脈沖信號進(jìn)行減法計數,當減法計數器1的預置值減到0時(shí)溫度寄存器的值將加1,減法計數器1的預置將重新被裝入,減法計數器1重新開(kāi)始對低溫度系數晶振產(chǎn)生的脈沖信號進(jìn)行計數,如此循環(huán)直到減法計數器2計數到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數值即為所測溫度。斜率累加器用于補償和修正測溫過(guò)程中的非線(xiàn)性,其輸出用于修正減法計數器的預置值,只要計數門(mén)仍未關(guān)閉就重復上述過(guò)程,直至溫度寄存器值達到被測溫度值。

顯示模塊的設計

本次設計采用的是LED動(dòng)態(tài)顯示方式,由于PROTEUS內沒(méi)有LED,故用LCD代替LED進(jìn)行仿真,與主控制芯片AT89C52相連。如圖6所示。

系統的軟件設計

主程序流程框圖

Keil C與Proteus的聯(lián)調與測試結果

Proteus7.6是目前最好的模擬外圍器件的工具,可以仿真51系列、AVR、PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤(pán),馬達,LED,AD/DA,部分SPI器件,部分IIC器件等),使用Proteus7.6和Keil C可以像使用仿真器一樣調試程序。

Proteus的工作過(guò)程

運行Proteus的ISIS程序后,進(jìn)入該仿真軟件的主界面如圖8所示。在工作前,要設置view菜單下的捕捉對齊和system下的顏色、圖形界面大小等項目。通過(guò)工具欄中的p(從庫中選擇元件命令)命令,在pick devices窗口中選擇電路所需的元件,放置元件并調整其相對位置、元件參數設置、元器件間連線(xiàn)、編寫(xiě)程序;在source菜單的Define code generation tools菜單命令下,選擇程序編譯的工具、路徑、擴展名等項目;在source菜單的Add/remove source files命令下,加入硬件電路的對應程序;通過(guò)debug菜單的相應命令仿真程序和電路的運行情況。

圖8 Proteus的啟動(dòng)界面

Proteus軟件所提供的調試手段

Proteus提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數字信號。對于硬件電路和軟件的調試,Proteus提供了兩種方法:一種是系統總體執行效果,一種是對軟件的分步調試以看具體的執行情況。

軟件和硬件結合的應用系統

軟件和硬件的結合,就是一個(gè)單片機的應用系統了。在這一階段,硬件電路的設計已經(jīng)不是最為關(guān)鍵的了,而軟件系統的設計、調試和運行才是實(shí)驗的主要內容。因此可以以建議性的意見(jiàn)給出具體的硬件電路,并提出該電路所需要完成的具體工作,進(jìn)行軟件的設計和調試。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>