版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-. z-. z摘摘 要要本設(shè)計(jì)是一個(gè)基于 MCS-51 單片機(jī)實(shí)現(xiàn)的萬(wàn)年歷。本文首先描述系統(tǒng)硬件工作原理,并附以系統(tǒng)構(gòu)造框圖加以說(shuō)明,著重介紹了本系統(tǒng)所應(yīng)用的各硬件接口技術(shù)和各個(gè)接口模塊的功能及工作過(guò)程,其次,詳細(xì)闡述了程序的各個(gè)模塊和實(shí)現(xiàn)方法。本設(shè)計(jì)以數(shù)字集成電路技術(shù)為根底,AT89S52 單片機(jī)技術(shù)為核心。本文編寫(xiě)的主導(dǎo)思想是軟、硬件相結(jié)合,以硬件為根底,來(lái)進(jìn)展各功能模塊的編寫(xiě)。本系統(tǒng)以單片機(jī)的匯編語(yǔ)言進(jìn)展軟件設(shè)計(jì),為了便于擴(kuò)展和更改,軟件的設(shè)計(jì)采用模塊化構(gòu)造,使程序設(shè)計(jì)的邏輯關(guān)系更加簡(jiǎn)潔明了。系統(tǒng)通過(guò) LED 顯示數(shù)據(jù),所以具有人性化的操作和直觀的顯示效果??梢燥@示時(shí)間、陽(yáng)歷日期、星期
2、,并有鬧鈴及檢測(cè)溫度的功能。關(guān)鍵詞:關(guān)鍵詞:?jiǎn)纹瑱C(jī); DS1302;DS18B20;LED-. zAbstractAbstractThe design is a based on the MCS-51perpetual calendar. This article first describes the system hardware principle of work,and attaches by the system structure diagram performs to e*plain,emphatically introduced this system applies vari
3、ous hardware connection technology and each interface module function and the workprocess, ne*t, it is elaborated the procedure of each module and how they realized. This design is based on the digital IC, and the core of AT89C52 MCU technique. This article writed with the guiding of software and ha
4、rdware unifies, take the hardware as thefoundation, writing eachprogramme for each functions module. This systems software design whth the MCU HUIBIAN language, in order to be advantageous for thee*pansion and change, the software design uses the design of modularization, so that the logical of the
5、programmer bee clear and it is easy to understand .This system LED to show the data,so it has the humanize operation and the intuitionistic show effect. It can show the time, Gregorian calendar, week, bell, pronunciation of time and the temperature e*amination.KeyKey WordsWords:MCU; DS1302; DS18B20;
6、 LED目 錄摘摘 要要 IABSTRACTABSTRACTII1 1 設(shè)計(jì)方案論證設(shè)計(jì)方案論證 11.1 功能要求 11.2 方案確定 12 2 主控制器和外圍器件主控制器和外圍器件 42.1AT89S52 單片機(jī) 42.2 溫度芯片 DS18B205-. z2.3 日歷時(shí)鐘芯片 DS130262.4 數(shù)碼管 LED92.5 譯碼器 74HC13893 3 硬件設(shè)計(jì)硬件設(shè)計(jì) 103.1 電源設(shè)計(jì) 103.2 主電路設(shè)計(jì) 114 4 軟件設(shè)計(jì)軟件設(shè)計(jì) 134.1 主程序設(shè)計(jì) 134.2 鍵盤(pán)子程序設(shè)計(jì) 154.3 溫度子程序設(shè)計(jì) 174.4 日歷時(shí)鐘子程序設(shè)計(jì) 194.5 顯示子程序設(shè)計(jì) 21
7、4.6 鬧鐘子程序設(shè)計(jì) 215 5 系統(tǒng)調(diào)試系統(tǒng)調(diào)試 235.1 軟件調(diào)試 235.2 硬件調(diào)試 23結(jié)論結(jié)論 25致致 26附錄一原理圖附錄一原理圖 27附錄二附錄二 PCBPCB 圖圖 28附錄三程序清單附錄三程序清單 29主要參考文獻(xiàn)主要參考文獻(xiàn) 48-. z1 設(shè)計(jì)方案論證1.1 功能要求1、能顯示年、月、日、星期、時(shí)、分、秒。2、能對(duì)時(shí)間進(jìn)展手動(dòng)修正。3、采用 24 小時(shí)制,能自動(dòng)處理潤(rùn)年。4、使用 LED 顯示時(shí)間參數(shù)5、上電后,電子鐘顯示2000 年 5 月 9 日 5 星期 12 時(shí) 0 分 0 秒 23C 溫度由于對(duì)時(shí),分,秒,日,年高位為 0 時(shí)消隱所以只顯示單個(gè)數(shù)字以增強(qiáng)
8、其可讀性。 6、定時(shí)功能:可設(shè)置定時(shí)時(shí)間,當(dāng)定時(shí)時(shí)間到時(shí),蜂鳴器發(fā)出報(bào)警聲音。 7、溫度功能:能實(shí)時(shí)顯示當(dāng)前溫度。1.2 方案確定按照系統(tǒng)設(shè)計(jì)功能的要求,初步確定設(shè)計(jì)系統(tǒng)由主控模塊、顯示模塊、鍵盤(pán)接口模塊、電源模塊 5 個(gè)模組成。另外再擴(kuò)大一個(gè)溫度檢測(cè)模塊,用于顯示測(cè)得實(shí)時(shí)溫度。經(jīng)過(guò)精心設(shè)計(jì)本設(shè)計(jì)采用下面的方案。方案方案 1 1:以單片機(jī)為主控制器,時(shí)間和溫度數(shù)據(jù)是通過(guò)時(shí)鐘芯片和數(shù)字溫度傳感器來(lái)讀取,通過(guò) LED 數(shù)碼管顯示出來(lái),并用鍵盤(pán)來(lái)完成對(duì)當(dāng)前時(shí)間的調(diào)整和定時(shí)時(shí)間的設(shè)定。構(gòu)造框圖如圖 1-1 所示。方案方案 2 2:以單片機(jī)為主控制器,時(shí)間通過(guò)軟件編程來(lái)實(shí)現(xiàn),通過(guò)單片機(jī)的定時(shí)器,得出一秒
9、的時(shí)間,再根據(jù)秒、分、時(shí)、日、月、年之間的進(jìn)制關(guān)系,完成根本的時(shí)鐘功能,再通過(guò) LCD 液晶顯示模塊顯示出來(lái)。溫度檢測(cè)局部由熱敏電阻將溫度轉(zhuǎn)換成模擬量的電壓信號(hào),經(jīng) A/D 轉(zhuǎn)換器,將其轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字量,再通過(guò)單片機(jī)把溫度值傳給 LCD 液晶顯示模塊顯示出來(lái),并用鍵盤(pán)來(lái)完成對(duì)當(dāng)前時(shí)間的調(diào)整和定時(shí)時(shí)間的設(shè)定。構(gòu)造框圖如圖 1-2 所示。方案方案 1 1 和方案和方案 2 2 比擬:比擬:時(shí)鐘的設(shè)計(jì)可以用軟件編程或硬件設(shè)計(jì),假設(shè)用軟-. z件設(shè)計(jì)誤差相對(duì)于硬件設(shè)計(jì)略大,在軟件設(shè)計(jì)中定時(shí)器假設(shè)采用軟件查詢(xún)的方法占用大量的 CPU 資源,所以最好采用開(kāi)中斷的方式以節(jié)約資源,但用軟件編程的方法對(duì)晶振要
10、求很高,因?yàn)闀r(shí)間的誤差主要來(lái)源于理想機(jī)器周期和實(shí)際周期之間的微小差距,此外還有送定時(shí)器初值時(shí)產(chǎn)生的誤差,況且用軟件編程較為復(fù)雜,所以本設(shè)計(jì)采用日歷時(shí)鐘芯片,時(shí)鐘芯片時(shí)間準(zhǔn)確度高,性?xún)r(jià)比高,相對(duì)于軟件編程性能有很大提高,且可二次開(kāi)發(fā),用于實(shí)時(shí)記錄一些重要的數(shù)據(jù)。為了增加設(shè)計(jì)的實(shí)用性方案 1 和 2 都增加了溫度顯示模塊,采用數(shù)字溫度芯片具有體積小、抗干擾能力強(qiáng)、調(diào)試方便或不用調(diào)試、易于實(shí)現(xiàn)群測(cè)等優(yōu)點(diǎn),而且直接輸出數(shù)字量的溫度值,簡(jiǎn)化了測(cè)量電路的同時(shí)又保證了測(cè)量精度。采用熱敏電阻檢測(cè)溫度,其原理是熱敏電阻的阻值隨溫度的變化而變化,從而改變電路的電壓或電流,這樣就得出與溫度有對(duì)就關(guān)系的電壓或電流信號(hào)
11、,再經(jīng)計(jì)算,就可得出被測(cè)量的溫度。由于電壓量或電流量都是模擬量,易受外界的干擾,并且熱敏元件存在非線性的問(wèn)題,這都將影響溫度的測(cè)量精度,還給計(jì)算帶來(lái)了麻煩。顯示模塊可以用 LED 或 LCD,用 LCD 顯示視覺(jué)不太直觀,視覺(jué)圍小,價(jià)格相對(duì)偏高,LED 顯示亮度高,視覺(jué)圍大,實(shí)用性強(qiáng)。LED 顯示有靜態(tài)和動(dòng)態(tài)之分,靜態(tài)顯示較為穩(wěn)定顯示亮度較高,但占用較多的 I/O 口資源,設(shè)計(jì)中所用 LED 數(shù)目較多時(shí)采用動(dòng)態(tài)顯示,并用 74HC138 與 LED 公共端分別相接,輪流動(dòng)態(tài)顯示數(shù)據(jù)。單片機(jī)LCD 顯示電源模塊鍵盤(pán)A/D 轉(zhuǎn)換溫度傳感器揚(yáng)聲器圖 1-2 方案 2 構(gòu)造圖單片機(jī)LED 顯示電源模塊
12、譯碼器鍵盤(pán)時(shí)鐘芯片數(shù)字溫度芯片揚(yáng)聲器圖 1-1 方案 1 構(gòu)造圖從市場(chǎng)方面來(lái)看,兩種設(shè)計(jì)方法都屬于高檔電子時(shí)鐘,方案 1 顯示直觀,視覺(jué)度好,比擬適合家庭掛歷和一些顯示要求圍廣的場(chǎng)合等,性?xún)r(jià)比高,應(yīng)有良好的市場(chǎng)前景。方案 2 中相對(duì)于同類(lèi)電子產(chǎn)品準(zhǔn)確度不如方案 1 且性?xún)r(jià)比相對(duì)方案 1 較高。綜上所述本設(shè)計(jì)采用方案 1 來(lái)實(shí)現(xiàn)。-. z2 主控制器和外圍器件主控芯片由單片機(jī)完成。目前市場(chǎng)上的單片機(jī)種類(lèi)很多,如 Intel 公司生產(chǎn)的 80C51 系列,ATMEL 公司生產(chǎn)的 AT89 系列,Microchip 公司生產(chǎn)的 PIC 系列,ADI 公司生產(chǎn)的高性能 ADuC84*系列單片機(jī)和 AT
13、MEL 公司的高性能 ATmega *系列單片機(jī)等等。本設(shè)計(jì)所要求的功能有限用一般的單片機(jī)即可完成任務(wù),其中 ATMEL 公司生產(chǎn)的 AT89 系列單片機(jī)最為流行,它具有 Flash ROM,擦寫(xiě)方便,且價(jià)格廉價(jià)。因此選用 AT89S52 為主控芯片。外圍器件其中溫度傳感器采用美國(guó)達(dá)拉斯DALLAS生產(chǎn)的可編程的DS18B20 溫度傳感器。它直接輸出數(shù)字量的溫度值,精度高,測(cè)溫分辨率可達(dá)0.0625。一線制總線,接口方便,體積小等諸多優(yōu)點(diǎn)。時(shí)鐘芯片選用 DS1302,DS1302 是美國(guó) DALLAS 公司推出的一種高性能、低功耗、帶 RAM 的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、
14、秒進(jìn)展計(jì)時(shí),具有閏年補(bǔ)償功能。顯示局部采用共陰極數(shù)碼管 LED 顯示,具有顯示亮度高,功耗小的優(yōu)點(diǎn),配合譯碼器 74HC138 完成動(dòng)態(tài)顯示功能。2.1 AT89S52 單片機(jī)AT89S52 是一種低功耗、高性能 CMOS8 位微控制器,使用 ATMEL 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引腳完全兼容。并具有以下標(biāo)準(zhǔn)功能: 8k 字節(jié) Flash,256 字節(jié) RAM,32 位 I/O 口線,看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位定時(shí)器/計(jì)數(shù)器,一個(gè) 6 向量 2 級(jí)中斷構(gòu)造,全雙工串行口,片晶振及時(shí)鐘電路。另外,AT89S52 可降至 0Hz 靜態(tài)邏輯操作
15、,支持 2 種軟件可選擇節(jié)電模式??臻e模式下,CPU 停頓工作,允許 RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM 容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停頓,直到下一個(gè)中斷或硬件復(fù)位為止。2.2 溫度芯片 DS18B20DS18B20 數(shù)字溫度計(jì)是 DALLAS 公司生產(chǎn)的 1Wire,即單總線器件,具有線路簡(jiǎn)單,體積小的特點(diǎn)。因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在-. z一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。1 1、DS18B20DS18B20 的引腳介紹的引腳介紹DS18B20 的封裝及引腳排列見(jiàn)圖 2-1,其引腳功能描述見(jiàn)表 2-2-1圖 2-1
16、 DS1302 封裝2 2、DS18B20DS18B20 ROMROM操作指令操作指令一旦總線主機(jī)檢測(cè)到從器件的存在,它便可以發(fā)出器件ROM操作命令之一。所有ROM操作命令均為8位長(zhǎng)。讀ROM33h :此命令允許總線主機(jī)讀DS18B20的8位產(chǎn)品系列編碼,唯一的48信序列號(hào),以及8位的CRC。此命令只能在總線上僅有一個(gè)DS18B20的情況下使用。符合ROM55h:此命令后繼以64位的ROM數(shù)據(jù)序列,允許總線主機(jī)對(duì)多點(diǎn)總線上特定的DS18B20尋址。只有與64位ROM序列嚴(yán)格相符的DS18B20才能對(duì)后繼的存儲(chǔ)器操作命令作出響應(yīng)。跳過(guò)ROMCCh:在單點(diǎn)總線系統(tǒng)中,此命令通過(guò)允許總線主機(jī)不提供6
17、4位ROM編碼而直接進(jìn)展存儲(chǔ)器操作以節(jié)省時(shí)間。搜索ROMF0h:當(dāng)系統(tǒng)開(kāi)場(chǎng)工作時(shí),總線主機(jī)可能不知道單總線上的器件個(gè)數(shù)或不知道其64位ROM編碼。搜索ROM命令允許總線控制器用排除法識(shí)別總線上的所有從器件的64位編碼。警告搜索ECh:此命令的流程與搜索ROM命令一樣。但是僅在最近一次溫度測(cè)量出現(xiàn)警告的情況下,DS18B20才對(duì)此命令作出響應(yīng)。3 3、DS18B20DS18B20 RAMRAM操作指令操作指令表 2-2-1DS18B20 的引腳功能描述序號(hào)名稱(chēng)引腳功能描述1GND接地2DQ數(shù)據(jù)輸入/輸出引腳。漏極開(kāi)路。當(dāng)被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的 VDD 引腳。當(dāng)
18、工作于寄生電源時(shí),此引腳必須接地。GND1DQ2VCC3DS18B20-. z寫(xiě)暫存存儲(chǔ)器4Eh:這個(gè)命令向DS18B20的暫存器TH和TL中寫(xiě)入數(shù)據(jù)??梢栽谌魏螘r(shí)刻發(fā)出復(fù)信命令來(lái)中止寫(xiě)入。讀暫存存儲(chǔ)器BEh:這個(gè)命令讀取暫相隔器的容。讀取將從第1個(gè)字節(jié)開(kāi)場(chǎng),一直進(jìn)展下去,直到第9(CRC)字節(jié)讀完。如果不想讀完所有字節(jié),控制器可以在任何時(shí)間發(fā)出復(fù)位命令來(lái)中止讀取。復(fù)制暫存存儲(chǔ)器48h:這個(gè)命令把暫存器的容拷貝到DS18B20的E2ROM存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。溫度變換44h:這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無(wú)需其它數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而后DS18B20保持等待狀態(tài)
19、。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而DS18B20又忙于做溫度轉(zhuǎn)換的話,DS18B20將在總線上輸出0,假設(shè)溫度轉(zhuǎn)換完成,則輸出1。如果使用寄生電順勢(shì),總線控制器必須在發(fā)出這條命令后立即啟動(dòng)強(qiáng)上拉,并保持500ms以上時(shí)間。讀忙B8h:在這條命令發(fā)出之后發(fā)出讀數(shù)據(jù)隙,器件會(huì)輸出溫度轉(zhuǎn)換忙的標(biāo)識(shí):0為忙,1為準(zhǔn)備就緒。讀電源B4h:假設(shè)把這條命令發(fā)給DS18B20后,發(fā)出讀時(shí)間隙,器件會(huì)返回它的電源模式:0為寄生電源,1為外部電源。 4 4、DS18B20DS18B20的數(shù)據(jù)處理的數(shù)據(jù)處理DS18B20的高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配如圖2-2所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)
20、換所得的溫度值以2字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第1、2個(gè)字節(jié)里。單片機(jī)可通過(guò)單總線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。2.3 日歷時(shí)鐘芯片 DS1302DS1302 是美國(guó) DALLAS 公司推出的一種高性能、低功耗、帶 RAM 的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)展計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為 2.5V5.5V。采用三線接口與 CPU 進(jìn)展同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或 RAM 數(shù)據(jù)。DS1302 部有一個(gè) 318 的用于臨時(shí)性存放數(shù)據(jù)的 RAM 存放器。DS1302 是 DS1202 的升級(jí)產(chǎn)品,與 DS1202 兼溫度LSB溫度
21、MSBTH 用戶(hù)字節(jié) 1TH 用戶(hù)字節(jié) 2保存配置存放器保存保存第一字節(jié)第 9 字節(jié)圖 2-2 高速暫存 RAM 構(gòu)造圖CRC-. z容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)展涓細(xì)電流充電的能力。1 1 引腳功能及構(gòu)造引腳功能及構(gòu)造 圖 2-3 示出 DS1302 的引腳排列,其中 Vcc1 為后備電源,VCC2 為主電源。DS1302 由 Vcc1 或 Vcc2 兩者中的較大者供電。*1 和*2 是振蕩源,外接 32.768kHz 晶振。RST 是復(fù)位/片選線,通過(guò)把 RST 輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST 輸入有兩種功能:首先,RST 接通控制邏輯,允許
22、地址/命令序列送入移位存放器;其次,RST 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng) RST 為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì) DS1302 進(jìn)展操作。如果在傳送過(guò)程中 RST 置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O 引腳變?yōu)楦咦钁B(tài)。上電時(shí),在 Vcc2.5V 之前,RST 必須保持低電平。只有在 SCLK 為低電平時(shí),才能將 RST 置為高電平。I/O 為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說(shuō)明。SCLK 始終是輸入端。圖 2-3 DS1302 引腳圖2 2 DS1302DS1302 的的控制字節(jié)控制字節(jié)DS1302 的控制字如圖 2-4 所示??刂谱止?jié)的最高有效位(位 7)必
23、須是邏輯 1,如果它為0,則不能把數(shù)據(jù)寫(xiě)入 DS1302 中,位 6 如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為 1 表示存取 RAM 數(shù)據(jù);位 5 至位 1 指示操作單元的地址;最低有效位(位 0)如為 0 表示要進(jìn)展寫(xiě)操作,為 1 表示進(jìn)展讀操作,控制字節(jié)總是從最低位開(kāi)場(chǎng)輸出。RAMRAM1 1CKA4A3A2A1A0CK圖 2-4 DS1302 控制字3 3 數(shù)據(jù)輸入輸出數(shù)據(jù)輸入輸出(I/O)(I/O) 在控制指令字輸入后的下一個(gè) SCLK 時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入DS1302,數(shù)據(jù)輸入從低位即位 0 開(kāi)場(chǎng)。同樣,在緊跟 8 位的控制指令字后的下一個(gè) SCLK 脈沖的下降沿讀出 DS1302
24、 的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位 0 位到高位12345678VCC1VCC2X1X2GNDRSTI/OSCLK-. z7。 4 4 DS1302DS1302 的存放器的存放器 DS1302 有 12 個(gè)存放器,其中有 7 個(gè)存放器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形式,其日歷、時(shí)間存放器及其控制字見(jiàn)表 2-3-1。表 2-3-1 日歷時(shí)間存放器存放器命令碼存放器中各位的容名稱(chēng)地址寫(xiě)讀數(shù)據(jù)圍76543210秒00H80H81H0059CH秒數(shù)據(jù)分01H82H83H00590分?jǐn)?shù)據(jù)時(shí)02H84H85H0112或 002312/24010/AP時(shí)數(shù)據(jù)日03H86H87H0128,2930,31
25、00日數(shù)據(jù)月04H88H89H0112000月數(shù)據(jù)星期05H9AH8BH010700000星期數(shù)據(jù)年06H8CH8DH0099年數(shù)據(jù)多字節(jié)讀寫(xiě)B(tài)EHBFH2.4 數(shù)碼管 LEDLED 顯示器由假設(shè)干個(gè)發(fā)光二極管組成,當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的一個(gè)筆畫(huà)或一個(gè)點(diǎn)就發(fā)光??刂葡鄳?yīng)的管導(dǎo)通,就能顯示出對(duì)應(yīng)字符。各段 LED顯示器需要由驅(qū)動(dòng)電路驅(qū)動(dòng)。在七段 LED 顯示器中,通常將各段發(fā)光二極管的陰極或陽(yáng)極連在一起作為公共端。將各段發(fā)光二極管連在一起的叫共陽(yáng)極顯示器,用低電平驅(qū)動(dòng);將陰極連在一起的叫共陰極顯示器,用高電平驅(qū)動(dòng)。靜態(tài)顯示靜態(tài)顯示就是每一個(gè)顯示器各筆畫(huà)段都要獨(dú)占具有一個(gè)鎖存功能的輸出口線,C
26、PU 把要顯示的字形代碼送到輸出口上,就可以使顯示器上顯示所需的數(shù)字或符號(hào),此后,即使 CPU 不在去它,因?yàn)楦鞴P畫(huà)段借口具有鎖存功能,顯示的容也不會(huì)消失。動(dòng)態(tài)顯示動(dòng)態(tài)顯示是指顯示器顯示*一字符時(shí),相應(yīng)段的發(fā)光二極管恒定地導(dǎo)通或截-. z止。靜態(tài)顯示有并行輸出和串行輸出兩種方式。在本系統(tǒng)中數(shù)碼管使用共陰極接法而且是用動(dòng)態(tài)顯示。2.5 譯碼器 74HC13874HC138 譯碼器是通過(guò) 3 條線來(lái)到達(dá)控制 8 條線的狀態(tài),就是通過(guò) 3 條控制線 A0、A1、A2 不同的上下電平組合來(lái)控制 Y0Y7 的輸出狀態(tài),其中 4 和 5為使能地端,與 8 引腳共同接地,當(dāng)接高電平時(shí) Y0 到 Y7 輸出高
27、電平。6 號(hào)腳為使能端,為高電平時(shí)有效。74HC138 封裝如圖 2-5。當(dāng)需要級(jí)聯(lián)時(shí)只需要改變使能端信號(hào)引腳即可,連接方法簡(jiǎn)單。圖 2-5 74HC138 封裝圖3 硬件設(shè)計(jì)本次設(shè)計(jì)的萬(wàn)年歷系統(tǒng)以單片機(jī)為主控芯片,通過(guò)讀寫(xiě)日歷時(shí)鐘芯片和溫度芯片來(lái)實(shí)時(shí)的改變當(dāng)前時(shí)間和溫度,并通過(guò) LED 顯示實(shí)時(shí)數(shù)據(jù),同時(shí)輔助以鍵盤(pán)來(lái)調(diào)節(jié)顯示時(shí)間和定時(shí)時(shí)間,并帶有蜂鳴器,當(dāng)定時(shí)時(shí)間到時(shí)鬧鐘即翻開(kāi)。硬件的構(gòu)造和可靠性直接影響著整個(gè)系統(tǒng)的可靠性,所以合理的安排電路能提高電子產(chǎn)品的性能,但任何電子產(chǎn)品都必須有一個(gè)可靠的電源為其提供能量才能工作,本設(shè)計(jì)先介紹電源局部,再介紹功能電路。電源設(shè)計(jì)電源的設(shè)計(jì)是電子產(chǎn)品的最根
28、本模塊,大局部電子產(chǎn)品都是用的直流電源,將 220V 的交流電轉(zhuǎn)化為直流電也是我們必行的,電源的穩(wěn)定性也直接影響著電子產(chǎn)品的性能,現(xiàn)在常用的直流穩(wěn)壓電源有變壓器式和開(kāi)關(guān)式電源兩種。變壓器式直流穩(wěn)壓源由電源變壓器、整流電路、濾波電路和穩(wěn)壓電路四個(gè)局部組成,如圖 3-1 所示,交流電先經(jīng)電源變壓器變換成所須等級(jí)的交流電壓,而后經(jīng)整流電路將之整流成直流電,這時(shí)的直流電脈動(dòng)量很大,經(jīng)濾波電路以減小其脈動(dòng)量,最后經(jīng)穩(wěn)壓電路進(jìn)展穩(wěn)壓,從而得出符合要求的電壓。變壓器式直流穩(wěn)壓電源構(gòu)造簡(jiǎn)單,設(shè)計(jì)容易,但體積較大,效率也較低,過(guò)負(fù)載能力也差。圖 3-1 變壓器式直流穩(wěn)壓電源-. z開(kāi)關(guān)式直流穩(wěn)壓電源簡(jiǎn)稱(chēng)開(kāi)關(guān)電源
29、Switching Power Supply,它是指起電壓調(diào)整功能的器件始終以開(kāi)關(guān)方式工作的一種直流穩(wěn)壓電源。50Hz 單相交流 220V 電壓或三相交流 220V380V 電壓經(jīng) EMI 防電磁干擾電源濾波器,直接整流濾波,然后再將濾波后的直流電壓經(jīng)變換電路變換為數(shù)赫或數(shù)百千赫的高頻方波或準(zhǔn)方波電壓,通過(guò)高頻變壓器隔離并降壓或升壓后,再經(jīng)高頻整流、濾波電路,最后輸出直流電壓。通過(guò)取樣、比擬、放大及控制、驅(qū)動(dòng)電路,控制變換器中功率開(kāi)關(guān)管的占空比,便能得到穩(wěn)定的輸出電壓。開(kāi)關(guān)電源具有功耗小、效率高、體積小、重量輕、穩(wěn)壓圍寬、電路形式靈活多樣等諸多優(yōu)點(diǎn),但本錢(qián)高,因而本設(shè)計(jì)采用變壓器式電源。3.2
30、 主電路設(shè)計(jì)主電路的功能是完成年、月、日、星期、時(shí)、分、秒之間的轉(zhuǎn)換,對(duì)溫度傳感器進(jìn)展控制并讀取溫度轉(zhuǎn)換后的值,再送往 LED 顯示,并且承受鍵盤(pán)操作,對(duì)日期和時(shí)間進(jìn)展校正,同時(shí)還要判斷定時(shí)時(shí)間是否到,定時(shí)到時(shí)鬧鈴翻開(kāi)。主電路原理圖如圖 3-2 所示,顯示局部用 P0 口做為輸出數(shù)據(jù)接到 LED 數(shù)碼管 a 到 h,并接 8 個(gè)上拉電阻做為各段的驅(qū)動(dòng)。用 P3 口的低 3 位接譯碼器的A0,A1,A2 端,用 P3.3,P3.4,P3.5 分別接譯碼器的使能端,通過(guò)控制 P3 口來(lái)控制 LED 的動(dòng)態(tài)掃描。單片機(jī)的 18 和 19 引腳接 12MHZ 的晶振,并接兩個(gè) 22PF 的電容同時(shí)接地
31、,單片機(jī)復(fù)位端接一極性電容并連接到電源處,在極性電容的負(fù)極接一 10K 的電阻,并連接至地做為放電用。本設(shè)計(jì)用到四個(gè)獨(dú)立式鍵盤(pán)分別接到 P1 口的低 4 位,用 P1 口的 P1.4,P1.5,P1.6 接日歷時(shí)鐘的使能端和時(shí)鐘端及數(shù)據(jù)輸入輸出口,并在日歷時(shí)鐘上接一 32.768KHZ 的晶振,并接兩個(gè) 22PF 的電容終端和地相連,用 P1.7 接溫度芯片的 DQ 引腳,作為溫度數(shù)據(jù)或命令的讀寫(xiě),用單片機(jī)的 P3.7 接揚(yáng)聲器,作為發(fā)音電路,各芯片的電源局部分別接到有開(kāi)關(guān)式電源產(chǎn)生的5V 電源上,芯片的接地端都接在公共地上,在這里接電源局部就不再一一詳述,讀者注意一下就行了。設(shè)計(jì)采用動(dòng)態(tài)顯示
32、,輪流掃描各個(gè) LED 使之顯示相應(yīng)的數(shù)型碼,當(dāng)掃描頻率大于人眼所能識(shí)別的頻率時(shí)就看不到閃爍現(xiàn)象。動(dòng)態(tài)顯示的亮度不如靜態(tài)顯示,但靜態(tài)顯示占用的 I/O 口資源較多,往往用移位存放器 74LS164 等來(lái)擴(kuò)大-. z其 I/O 口缺乏的情況,當(dāng)顯示位數(shù)較多時(shí),這樣勢(shì)必增加硬件開(kāi)銷(xiāo),增大本錢(qián),不利于開(kāi)闊市場(chǎng)。本設(shè)計(jì)的突出之處在于硬件電路簡(jiǎn)單,大大減少了硬件開(kāi)銷(xiāo),這樣又勢(shì)必增加了軟件開(kāi)發(fā)的難度,但降低了本錢(qián)有利于市場(chǎng)的開(kāi)闊。本設(shè)計(jì)也存在的缺點(diǎn)是顯示亮度較靜態(tài)低,增加亮度方法是在 P0 口的各口分別加一放大倍數(shù)較小的三極管和一限流電阻來(lái)驅(qū)動(dòng) LED 的各段,這樣就增加了本設(shè)計(jì)沒(méi)有增加這一模塊,望讀者加
33、以注意。圖 3-2 主電路原理圖4 軟件設(shè)計(jì)軟件的設(shè)計(jì)是設(shè)計(jì)控制系統(tǒng)的應(yīng)用程序。其任務(wù)是在整體設(shè)計(jì)和硬件設(shè)計(jì)的根底上,確定程序構(gòu)造,分配 RAM 資源,劃分功能模塊,然后進(jìn)展主程序和各模塊程序的設(shè)計(jì),最后連接起來(lái)成為一個(gè)完整應(yīng)用程序,與硬件相結(jié)合完成相應(yīng)功能。-. z4.1 主程序設(shè)計(jì)主程序才用模塊化設(shè)計(jì),流程圖如圖 4-1 所示。從上面主程序看出,主程序的組成是通過(guò)分別調(diào)用各子程序組成總體系統(tǒng)功能,能很直觀的看出主程序所要完成的功能,首先是初始化各模塊,之后調(diào)用鍵盤(pán)完成時(shí)間的調(diào)整,調(diào)用日歷子程序完成日歷時(shí)鐘的初始化和時(shí)間數(shù)據(jù)的讀寫(xiě),調(diào)用溫度子程序完成溫度芯片的初始化和讀寫(xiě),調(diào)用鬧鐘子程序當(dāng)時(shí)
34、間到達(dá)定時(shí)時(shí)間時(shí)鬧鈴翻開(kāi),一分鐘后自動(dòng)關(guān)閉,調(diào)用顯示子程序顯示數(shù)據(jù),最后又轉(zhuǎn)到鍵盤(pán)程序來(lái)回循環(huán)。初始化局部主要有初始化定時(shí)器局部和和一些存放器、標(biāo)志位、初始化時(shí)間等對(duì)定時(shí)器 T0 初始化時(shí),首先置初值,CPU 開(kāi)中斷,定時(shí)器 T0 開(kāi)中斷,并且開(kāi)場(chǎng)計(jì)數(shù),而對(duì)定時(shí)器 T1 初始化時(shí),首先置初值, ,定時(shí)器 T1 關(guān)中斷,并且停頓計(jì)數(shù),只有收到命令時(shí)才能產(chǎn)生中斷。存放器的初始化主要是初始化執(zhí)行程序時(shí)用到的局部 RAM 空間,防止程序執(zhí)行時(shí)帶來(lái)混亂。標(biāo)志位初始化是對(duì)時(shí)間調(diào)整時(shí)判斷是調(diào)分還是調(diào)時(shí)等而專(zhuān)設(shè)的位標(biāo)志,初始化過(guò)程中標(biāo)志位全部置 0,即開(kāi)場(chǎng)時(shí)是處于顯示狀態(tài),而不是調(diào)整狀態(tài),這完畢 圖 4-1
35、主程序流程圖開(kāi)場(chǎng) 調(diào)鬧鐘子程序調(diào)顯示子程序調(diào)溫度子程序調(diào)日歷子程序初始化時(shí)間存放器初始化初始化 T0 并開(kāi)中斷標(biāo)志位初始化初始化 T1 并關(guān)中斷調(diào)鍵盤(pán)子程序-. z一點(diǎn)在程序中相當(dāng)明了。初始化時(shí)間是開(kāi)機(jī)時(shí)顯示的時(shí)間,并通過(guò)調(diào)用日歷時(shí)鐘的寫(xiě)程序來(lái)完成時(shí)間的置初值。4.2 鍵盤(pán)子程序設(shè)計(jì)多功能鍵盤(pán)程序的設(shè)計(jì)是本設(shè)計(jì)的難點(diǎn),也是完本錢(qián)設(shè)計(jì)的重點(diǎn),當(dāng)有鍵按下時(shí),調(diào)用 10ms 延時(shí)程序,再判斷是否有鍵按下無(wú)則返回,假設(shè)有先調(diào)用顯示程序再判斷是否松開(kāi),否則再轉(zhuǎn)到顯示程序,這樣防止了在按鍵松開(kāi)之前能正常顯示。其中 K1 鍵功能最多,通過(guò)判斷 K1 鍵按下的次數(shù)來(lái)判斷是調(diào)時(shí)間還是定時(shí),并對(duì)對(duì)應(yīng)的位置閃爍。本
36、鍵盤(pán)深度為 9 級(jí),即連續(xù)按下 K1 鍵 10 次時(shí)則返回到原來(lái)界面。當(dāng)判斷鍵值為 1 時(shí)則為調(diào)秒狀態(tài),對(duì)應(yīng)的秒低位閃爍,為2 時(shí)為調(diào)分狀態(tài)并分閃爍,為 3 時(shí)為調(diào)時(shí)狀態(tài)并時(shí)閃爍,為 4 時(shí)為調(diào)日狀態(tài)并日閃爍,為 5 時(shí)為調(diào)月?tīng)顟B(tài)并月閃爍,為 6 時(shí)為調(diào)年?duì)顟B(tài)并年閃爍,為 7 時(shí)為調(diào)星期狀態(tài)并星期閃爍,為 8 時(shí)為定時(shí)器設(shè)定分狀態(tài)并分閃爍,為 9 時(shí)為定時(shí)器設(shè)定時(shí)狀態(tài)并時(shí)閃爍。K2 為加 1 鍵,K3 為減 1 鍵,K4 為總返回鍵,即在調(diào)時(shí)見(jiàn)時(shí)不用只有按下 K1 鍵值為 10 才返回,而通過(guò)按下 K4 鍵即可返回。鍵盤(pán)子程序流程圖如圖 4-2 所示。在鍵盤(pán)子程序中當(dāng)判斷鍵值為 17 時(shí)是對(duì)時(shí)
37、間秒、分、時(shí)、日、月、年、星期調(diào)整原理和調(diào)秒一樣,當(dāng)判斷鍵值為 8、9 時(shí)是定時(shí)器分和時(shí)調(diào)整,此時(shí)秒顯示 0,分和時(shí)顯示為當(dāng)前定時(shí)值,但是沒(méi)有送 DS1302 這點(diǎn)和前不同,由于鍵盤(pán)流程圖非常復(fù)雜,在此省略了調(diào)分時(shí)等,望讀者注意加以區(qū)別。N開(kāi)場(chǎng) 有鍵按下.延時(shí) 10msK2 按下.K3 按下.K4 按下.K1 按下.調(diào)顯示K1 為 0.鍵值加 1Y調(diào)顯示有鍵按下.鍵值清 0標(biāo)志位清 0返回回 NNNYNYN下頁(yè)1YYY下頁(yè)31鍵值為 1.調(diào)顯示秒閃爍秒標(biāo)志位置1K2 按下.K3 按下.秒減1秒數(shù)據(jù)送DS1302秒加13YNYY鍵值為.N。 。 。 。 。 。 。 。 。 。 。 。 。 。 。
38、 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。圖 4-2 鍵盤(pán)子程序流程圖4.3 溫度子程序由于 DS18B20 采用的是單總線協(xié)議方式,即在一根數(shù)據(jù)線上實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,而對(duì) AT89S51 單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì) DS18B20 芯片的。由于-. zDS18B20 是在一根 I/O 線上讀寫(xiě)數(shù)據(jù),因此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20 有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為
39、從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)啟動(dòng)寫(xiě)時(shí)序開(kāi)場(chǎng),如果要求單總線器件回送數(shù)據(jù),在進(jìn)展寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。與 DS18B20 間的任何通迅都要從初始化時(shí)序開(kāi)場(chǎng), DS18B20 的初始化時(shí)序如圖 4-3 所示。主機(jī)發(fā)出復(fù)位脈沖后,最多在 60us 后要收到應(yīng)答信號(hào),否則說(shuō)明 DS18B20 不存在或損壞。-. zDS18B20 的寫(xiě)時(shí)序如圖 4-4 所示。DS18B20 的寫(xiě)時(shí)序分為寫(xiě)0”時(shí)序和寫(xiě)1”時(shí)序兩個(gè)過(guò)程。當(dāng)要寫(xiě)0”時(shí)序時(shí),單總線要被拉低至少 60us,保證DS18B20 能夠在 15us 到 45us 之間正確地采樣總線上的0”
40、電平;當(dāng)要寫(xiě)1”時(shí)序時(shí),單總線被拉低之后,在 15us 之就要釋放單總線,否則寫(xiě)入的是0”,而不是1”。DS18B20 的讀時(shí)序如圖 4-5 所示。當(dāng)主機(jī)把單總線拉低之后,讀時(shí)間隙開(kāi)場(chǎng),且最低保持低電平 1us,但在 15us 之必須釋放單總線,以讓 DS18B20 把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20 在完成一個(gè)讀時(shí)序過(guò)程,至少需要 60us 才能完成。DS18B20 轉(zhuǎn)換后的溫度值以 2 字節(jié) 16 位補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第主機(jī)發(fā)出復(fù)位脈沖最小值:480us最大值:960us主機(jī)接收最短時(shí)間:480us等待1560usDS18B20 應(yīng)答60240usVccGND 圖 4-3 D
41、S18B20 的初始化時(shí)序VccGND圖 4-4 DS18B20 的寫(xiě)時(shí)序主機(jī)寫(xiě)0時(shí)間隙DS18B20 采樣最小標(biāo)準(zhǔn) 1us15us15us30us主機(jī)寫(xiě)1時(shí)間隙DS18B20 采樣最小標(biāo)準(zhǔn) 1us15us15us30usVccGND圖 4-5 DS18B20 的讀時(shí)序主機(jī)讀0時(shí)間隙1us15us45us主機(jī)讀1時(shí)間隙1us15us主機(jī)采樣主機(jī)采樣-. z1、2 個(gè)字節(jié)里,高位在前,低位在后。所以讀取溫度時(shí),要分兩次進(jìn)展。讀溫度子程序如圖 4-6 所示。4.4 日歷時(shí)鐘子程序設(shè)計(jì)DS1302 與 CPU 的連接需要三條線,即 SCLK(7)、I/O(6)、RST(5)日歷時(shí)鐘 DS1302 的
42、讀寫(xiě)和溫度芯片 DS118B20 一樣,都需要初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)啟動(dòng)寫(xiě)時(shí)序開(kāi)場(chǎng),如果要求單總線器件回送RST 置 1開(kāi) 始發(fā)送 1 位命令碼命令碼8 位送完.寫(xiě)一位數(shù)據(jù)數(shù)據(jù)寫(xiě)完.RST 置 0a時(shí)鐘寫(xiě)結(jié) 束開(kāi) 始RST 置 1發(fā)送 1 位命令碼命令碼8 位送完.讀一位數(shù)據(jù)數(shù)據(jù)讀完.RST 置 0結(jié) 束b 時(shí)鐘讀圖 4-7 日歷時(shí)鐘的寫(xiě)和讀NYYYYNNN是低位在先。讀寫(xiě)都是 16 位數(shù)據(jù)高8 位是地址低 8 位是數(shù)據(jù),在讀寫(xiě)時(shí)要嚴(yán)格遵從其讀寫(xiě)時(shí)序,否則讀寫(xiě)將會(huì)失效。當(dāng) RST 為高電平時(shí),所有的數(shù)據(jù)
43、傳送被初始化,允許對(duì)DS1302 進(jìn)展操作。如果在傳送過(guò)程中 RST 置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O 引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc2.5V 之前,RST 必須保持低電平。只有在 SCLK 為低電平時(shí),才能將 RST 置為高電平,這一點(diǎn)我們要一定注意。當(dāng) RST 置為高電平時(shí),在串行時(shí)鐘的SCLK 的上升沿,DS1302 從 I/O 端口讀入一位數(shù)據(jù),8 個(gè)串行時(shí)鐘脈沖就可以讀入一字節(jié)的數(shù)據(jù)。在串行時(shí)鐘的下降沿,DS1302 向 I/O 端口輸出一位數(shù)據(jù),8 個(gè)串行時(shí)鐘脈沖就可以輸出一字節(jié)的數(shù)據(jù)。4.5 顯示子程序設(shè)計(jì)電子產(chǎn)品是否實(shí)用其中顯示占了很重要的地位,很多數(shù)人都渴求用視
44、覺(jué)效初始化 DS18B20發(fā)送讀溫度指令讀溫度計(jì)算溫度實(shí)際值顯示溫度啟動(dòng)下次溫度轉(zhuǎn)換圖 4-6 DS18B20 讀溫度流程圖完畢-. z果好,圍廣,直觀明了,LED 符合以上的要求,但相應(yīng)的硬件設(shè)計(jì)相對(duì)復(fù)雜。本設(shè)計(jì)的顯示局部具有消隱和閃爍功能,當(dāng)時(shí)分秒等高位為 0 時(shí)顯示消隱,此時(shí)在讀時(shí)間時(shí)更加明了,但低位不能顯示消隱。閃爍功能也是本設(shè)計(jì)的一個(gè)難點(diǎn),本設(shè)計(jì)采用 8 個(gè)位標(biāo)志位,其中一個(gè)標(biāo)志位通過(guò)用定時(shí)器 0 產(chǎn)生一個(gè)周期大約為每秒 1.5 次,使閃爍時(shí)效果到達(dá)最好。此時(shí)定時(shí)器采用定時(shí)中斷的工作方式,這樣可以充分利用 CPU 資源。另外 7 個(gè)標(biāo)志位是時(shí)分秒等的位標(biāo)志位,當(dāng)秒標(biāo)志位置 1 時(shí)即秒
45、開(kāi)閃爍,與用中斷產(chǎn)生的標(biāo)志位相結(jié)合,即在一個(gè)周期為 0 時(shí)此時(shí)消隱為 1 時(shí)開(kāi)顯示,這樣就使在調(diào)時(shí)間時(shí)對(duì)應(yīng)的位閃爍。由于時(shí)分秒年月日的顯示一樣,所以在流程圖中只給出了年的顯示過(guò)程,時(shí)分秒等省略,但有一點(diǎn)要注意的是星期顯示沒(méi)有高位所以只有判斷是否閃爍。在溫度顯示中有正負(fù)之分和高位是否消隱,讀者應(yīng)加一注意,溫度子程序流程圖如圖 4-8 所示。4.6 鬧鐘子程序鬧鐘子程序設(shè)計(jì)比擬簡(jiǎn)單,當(dāng)當(dāng)前時(shí)間和定時(shí)時(shí)間一樣時(shí),定時(shí)器 1 起動(dòng)開(kāi)中斷,蜂鳴器即發(fā)出響聲,響鈴時(shí)間可由自己設(shè)定,本設(shè)計(jì)采用響鈴一分鐘的設(shè)計(jì)方法來(lái)實(shí)現(xiàn)的,鬧鐘子程序流程圖如圖 4-9 所示。通過(guò)把以上子程序合理的安排即可實(shí)現(xiàn)所要設(shè)計(jì)的軟件系
46、統(tǒng),設(shè)計(jì)采用模塊化設(shè)計(jì)的方法,易于移植和調(diào)用,調(diào)試相對(duì)容易。這也是本設(shè)計(jì)的突出之處,這也是我們也經(jīng)常用到的。 。 。23H 高位1溫度高位顯示顯示低位結(jié) 束高位為 0.消隱顯示高位YNYNYN最后顯示C圖 4-8 顯示子程序流程圖年高位 0顯示高位年標(biāo)志位1顯示低位消隱低位閃爍開(kāi) 始ET1 和 TR1 置 1開(kāi) 始定時(shí)時(shí)間到.結(jié) 束YN圖 4-9 鬧鐘子程序流程圖5 系統(tǒng)調(diào)試單片機(jī)系統(tǒng)經(jīng)過(guò)總體設(shè)計(jì),完成了硬件和軟件設(shè)計(jì)開(kāi)發(fā)。通過(guò)軟件和硬件相結(jié)合系統(tǒng)即可運(yùn)行。但編制好的程序或焊接好的線路不能按預(yù)計(jì)的那樣正常工作是常見(jiàn)的事,經(jīng)常會(huì)出現(xiàn)一些硬件、軟件上的錯(cuò)誤,這是軟件和硬件開(kāi)發(fā)者-. z經(jīng)常遇見(jiàn)的,
47、這就需要通過(guò)調(diào)試來(lái)發(fā)現(xiàn)錯(cuò)誤并加以改正。調(diào)試可分為硬件調(diào)試和軟件調(diào)試。本設(shè)計(jì)系統(tǒng)的已經(jīng)在 PC 機(jī)上用模擬開(kāi)發(fā)軟件進(jìn)展了檢測(cè)和調(diào)試,并運(yùn)行成功,最后進(jìn)展實(shí)物圖的硬件組裝與調(diào)試,這樣就給開(kāi)發(fā)者在提供了方便。5.1 軟件調(diào)試本設(shè)計(jì)是在 Professiona 軟件和 Keil 51 軟件相結(jié)合調(diào)試的,完全用仿真軟件在 PC 機(jī)上對(duì)目標(biāo)電路原理圖和程序進(jìn)展檢測(cè)和調(diào)試。調(diào)試過(guò)程中單片機(jī)相應(yīng)輸入端由通用鍵盤(pán)和鼠標(biāo)設(shè)定,運(yùn)行狀態(tài)、各存放器狀態(tài)、端口狀態(tài)等都可以在指定的窗口區(qū)域顯示出來(lái),以確定程序運(yùn)行有無(wú)錯(cuò)誤。目標(biāo)程序糾錯(cuò):該階段工作通常在目標(biāo)程序編輯時(shí)就完成。一般來(lái)說(shuō),仿真軟件能為用戶(hù)輸入的程序指令糾錯(cuò),包
48、括書(shū)寫(xiě)格式、標(biāo)號(hào)未定義或多重定義、轉(zhuǎn)移地址溢出等錯(cuò)誤。子程序調(diào)試:程序設(shè)計(jì)通常采用模塊程序設(shè)計(jì),調(diào)試時(shí)可對(duì)一個(gè)個(gè)子程序分別進(jìn)展調(diào)試,設(shè)置好入口條件,然后采用單步運(yùn)行或斷點(diǎn)運(yùn)行方式,檢查系統(tǒng) CPU 現(xiàn)場(chǎng)、RAM 和 I/O 口狀態(tài),看程序執(zhí)行結(jié)果是否符合設(shè)計(jì)要求。整體程序調(diào)試:即把各子程序整體連起來(lái)進(jìn)入到綜合電路調(diào)試,看是否能實(shí)現(xiàn)預(yù)計(jì)的功能顯示。在這階段假設(shè)發(fā)生故障,可以考慮各子程序在運(yùn)行時(shí)是否破壞現(xiàn)場(chǎng),數(shù)據(jù)緩沖單元是否發(fā)生沖突,標(biāo)志位的建立和去除在設(shè)計(jì)上是否失誤,堆棧是否溢出,輸入輸出狀態(tài)是否正常等。用軟件模擬器調(diào)試不需任何在線仿真器,也不需要用戶(hù)樣機(jī),直接就可以在PC 機(jī)上開(kāi)發(fā)和調(diào)試。調(diào)試
49、和修改完畢后可以直接使用編程器將軟件固化在目標(biāo)系統(tǒng) ROM 中,然后投入運(yùn)行。5.2 硬件調(diào)試單片機(jī)應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開(kāi)的,許多硬件故障在軟件調(diào)試時(shí)才能發(fā)現(xiàn),但通常要先排除系統(tǒng)中明顯的硬件故障。調(diào)試工作可以分為四步:線路檢查:根據(jù)硬件邏輯設(shè)計(jì)圖,仔細(xì)檢查樣機(jī)線路是否連接正確,并核對(duì)元器件的型號(hào)、規(guī)格和安裝是否符合要求,必要時(shí)可用萬(wàn)用表檢測(cè)線路通斷-. z情況。電源調(diào)試:樣機(jī)的第一次通電測(cè)試很重要,假設(shè)樣機(jī)中存在電源故障,則加電后將造成器件損壞。調(diào)試的方法有兩種:一種是斷開(kāi)樣機(jī)穩(wěn)壓電源的輸出端,檢查空載時(shí)電源工作情況;另一種是拔下樣機(jī)上的主要集成芯片,檢查電源的負(fù)載能力用假負(fù)載
50、。確保電源無(wú)故障并性能符合設(shè)計(jì)要求。通電檢查:在確保電源良好前提下,接通電源。最好在電源與其余電路之間串接一個(gè)電流表。假設(shè)接通后電流很大,必須立即切斷電源。電源大得超出正常圍,說(shuō)明電路中有短路或故障。通電檢查的主要目的是看系統(tǒng)是否存在短路或由元器件損壞、裝配錯(cuò)誤引起的電流異常。檢查芯片的邏輯關(guān)系是否出錯(cuò):加電后檢查各芯片插座上相關(guān)引腳的電位,仔細(xì)測(cè)量相應(yīng)的輸入輸出電平是否正常。單片機(jī)系統(tǒng)大都是數(shù)字邏輯電路,使用電平檢查法可首先查出邏輯設(shè)計(jì)是否正確,選用器件和連接關(guān)系是否符合要求等。本設(shè)計(jì)特點(diǎn)突出,性?xún)r(jià)比高,適合于家庭掛歷,有很高應(yīng)用價(jià)值。結(jié)論硬件系統(tǒng)關(guān)系到所要設(shè)計(jì)的電子產(chǎn)品好懷,如系統(tǒng)抗干擾性
51、等,所以要合理的安排盡量減少干擾提高性能。單片機(jī)是很容易受干擾的控制器,當(dāng)采用外部晶振時(shí),應(yīng)盡量讓其靠近單片機(jī)減少對(duì)其干擾,防止程序亂飛現(xiàn)象。同時(shí)還可以采用隔離等方式減少干擾,硬件系統(tǒng)設(shè)計(jì)的好壞很大局部來(lái)源于經(jīng)歷,所以我們要有動(dòng)手的好習(xí)慣。軟件設(shè)計(jì)是核心局部,具有多樣化,靈活性高,易移植等優(yōu)點(diǎn),要深深理會(huì)各指令的含義才能更加熟練應(yīng)用,中斷的合理利用可以減少 CPU 利用資源,具有執(zhí)行效率高等優(yōu)點(diǎn),本設(shè)計(jì)用到定時(shí)器中斷以減少對(duì) CPU 的占用,更好的處理其他功能。軟件的設(shè)計(jì)大局部采用模塊化設(shè)計(jì)的方法以方便調(diào)試,并使其可讀性大大增強(qiáng),方便更改和移植。在這次設(shè)計(jì)中我學(xué)到了很多,也發(fā)現(xiàn)了自己的缺乏,也
52、難免有錯(cuò)誤之處,敬請(qǐng)?zhí)岢?!?. z12Y112MHZ12Y236.768KHZP1.0/T21P1.1/T2EX2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.6/CEX37P1.7/CEX48RST9P3.0/RxD10P3.1/TxD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119VSS20P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P2.7/A1528PSEN
53、29ALE/PROG30EA/VPP31P0.7/AD732P0.6/AD633P0.5/AD534P0.4/AD435P0.3/AD336P0.2/AD237P0.1/AD138P0.0/AD039VCC40U1AT89S52X12X23VCC21GND4RST5I/O6SCLK7VCC18U6DS1302DQ2GND1VCC3U5DS18B20A01A12A23OE24OE35OE16Y77GND8Y69Y510Y411Y312Y213Y114Y015VDD16U274HC138A01A12A23OE24OE35OE16Y77GND8Y69Y510Y411Y312Y213Y114Y015V
54、DD16U374HC138A01A12A23OE24OE35OE16Y77GND8Y69Y510Y411Y312Y213Y114Y015VDD16U474HC138C510UFR1300R910KLS1SpeakerS4S3S2S1A1f2g3e4d5A6c8DP7b9a10DS1A1f2g3e4d5A6c8DP7b9a10DS2A1f2g3e4d5A6c8DP7b9a10DS3A1f2g3e4d5A6c8DP7b9a10DS4A1f2g3e4d5A6c8DP7b9a10DS5A1f2g3e4d5A6c8DP7b9a10DS6A1f2g3e4d5A6c8DP7b9a10DS7A1f2g3e4d
55、5A6c8DP7b9a10DS8A1f2g3e4d5A6c8DP7b9a10DS9A1f2g3e4d5A6c8DP7b9a10DS13A1f2g3e4d5A6c8DP7b9a10DS12A1f2g3e4d5A6c8DP7b9a10DS11A1f2g3e4d5A6c8DP7b9a10DS10A1f2g3e4d5A6c8DP7b9a10DS14A1f2g3e4d5A6c8DP7b9a10DS15A1f2g3e4d5A6c8DP7b9a10DS16A1f2g3e4d5A6c8DP7b9a10DS17A1f2g3e4d5A6c8DP7b9a10DS18R2300R3300R4300R5300R6300
56、R7300R8300A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1A2A3A4A5A6A7A8A1
57、A2A3A4A5A6A7A8W1W2W3W4W5W6W7W8W9W10W11W12W13W14W15W16W17W18W1W2W3W4W5W6W7W8W9W10W11W12W13W14W15W16W17W18J1J2J3J1J2J3J1J2J3DQDQRSTRSTSCLKSCLKIOIOE1E2E3VCCVCCVCCVCCVCCVCCVCCVCCC122PFC222PFC322PFC422PFA1A2A3A4A5A6A7A8J1J2J3E1E2E3首先感學(xué)校在畢業(yè)之際給我們一個(gè)可能讓我們把所有的知識(shí)總結(jié)起來(lái)的時(shí)機(jī),通過(guò)這次畢業(yè)設(shè)計(jì),使我對(duì)以前所學(xué)的知識(shí)有了一個(gè)整體上的概括,也讓我們具體了解到了
58、每個(gè)元件在電路中的具體作用,了解到了它的功能、構(gòu)造。首先我要衷心的感胡學(xué)芝教師對(duì)我整個(gè)畢業(yè)設(shè)計(jì)由始至終地悉心催促指導(dǎo),并提供了大量而又詳實(shí)的資料給我,使我從困惑迷茫的初期走向論文的順利完成,在完成論文的同時(shí)也深受啟發(fā)和教育,使我受益終生。最后承受我最誠(chéng)摯的意!附錄一 原理圖附錄二 PCB 圖附錄三 程序清單/*/01232121212121123451098761234510987612345109876123451098761234510987612345109876123451098761234510987612345109876123451098761234510987612345109
59、876123451098761234510987612345109876123451098761234510987667891054321122121212121212121211212121212345678910111213141516171819204039383736353433323130292827262524232221910111213141516876543219101112131415168765432191011121314151687654321321123487652121-. zZHUAN BIT 50H ;閃爍標(biāo)志位輔助標(biāo)志位ZHUAN1 BIT 51H;年開(kāi)閃爍
60、的標(biāo)志位ZHUAN2 BIT 52H;月開(kāi)閃爍的標(biāo)志位ZHUAN3 BIT 53H;日開(kāi)閃爍的標(biāo)志位ZHUAN4 BIT 54H;時(shí)開(kāi)閃爍的標(biāo)志位ZHUAN5 BIT 55H;分開(kāi)閃爍的標(biāo)志位ZHUAN6 BIT 56H;秒開(kāi)閃爍的標(biāo)志位ZHUAN7 BIT 57H;星期開(kāi)閃爍的標(biāo)志位DQ EQU P1.7/*/ORG 0000HLJMP START;開(kāi)場(chǎng)并初始化ORG 000BH;T0 中斷處處LJMP ZDUANORG 001BHLJMP ZDUAN2ZDUAN:MOV TH0,*00H;使 ZHUAN 由正到負(fù)周期大約為 1.5 即當(dāng)開(kāi)閃爍時(shí);每秒大約閃爍 1.5 次環(huán)境MOV TL0,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 病床控制系統(tǒng)課程設(shè)計(jì)
- 玻璃安全評(píng)價(jià)課程設(shè)計(jì)
- 玻璃制品的設(shè)計(jì)課程設(shè)計(jì)
- 愛(ài)跳的猴子幼兒課程設(shè)計(jì)
- 愛(ài)護(hù)環(huán)境中班課程設(shè)計(jì)
- 爆破行業(yè)整合方案
- 爆炸技術(shù)課程設(shè)計(jì)
- 澳洲酒店收入審計(jì)方案
- 泵車(chē)公司薪酬方案
- 泵房實(shí)施封閉檢查方案
- 直播技巧培訓(xùn)
- 數(shù)據(jù)分析師歷年考試真題試題庫(kù)(含答案)
- 心房顫動(dòng)與認(rèn)知功能障礙發(fā)生機(jī)制研究進(jìn)展
- 2024年全國(guó)教育大會(huì)精神全文課件
- 2024年江蘇省高考化學(xué)試卷(含答案解析)
- 廣東省珠海市2023-2024學(xué)年六年級(jí)上學(xué)期數(shù)學(xué)期中試卷(含答案)
- 2024~2025學(xué)年高二地理期中考試模擬試卷【人教版選擇性必修一第一至三章】
- 山東省濟(jì)寧市曲阜市2024-2025學(xué)年九年級(jí)數(shù)學(xué)上學(xué)期期中試卷
- 2024統(tǒng)編新版小學(xué)四年級(jí)語(yǔ)文上冊(cè)第八單元:大單元整體教學(xué)設(shè)計(jì)
- 羽毛球運(yùn)動(dòng)教學(xué)與訓(xùn)練智慧樹(shù)知到答案2024年黑龍江農(nóng)業(yè)工程職業(yè)學(xué)院
- (完整版)工匠精神課件
評(píng)論
0/150
提交評(píng)論