




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 基于51單片機的智能數字鬧鐘設計與實現摘 要單片機自20世紀70年代問世以來,因為單片機極高 的 性 能 價 格 比,越發受到了人們的重視 和 關 注 , 應 用 領 域 廣 泛 、發展很快。而51單片機是各單片機中最為典型的,也是最具有代表性的一種。本設計是一款基于AT89C51的智能數字鐘,該數字鐘表由主控模塊、按鍵模塊、定時模塊、溫度檢測模塊和顯示模塊構成。主控模塊由主控芯片AT89C51、晶振電路和復位電路構成;定時模塊采用時鐘芯片DS1302實現精確定時;用溫度傳感器DS18B20作為溫度采集源 , 檢 測 當 前 溫 度;用液晶顯示器1602顯示年、月、日、時間及溫度。通過這種方
2、法的實現,使智能數字鬧鐘的電路簡單 , 性 能 可 靠 , 實 時 性 好 , 時 間 和溫度精度高,操作簡單。在Proteus和Keil µvision4的環境下,完成了電路原理圖的繪制以及程序的編譯后,用焊接的方法在電路板上焊接實物,將Keil µvision4中生成的.hex文件的程序燒到電路中,檢測并調試電路,實現智能數字鬧鐘的功能。該智能數字鬧鐘可以應用于人們的生活和工作中,也可通過改裝,將智能數字鬧鐘的性能提高,還可以增加新的功能,讓智能數字鬧鐘顯示更多方面的內容與功能,給人們的生活和工作帶來更多的方便。關鍵詞:單片機,時鐘芯片,溫度傳感器,液晶顯示器,智能數字
3、鐘AT89S52 based Digital Clock Design of Intelligent Abstract AbstractSCM since the advent of the 1970s , because of high performance and low cost single chip , has been more and more people's attention and concern , widely used in the field , has developed rapidly. The microcontroller 51 is the m
4、ost typical each MCU is the most representative one.The designer is one section based on AT89C51 intelligent digit clock, this clock and watch by the master control module, fixed time the module, the temperature examines the module and the display module constitution. Master control module by master
5、 control chip AT89C51, crystal oscillator electric circuit and reset circuit constitution; Fixed time the module uses clock chip DS1302 to realize precisely fixed time; Gathers the source with temperature sensor DS18B20 as the temperature, the examination current temperature; 1602 demonstrate the ye
6、ar, the month, Japan, the time and the temperature with the liquid-crystal display. The method has the advantage of being simple circuit, reliable performance, good real-time, high precision of the time and temperature, simply operation【19】.Under the environment of Proteus and Keil vision4 , after f
7、inishing drawing circuit schematic and compiling program, Welding material on the circuit board by welding method. Then, .Hex files, the generation of Keil µ vision4 ,is made into the circuit. Finally, testing and debugging the circuit, and to realize the function of Intelligent digital alarm c
8、lock.The electronic clock can be applied to the general living and working, can also be modified to improve performance add new functions and brings more convenient to peoples life and work.Key Words:NC machining; NC verification; Machining environment; Help files本頁的頁碼貌似是居右目 錄摘 要iAbstractii第一章 引 言11
9、.1 智能數字鬧鐘的研究背景和意義11.2智能數字鬧鐘的功能11.3 智能數字鬧鐘的發展趨勢2第二章 方案的論證與選擇22.1 方案的論證22.2 方案的選擇4第三章 硬件電路的設計43.1 主控電路模塊53.2 按鍵電路模塊73.3 定時電路模塊83.4 溫度電路模塊103.5 顯示電路模塊11第四章 軟件設計134.1總體系統軟件設計134.1.1 主程序設計144.1.2 溫度采集模塊設計164.1.3 定時模塊設計184.1.4 顯示模塊設計18第五章 系統的安裝與調試205.1 系統硬件的安裝與調試215.2 系統軟件的調試22第六章 總結與展望25參 考 文 獻27致 謝28附 錄
10、29目錄頁也要有頁碼,羅馬字體第一章 引 言不要加粗1.1 智能數字鬧鐘的研究背景和意義隨著當今社會的快速發展,人類面臨著很多問題,時間和空間的不足就是其問題之一。作為新一代技術型人才,日益發展的社會勢必會面臨這一嚴峻的問題。圍繞這個即將到來的問題,本課題定為智能數字鬧鐘設計。鐘表只是一種簡單的顯示時間的工具,本身不能給人們帶來想要抓住時間的緊迫感,但如能把時鐘時間的顯示精確到分、秒,那么面對這種時間飛逝的重壓感,人們就會重視它并有效地利用它,更懂得把握分寸,不白白浪費時間。當然若在鐘表的顯示中融入了其他人們日常工作出行必須的功能,智能并簡單利用,可以大大為我們節省出空間來。人們生活水平逐漸提
11、高,并且越來越重視人性化事物,傳統的指針式時鐘也只能簡單的滿足人們的針對時間的需求,但是人們更著重追求高科技新事物,在現在日益充滿物質的社會里,人們也追求在小的范圍內顯示更多的信息。而普通的時鐘是模電技術、數電技術和單片機技術的結合,才使得現在的時鐘實現更多功能。早期運用的時間控制器都是用模擬電路設計制作的,準確性及各方面的性能都不是很理想。隨著單片機性價比的不斷提高,新的產品應用越來越廣泛,逐漸取代了昔日的模擬化產品,變得高端上檔次。單片機系列產品已經遍布到工業控制,以及各個重要的公共場所,單片機的快速發展與應用更加大范圍的擴展,在人們的日常生活中日需常見化,更加依賴單片機,給人類生活帶來了
12、極大的便利,單片機將與人們的生活、娛樂等不同方面都存在密不可分的關系。單片機在智能數字鬧鐘的應用中具有相當普遍的意義,是一件必不可少的元器件,在生活中起著關鍵性作用。由于時代的大變化發展,加快了數字 集 成 電 路 技 術的發展步伐,石 英 技 術 更加精進,使得數字鐘能夠走時準確,能夠實現更多的功能,攜帶在身上很便捷,性能高。單片機內部結構有定時器/計數器,能夠實現自動計時功能,單片機的使用大范圍地出現在人們的周圍,無處不在【16】。這種具有人們所需要的智能化特性產品為人們節省了大量時間和空間,擴大了數字化的范圍,為家庭數字化奠定了基礎。1.2智能數字鬧鐘的功能電路采用了單片機AT89C51
13、、溫度傳感器DS18B20、時鐘芯片DS1302、1602LCD顯示器,通過獨立式按鍵可以切換模式,修改顯示時間的數據。電路設計合理,具備了三大特點:簡單,操作方便,美觀大方。本設計智能數字鬧鐘的主要功能為:(1)連接電源,1602LCD顯示器上可顯示正常的時間、日期及溫度的顯示;(2)可實現12小時/24小時時間顯示的切換;(3)通過獨立式按鍵手動修改時間日期;(4)可以設置三個鬧鐘時間,當到鬧鐘響鈴時間,可手動關閉;1.3 智能數字鬧鐘的發展趨勢基于51單片機的智能數字鬧鐘體現了現代化電子產品的高性價比,成本低,電路簡單,功能齊全。對于家庭生活中,具有了相當普遍性和實用性,使得人們在生活中
14、對智能數字鬧鐘產生了依賴性,在各個方面不可缺少的,用一句夸張的話說:離開了它就不能活了,感覺身邊總是少了些什么。時鐘的發展已經從老式鐘表發展到如今電子時鐘以及智能化數字時鐘的時代,通過時代的發展,高科技研制和廣泛應用,智能數字鬧鐘的發展前景將不可估量,智能數字鬧鐘所實現的功能不僅僅只有報時功能,在不久的未來,智能數字鬧鐘可以設置鬧鐘,可以實現通話功能,可以是一本記事本,隨時記錄發生的事情,或許可以實現導航功能等,以上功能只要一個小小的智能數字鬧鐘就可實現,人們的生活更加方便。同時,智能數字鬧鐘的電路只需使用簡單芯片,加以合理設計,使得電路簡單、操作非常方便、美觀實用,但是其精確度不是很高。首先
15、,伴隨著更多性能更好新材料、更完善的設計方法、更先進的大規模集成電路的發展以及驅動技術的進步,時鐘系統將會更加高精度,也將會更加完善。其次,隨著顯示器件,如液晶顯示器件性能的拓展,傳統的機械時鐘顯示形式也將演變成高清晰度的顯示方式。最后,時鐘系統在未來的應用將更加廣泛,以其高精度的顯示以及其多內容的顯示界面將更受到人們的青睞。第2章 方案的論證與選擇2.1 方案的論證方案一:這邊可以問下老師是不是可以居行首基于低成本數字集成電路及七段譯碼器組成的數字鬧鐘設計【10】 系統由數字邏輯集成芯片構成純硬件電路,其電路由秒信號發生器、走時電路、校時電路、鬧鐘電路等部分組成。秒信號發生器使用LM555構
16、成多諧振蕩器,調整電阻可改變頻率,使之產生秒信號。走時電路包括秒計時器、分計時器、時計時器,每個部分都由兩片計數器級聯構成。其中秒計數器和分計數器都是用十進制與六進制計數器級聯構成,時計數器由三進制計數器與十進制計數器級聯構成。時計數器需要個位為十進制、十位只要計到2即可,不過需要清零電路。當個位計數到“4”,同時十位計數到“2”時立即清零,時鐘就會從零開始重新計數。當時間與標準時間不吻合的時候,需要校準時間,對照標準時間將此時的時間的秒信號加速運行,加快時鐘的計時速度,當到達標準時間后再切換回正確的輸入信號,達到校準目的。鬧鐘是在在預定的時間到達時能輸出鬧鈴聲。這種方案的電路搭建起來非常的龐
17、大,大小不同芯片,總共需要用到18個,工程非常的繁瑣,需要花費很長的時間在電路的排版和連線上。 方案二:基于VHDL的數字時鐘設計【5】 基于VHDL的數字時鐘設計主要由晶體振蕩器、分頻器、計數器、譯碼器顯示器組成。基于VHDL的數字時鐘設計中需要有一個時鐘脈沖信號,因此用一個石英晶體振蕩器產生一個高頻脈沖信號,然后要用分頻器將這個時鐘脈沖信號分頻,得到1Hz的時鐘信號,將這個時鐘信號分別接入計數器中,然后再為其他模塊提供時鐘。計數器用一個100進制的計數器和兩個60進制的計數器進行級聯。最后在三個計數器的輸出接到七段譯碼管,總共要用到8個這樣的數碼管。 晶體振蕩器分 頻 器計數器模塊七段碼譯
18、碼器模 塊 方案三:基于單片機智能數字鬧鐘設計【13】基于單片機的數字時鐘設計是要分好幾個模塊,單獨對各類模塊設計,以單片機AT89C51作為主控芯片,控制其他模塊的運作,將數據控制輸出到顯示模塊。對各個模塊進行程序的編寫,最后將編譯鏈接生成一個.hex文件,將這個文件燒到AT89C51單片機芯片中,從而實現時鐘的功能。當時鐘電路上電后,電路初始化,系統保持原有的顯示,通過按下不同的按鍵,切換到不同的模式中,實現12/24小時的切換,以及修改年、月、日、時、秒的時間設置;當進入鬧鐘設置模式下,可設置三個鬧鐘時間,到設定時間蜂鳴器鳴響,無人操作時鳴響30s自動關閉鬧鐘;當需要設置更多功能時,只需
19、多設置相應的功能按鍵就可實現。對上述方案進行比較,方案一由硬件構成,比較容易實現,但由硬件搭建的電路不夠穩定,譯碼管顯示效果差,功能單一不能擴展,且電路功耗大,在將這種方案做成實物的過程中很漫長,更需要投入很多的精力,因出現故障而檢查電路時很復雜,難找。方案二利用FPGA精度高、處理速度快的特點,利用外部50M石英晶振提供高精度系統頻率,能夠滿足更高精度的要求,并且設計比較人性化。方案三顯示準確、直觀、易于調整。2.2 方案的選擇本次設計采用方案三,即以AT89C51作為主控芯片,采用1602液晶作為顯示器件,獨立輕觸式按鍵作按鍵模塊,DS1302為定時來源,能準確定時,DS18B20作溫度采
20、集源。確定系統組成框圖如圖2.1所示,各功能模塊如下:顯示模塊主 控 模 塊定時模塊按鍵模塊溫度模塊 圖2.1 系統框架主控模塊:由主控芯片AT89C51,外接時鐘電路、復位電路和P0口的上拉電阻構成,能夠驅動程序的運行,在顯示屏上實現智能數字鬧鐘的各個功能。溫度模塊:由芯片DS18B20和上拉電阻構成,實現溫度采集,當周圍有高溫物體時,溫度的示數會逐漸的增加,離開時溫度會慢慢下降。定時模塊:由DS1302、晶振,3.6V的紐扣電池構成,能夠提供年、月、日、時、分和日期,紐扣電池可以支持時鐘的走時,即使顯示屏沒電不顯示時,時間也在計時。顯示模塊: 由1602LCD液晶顯示屏構成,把單片機傳來的
21、數據進行顯示,顯示的位數多,。按鍵模塊:由五個獨立輕觸式按鍵構成,可切換各種模式狀態,能對數據進行修改。第三章 硬件電路的設計本設計采用AT89C51單片機作為本次設計的主要控制模塊。單片機可把由DS18B20、DS1302中的數據利用軟件來進行處理,從而把數據傳輸到顯示模塊,此模塊實現溫度、時間的顯示。以1602LCD液晶顯示器為顯示模塊,把單片機傳來的數據顯示出來,在顯示電路中,主要靠按鍵來實現各種顯示要求的選擇與切換。3.1 主控電路模塊主控電路模塊采用AT89C51作為核心元件來控制各部分,其電路原理圖如圖3.1。單片機上面一個圖沒加序號引腳功能的說明,見下表3.1表3.1 單片機的引
22、腳功能引腳號符號引腳功能18P1口8位,準雙向I/O口,具有內部上拉電阻9RST復位,高電平有效1017P3口8位,準雙向I/O口,具有內部上拉電阻18、19XTAL時鐘引腳20VSS接數字地2128P2口8位,準雙向I/O口,具有內部上拉電阻29片外程序存儲器的讀選通信號,低電平有效30ALE為CPU訪問外部程序存儲器或外部數據存儲器提供一個地址鎖存信號31外部存儲器允許訪問控制端3239P0口8位,漏極開路的雙向I/O口,作為通用I/O口使用時,需加上上拉電阻40Vcc接+5V電源下面給出了單片機的內部結構圖,如圖3.2圖3.2 單片機的內部結構圖 由圖3.2單片機的內部結構圖中看出,單片
23、機是在半導體硅片上集成了中央處理器、存儲器、并行I/O口、串行I/O口、定時器/計數器、中斷系統、系統時鐘電路及系統總線的微型計算機。通常把單片機稱為嵌入式控制器或微控制器。單片機的最小系統只需要最小的配置能夠讓單片機里的程序運行,如果要用IO口去驅動LCD顯示,寫好程序就能運行。單片機的P0口接上上拉電阻,排除外界對其有效電平的干擾,電路的抗干擾能力大大增強。單片機最小系統構成主要是由時序電路以及復位電路兩個部分構成。1、時序電路的介紹,下面給出了時序電路圖:時序所有圖都圖要有序號電路由晶振與電容構成,其主要目的是濾波,這樣可以使晶振輸出的波形更加平滑,方便給予單片機適用的信號,至于大小應該
24、是一個經驗值,這樣的濾波效果最好。電路中的電容C1和C2的典型值通常選擇為30pF,該電容的大小會影響振蕩器頻率的高低、振蕩器 的 穩 定 性 和 起 振 的 快 速性。晶體的頻率越高,系統的時鐘頻率越高,單片機的運行速度也就越快【7】。但反過來。運行速度快對存儲器的速度要求就高,對印制電路板的工藝要求也高,即要求線間的寄生電容要小。2、 復位電路的介紹,下面給出了復位電路圖:復位電路主要由電阻、電容、獨立輕觸所有圖都圖要有序號式開關構成,利用復位電路把電路恢復到起始狀態,就像計算器的清零按鈕的作用一樣,或者你輸入錯誤,計算失誤時都要進行清零操作。以便回到原始狀態,重新進行計算。復位電路啟動可
25、以有三種方式,一是在給電路通電時馬上進行復位操作;二是在必要時可以由手動操作;三是根據程序或者電路運行的需要自動地進行。主控模塊運用了單片機的最小系統,需要外接時鐘電路和復位電路。但是,在智能數字鬧鐘的設計中,由于一定的原因,省略了接復位電路的連接,然而這種接法對電路不會造成很大的影響,仍然能夠實現智能數字鬧鐘的功能。3.2 按鍵電路模塊按鍵模塊電路主要是由5個獨立式按鍵組成,其電路圖如圖3.3。圖3.3 按鍵模塊電路圖3.3按鍵模塊電路中,S1、S2、S3、S4、S5分別接單片機AT89C51的P3口的P3.0、P3.1、P3.2、P3.3、P3.7,經單片機的控制,可通過不同按鍵的接通實現
26、相應的功能(參數設置、鬧鐘設置等)。獨立式按鍵的結構很簡單,使用時只需要接其中兩個引腳即可。開機后,電路進入初始化狀體,初始化完成過后,按下開關S1進入調節模式,依次按下S1設置年、月、日、星期、時、分、秒和三個鬧鐘時間,S2遞增調節,S3遞減調節,按下S4關閉鬧鐘/退出調節模式,顯示屏上正常顯示。S5按鍵12小時、24小時的切換。3.3 定時電路模塊定時電路模塊主要由芯片DS1302控制,電路圖如圖3.4。 圖3.4 定時模塊電路DS1302芯片各管腳描述如下,見表3.2表3.2 DS1302功能引腳說明引腳號符號引腳功能1、8Vcc2、Vcc1為電源供電管腳2、3X2、X3接32.768K
27、Hz的晶振4GND接地5RST復位端6I/O為數據輸入/輸出引腳7SCLK接串行時鐘DS1302有12個寄存器,其中7個寄存器與日歷、時鐘相關,存放的數據形式是BCD碼,其寄存器及控制字見表3.3表3.3 DS1302的日歷、時鐘寄存器及其控制字寄存器名命令字取值范圍各位內容寫操作讀操作76543210秒寄存器80H81H00-59CH10SECSEC分鐘寄存器82H83H00-59010MINMIN小時寄存器84H85H01-12或00-2312/240HRHR日期寄存器86H87H01-28,29,30,310010DATEDATE月份寄存器88H89H01-1200010MMONTH周日
28、寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR單片機容易受外界環境的影響,時鐘時常會出現混亂現象,導致時鐘的精度不高。DS1302的作用主要用來記錄數據,特別是對某些具有特殊意義的數據點的記錄,除此之外,DS1302能夠同時記錄兩個時間,一是記錄數據的時間,二是出現該數據的時間,因此在測量系統中廣泛應用。采用時鐘芯片DS1302可以準確記錄數據出現的時間,不需要占用硬件資源,不消耗單片機的資源。使用DS1302芯片,可以提供穩定精確地走時,單片機只需要在第一次上電時進行必要的時間設定,以后需要時間的時候只需要從DS1302中讀取數據即可。DS1
29、302芯片自帶長短月、閏年補償等功能,只用51實現時間的各種功能會非常麻煩。掉電后只需要微弱的電流即可保持精準走時,因此,在DS1302芯片的連接中連有3.6V的紐扣電池,可以在掉電后支持時間的走時。3.4 溫度電路模塊溫度采集電路模塊由DS18B20對溫度進行采集測試,其電路圖如圖3.5。圖3.5 溫度模塊電路DS18B20的引腳介紹,見表3.4表3.4 DS18B20的引腳介紹 序 號名稱引腳功能1GND接地端2DQ數據輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源。3Vcc接+5V電源DS18B20產品具有以下特點:(1) 只要求一個端口即可實現通信。(2
30、) 在DS18B20中的只有三個引腳即可實現溫度的采集,不需要外部任何的電路。(3) 測量溫度范圍在50到120之間;數字溫度計的分辨率用戶可以從9位到12位選擇。(4) 內部設置溫度上、下限告警。DS18B20將采集到的信號送入單片機P2.5口,給電路提供一個溫度數據。R2為上拉電阻,為DS18B20提供能量,最好能夠外接+5V的電源,有些電路僅僅依靠一個4.7K的上拉電阻是遠遠不夠的,不能給其芯片足夠的能量,如果采用多個DS18B20來采集溫度數據時,這4.7K的電阻將供不應求,無法滿足其需求【11】。溫度采集電路還可將DS18B20的1腳和3腳同時接地,但是這樣有可能 由 于 電 壓 的
31、 不 足 而 造 成溫度讀書不準確。如圖3.5中的接法即使電源電壓只有4V電路也可以正常工作,DS18B20采集的溫度數據也不會有很大的誤差,因此這種接法在合適不過。由圖3.5溫度模塊電路中所示,DS18B20只有三個引腳,3腳接+5V電源,1腳接地,2腳接信號輸出口,同時接了一上拉電阻,因為DS18B20是單線溫度傳感器,數據線是漏極開路,如果DS18B20沒接電源,則需要數據線強上拉,給DS18B20供電;如果DS18B20接有電源,則需要一個上拉即可穩定的工作。用小循環來移動8次,將內部寄存器的8位數據全讀出來,再通過數學處理來顯示溫度。3.5 顯示電路模塊顯示電路模塊是用1602LCD
32、液晶顯示屏顯示時間、溫度等數據,其電路圖如圖3.6。圖3.6 顯示模塊電路圖1602液晶顯示屏的引腳定義,見表3.3表3.3 1602液晶顯示屏的引腳定義引腳號引腳名電平輸入/輸出作用1Vss電源地2Vcc電源(+5V)3Vee對比調整電壓4RS0/1輸入0=輸入指令1=輸入數據50/1輸入0=向LCD寫入指令或數據1=從LCD讀取信息6E1,10輸入使能信號,1時讀取信息,10(下降沿)行指令7DB00/1輸入/輸出數據總線line0(低位)8DB10/1輸入/輸出數據總線line19DB20/1輸入/輸出數據總線line210DB30/1輸入/輸出數據總線line311DB40/1輸入/輸
33、出數據總線line412DB50/1輸入/輸出數據總線line513DB60/1輸入/輸出數據總線line614DB70/1輸入/輸出數據總線line7(最高位)15A+VccLCD背光電源正極16K接地LCD背光電源負極與數碼管相比該模塊有如下優點:1、顯示字數多,可顯示32位,使用數碼管,這樣的數據以及其位置的擺放是相當的龐大。2、顯示的內容豐富,可顯示所有數字和大、小寫字母。3、程序簡單,如果用數碼管動態顯示,刷新顯示時間長,但1602能自動完成這個功能。1602LCD分為帶背光和不帶背光兩種形式,基控制器大部分為HD44780,帶背光的比不帶背光的厚,在應用中沒有太大的差別,使用時不需
34、要分太清楚,兩者尺寸差別如下圖3.7所示:圖3.6 圖序號錯了1602LCD尺寸圖如圖3.6同上LCD1602尺寸圖所示,從顯示屏的正看,這兩種顯示屏沒有差別;從側面看,將這兩種顯示屏一比較,明顯能夠看出無背光的厚度要比帶背光的厚度小,有3.5mm的差距,其他部分的尺寸都是一樣大的,沒有很大的區別。根據顯示的內容,可以將1602LCD液晶分為字符 型 液 晶 , 圖 形 液 晶,本設計模塊中是采用字符 型 液 晶 ;根據顯 示 容 量 又 可 以分為單行16字,2行16字,兩行20字等等【3】。因此,1602LCD液晶顯示屏能夠同時實現這幾個功能:在LCD1602顯示屏上顯示日期、時間、溫度以
35、及三個鬧鐘的設置時間。用數碼管顯示這么多的功能將是一個非常龐大的工程量。第四章 軟件設計 為了利于實現本設計的智能化,提高編程的效率,本畢業設計項目采用C語言進行軟件開發與設計。在智能數字鬧鐘的軟件中,先單獨編輯各個模塊的程序,對各模塊程序進行編譯鏈接,程序沒有任何錯誤可以完全運行操作,接著將各模塊的C語言程序綜合連接,使編程結構清晰明了,整個程序發現錯誤檢查的時候更加方便,不會令人頭疼煩躁。軟件設計主要分為了四個部分來編寫程序,主程序主要對整個模塊進行定義、初始化,主要在按鍵模塊切換的模式情況進行詳細的設計,同時也對鬧鐘部分進行了詳細的設計,通過設置的鬧鐘時間與顯示時間比較,當兩個時間相同時
36、鬧鐘就會鳴響;溫度模塊主要是根據DS18B20芯片進行溫度的采集,顯示程序的編寫則根據其的控制字要求將溫度在LCD1602顯示屏上顯示;定時模塊是用芯片DS1302實現定時的功能,提高走時的精確度。4.1總體系統軟件設計軟件程序的設計是根據硬件電路圖的連接和各個元器件的功能進行設計。在編寫軟件時,可以按各個程序的功能將軟件細分為各個功能模塊,再通過主程序的調用來實現整個軟件系統。 系統主程序流程圖如圖4.1,如下所示:圖4.1 主程序流程圖數字鐘開機后,進入初始狀態,通過調節各個獨立輕觸式按鍵來修改數據和各個模式的切換。圖4.1主程序流程圖中Y表示按下開關,N表示開關沒有按下。開機后,按下S5
37、可對時間進行12/24小時形式的切換;按下S1可以切換不同的模式,可以根據自己的要求進行切換,這時顯示屏上會顯示相對應的調節項;切換在某個模式上,按下S2進入數據調節,可將預設參數作加設置,按下S3進入數據調節,可將預設參數作減設置;當參數設置完成后按下開關S4,退出該模式,電路進入正常顯示狀態。當時間到設置的鬧鐘時間時會有鬧鈴,無人操作時響鈴30s后自動關閉,或者按下S4關閉鬧鐘。4.1.1 主程序設計主程序:初始化各個功能模塊,對鬧鐘、溫度、定時、顯示、按鍵等功能進行定義。其關鍵代碼如下:void main()/主函數LCD_Init();/lcd初始化InitDs1302(); Time
38、Init();/定時器初始化BEEP = 1;time.alarm_hour = 8;time.alarm_min = 30;time.alarm_hour1 = 18;time.alarm_min1 = 30;time.alarm_hour2 = 23;time.alarm_min2 = 30; while(1) TimeAdjust();ReadTime();CompareTime();Display_String(dispbuf,0x00);/lcd1602顯示第一行數據 Display_String(warn,0x40);/lcd1602顯示第二行數據 void time1() int
39、errupt 1 TH1= (65536-50000)/256; TL1 = (65536-50000)%256;/初始值的定時 Count=Count+1; if (count = 20) sec-; if(sec = 0) TR0 = 0; BEEP = 1; count = 0; 4.1.2 溫度采集模塊設計通過溫度傳感器將實時溫度信息進行采集,將檢測到的溫度數據數字化,并使其在顯示器上輸出。其關鍵代碼如下:/讀取溫度long int ReadTemperature(void) unsigned char a=0; unsigned char b=0; long int t=0,temp
40、1=0; float tt; char flag = 1; Init_DS18B20(); WriteAChar(0xCC); /跳過讀序號列號的操作 WriteAChar(0xBE); /讀取溫度寄存器等(共可讀9個寄存器) 前兩個寄存器對應溫度 delay_18B20(100); m=ReadAChar(); n=ReadAChar(); Init_DS18B20(); WriteAChar(0xCC); / 跳過讀序號列號的操作 WriteAChar(0x44); / 啟動溫度轉換 /傳感器返回值除16得實際溫度值 /為了得到2位小數位,先乘100,再除16,考慮整型數據長度, /技巧處
41、理后先乘25,再除4,除4用右移實現temp1 = n;temp1 <<= 8;temp1 = temp1|m;if ( temp1 < 0x800)flag = 0;else if ( temp1 >= 0x800)flag = 1;temp1 = temp1 + 1; tt = temp1 * 0.0625;temp1 = tt * 10 + 0.5; if (flag = 1) temp1 = temp1 *(-1); return temp1;4.1.3 定時模塊設計對當前時間,日期等信息進行設定,通過本程序對年月日以及時分讀取設定。其關鍵代碼如下:/-讀時鐘-
42、uchar read(uchar addr) uchar dat=0; rst=0;sclk=0;rst=1; send(addr);/發送地址 dat=receive();/接收 rst=0;return(dat);void InitDs1302() write(0x8e,0x00);/開 write(0x80,0x53);/寫初始狀態秒鐘的數值 write(0x82,0x28);/寫初始狀態分鐘的數值 write(0x84,0x08);/寫初始狀態小時的數值 write(0x86,0x09);/寫日 write(0x88,0x05);/寫月 write(0x8c,0x14);/寫年 wri
43、te(0x8e,0x80);/關4.1.4 顯示模塊設計顯示正常的時間、日期及溫度,并且可實現對12小時/24小時時間切換的顯示,對設置三個鬧鐘時間,鬧鐘響鈴時間進行顯示。其關鍵代碼如下:void Write_LCD_Sj(uchar sj)/寫數據函數 LCD_Busy_Wait();RS=1;RW=0;EN=0;P0=sj;EN=1;delayms(1);EN=0;void Write_LCD_Command(uchar com)/寫指令函數 LCD_Busy_Wait();RS=0;RW=0;EN=0;P0=com;EN=1;delayms(1);EN=0;void LCD_Init()
44、 Write_LCD_Command(0x38);/設置8位格式delayms(1);Write_LCD_Command(0x01);/屏幕顯示內容清除(清屏)delayms(1);Write_LCD_Command(0x06);/設置輸入方式delayms(1);Write_LCD_Command(0x0c);/顯示總數據delayms(1);/初始化void Set_LCD_POS(uchar pos) Write_LCD_Command(pos|0x80);void Display_String(uchar *pos, uchar LineNo)/屏幕的顯示 uchar j;Set_LC
45、D_POS(LineNo);for(j=0;sj != '0' && j < 16;j+)Write_LCD_Sj(sj);delayms(1); 第五章 系統的安裝與調試5.1 系統硬件的安裝與調試系統硬件在Proteus 7.8仿真軟件環境下進行調試,在Proteus中畫出智能數字鬧鐘的電路原理圖,在此過程中,尋找元器件要有耐心、認真負責的態度,準確無誤的找到相對應的元器件,哪怕一個小小的不同就會影響設計的成果。通過查閱各種資料和老師的幫助下,能夠很快的畫出電路原理圖,并在仿真軟件中實現功能。由于本設計中有五個模塊,在完成各個模塊后,需要把各部分對應的
46、連接起來,在安裝各模塊的同時,可以更多掌握每個部分的功能。每個模塊安裝完成后,不說明就已經完成了全部工作,需要多次進行電路的檢測,發現不足與問題所在,不要影響電路的工作。并利用萬用表等實驗器材對整體進行檢測,避免由于接線的錯誤造成不必要的故障,并且保證安全。一切準備工作結束后,開始焊接工作,在完成整個焊接工作過程中,得到老師和同學的幫助,工作起來更加得心應手。開始焊接的是單片機的最小系統系統,根據仿真原理圖很順利的完成此次工作,接下來依次焊接了按鍵模塊,溫度采集模塊,定時模塊,顯示模塊以及各部分的連接,在焊接過程中遇到了很多的問題,有時候把引腳焊錯,心情會很煩躁,影響下面的進度,焊接過程中需要
47、用到很多的工具,如:萬能表,烙鐵,示波器等。在焊接DS1302的時候出現一些問題,編程的時候顯示不正常,經過不斷的檢查電路以及反復使用萬能表的檢測,最后終于發現了問題的所在,引腳接反了,造成芯片的損壞,慶幸當時多購買了此芯片,不然又要到處跑了。焊接1602顯示屏與單片機時,花費了一些時間,一開始焊接的時候沒有注意顯示屏與單片機P0口順序,將連接的引腳接反了,顯示的時候出現了亂碼,在焊接的時候用的錫線太多,不好把該顯示屏插在板子上,只好重新焊接,保證其美觀。通過不斷的拆拆改改,最后調試的時候終于成功,實現了智能數字鬧鐘的功能。系統的焊接是本設計中最重要的部分,它要求理論和實際的實物進行很好的結合
48、,焊接工作也是一份細致的工作,需要有耐心,才能將各個元器件正確的焊在電路板上,完成本次設計,實現智能數字鬧鐘的所有功能。一旦焊接過程中出現錯誤就要拆下線路重新焊接,工作量會很龐大。焊接好電路,一定要嚴格檢查,由于本設計采用的是萬用板,因此在檢測時務必要認真仔細。發現萬用板上有多余的錫點時及時地清理,避免造成電路的短路,發生事故,同時,要注意各跳線有無錯接或者接觸不良的現象,虛焊情況,各元器件的引腳是否接正確,電源、地是否已接完善等現象,對以上情況都要作相應的檢查,并作必要的處理。系統的焊接過程主要有以下幾個階段:1、根據仿真電路圖購買相關的元器件,準備好工具,為實物的焊接做準備。 2
49、、在電路板上合理的安放好元器件,保證實物的美觀,尤其是要注意那些易受干擾的電容的位置設計。3. 用萬能表檢測電路板上引腳情況,對照仿真原理圖用烙鐵連接起來,把握整個焊接過程,其中一定要細心,注意安全。4. 根據仿真原理圖,將元器件焊接好,保證其元器件不受損傷。 安裝:將各模塊的跳線接好,注意引腳。各模塊的供電端和接地端,接入單片機的引腳一定要認清引腳好,避免接錯,造成不必要的損失。調試:檢測引腳電壓是否正常,按鍵是否接好,電路中有無短路,虛焊。在硬件電路無誤情況下,接入電源,系統就可以正常工作了,打開顯示器開關產品就可以實現相應功能。5.2 系統軟件的調試1、 P
50、roteus【2】這個序號加了有什么用,文章中還有很多其他的的調試運行ISIS 7 Professional出現下面的窗口,在這個窗口中繪制智能數字鬧鐘的仿真原理圖:(1) 添加元件到上圖要有序號元件表中:智能數字鬧鐘的設計中主要用到的元件有:AT89C51、DS1302、1602LCD、DS18B20、“地”、“電源”等。單擊“P”按鈕,出現挑選元件對話框,在此對話框的KEYWORD中輸入要找的元件名稱,單擊OK。(2) 放置元器件:在元件列表中左鍵選取對應的元器件,在原理圖編輯窗口中單擊左鍵,這樣所需要的元件就被添加到原理圖編輯窗口中。添加“地”、“電源”的時候左鍵點擊工具欄中的Termi
51、nals Mode,分別選擇GOUND、POWER,在原理圖編輯窗口點擊左鍵,分別將“地”、“電源”放置在原理圖編輯窗口中。(3) 連線:將智能數字鬧鐘各個模塊綜合連接。(4)序號格式不統一,詳見批注17添加仿真文件:雙擊單片機,出現下面的對話框,在Program File中單擊出現文件瀏覽對話框,找到new.hex文件,單擊確定完成添加文件,單擊OK退出。(5)仿真:單擊開始仿真上圖要有序號。在進行Proteus仿真軟件的調試時,在尋找元上圖要有序號器件的過程中遇到了一些麻煩,在仿真元件中找不到想對應的器件,通過詢問同學以及資料的查詢,終于找到了全部的元件,并將其各個模塊進行總和連接,連線過
52、程中安全的通過了,但是耗費了我大量的時間。在仿真軟件繪制原理圖的過程并沒有出現很大的錯誤,主要就是花費了較長的時間尋找元件盒電路的連線上。在調試過程中,發現在設置第一個鬧鐘的時候,出現了一個問題,例如現在的時間是08:27,設置的鬧鐘時間是08:30,仿真運行開始,鬧鐘在08:28,08:29的時候都會響鈴,當到達鬧鐘時間響鈴結束后,不會再警報,出現正常,這個主要的調試方法在程序的調試中解決。當解決完這個問題,重新將程序燒到單片機,又出現一個問題,時間不走了,當時懷疑DS1302定時芯片出現問題,于是用萬用表對其電路進行檢測,也沒有發現什么問題,一切都很正常,最后沒辦法就將DS1302芯片拆下
53、來,重新將芯片安裝,在進行仿真的時候,時間終于走了,但又迎來了一個問題,第一個定的鬧鐘沒有想,于是在程序中再次檢查,找到了原因,終于都沒有問題,智能數字鬧鐘的電路能夠運行,完全的實現所要求的功能。2、 Keil µvision4的調試系統的軟件開發環境是Keil µvision4,具體程序編寫調試的步驟如下:1、 在菜單Project中選擇New Project,設立文件夾,保存文件名,在彈出的對話框中選擇Atmel公司的AT89C51單片機。2、 在File菜單中選擇New,在彈出的對話框中編輯所需C語言程序【4】。程序初步完成后,點擊保存,并設置文件名為*.c。3、 用
54、鼠標右鍵單擊Soµrce groµp 1選擇Add Files GroµpSoµrce groµp1,關閉窗口,程序中命令字符變成綠色。4、你的一級標題用的是1. 2.3.4.等,二級標題用的是(1)(2)(3)這里與上一段不符編輯鏈接,確定程序無誤后,用鼠標點擊Options for Target,在Target菜單中設置晶振為12MHz,在Oµt pµt中添加Create Hex Fi選項,輸出Hex文件。如圖5.1所示。圖5.1 程序調試確認無誤后,打開PROTEUS仿真軟件,畫出所設計的電路圖,檢查電路,在電路無誤后導入Keil µvision4軟件生成的HEX文件,點擊運行,這時就可以在PROTEUS仿真軟件中進行仿真了。在編譯調試完成后,可以通過編程器,就可以將所編譯的正確程序寫入到AT89C51單片機中了,軟件安裝調試結束。程序的編寫主要有4個大模塊:主程序的編寫、定時DS1302模塊的編寫、溫度采集DS18B20模塊的編寫以及1602
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水產品冷凍加工與冷藏設施設計考核試卷
- 船舶動力系統的故障診斷與維修策略優化考核試卷
- 探秘波粒二象性
- 碩士之路解析
- 外貿英文函電課件
- 四川司法警官職業學院《房地產開發項目管理》2023-2024學年第二學期期末試卷
- 沈陽化工大學《建筑荷載》2023-2024學年第二學期期末試卷
- 上海市封浜高中2024-2025學年招生全國統一考試模擬試卷分科綜合卷化學試題(三)含解析
- 內蒙古自治區根河市市級名校2024-2025學年初三3月網絡模擬考試生物試題含解析
- 南京警察學院《作者電影賞析》2023-2024學年第一學期期末試卷
- 【制藥廢水預處理技術的發展綜述報告6000字(論文)】
- 《銷售技巧課件:提高銷售額的12種方法》
- 精神障礙社區康復服務投標方案
- 果蔬汁簡介介紹
- 神經形態計算詳述
- 廣東御景木業有限公司年產木質門8萬套建設項目環境影響報告書
- 展位搭建施工方案模板圖
- 文房四寶(課堂PPT)
- 第五單元晚清時期的內憂外患與救亡圖存期末復習測試卷-高一上學期歷史統編版(2019)必修中外歷史綱要上
- 鐵路基礎知識考試題庫500題(單選、多選、判斷)
- 2023小學語文新課程標準
評論
0/150
提交評論