




已閱讀5頁,還剩28頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于單片機的數字電子鐘設計學 生:劉冰波指導老師:劉旭紅(湖南農業大學東方科技學院,長沙 410128)摘 要:本文詳細介紹了基于單片機的數字電子鐘的設計,本電子鐘可以實現日期、時間的顯示和調整,帶有整點語音播報和一個鬧鐘,并且可以顯示當前氣溫。本設計包括硬件設計和軟件設計兩部分。主要硬件有:AT89S51單片機、DS1302時鐘芯片、LCD1602顯示管、DS18B20溫度傳感器、若干按鍵等。軟件部分采用模塊化的設計,包括中斷模塊、鬧鐘模塊、語音模塊、時間調整模塊設計,并采用簡單流通性強的C語言編寫實現。用數字溫度計DS18B20測量當前氣溫,在把實時數據顯示在LCD1602上的同時,不斷掃描按鍵,如果有按鍵按下,則對按鍵做出相應的響應。關鍵詞:AT89S51單片機;數字鐘;溫度測量The Design of Digital Electronic Clock Base on SCMStudent:Liu Bing-boTutor:Liu Xu-hong(Oriental Science Technology College of Hunan Agricultural University, Changsha 410128)Abstract:This paper focuses on introducing the design of single chip processor based digital electronic clock, it can show and regulate time and date and bacause of integral point,voice broadcast and an alarm clock, it can also display the current temperature.The design consist of hardware and software design . The main hardware: AT89S51 MCU DS1302 clock chip, the LCD1602 display tube, DS18B20 temperature sensor, a number of buttons and so on. The software part of adopts modularization, including the interrupt module, alarm clock module, voice module, and adjusting time modular design, and simple liquid written in C language to achieve. Measuring the current temperature with digital thermometer DS18B20, it can show the current-time information in the LCD1602,at the same time, it constantly scan button, if the button is pressed, then it will make the appropriate response.Key words :AT89S51 microcontroller; Digital clock; Temperature measurement 1 前言“一寸光陰一寸金,寸金難買寸光陰”!時間對于我們每一個人都是非常寶貴的,所以鐘表作為人們掌握時間的工具就顯得十分重要!鐘表的出現已經有幾百年歷史,尤其是擺鐘和后來的懷表,可以稱作鐘表中的經典,不僅大方實用,而且制作精美。但近幾十年,由于微電子的迅猛發展,這樣的鐘表已經銷聲匿跡,取而代之的則是電子時鐘。電子時鐘不僅精確度更高、外觀小巧、功能更加完善,制作成本也是非常低。數字電子鐘一個無處不在的電子產品,經過多年的發展技術已經相當成熟了。目前應用廣泛的數字鐘大多用AT89S51單片機為核心控制部件制作的,可以實現對年、月、日、時、分、秒的數字顯示,通過擴展還可實現對電子鐘所在地點的溫度顯示、定時鬧鐘功能和定時開關控制,廣泛應用于車站、醫院、機場、廁所等公共場所的時間顯示。與機械鐘表和3V電源半機械鐘表相比,數字電子鐘具有時間精確、停電不用校準、減少汞電池的使用等優點。現代社會,守時已不僅關系到一個人的職業生涯,還成了衡量一個人道德的標準。自從有了時間的概念,人們就開始研究如何計時。隨著時代的發展,尤其是近些年來科學技術的飛速發展,計時的方式有了很大的進步,并且,這種技術日趨完善,現在以被廣泛的應用在我們的生活、生產的方方面面。例如奧運會倒計時顯示屏、鐵路安全日顯示屏、生產線看板、體育比賽計時屏、大型室外高亮度時鐘等,這類產品覆蓋銀行、醫院、地鐵車站、體育運動、電視臺、監控系統、高大建筑物等行業。通過一系列硬軟件的設計一個基于AT89S51單片機的數字電子鐘能實現日期、時間的顯示和調整,帶有整點語音播報和一個鬧鐘,并且可以顯示當前氣溫。現在我國數字電子鐘產業已經經過了30多年的發展已形成了近百家的產業規模,其中具有一定設計規模的單位有20多家,在國內電子鐘行業中處于領先地位的數字電子鐘品牌有漳州吉美電子有限公司電子鐘;歐西亞電子鐘;煙臺未來塔鐘有限公司電子鐘。經過幾十年的發展,數字電子鐘衍生出各種各樣類型和功能的電子鐘,比如:LCD 數字鐘、萬年歷、電波鐘、多功能氣像站鐘、RF+RCC天氣預報鐘和霓虹鐘等。中國數字電子鐘在國內外市場上占據一席之地并贏得了廣泛的贊譽。2 整體設計方案由于本系統要求具有語音播報功能,所以需采用十六位可處理語音信號的單片機。其主要設計思想是:整個系統用單片機為中央控制器,由單片機執行采集時鐘芯片的時間信號并通過顯示模塊來輸出信號及相關的控制功能。時鐘芯片產生時鐘信號,利用單片機的I/O口傳給單片機;并通過I/O口實現LCD的顯示。系統設有4個按鍵可以對時間星期年月日進行調整,還可以設置鬧鐘。整體框架如圖1所示。語音模塊LCD顯示單片機電源模塊復位電路時鐘模塊按鍵模塊溫度模塊圖1 系統整體框圖Fig l System overall block diagram2.1 單片機的選擇AT89S51是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造1,兼容標準MCS-51指令系統及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統提供高性價比的解決方案。 AT89S51具有如下特點:40個引腳,4k Bytes Flash片內程序存儲器,128 bytes的隨機存取數據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個全雙工串行通信口,看門狗(WDT)電路,片內時鐘振蕩器。此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷系統可繼續工作,掉電模式凍結振蕩器而保存RAM的數據,停止芯片其它功能直至外中斷激活或硬件復位2。 主要功能特性為:兼容MCS-51指令系統;4k可反復擦寫(1000次)ISP Flash ROM;32個雙向I/O口;4.5-5.5V工作電壓;2個16位可編程定時/計數器;時鐘頻率0-33MHz;全雙工UART串行中斷口線;128x8bit內部RAM;2個外部中斷源;低功耗空閑和省電模式;中斷喚醒省電模式;看門狗(WDT)電路;靈活的ISP字節和分頁編程;雙數據寄存器指針。AT89S51單片機與其他品牌單片機相比有著性價比高,性能穩定的特點。(1) 51單片機的優點如果是作低成本的智能產品,51構架單片機的成本優勢,還是無人能敵的。比如一片AT89S51和AT89S52單片機的批量價格大概是5元左右,STC89C52單片機的批量價格大概是6元多,這樣的芯片價格是很低的。一片簡單的74系列通用數字邏輯芯片還要1元左右,而一片51單片機內部集成有成千上萬個晶體管開關電路。51構架已經誕生很多年了,到目前依然有著強大的生命力和實用性,從1976年51構架成功面市,多少年過去了,從90年代初全新閃存結構的AT89C51要90元一片,到現在AT89S51只要5元多一片,51依然大量的使用著。使用51單片機能夠有效的控制智能產品整機的成本, 51系列還是有著無法替代的重要地位。(2) AT89S51與AT89C51的比較AT89S51相對與AT89C51新增加了很多功能,性能有了較大提升,價格基本不變,甚至比89C51更低! AT89S51具有ISP在線編程功能,這個功能的優勢在于改寫單片機存儲器內的程序不需要把芯片從工作環境上拔除,可以在線燒寫。AT89S51的最高工作頻率為33MHz, 89C51的極限工作頻率是24M,就是說S51具有更高工作頻率,從而具有了更快的計算速度。AT89S51具有雙工UART串行通道。AT89S51內部集成看門狗計時器,不再需要像89C51那樣外接看門狗計時器單元電路。 AT89S51具有雙數據指示器。 AT89S51具有電源關閉標識。 AT89S51具有全新的加密算法,這使得對于89S51的解密變為不可能,程序的保密性大大加強,這樣就可以有效的保護知識產權不被侵犯。 在兼容性方面,AT89S51向下完全兼容51全部字系列產品。比如8051、89C51等產品。也就是說不論教科書上采用的單片機是8051還是89C51還是MCS-51等等。在89S51上一樣可以照常運行,這就是所謂的向下兼容。 AT89S51與AT89C51就如同INTEL的P3向P4升級一樣,雖然都可以跑Windows98,不過速度是不同的。總之,無論是比其他品牌同類產品相比,還是與同品牌產品相比都顯示出了AT89S51優良的性能,更高的性價比。所以AT89S51芯片成為了本系統的首選。2.2 單片機的基本結構AT89S51單片機基本結構主要包括了以下主要部件:(1) 控制器控制器是單片機的指揮控制部件,控制器的主要任務是識別指令,并根據指令的性質控制單片機各功能部件,從而保證單片機各部分能自動而協調地工作。單片機執行指令是在控制器的控制下進行的。首先從程序存儲器中讀出指令,送指令寄存器保存,然后送至指令譯碼器進行譯碼,譯碼結果送定時控制邏輯電路,由定時控制邏輯產生各種定時信號和控制信號,再送到單片機的各個部件去進行相應的操作。這就是執行一條指令的全過程,執行程序就是不斷重復這一過程。控制器主要包括程序計數器、程序地址寄存器、指令寄存器IR、指令譯碼器、條件轉移邏輯電路及時序控制邏輯電路。(2) 存儲器AT89S51單片機存儲器采用的是哈佛結構,即程序存儲器空間和數據存儲器空間截然分開,程序存儲器和數據存儲器各有自己的尋址方式,尋址空間和控制系統。這種結構對于單片機面向控制的實際應用極為方便,有利.在8051/8751彈片擊中,不僅在片內集成了一定容量的程序存儲器和數據存儲器及眾多的特殊功能寄存器,而且還具有極強的外存儲器的擴展能力,尋址能力分別可達64KB,尋址和操作簡單方便。(3) 并行I/O口MCS-51單片機共有4個雙向的8位并行I/O端口(Port),分別記作P0-P3,共有32根口線,各口的每一位均由鎖存器、輸出驅動器和輸入緩沖器所組成。實際上P0-P3已被歸入特殊功能寄存器之列。這四個口除了按字節尋址以外,還可以按位尋址。由于它們在結構上有一些差異,故各口的性質和功能有一些差異。(4) 時鐘電路與時序時鐘電路用于產生MCS-51單片機工作時所必需的時鐘信號。MCS-51單片機本身就是一個復雜的同步時序電路,為保證同步工作方式的實現,MCS-51單片機應在唯一的時鐘信號控制下,嚴格地按時序執行進行工作,而時序所研究的是指令執行中各個信號的關系。3 數字鐘的硬件設計3.1 最小系統設計單片機要正常運行,必須具備一定的硬件條件,其中最主要的就是三個基本條件:(1)電源正常;(2)時鐘正常;(3)復位正常。AT89S51的引腳如圖2所示。在AT89S51單片機的40個引腳中,電源引腳2根,晶振引腳2根,控制引腳4根,可編程輸入輸出引腳32根3。(1) 工作電源電源是單片機工作的動力源泉,對應的接線方法為;40腳(VCC)電源引腳,工作時接5電源,20腳(GND)為接地線。(2) 時鐘電路時鐘電路為單片機產生時序脈沖,單片機所有運算與控制過程都是在統一的時序脈沖的驅動下進行的,時鐘電路就好比人的心臟一樣重要。當采用內部時鐘時,連接方法如圖2所示,在晶振引腳XTAL1(19腳)和XTAL2(18腳)引腳之間接入一個晶振,兩個引腳對地分別再接入一個電容即可產生所需的時鐘信號,電容的容量一般在幾十皮法,如30PF。圖2 AT89S51的最小系統Fig 2 The AT89S51 minimum system (3) 復位電路在復位引腳(9腳)持續出現24個振蕩器脈沖周期(即2個機器周期)的高電平信號將使單片機復位4。如圖1所示電容C和電阻R構成了單片機上電自動復位電路。復位后,單片機從0000H單元開始執行程序,并初始化一些專用寄存器為復位狀態值,受影響的專用寄存器如表1所示。表1 復位寄存器狀態表Table 1 Reset register status table寄存器 狀態 寄存器 狀態PC ACCPSWSPDPTRP0P3IPIETMOD000H00H00H07H0000HFFHXXX00000HOXX00000H00HTC0NTL0TH0TL1TH1SCONSBUFPCON00H00H00H00H00H00H不確定0XXX0000HEA/VPP(31腳)為內外程序存儲器選擇控制引腳,當EA為低電位時單片機從外部程序存儲器取指令;當EA接高電平時單片機從內部程序存儲器取指令。AT89S51單片機內部有4KB可反復擦寫1000次以上的程序存儲器,因此要把EA接+5V高電平,讓單片機運行內部的程序,這樣就可以通過反復燒寫來驗證程序了。這就是AT89S51單片機最小化系統的連接,只要把編寫好的程序燒寫到單片機內部,并接上5V電源就可以正常運行了,在17腳接上的發光二極管可以用來驗證系統是否正常。3.2 數字鐘的外圍電路設計3.2.1 時鐘電路(1) 單片機時鐘時鐘是單片機的心臟,單片機各功能部件的運行都是以時鐘頻率為基準,有條不紊的一拍一拍地工作。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質量也直接影響單片機系統的穩定性。常用的時鐘電路有兩種方式:一種是內部時鐘方式,另一種為外部時鐘方式。本文用的是內部時鐘方式。電路設計如圖3所示。AT89S51單片機內部有一個用于構成振蕩器的高增益反相放大器,該高增益反向放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個引腳跨接石英晶體振蕩器和微調電容,就構成一個穩定的自激振蕩器5。圖3 單片機時鐘Fig 3 MCU clock(2) 時鐘芯片采用帶RAM的時鐘芯片DS1302。該芯片可以進行時分秒的計數,具有100年日歷,可編程接口,還具有報警功能和掉電保存功能,并且可以對其方便的進行程序控制【6】。DS1302它通過串行方式與單片機進行數據傳送,向單片機提供包括秒、分、時、日、月、年等在內的實時時間信息,并可對月末日期、閏年天數自動進行調整;還擁有用于主電源和備份電源的雙電源引腳,在主電源關閉的情況下,也能保持時鐘的連續運行。另外,它還能提供31字節的用于高速數據暫存的RAM。有了這些特點,DS1302已在許多單片機系統中得到應用。 圖4 DS1302引腳排列圖Fig 4 The DS1302 pin arrangement diagramDS1302的引腳排列如圖4所示,各引腳的功能見表2。表2 DS1302功能表Table 2 The DS1302function table引腳功能X1,X232768HZ晶振引腳端RST復位端I/O數據輸入/輸出端SCLK串行時終端GND地VCC2,VCC1主電源與后備電源引腳端DS1302時鐘芯片內主要包括移位寄存器、控制邏輯電路、振蕩器、實時時鐘電路以及用于高速暫存的31字節RAM。DS1302與單片機系統的數據傳送依靠RST,I/O,SCLK三根端線即可完成。其工作過程可概括為:首先系統RST引腳驅動至高電平,然后在作用于SCLK時鐘脈沖的作用下,通過I/O引腳向DS1302輸入地址/命令字節,隨后再在SCLK時鐘脈沖的配合下,從I/O引腳寫入或讀出相應的數據字節【7】。因此,其與單片機之間的數據傳送是十分容易實現的。DS1302與單片機電路相連如圖5所示。圖5 DS1302與單片機接口圖Fig 5 DS1302and MCU interface diagram3.2.2 LCD顯示電路液晶顯示模塊具有體積小、功耗低、顯示內容豐富等特點,現在字符型液晶顯示模塊已經是單片機應用設計中最常用的信息顯示器件了。 1602B可以顯示2行16個字符,有8位數據總線D0-D7,和RS、R/W、EN三個控制端口,工作電壓為5V,并且帶有字符對比度調節和背光【8】。該模塊也可以只用D4-D7作為四位數據分兩次傳送。這樣的話可以節省MCU的I/O口資源。各引腳的功能見表3。表3 LCD引腳功能圖Table3 The LCD pin function diagram編號符號引腳說明編號符號引腳說明1VSS電源地9D2雙向數據口2VDD電源正極10D3雙向數據口3VL對比度調節11D4雙向數據口4RS數據/命令選擇12D5雙向數據口5R/W讀/寫選擇13D6雙向數據口6E模塊使能端14D7雙向數據口7D0雙向數據口15BLK背光源地8D1雙向數據口16BLA背光源正極 從該模塊的正面看,引腳排列從右向左為:15腳、16腳,然后才是114腳。VDD:電源正極,4.55.5V,通常使用5V電壓;VL:LCD對比度調節端,電壓調節范圍為05V。接正電源時對比度最弱,接地電源時對比度最高,但對比度過高時會產生“鬼影”,因此通常使用一個10K的電位器來調整對比度,或者直接串接一個電阻到地;RS:MCU寫入數據或者指令選擇端。MCU要寫入指令時,使RS為低電平;MCU要寫入數據時,使RS為高電平【9】;R/W:讀寫控制端。R/W為高電平時,讀取數據;R/W為低電平時,寫入數據;E:LCD模塊使能信號控制端。寫數據時,需要下降沿觸發模塊。D0D7:8位數據總線,三態雙向。如果MCU的I/O口資源緊張的話,該模塊也可以只使用4位數據線D4D7接口傳送數據。本充電器就是采用4位數據傳送方式;BLA: LED背光正極。需要背光時,BLA串接一個限流電阻接VDD,BLK接地,實測該模塊的背光電流為50mA左右;BLK: LED背光地端。它與單片機的連接如圖6所示。 圖6 LCD與單片機接口Fig 6 LCD and MCU interface3.2.3 語音錄放電路系統要求能夠有鬧鐘、語音播報、按鍵報時等功能。由單片語音錄放芯片來做比較方便簡單。ISD2500芯片,可以錄放時間60秒。可以滿足本設計的要求,性能良好所以選用【10】。ISD2500和1400語音電路一樣,具有抗斷電、音質好,使用方便等優點。它的最大特點在于片內E2PROM容量為480K(1400系列為128K),所以錄放時間長;有10個地址輸入端(1400系列僅為8個),尋址能力可達1024位;最多能分600段;設有OVF(溢出)端,便于多個器件級聯。其封裝如圖7所示。系統要求能夠有鬧鐘、語音播報、按鍵報時等功能。由單片語音錄放芯片來做比較方便簡單。ISD2500芯片,可以錄放時間60秒。可以滿足本設計的要求,但是ISD2500芯片的價格比較昂貴,在現有的條件下還不能實現。所以只作簡單介紹以便做相關擴展應用,本設計只用簡單的語音模塊。圖7 ISD封裝圖Fig 7 The ISD package diagram3.2.4 電源電路電源電路包括變壓器、橋式整流器、電容和穩壓器。通過變壓器變壓,使得220V電壓變為12 V,在通過橋式整流,電容的濾波作用,穩壓器的穩壓作用,可輸出5V的穩定電壓【11】。如圖8所示。圖8 系統電源電路Fig 8 System power circuit在系統中要用到2個電源:單片機電源與DS1302時鐘芯片電源所以有2路電源VCC和VCC1。 3.2.5 相關控制電路(1) 按鍵電路按鍵電路如圖9所示,按鍵的開關狀態通過一定的電路轉換為高、低電平狀態。按鍵閉合過程在相應的I/O端口形成一個負脈沖。閉合和釋放過程都要經過一定的過程才能達到穩定,這一過程是處于高、低電平之間的一種不穩定狀態,稱為抖動。抖動持續時間的常長短與開關的機械特性有關,一般在5-10ms之間。為了避免CPU多次處理按鍵的一次閉合,應采用措施消除抖動。本文采用的是獨立式按鍵,直接用I/O口線構成單個按鍵電路,每個按鍵占用一條I/O口線,每個按鍵的工作狀態不會產生互相影響。圖9 按鍵電路圖Fig 9 Key circuit diagramP1.0口:表示功能移位鍵,按鍵選擇要調整的時十位、時個位、分十位或分個位。 P1.1口:表示數字“+”鍵,按一下則對應的數字加1。 P1.2口:表示數字“-”鍵,按一下則對應的數字減1。 P1.3口:表示時間表的切換,程序默認為日常時間表,當按下該開關,使輸入為低電平時,表示當前執行的是考試時間表。再按鍵,使按鍵抬起,輸入維高電平時,表示當前執行的是日常作息時間表。(2) 復位電路 AT89S51單片機的復位是由外部的復位電路來實現的。復位引腳RST通過一個斯密特觸發器與復位電路相連,斯密特觸發器用來抑制噪聲,在每個機器周期的S5P2,斯密特觸發器的輸出電平由復位電路采樣一次,然后才能得到內部復位操作所需要的信號【12】。上電復位:上電復位電路是種簡單的復位電路,只要在RST復位引腳接一個電容到VCC,接一個電阻到地就可以了。上電復位是指在給系統上電時,復位電路通過電容加到RST復位引腳一個短暫的高電平信號,這個復位信號隨著VCC對電容的充電過程而回落,所以RST引腳復位的高電平維持時間取決于電容的充電時間。為了保證系統安全可靠的復位,RST引腳的高電平信號必須維持足夠長的時間。圖 10 復位電路Fig 10 Reset circuit如圖 10所示,上電自動復位是通過外部復位電路的電容充電來實現的。只要Vcc的上升時間不超過1ms,就可以實現自動上電復位。3.2.6 溫度測量電路(1)DS18B20的特性DS18B20 “一線總線”數字化溫度傳感器是DAAS最新單線數字溫度傳感器,同DS1820一樣,DS18B20也支持“一線總線”接口,測量溫度范圍為-55+125,在-10+85范圍內,精度為0.5。DS1822的精度較差為2。現場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統的抗干擾性。適合于惡劣環境的現場溫度測量,與前一代產品不同,新的產品支持3V5.5V的電壓范圍,使系統設計更靈活、方便。而且新一代產品更便宜,體積更小。DS18B20可以程序設定912位的分辨率,精度為0.5。可選更小的封裝方式,更寬的電壓適用范圍。分辨率設定,及用戶設定的報警溫度存儲在EEPROM中,掉電后依然保存。DS18B20的性能是新一代產品中最好的!性能價格比也非常出色!DS1822與DS18B20軟件兼容,是DS18B20的簡化版本。省略了存儲用戶定義報警溫度、分辨率參數的EEPROM,精度降低為2,適用于對性能要求不高,成本控制嚴格的應用,是經濟型產品。繼“一線總線”的早期產品后,DS18B20開辟了溫度傳感器技術的新概念。DS18B20使電壓、特性及封裝有更多的選擇,讓我們可以構建適合自己的經濟的測溫系統【13】。(2)封裝圖及其引腳說明DS18B20的引腳封裝圖如圖11所示。圖11 DS18B20引腳封裝圖Fig 11 The DS18B20pin package diagram表4所示為引腳說明。表4 DS18B20引腳說明Table 4 the pin of DS18B20 Instruction引腳號符號引腳說明1GND接地2DQ單線運用的數據輸入/輸出引腳3VDD可選VDD引腳(3)溫度測量DS18B20通過門開通期間內低溫度系數振蕩器經歷的時鐘周期個數計數來測量溫度,而門開通期由高溫度系數振蕩器決定。計數器予置對應于-55的基數,如果在門開通期結束前計數器達到零,那么溫度寄存器它也被予置到-55的數值將增量,指示溫度高于-55。同時計數器用斜率累加器電路所決定的值進行予置。為了對遵循拋物線規律的振蕩器溫度特性進行補償,這種電路是必需的。時鐘再次使計數器計值至它達到零。如果門開通時間仍未結束,那么此過程再次重復。斜率累加器用于補償振蕩器溫度特性的非線性,以產生高分辯率的溫度測量。通過改變溫度每升高一度,計數器必須經歷的計數個數來實行補償。因此,為了獲得所需的分辯率,計數器的數值以及在給定溫度處每一攝氏度的計數個數斜率累加器的值二者都必須知道。此計算在DS18B20內部完成以提供0.5的分辯率。溫度讀數以16位、符號擴展的二進制補碼讀數形式提供。數據在單線接口上串行發送,DS18B20可以以0.5的增量值,在0.5至+125的范圍內測量溫度。對于應用華氏溫度的場合,必須使用查找表或變換系數。(4)單總線系統硬件接法單線總線是一種具有一個總線主機和一個或若干個從機從屬器件的系統,DS18B20起從機的作用。根據定義,單線總線只有一根線,這一點是重要的,即線上的第一個器件能在適當的時間驅動。該總線為了做到這一點,第一個連接到單線總線上的器件必須具有漏極開路或三態輸出。DS18B20的單線接口(I/O引腳是漏極開路的)。多站總線由單線總線和多個與之相連的從屬器件組成。單線總線要求近似等于5k的上拉電阻。單線總線的空閑狀態是高電平。不管任何原因,如果執行需要被掛起,那么若要重新恢復執行,總線必須保持在空閑狀態。如果不滿足這一點,且總線保持在低電平時間大于480us,那么總線上所有器件均被復位。存在脈沖使總線主機知道DS18B20在總線上,并已準備好工作。4 數字鐘的軟件設計4.1 系統軟件設計內容本設計的軟件程序包括主程序、中斷子程序、鬧鐘設定子程序、時鐘顯示子程序以及延時子程序等。在整個系統中,在單片機的30H、31H和32H中存儲當前時間的小時、分鐘和秒。用LCD顯示當前的時間,必須用到分字和合字,因此在33H、34H、35H、36H、37H和38H中存儲當前時間的時十位、時個位、分十位、分個位、秒十位和秒個位,方便顯示【14】。本設計有由四個輕觸按鍵組成的小鍵盤,這些按鍵可以任意改變當前的狀態。按功能移位鍵一次,表示當前要校對小時的十位;按第二次,表示當前校對的是小時的個位;按第三次,則表示校對的是分鐘的十位;第四次,表示的校對的是分鐘的個位。按下數字“+” 鍵和數字“-”鍵可在當前校對的數字上相應加上1或者減去1。系統軟件采用C語言編寫。時鐘的最小計時單位是秒,但使用定時器的方式1,最大的定時時間也只能達到131ms。我們可把定時器的定時時間定為50ms。這樣,計數溢出20次即可得到時鐘的最小計時單位:秒。而計數20次可以用軟件實現。秒計時是采用中斷方式進行溢出次數的累積,計滿20次,即得到秒計時。從秒到分,從分到時是通過軟件累加并進行比較的方法來實現的。要求每滿1秒,則“秒”單元中的內容加1;“秒”單元滿60,則“分”單元中的內容加1;“分”單元滿60,則“時”單元中的內容加1;“時”單元滿24,則將時、分、秒的內容全部清零。實時時鐘程序設計步驟:(1)選擇工作方式,計算初值;(2)采用中斷方式進行溢出次數累計;(3)從秒分時的計時是通過累加和數值比較實現的;(4)時鐘顯示緩沖區:時鐘時間在方位數碼管上進行顯示,為此在內部RAM中要設置顯示緩沖區,共6個地址單元。顯示緩沖區從左到右依次存放時、分、秒數值;(5)主程序:主要進行定時器/計數器的初始化編程【15】,然后反復調用顯示子程序的方法等待中斷的到來,流程如圖4-1所示;(6)中斷服務程序:進行計時操作;(7)加1子程序:用于完成對時、分、秒的加操作,中斷服務程序在秒、分、時加1時共三次調用加1子程序,包括:合字、加1并進行進制調整、分字。4.2 主程序主程序主要由main()組成通過對相關子程序的調用,實現了對時間的設置與修改、鬧鐘的設置與修改、LCD顯示等主要功能。相關的調整是靠對功能鍵的判斷來實現的。如對set鍵的判斷,對up鍵的判斷。主程序流程框圖如圖12所示。主要程 圖12 主程序MAIN流程框圖Fig 12 MAIN main program flow diagram 序段如下:void main(void) /d_to_b();/ds1302_write_time(); /對DS1302寫數據 initTimer(); TR0=1; ET0=1; EA=1; LCD_init(); LCD_write_string(0,0,Wellcome to xnkd); LCD_write_string(0,1,123456789-mysy); while(1) if(sethour=timereg4)&(setmin=timereg5)&!fspk&timereg6=0) fspk=1; if(!set) /功能鍵判斷.if(fset) if(!up) /調用1鍵子程序 if(!down) /調用1鍵子程序if(!enter)4.3 時鐘設置子程序時鐘的修改首先要按功能鍵并停止時間的輸出顯示【16】,否則系統繼續刷新時間則無法修改,所以時間是不輸出到LCD的。修改的部分以修改的為準,沒有修改的通過中斷保護起來。等修改成功后繼續顯示。主要流程圖如圖13所示,小時設置程序段如下:if(keycou=5) /設置小時LCD_write_string(0,0,Hour:); /將現在時間保存LCD_set_xy(5,0); /對小時重新設置LCD_write_char(0,timereg4/10+0x30); /設置完成后顯示修改后的小時部分LCD_write_char(0,timereg4%10+0x30); 圖13 時鐘設置功能子程序流程框圖Fig 12 Clock set function subprogram flow chart在時間修改功能中要用到1個數字加減的問題,把它做成1個子程序,流程如圖14所示。通過判斷功能鍵的狀態也就是記錄值來確定【17】。主功能鍵SET是采用循環的方式來實現的,當標識為相應的值時執行相應的操作。if(keycou=5)/小時加一if(timereg423) timereg4+;else timereg4=23;LCD_set_xy(5,0);LCD_write_char(0,timereg4/10+0x30);LCD_write_char(0,timereg4%10+0x30);圖14 加1鍵修改子程序流程框圖Fig 14 1key to modify the subprogram flow chart圖15 時鐘修改中斷服務子程序流程框圖Fig 15 Clock interrupt service subprogram flow chart modifications4.4 中斷子程序MCS-51系列單片機有5個中斷源,中斷分為2個中斷優先級,即高優先級和低優先級,每個中斷源的優先級都可以由軟件來設定【18】。中斷地址如表5所示。程序中的中斷流程框圖如圖15所示。表5 中斷地址表、Table5 Interrupt address table五個中斷源入口地址外部中斷0(/INT0)0003HT0溢出中斷000BH外部中斷1(/INT1)0013HT1溢出中斷001BH串口中斷0023H/*/*Function: 外部中斷1中斷服務子程序*parameter:*Return:*Modify:/*/void Interrupt1 (void) interrupt 2Int1Flag = 1;/*/*Function: 定時器0中斷服務子程序*parameter:*Return:*Modify:/*/void InterruptTime0(void) interrupt 1 TH0 = 0x06; /8msTL0 = 0xed;Time0Count+;/*/*Function: 定時器1中斷服務子程序*parameter:*Return:*Modify:4.5 LCD顯示子程序LCD顯示子程序可對DS1302的時間進行設置和讀取DS1302內部的時間、連續的讀寫操作、RAM的應用、充電部分的應用、寫保護、抗干擾等可以實現上述功能。在編寫中應注意的是進制的轉換,下面是BCD碼到十進制數的轉換函數。/*/* 函數名:BCD_to_INT();/* 參 數:無/* 功 能:用于將時間BCD碼轉換為十進制碼/*/ void BCD_to_INT() uchar i; for(i=0;i7;i+) bcd_int(timercuri); 4.5 ISD2500語音播報軟件程序2500系列最多可分為600段,只要在分段錄/放操作前(不少于300納秒),給地址A0-A9賦值,錄音及放音功能均從設定的起始地址開始,錄音結束由停止鍵操作決定,芯片內部自動在該段的結束位置插入結束標志(EOM);而放音芯片遇到EOM標志即自動停止放音。2500系列地址空間是這樣分配的:地址0-599作為分段用(見表6),地址600-767來使用,地址768-1023為工作模式選擇。本設計主要通過單片機對ISD2560的控制實現指定地址入口的錄音和循環播放。程序要實現下面的過程:開始”鍵按下后,即系統上電后,系統初始化,然后判斷開始鍵是否按下,如表6 ISD2500 地址空間分配Table6 ISD2500 address space allocation十進制二進制信息時間(秒)A9A8A7A6A5A4A3A2A1A0256025752590000000000000005000001100105.06.257.50100000110010010.012.5015.00250001111101025.031.2537.503000010010110030.037.5045.00400011001000040.050.0060.00500011111010050.062.5075.00599100101011159.974.8489.85“果按下則單片機控制PD,P/R引腳低電平,并指向錄音地址,啟動錄音過程。調用錄音函數,錄音函數為:/*錄音函數*/Void record(void) CE = 0; /片選有效 PD = 0; /非節電模式 PR = 0 ; /錄音當CE=0 時芯片使能輸入引腳,使能所有的的錄音操作。當PD=0 時使芯片開始工作,而進入非節電模式。當PR=0 時開始錄音,錄音時,由地址線提供起始地址,直到錄音持續到CE或PD變高,或自動溢出。在預先設定的時間內,(小于60s)結束錄音,松開“開始”鍵單片機控制P/R引腳回到高電平,即完成一段語音的錄制。之后打開外部中斷0,指定放音地址,啟動放音程序,其放音函數為:/*放音函數*/ Void playback(void) CE = 0; / 片選有效 PD = 0; / 非節電模式 PR = 1; / 放音當CE=0 時芯片使能輸入引腳,使能所有的的放音操作。當PD=0 時使芯片開始工作,而進入非節電模式。當 PR=1時為高電平,這時選擇放音,這時由地址輸入提供起始地址,放音持續到EOM位標志。5 調試與功能說明5.1 硬件調試在實際使用中,我們發現DS1302的工作情況不夠穩定,主要表現在實時時間的傳送有時會出現誤差,有時甚至整個芯片停止工作。我們對DS1302的工作電路進行了分析,其與單片機系統的連接如圖16所示。從圖中可以看出,DS1302的外部電路十分簡單,惟一外接的元件是32768Hz的晶振。通過實驗我們發現:當外接晶振電路振蕩時,DS1302計時正確;當外接晶振電路停振時,DS1302計時停止。因此,可能是32768Hz晶振是造成 DS1302工作不穩定的主要原因。圖16 DS1302與單片機系統的連接圖Fig 16 DS1302 and SCM system connection diagramDS1302時鐘的產生基于外接的晶體振蕩器,振蕩器的頻率為32768Hz。該晶振通過引腳X1、X2直接連接至DS1302,即DS1302是依靠外部晶振與其內部的電容配合來產生時鐘脈沖的。由于DS1302在芯片本身已經集成了6pF的電容,所以,為了獲得穩定可靠的時鐘,必須選用具有6pF負載電容的晶振。然而,許多人在選用晶振時僅僅注意了晶振的額定頻率值,而忽視了晶振的負載電容大小,甚至連許多經銷商也不能提供所售晶振的負載電容。所以即使在使用中選用了符合32768Hz的晶振,但如果該晶振的負載電容與DS1302提供的6pF不一致時,就會影響晶振的起振或導致振蕩頻率的偏移,出現問題。利用輔助電容實現負載匹配的方法來解決當所選的晶振負載電容不是6pF時,可以采用增加輔助電容的方法提高或降低DS1302振蕩器的電容性負載,使之與晶體所需的電容值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電信反詐安全課件
- 2024年9月28日福建省事業單位統考《行政職業能力測試》試題真題試卷答案解析
- 2024年裁判員等級考試解答技巧與試題及答案
- 新型儲能項目可行性研究報告(范文模板)
- 水環境綜合治理工程項目可行性研究報告
- 路基水穩材料項目可行性研究報告(參考模板)
- 公路改建項目可行性研究報告(參考)
- 2024年種子繁育員考試中最關鍵的知識點試題及答案
- 務實創新的2024年足球裁判員等級考試新思路試題及答案
- 農作物集中育種技巧試題及答案
- 外墻憎水巖棉保溫板施工方案doc
- 門店清潔衛生標準
- 聯想集團財務風險分析及對策論文財務管理專業
- 阿丁尿床了(2)
- 工會會計報表完整版(內有6張表)
- 雙堿法脫硫設計計算
- 巴基斯坦1X150MW設備清冊
- 增值稅銷售貨物或者提供應稅勞務清單(標準模板)
- 醫用耗材分類目錄 (低值 ╱ 高值)
- competition-model
- 退檔申請書怎樣寫
評論
0/150
提交評論