版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、設(shè)計(jì)一種基于S51單片機(jī)的開發(fā)板,該開發(fā)板具有成本低、體積小、可靠性高、功能齊全、低功耗設(shè)計(jì)、操作方便等特點(diǎn)。本論文詳細(xì)介紹了該開發(fā)板的開發(fā)過程及相關(guān)硬件結(jié)構(gòu)和軟件設(shè)計(jì)。開發(fā)板以ATMEL公司的AT89S51單片機(jī)為核心控制器,板上資源主要包括數(shù)據(jù)采集處理模塊、DS1302時(shí)鐘模塊、通信模塊、液晶顯示模塊、鍵盤模塊等。針對(duì)各個(gè)硬件模塊開發(fā)了相應(yīng)的軟件模塊,包括各個(gè)控制驅(qū)動(dòng)程序、AD/DA程序、RS232/ RS485通信程序、液晶顯示程序等。開發(fā)板可以作為主控制模塊安裝于控制系統(tǒng)中執(zhí)行控制任務(wù),也可以用作實(shí)驗(yàn)板,完成單片機(jī)各類通用實(shí)驗(yàn),操作簡(jiǎn)單,控制結(jié)果可見,性價(jià)比高,可以應(yīng)用于高校、科研院所
2、的實(shí)驗(yàn)室等場(chǎng)合,具有一定的實(shí)用價(jià)值和現(xiàn)實(shí)意義。關(guān)鍵詞:S51 DS1302 通信 液晶顯示 鍵盤 AbstractDesign a development boardbased on S51 MCU,the board has characteristics of low cost, small size, high reliability, full-featured, low-power design and easy to operate. This paper introduces the development process of the development board and
3、 related hardware and software design. Development board using AT89S51 of ATMEL Corporation as core controller, resources on-board include data acquisition and processing module, DS1302 clock module, communication module, LCD module and keyboard module. Designsoftware modulecorresponding to each har
4、dware module, including the driver and controlprograms, AD/DAprograms, RS232/RS485 communication programs, liquid crystal display programs and so on. Development board can be used as the main control module installed in the control system to perform control tasks, also can be used as experimental bo
5、ard, complete all kinds of universal experimentsof MCU,operated simply, control results can be seen,high cost performance, can be applied to universities, research institutes, laboratories and so on, has some practical value and practical significance. Keywords:S51DS1302communicationLCDkeypad摘要1ABST
6、RACT21 前言12 系統(tǒng)方案22.1 總體設(shè)計(jì)方案22.2 設(shè)計(jì)原則23 硬件部分33.1 硬件結(jié)構(gòu)框圖33.2 硬件電路設(shè)計(jì)43.2.1 S51單片機(jī)主控制模塊43.2.2 鍵盤模塊43.2.3 AD模塊5a ADC0832簡(jiǎn)介5b 硬件實(shí)現(xiàn)63.2.4 DA模塊6a TLC5615簡(jiǎn)介6b 硬件實(shí)現(xiàn)73.2.5 DS1302時(shí)鐘模塊7a DS1302簡(jiǎn)介7b 硬件實(shí)現(xiàn)83.2.6 測(cè)溫模塊9a DS18B20簡(jiǎn)介9b 硬件實(shí)現(xiàn)103.2.7 串行通信模塊10a RS232串行通信模塊10b RS485串行通信模塊113.2.8 顯示模塊12a 數(shù)碼管模塊12b LCD1602模塊13c
7、 LCD12864模塊143.2.9 下載器模塊163.2.10 其他模塊174 軟件部分194.1 整體程序設(shè)計(jì)194.2 分模塊程序設(shè)計(jì)194.2.1 鍵盤模塊程序設(shè)計(jì)194.2.2 AD模塊程序設(shè)計(jì)20a ADC0832的工作時(shí)序20b AD程序流程圖214.2.3 DA模塊程序設(shè)計(jì)22a TLC5615的工作時(shí)序22b DA程序流程圖224.2.4 DS1302時(shí)鐘模塊程序設(shè)計(jì)23a DS1302的工作時(shí)序23b DS1302的寄存器24c DS1302時(shí)鐘程序流程圖244.2.5 測(cè)溫模塊程序設(shè)計(jì)25a DS18B20的工作時(shí)序25b 測(cè)溫程序流程圖274.2.6 串行通信模塊程序設(shè)
8、計(jì)28a RS232通信模塊程序設(shè)計(jì)28b RS485通信模塊程序設(shè)計(jì)294.2.7 顯示模塊程序設(shè)計(jì)30a 數(shù)碼管程序30b LCD1602顯示程序32c LCD12864顯示程序344.2.8 其他模塊38a 流水燈模塊程序設(shè)計(jì)38b 蜂鳴器模塊程序設(shè)計(jì)395 開發(fā)板設(shè)計(jì)及測(cè)試415.1 開發(fā)板PCB設(shè)計(jì)415.2 開發(fā)板測(cè)試416 結(jié)論43致謝44參考文獻(xiàn)45附錄46附錄1 鍵盤模塊部分程序46附錄2 AD模塊部分程序46附錄3 DA模塊部分程序48附錄4 DS1302時(shí)鐘模塊部分程序48附錄5 測(cè)溫模塊部分程序51附錄6 單片機(jī)通過MAX485與PC機(jī)通訊程序52附錄7 LCD1602
9、顯示模塊部分程序531前言單片機(jī)具有成本低、體積小、可靠性高、具有高附加值、通過更改軟件就可以改變控制對(duì)象等優(yōu)點(diǎn),單片機(jī)越來越成為電子工程師設(shè)計(jì)產(chǎn)品時(shí)的首選器件之一。因此擁有一塊單片機(jī)開發(fā)板對(duì)單片機(jī)學(xué)習(xí)具有著極其重要的意義。但是單片機(jī)學(xué)習(xí)效果的優(yōu)劣直接取決于單片機(jī)的選擇,C51系列單片機(jī)內(nèi)部具有128字節(jié)RAM、5個(gè)中斷源、32條I/O口線、2個(gè)16位定時(shí)器、4KB的程序存儲(chǔ)器、一個(gè)全雙工異步串行口。本開發(fā)板選擇具有ISP在線編程功能的S51單片機(jī),該單片機(jī)不需要燒寫器,可在開發(fā)板上ISP在線編程,具有廣泛的應(yīng)用前景。S51單片機(jī)除兼容C51單片機(jī)外,還具有工作頻率0至33MHz的高工作頻率;
10、可以滿足絕大多數(shù)的實(shí)際應(yīng)用開發(fā)需求,在開發(fā)板上使用十分方便。本課題設(shè)計(jì)的S51單片機(jī)開發(fā)板,具有一般開發(fā)板通用結(jié)構(gòu),并基于硬件進(jìn)行相關(guān)軟件設(shè)計(jì)。利用程序開發(fā)語言開發(fā)程序并實(shí)現(xiàn)ISP在線下載到單片機(jī),無需配置單獨(dú)的下載器。單片機(jī)使用ISP在線下載程序,加快了程序設(shè)計(jì)者調(diào)試的進(jìn)度,使設(shè)計(jì)者所設(shè)計(jì)的程序盡快得到驗(yàn)證。通過對(duì)開發(fā)板上的模塊進(jìn)行實(shí)驗(yàn),可以提高針對(duì)不同硬件進(jìn)行編程的能力,同時(shí)通過實(shí)驗(yàn)現(xiàn)象對(duì)所用的硬件也有了更深一步的認(rèn)識(shí),因此該開發(fā)板具有一定的實(shí)用價(jià)值和現(xiàn)實(shí)意義。2系統(tǒng)方案本開發(fā)板共分為十四個(gè)模塊,分別是:S51單片機(jī)主控制器模塊、鍵盤模塊、AD模塊、DA模塊、DS1302時(shí)鐘模塊、測(cè)溫模塊
11、、MAX232模塊、MAX485模塊、數(shù)碼管模塊、LCD1602模塊、LCD12864模塊、下載器模塊、流水燈模塊、蜂鳴器模塊。其中以S51單片機(jī)作為核心控制器;鍵盤模塊用來向單片機(jī)輸入特定編碼的信息;AD模塊用來實(shí)現(xiàn)模數(shù)轉(zhuǎn)換;DA模塊用來實(shí)現(xiàn)DA轉(zhuǎn)換;DS1302時(shí)鐘模塊用來實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘;測(cè)溫模塊用來測(cè)量環(huán)境溫度;RS232模塊和RS485模塊通過電平轉(zhuǎn)換實(shí)現(xiàn)通信;數(shù)碼管模塊用來顯示簡(jiǎn)單的數(shù)字、字母;LCD1602模塊用來顯示字母、數(shù)字、符號(hào);LCD12864模塊用來顯示圖像、符號(hào)、漢字;下載器模塊用來實(shí)現(xiàn)S51單片機(jī)的ISP在線編程;流水燈模塊用來顯示單片機(jī)I/O口電平的變化;蜂鳴器模塊用
12、來發(fā)出聲音。開發(fā)板系統(tǒng)的擴(kuò)展和配置應(yīng)遵循以下設(shè)計(jì)原則: (1)盡可能選擇典型電路,并符合單片機(jī)常規(guī)用法。為硬件系統(tǒng)的標(biāo)準(zhǔn)化、模塊化打下良好的基礎(chǔ);(2)系統(tǒng)擴(kuò)展與外圍設(shè)備的配置水平應(yīng)充分滿足應(yīng)用系統(tǒng)的功能要求,并留有適當(dāng)余地,以便進(jìn)行二次開發(fā); (3)硬件結(jié)構(gòu)應(yīng)結(jié)合應(yīng)用軟件方案一并考慮。硬件結(jié)構(gòu)與軟件方案會(huì)產(chǎn)生相互影響,考慮的原則是:軟件能實(shí)現(xiàn)的功能盡可能由軟件實(shí)現(xiàn),以簡(jiǎn)化硬件結(jié)構(gòu)。但必須注意,由軟件實(shí)現(xiàn)的硬件功能,一般響應(yīng)時(shí)間比硬件實(shí)現(xiàn)長(zhǎng),且占用CPU時(shí)間;(4)系統(tǒng)中的相關(guān)器件要盡可能做到性能匹配。如選用CMOS芯片單片機(jī)構(gòu)成低功耗系統(tǒng)時(shí),系統(tǒng)中所有芯片都應(yīng)盡可能選擇低功耗產(chǎn)品; (5)可
13、靠性及抗干擾設(shè)計(jì)是硬件設(shè)計(jì)必不可少的一部分,它包括芯片、器件選擇、去耦濾波、印刷電路板布線、通道隔離等;(6)單片機(jī)外圍電路較多時(shí),必須考慮其驅(qū)動(dòng)能力。驅(qū)動(dòng)能力不足時(shí),系統(tǒng)工作不可靠,可通過增設(shè)線驅(qū)動(dòng)器增強(qiáng)驅(qū)動(dòng)能力或減少芯片功耗來降低總線負(fù)載; (7)盡量朝“單片”方向設(shè)計(jì)硬件系統(tǒng)。系統(tǒng)器件越多,器件之間相互干擾也越強(qiáng),功耗也增大,也不可避免地降低了系統(tǒng)的穩(wěn)定性。3硬件部分總體硬件結(jié)構(gòu)主要包括:S51單片機(jī)主控制器模塊、鍵盤模塊、AD模塊、DA模塊、DS1302時(shí)鐘模塊、測(cè)溫模塊、MAX232模塊、MAX485模塊、數(shù)碼管模塊、LCD1602模塊、LCD12864模塊、下載器模塊、流水燈模塊、
14、蜂鳴器模塊。硬件結(jié)構(gòu)框圖如圖3-1所示: S51單片機(jī)主控制模塊DA模塊流水燈模塊蜂鳴器模塊AD模塊數(shù)碼管模塊LCD12864模塊LCD1602模塊MAX485模塊MAX232模塊下載器模塊鍵盤模塊DS1302實(shí)時(shí)時(shí)鐘模塊測(cè)溫模塊圖3-1 總體硬件結(jié)構(gòu)框圖硬件電路設(shè)計(jì)S51單片機(jī)最小系統(tǒng)包括:MCU、復(fù)位電路、晶振電路。原理圖如圖3-2所示: 圖3-2 S51單片機(jī)主控制模塊原理圖 采用按鍵復(fù)位方式,選取晶振為12MHZ,系統(tǒng)機(jī)器周期為1us。在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖3-3所示:圖3-3 鍵盤模塊原理圖JP7用來連接P2口與矩陣鍵盤模塊,在
15、矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P2口)就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵),在需要的按鍵數(shù)較多時(shí),采用矩陣法來做鍵盤是合理的。a ADC0832簡(jiǎn)介A/D轉(zhuǎn)換在單片機(jī)接口中應(yīng)用廣泛,串行A/D轉(zhuǎn)換器具有功耗低、性價(jià)比較高、芯片引腳少等特點(diǎn)。ADC0832是NS(National Semiconductor)公司生產(chǎn)的具有Microwire/Plus串行接口的8位A/D轉(zhuǎn)換器,通過三線接口與單片機(jī)連接
16、,適宜在袖珍式智能儀器中使用。主要性能指標(biāo)有:功耗低,只有15mW;8位分辨率,逐次逼近型,基準(zhǔn)電壓為5V;輸入模擬信號(hào)電壓范圍為05V;輸入和輸出電平與TTL和CMOS兼容;在250kHz時(shí)鐘頻率時(shí),轉(zhuǎn)換時(shí)間為32us;具有兩個(gè)可供選擇的模擬輸入通道。ADC0832有DIP和SOIC兩種封裝,DIP封裝的,ADC0832引腳排列如圖3-4所示:圖3-4 ADC0832引腳圖各引腳說明如下:CS片選端,低電平有效;CH0,CH1兩路模擬信號(hào)輸入端;D I兩路模擬輸入選擇輸入端;DO模數(shù)轉(zhuǎn)換結(jié)果串行輸出端;CLK串行時(shí)鐘輸入端;VCC /REF正電源端和基準(zhǔn)電壓輸入端;GND電源地。ADC083
17、2工作時(shí),模擬通道的選擇及單端輸入和差分輸入的選擇,都取決于輸入時(shí)序的配置位。當(dāng)差分輸入時(shí),要分配輸入通道的極性,兩個(gè)輸入通道的任何一個(gè)通道都可作為正極或負(fù)極。b 硬件實(shí)現(xiàn)AD模塊的原理圖如圖3-5所示:圖3-5 AD模塊原理圖單片機(jī)與ADC0832通過P2.5、P2.6、P2.7相連,分別為時(shí)鐘信號(hào)線、數(shù)據(jù)輸出信號(hào)線、片選信號(hào)線。開發(fā)板可外接模擬信號(hào),也可由電位器R7、R8將+5V分壓后提供兩路模擬信號(hào)。 a TLC5615簡(jiǎn)介TLC5615為美國(guó)德州儀器公司1999年推出的產(chǎn)品,是具有串行接口的數(shù)模轉(zhuǎn)換器,其輸出為電壓型,最大輸出電壓是基準(zhǔn)電壓值的兩倍。帶有上電復(fù)位功能,即把DAC寄存器復(fù)
18、位至全零。TLC5615性能價(jià)格比高,目前在國(guó)內(nèi)市場(chǎng)很方便購(gòu)買。主要性能指標(biāo)有:10位CMOS電壓輸出;5V單電源供電;與CPU三線串行接口;最大輸出電壓可達(dá)基準(zhǔn)電壓的二倍;輸出電壓具有和基準(zhǔn)電壓相同極性;建立時(shí)間12.5s;內(nèi)部上電復(fù)位;低功耗,最大僅1.75mW。 TLC5615有小型和塑料DIP封裝,DIP封裝的TLC5615芯片引腳排列如圖3-6所示:圖3-6 TLC5615引腳排列圖引腳功能說明如下: DIN串行數(shù)據(jù)輸入端; SCLK串行時(shí)鐘輸入端; CS芯片選用通端,低電平有效; DOUT用于級(jí)聯(lián)時(shí)的串行數(shù)據(jù)輸出端; AGND模擬地; REFIN基準(zhǔn)電壓輸入端; OUTDAC模擬電
19、壓輸出端; VDD正電源端。 b 硬件實(shí)現(xiàn)DA模塊的原理圖如圖3-7所示:圖3-7 DA模塊原理圖單片機(jī)與TLC5615通過P2.0、P2.1、P2.2相連,分別為片選信號(hào)線、時(shí)鐘信號(hào)線、數(shù)據(jù)輸入信號(hào)線。TLC5615轉(zhuǎn)換后的模擬信號(hào)通過OUT端輸出。aDS1302簡(jiǎn)介DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償功能,工作電壓寬達(dá)。采用三線接口與MCU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31*8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。主要性能指
20、標(biāo)有:31字節(jié)帶后備電池的RAM用于數(shù)據(jù)存儲(chǔ);串行I/O口,管腳數(shù)量少;寬范圍工作電壓:;工作電壓時(shí),電流小于300nA;讀/寫時(shí)鐘或RAM數(shù)據(jù)時(shí)有兩種傳送方式單字節(jié)傳送和突發(fā)模式傳送;8 腳DIP封裝或其他可選封裝方式;簡(jiǎn)單的3線接口;與TTL 兼容(Vcc = 5V);可選工業(yè)級(jí)溫度范圍:- 40+ 85;與DS1202 兼容。DS1302 的引腳如圖3-8所示:圖3-8 DS1302引腳圖Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2高于Vcc1 + 0. 2V時(shí),Vcc2給DS1302供
21、電。當(dāng)Vcc2低于Vcc1時(shí),DS1302由Vcc1 供電。X1、X2為振蕩源,外接32. 768 kHz晶振。I/O為串行數(shù)據(jù)輸入/輸出端(雙向),SCL K為時(shí)鐘輸入端。RST是復(fù)位片選線,通過把RST輸入驅(qū)動(dòng)置為高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:RST接通控制邏輯,允許地址/命令序列送入移位寄存器;RST提供了終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許DS1302進(jìn)行操作。如果在傳送過程中置RST為低電平,則會(huì)終止此次數(shù)據(jù)傳送,并且I/ O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc高于2. 5V之前,RST必須保持低電平。只有在SCL K
22、為低電平時(shí),才能將RST置為高電平。b 硬件實(shí)現(xiàn)DS1302時(shí)鐘模塊的原理圖如圖3-9所示:圖3-9 DS1302時(shí)鐘原理圖單片機(jī)與DS1302通過P3.5、P3.6、P3.7相連,分別為時(shí)鐘信號(hào)線、輸入輸出線、復(fù)位信號(hào)線。DS1302的晶振引腳連接32768HZ的晶振。a DS18B20簡(jiǎn)介DS18B20 是DALLAS 半導(dǎo)體公司生產(chǎn)的,是一種單總線溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,有兩種封裝形式分別為3腳PR-35封裝和16腳SSOP封裝。本文采用的是3腳PR-35封裝,其具有以下特點(diǎn):采用了單總線技術(shù),傳感器直接以二進(jìn)制輸出被測(cè)溫度,可通過串行口線,也可與單機(jī)通過I/
23、O 口連接;測(cè)量溫度范圍為:- 55+125,測(cè)量精度高達(dá);內(nèi)含寄生電源,在兩線方式下可通過數(shù)據(jù)線提供寄生電源,而不需要再單獨(dú)供電;轉(zhuǎn)換時(shí)間在分辨率為12位(即)時(shí)最大為750ms;用戶可分別對(duì)每個(gè)器件設(shè)定溫度上下限;DS18B20 在使用時(shí)不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作;每個(gè)DSl8B20 器件對(duì)應(yīng)一個(gè)唯一的64 位長(zhǎng)的序號(hào),該序號(hào)值存放ROM中,可通過序號(hào)匹配實(shí)現(xiàn)多點(diǎn)測(cè)溫。引腳排列如圖3-10所示: VDD:接電源引腳,電源供電;DQ:數(shù)據(jù)的輸入和輸出引腳;GND:接地圖3-10 DS18B2
24、0引腳圖b 硬件實(shí)現(xiàn)DS18b20溫度傳感器模塊的原理圖如圖3-11所示:圖3-11 DS18b20溫度傳感器模塊原理圖單片機(jī)與DS18B20通過P3.7相連,作為數(shù)據(jù)/控制信號(hào)線。a RS232串行通信模塊RS232是由電子工業(yè)協(xié)會(huì)(Electronic Industries Association,EIA) 所制定的異步傳輸標(biāo)準(zhǔn)接口。對(duì)于一般雙工通信,僅需幾條信號(hào)線就可實(shí)現(xiàn),如一條發(fā)送線、一條接收線及一條地線。RS232與TTL電路之間需要進(jìn)行電平和邏輯關(guān)系的變換。實(shí)現(xiàn)這種變換的方法可用分立元件,也可用集成電路芯片。MAX232芯片可完成TTLRS232雙向電平轉(zhuǎn)換。MAX232芯片是RS
25、232標(biāo)準(zhǔn)接口芯片,使用+5v單電源供電。是PC機(jī)與單片機(jī)串口進(jìn)行通訊的電平轉(zhuǎn)換芯片。內(nèi)部結(jié)構(gòu)基本可分三個(gè)部分:第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS232數(shù)據(jù)從T1OU
26、T、T2OUT送到電腦DP9插頭;DP9插頭的RS232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第三部分是供電。15腳DNG、16腳VCC(+5V)。MAX232模塊的原理圖如圖3-12所示:圖3-12 MAX232模塊的原理圖單片機(jī)與MAX232通過P3.0、P3.1相連,分別為發(fā)送線、接收線,另外單片機(jī)要與MAX232共地。b RS485串行通信模塊RS232由于傳輸速率慢,傳輸距離短,傳輸信號(hào)易受外界的干擾等缺點(diǎn)。新的串行通訊接口標(biāo)準(zhǔn)RS-449被制定出來,與之相對(duì)應(yīng)的是RS-485的電氣標(biāo)準(zhǔn)。RS-485是美國(guó)電氣工業(yè)聯(lián)合會(huì)(EIA)制定的
27、利用平衡雙絞線作傳輸線的多點(diǎn)通訊標(biāo)準(zhǔn)。它采用差分信號(hào)進(jìn)行傳輸;最大傳輸距離可以達(dá)到1.2 km;最大可連接32個(gè)驅(qū)動(dòng)器和收發(fā)器;接收器最小靈敏度可達(dá)±200 mV;最大傳輸速率可達(dá)2.5 Mb/s。由此可見,RS-485協(xié)議正是針對(duì)遠(yuǎn)距離、高靈敏度、多點(diǎn)通訊制定的標(biāo)準(zhǔn)。MAX485的引腳和結(jié)構(gòu)如下圖3-13所示:圖3-13 MAX485的引腳和結(jié)構(gòu)該芯片采用單一電源+5 V工作,額定電流為300 A,采用半雙工通訊方式。它完成將TTL電平轉(zhuǎn)換為RS-485電平的功能。MAX485芯片的結(jié)構(gòu)和引腳都非常簡(jiǎn)單,內(nèi)部含有一個(gè)驅(qū)動(dòng)器和接收器。RO和DI端分別為接收器的輸出和驅(qū)動(dòng)器的輸入端,與
28、單片機(jī)連接時(shí)只需分別與單片機(jī)的RXD和TXD相連即可;/RE和DE端分別為接收和發(fā)送的使能端,當(dāng)/RE為邏輯0時(shí),器件處于接收狀態(tài);當(dāng)DE為邏輯1時(shí),器件處于發(fā)送狀態(tài),因?yàn)镸AX485工作在半雙工狀態(tài),所以只需用單片機(jī)的一個(gè)管腳控制這兩個(gè)引腳即可;A端和B端分別為接收和發(fā)送的差分信號(hào)端,當(dāng)A引腳的電平高于B時(shí),代表發(fā)送的數(shù)據(jù)為1;當(dāng)A的電平低于B端時(shí),代表發(fā)送的數(shù)據(jù)為0。在與單片機(jī)連接時(shí)接線非常簡(jiǎn)單。只需要一個(gè)信號(hào)控制MAX485的接收和發(fā)送即可。同時(shí)將A和B端之間加匹配電阻,一般可選100的電阻。MAX485模塊的原理圖如圖3-14所示:圖3-14 MAX485模塊原理圖單片機(jī)與MAX485
29、通過P3.0、P3.1、P3.2相連,分別為接收輸出線、發(fā)送輸入線、發(fā)送/接收使能信號(hào)線。a 數(shù)碼管模塊(1) 數(shù)碼管驅(qū)動(dòng)采用8位數(shù)據(jù)緩沖器74HC573,其功能表如下表3-1所示:表3-1 74HC573功能表OPERATINGMODESINPUTINTERNALLATCHESOUTPUTSOELEDNQ0 to Q7enable and read registerLHLLLLHHHHLatch and read registerLLILLLLhHHLatch register and disable outputsHLILZHLhHZ注意:H=高電平h=要保持高電平到低電平轉(zhuǎn)變時(shí)一個(gè)建立周
30、期以上的高電平L=低電平I=要保持高電平到低電平轉(zhuǎn)變時(shí)一個(gè)建立周期以上的低電平Z=高組態(tài) 選用74HC573增強(qiáng)驅(qū)動(dòng)能力,提高數(shù)碼管顯示亮度。A-DP對(duì)應(yīng)八段數(shù)碼管的各段,當(dāng)A-DP中有低電平輸出時(shí),被低電平片選中的數(shù)碼管的相應(yīng)段點(diǎn)亮。(2) 硬件實(shí)現(xiàn):數(shù)碼管模塊的原理圖如圖3-15所示:圖3-15 數(shù)碼管模塊原理圖單片機(jī)與74HC573通過P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7相連,作為段碼信號(hào)線;與74HC138通過P1.0、P1.1、P1.2相連,作為片選信號(hào)線。b LCD1602模塊(1) LCD1602簡(jiǎn)介:LCD1602點(diǎn)陣字符液晶模塊是由點(diǎn)
31、陣字符液晶顯示器件和專用的行列驅(qū)動(dòng)器,控制器及必要的連接件,結(jié)構(gòu)件裝配而成,可以顯示數(shù)字和英文字符。LCD1602采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表3-2所示:表3-2 LCD1602引腳接口圖編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)續(xù)表3-2 LCD1602引腳接口圖4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極(2) 硬件實(shí)現(xiàn):LCD1602模塊的原理圖如圖3-16所示:圖3-16 L
32、CD1602模塊原理圖P0.7為數(shù)據(jù)線,P1.0、P1.1、P1.2為控制線。c LCD12864模塊 (1) LCD12864簡(jiǎn)介:LCD12864漢字圖形點(diǎn)陣液晶顯示模塊可以顯示漢字、圖形、ASC碼和自定義字形,內(nèi)置8192個(gè)16*16的中文漢字、128個(gè)8*16字符、以及64*256點(diǎn)陣顯示RAM,控制器為ST7920,具有串/并接口方式,其內(nèi)部含有中文字庫,LCD12864顯示屏為128*64點(diǎn)陣,可顯示4行,每行8個(gè)字,模塊內(nèi)含有多種軟件功能:光標(biāo)顯示、畫面移位、自定義字符、反白、清除、關(guān)閉顯示和睡眠模式等,可方便地對(duì)模塊進(jìn)行控制。模塊內(nèi)置升壓電路,無需負(fù)壓,配置LED背光。3V低電
33、平工作時(shí),只需一個(gè)20K的電阻與Vo的地相接。適用于3.3V5V寬范圍工作電壓的系統(tǒng)。RS,R/W的配合決定的4種模式見表3-3:表3-3 RS,R/W決定的控制模式RSR/W功能說明LLMPU寫指令到指令暫存器(IR)LH讀出忙標(biāo)志(BF)及地址記數(shù)器(AC)的狀態(tài)HLMPU寫入數(shù)據(jù)到數(shù)據(jù)暫存器(DR)HHMPU從數(shù)據(jù)暫存器(DR)中讀出數(shù)據(jù)E信號(hào)的狀態(tài)產(chǎn)生的動(dòng)作見表3-4:表3-4 E信號(hào)的狀態(tài)產(chǎn)生的動(dòng)作E狀態(tài)執(zhí)行動(dòng)作結(jié)果高>低I/O緩沖>DR配合/W進(jìn)行寫數(shù)據(jù)或指令高DR>I/O緩沖配合R進(jìn)行讀數(shù)據(jù)或指令低/低>高無動(dòng)作 LCD12864的并行接口見表
34、3-5:表3-5 LCD12864的并行接口管腳號(hào)管腳名稱電平管腳功能描述1VSS0V電源地2VCC3.0+5V電源正3V0-對(duì)比度(亮度)調(diào)整4RS(CS)H/LRS=“H”,表示DB7DB0為顯示數(shù)據(jù)RS=“L”,表示DB7DB0為顯示指令數(shù)據(jù)5R/W(SID)H/LR/W=“H”,E=“H”,數(shù)據(jù)被讀到DB7DB0R/W=“L”,E=“HL”, DB7DB0的數(shù)據(jù)被寫到IR或DR6E(SCLK)H/L使能信號(hào)7DB0H/L三態(tài)數(shù)據(jù)線8DB1H/L三態(tài)數(shù)據(jù)線9DB2H/L三態(tài)數(shù)據(jù)線10DB3H/L三態(tài)數(shù)據(jù)線11DB4H/L三態(tài)數(shù)據(jù)線12DB5H/L三態(tài)數(shù)據(jù)線13DB6H/L三態(tài)數(shù)據(jù)線14D
35、B7H/L三態(tài)數(shù)據(jù)線15PSBH/LH:8位或4位并口方式,L:串口方式(見注釋1)16NC-空腳17/RESETH/L復(fù)位端,低電平有效(見注釋2)18VOUT-LCD驅(qū)動(dòng)電壓輸出端19AVDD背光源正端(+5V)(見注釋3)20KVSS背光源負(fù)端(見注釋3)*注釋1:如在實(shí)際應(yīng)用中僅使用并口通訊模式,可將PSB接固定高電平,也可以將模塊上的J8和“VCC”用焊錫短接。*注釋2:模塊內(nèi)部接有上電復(fù)位電路,因此在不需要經(jīng)常復(fù)位的場(chǎng)合可將該端懸空。 *注釋3:如背光和模塊共用一個(gè)電源,可以將模塊上的JA、JK用焊錫短接。 (2) 硬件實(shí)現(xiàn):開發(fā)板上LCD12864模塊的原理圖如圖3-17所示:圖
36、3-17 LCD12864模塊原理圖P0.7為數(shù)據(jù)線,P1.0、P1.1、P1.2為控制線。ATmega8是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間, ATmega8 的數(shù)據(jù)吞吐率高達(dá) 1MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。ATmega8有如下特點(diǎn):8K字節(jié)的系統(tǒng)內(nèi)可編程 Flash(具有同時(shí)讀寫的能力,即 RWW),512 字節(jié) EEPROM,1K 字節(jié) SRAM,32個(gè)通用I/O口線,32 個(gè)通用工作寄存器,三個(gè)具有比較模式的靈活的定時(shí)器 / 計(jì)數(shù)器 (T/C), 片內(nèi) / 外中斷,可編程串行 USA
37、RT,面向字節(jié)的兩線串行接口,10 位6 路(8 路為 TQFP與MLF 封裝)ADC,具有片內(nèi)振蕩器的可編程看門狗定時(shí)器,一個(gè)SPI 串行端口,以及五種可以通過軟件進(jìn)行選擇的省電模式。工作于空閑模式時(shí) CPU 停止工作,而 SRAM、T/C、SPI 端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時(shí)晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;在省電模式下,異步定時(shí)器繼續(xù)運(yùn)行,允許用戶保持一個(gè)時(shí)間基準(zhǔn),而其余功能模塊處于休眠狀態(tài);ADC噪聲抑制模式時(shí)終止CPU 和除了異步定時(shí)器與ADC 以外所有 I/O 模塊的工作,以降低ADC 轉(zhuǎn)換時(shí)的開關(guān)噪聲;Standby 模式下只有晶體或諧振振蕩器
38、運(yùn)行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時(shí)具有快速啟動(dòng)能力。 ATMEGA8L的引腳配置如下圖3-18所示:圖3-18 ATMEGA8L的引腳配置圖下載器模塊原理圖如圖3-19所示:圖3-19下載器模塊原理圖下載器模塊實(shí)現(xiàn)將USB信號(hào)轉(zhuǎn)換為能通過SPI協(xié)議傳輸?shù)男盘?hào),從而實(shí)現(xiàn)對(duì)單片機(jī)的編程。流水燈模塊、蜂鳴器模塊的原理圖如圖3-20、圖3-21所示:圖3-20 流水燈模塊原理圖 圖3-21蜂鳴器模塊原理圖如圖3-20所示流水燈模塊包含8個(gè)LED燈,單片機(jī)的P0口接10K上拉電阻,八個(gè)LED的負(fù)極依次連接單片機(jī)P0口的8個(gè)引腳,八個(gè)LED的正極依次與510歐姆的排阻的八個(gè)端子
39、相連,排阻的公共端連接短路插針的一端,短路插針的另一端與電源相連,因此,若將短路插針用短路帽短路,則八個(gè)LED的正極上拉到高電平, LED低電平點(diǎn)亮。如圖3-21所示,單片機(jī)的P3.4與Q1的基極通過1K歐姆電阻連接,當(dāng)P3.4為高電平時(shí),Q1導(dǎo)通,Q1的發(fā)射極與集電極導(dǎo)通,將發(fā)射極下拉為低電平,蜂鳴器兩端出現(xiàn)電位差,蜂鳴器發(fā)聲;當(dāng)P3.4為低電平時(shí),Q1不導(dǎo)通,蜂鳴器兩端沒有電流流過,蜂鳴器不發(fā)聲??偨Y(jié):對(duì)硬件的設(shè)計(jì)采用模塊化設(shè)計(jì)方法,采用的電路為典型應(yīng)用電路,資源配置合理,通過使用短路帽連接相應(yīng)的功能模塊,降低了功耗,減弱了器件之間的相互干擾,提高了系統(tǒng)穩(wěn)定性,硬件工作穩(wěn)定可靠。4軟件部分
40、軟件部分主要包括數(shù)碼管程序、鍵盤程序、AD程序、DA程序、DS1302時(shí)鐘程序、DS18b20溫度傳感器程序、串行通信程序、顯示程序和其他簡(jiǎn)單模塊程序。依據(jù)開發(fā)板上硬件資源,進(jìn)行程序的開發(fā),在軟件的設(shè)計(jì)過程中,采用模塊化的設(shè)計(jì)方法,依次分別為每個(gè)模塊設(shè)計(jì)軟件。下面分別介紹以上各個(gè)模塊的程序設(shè)計(jì)。鍵盤模塊程序設(shè)計(jì)矩陣式鍵盤的按鍵識(shí)別方法為:判斷鍵盤中有無鍵按下:將全部行線KEY0-KEY3置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 判斷閉合鍵所在的位置:在確認(rèn)有鍵按下
41、后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。 矩陣式鍵盤的按鍵編碼處理:將行線和列線依次進(jìn)行數(shù)值編碼,然后進(jìn)行一定規(guī)則的運(yùn)算,就是對(duì)鍵值的編碼。 鍵盤程序流程圖如圖4-1所示:開始鍵盤掃描有鍵按下取鍵值YN原有鍵值不變鍵值送P0口選通數(shù)碼管圖4-1 鍵盤程序流程圖鍵盤采用的是行掃描法確定鍵值,在程序中具體是這樣掃描鍵盤的:將鍵盤掃描碼送入P2口,先是使行線依次為低電平,順序?yàn)镵EY1、KEY2、KEY3、KE
42、Y4,在某一行線為低電平的狀態(tài)下,讀取P2口的狀態(tài),將狀態(tài)值依次右移四位,這樣便將KEY5-KEY8的狀態(tài)值移到了低四位,再將高四位狀態(tài)值置一,將處理后的狀態(tài)值與當(dāng)前的掃描碼比較,如果此時(shí)的狀態(tài)值與四個(gè)掃描碼中的一個(gè)相同,證明有鍵按下,此時(shí)保存掃描碼的數(shù)組下標(biāo)和與狀態(tài)值相等的掃描碼數(shù)組下標(biāo),并將兩個(gè)值按照鍵盤編碼值進(jìn)行某一規(guī)則的四則運(yùn)算后返回給主函數(shù)中的某一變量;如果在全部行線依次為低電平情況下的狀態(tài)值與四個(gè)掃描碼中沒有一個(gè)相同,證明沒有鍵按下,返回-1到主函數(shù)。在主函數(shù)中調(diào)用鍵盤掃描函數(shù)對(duì)鍵盤進(jìn)行掃描,判斷返回鍵值,若返回值不為-1,證明右鍵按下,在某一個(gè)數(shù)碼管上顯示鍵值,若返回值為-1,證
43、明沒有鍵按下,顯示先前按下的按鍵鍵值。模塊程序設(shè)計(jì)a ADC0832的工作時(shí)序ADC0832的工作時(shí)序圖如圖4-2所示:圖4-2 ADC0832的工作時(shí)序圖當(dāng)CS由高變低時(shí),選中ADC0832。在時(shí)鐘的上升沿,D I端的數(shù)據(jù)移ADC0832內(nèi)部的多路地址移位寄存器。在第一個(gè)時(shí)鐘期間, D I為高,表示啟動(dòng)位,緊接著輸入兩位配置位。當(dāng)輸入啟動(dòng)位和配置位后,選通輸入模擬通道,轉(zhuǎn)換開始。轉(zhuǎn)換開始后,經(jīng)過一個(gè)時(shí)鐘周期延遲,以使選定的通道穩(wěn)定。ADC0832 接著在第4個(gè)時(shí)鐘下降沿輸出轉(zhuǎn)換數(shù)據(jù)。數(shù)據(jù)輸出時(shí)先輸出最高位(D7D0);輸出完轉(zhuǎn)換結(jié)果后,又以最低位開始重新輸出一遍數(shù)據(jù)(D7D0),兩次發(fā)送的最
44、低位共用。當(dāng)片選CS為高時(shí),內(nèi)部所有寄存器清0,輸出變?yōu)楦咦钁B(tài)。如果要再進(jìn)行一次模/數(shù)轉(zhuǎn)換,片選CS必須再次從高向低跳變,后面再輸入啟動(dòng)位和配置位。b AD程序流程圖AD程序流程圖如4-3所示:開始啟動(dòng)AD轉(zhuǎn)換輸入方式選擇輸入通道選擇讀取數(shù)據(jù)數(shù)據(jù)處理與顯示圖4-3 AD程序流程圖依據(jù)操作時(shí)序?qū)DC0832編程,包括轉(zhuǎn)換啟動(dòng)和AD值讀取函數(shù),在AD轉(zhuǎn)換函數(shù)中可以選擇ADC0832的轉(zhuǎn)換通道和輸入方式,即通道0或通道1,單通道輸入或差分輸入。在主函數(shù)中循環(huán)讀取某一通道的模擬電壓值,將采集到的數(shù)據(jù)由16進(jìn)制轉(zhuǎn)換為ASCLL碼。并在液晶或數(shù)碼管上顯示出來。設(shè)計(jì)a TLC5615的工作時(shí)序TLC561
45、5的工作時(shí)序如圖4-4所示:圖4-4TLC5615的時(shí)序圖由時(shí)序圖可以看出,當(dāng)片選CS為低電平時(shí),輸入數(shù)據(jù)DIN由時(shí)鐘SCLK同步輸入或輸出,而且最高有效位在前,低有效位在后。輸入時(shí)SCLK的上升沿把串行輸入數(shù)據(jù)DIN移入內(nèi)部的16位移位寄存器,SCLK的下降沿輸出串行數(shù)據(jù)DOUT,片選CS的上升沿把數(shù)據(jù)傳送至DAC寄存器。當(dāng)片選CS為高電平時(shí),串行輸入數(shù)據(jù)DIN不能由時(shí)鐘同步送入移位寄存器;輸出數(shù)據(jù)DOUT保持最近的數(shù)值不變而不進(jìn)入高阻狀態(tài)。由此要想串行輸入數(shù)據(jù)和輸出數(shù)據(jù)必須滿足兩個(gè)條件:第一時(shí)鐘SCLK的有效跳變;第二片選CS為低電平。這里,為了使時(shí)鐘的內(nèi)部饋通最小,當(dāng)片選CS為高電平時(shí),
46、輸入時(shí)鐘SCLK應(yīng)當(dāng)為低電平。 串行數(shù)模轉(zhuǎn)換器TLC5615的使用有兩種方式,即級(jí)聯(lián)方式和非級(jí)聯(lián)方式。如不使用級(jí)聯(lián)方式,DIN只需輸入12位數(shù)據(jù)。DIN輸入的12位數(shù)據(jù)中,前10位為TLC5615輸入的D/A轉(zhuǎn)換數(shù)據(jù),且輸入時(shí)高位在前,低位在后,后兩位必須寫入數(shù)值為零的低于LSB的位,因?yàn)門LC5615的DAC輸入鎖存器為12位寬。如果使用TL5615的級(jí)聯(lián)功能,來自DOUT的數(shù)據(jù)需要輸入16位時(shí)鐘下降沿,因此完成一次數(shù)據(jù)輸入需要16個(gè)時(shí)鐘周期,輸入的數(shù)據(jù)也應(yīng)為16位。輸入的數(shù)據(jù)中,前4位為高虛擬位,中間10位為D/A轉(zhuǎn)換數(shù)據(jù),最后2位為低于LSB的位即零。b DA程序流程圖DA程序流程圖如圖
47、4-5所示:開始TLC5615片選使能時(shí)鐘上升沿讀取數(shù)據(jù)12位數(shù)據(jù)讀取完畢TLC5615片選禁能YN圖4-5 DA程序流程圖DS1302時(shí)鐘模塊程序設(shè)計(jì)a DS1302的工作時(shí)序DS1302 的復(fù)位特征和時(shí)鐘控制要求:復(fù)位(RST) 輸入有兩種功能:首先,用于接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,用于終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送。當(dāng)為RST高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302 進(jìn)行操作。如果在傳送過程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,并且I/ O 引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc之前,RST必須保持低電平。另外,當(dāng)RST為高電平時(shí),SCLK必須為低電
48、平。DS1302 的數(shù)據(jù)輸入輸出:向DS1302 寫入數(shù)據(jù)時(shí),數(shù)據(jù)在控制字節(jié)輸入后的下一個(gè)SCLK周期的上升沿被寫入,多余的SCLK將被忽略。數(shù)據(jù)寫入時(shí)從低位(位0) 開始;同樣,從DS1302 讀取數(shù)據(jù)時(shí),數(shù)據(jù)在緊跟控制字節(jié)后的下一個(gè)SCLK的下降沿讀出,讀出數(shù)據(jù)時(shí)也是從低位(0位) 到高位(7位) ,只要RST 保持高電平,額外的SCLK將導(dǎo)致數(shù)據(jù)字節(jié)的持續(xù)讀出,這個(gè)特性用于實(shí)現(xiàn)該芯片的突發(fā)讀模式。數(shù)據(jù)讀寫時(shí)序如圖4-6所示:圖4-6 DS1302的讀寫時(shí)序突發(fā)模式下,可以一次性讀出所有日歷時(shí)鐘數(shù)據(jù)或RAM數(shù)據(jù)。b DS1302的寄存器DS1302 共有12 個(gè)寄存器,其中有7 個(gè)寄存器與
49、日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD 碼格式。其日歷、時(shí)間寄存器及其控制字見表4-1:表4-1 DS1302的寄存器寄存器名命令字取值范圍各位內(nèi)容寫操作讀操作76543210秒寄存器80H81H00-59啟動(dòng)十位個(gè)位分寄存器82H83H00-590十位個(gè)位時(shí)寄存器84H85H00-12或00-2312/24010/AP十位個(gè)位日寄存器86H87H01-28,29,30,3100十位個(gè)位月寄存器88H89H01-12000十位個(gè)位周寄存器8AH8BH01-0700000個(gè)位年寄存器8CH8DH00-99十位個(gè)位c DS1302時(shí)鐘程序流程圖DS1302時(shí)鐘程序流程圖如圖4-7所示:開始讀取DS1
50、302的秒值寫入允許時(shí)鐘芯片關(guān)閉N寫入初始化時(shí)間寫入禁止獲取時(shí)鐘芯片的時(shí)間時(shí)間、日期數(shù)據(jù)轉(zhuǎn)化為液晶字符顯示Y圖4-7 DS1302時(shí)鐘程序流程圖在程序中定義了一個(gè)結(jié)構(gòu)體,用來存儲(chǔ)秒、分、時(shí)、星期、日、月、年信息,對(duì)DS1302的寄存器地址進(jìn)行了聲明,方便在編程時(shí)使用,依據(jù)DS1302讀寫單字節(jié)數(shù)據(jù)時(shí)序圖編寫實(shí)時(shí)時(shí)鐘讀寫一個(gè)字節(jié)的函數(shù),依據(jù)DS1302讀寫數(shù)據(jù)時(shí)序圖編寫向DS1302某地址寫入數(shù)據(jù)和從DS1302某地址讀出數(shù)據(jù)的函數(shù),從DS1302某地址讀出數(shù)據(jù)可以獲取時(shí)鐘芯片的時(shí)鐘數(shù)據(jù)到自定義的結(jié)構(gòu)型數(shù)組中,這樣單片機(jī)就可以實(shí)時(shí)的從DS1302獲取時(shí)間了,向DS1302某地址寫入數(shù)據(jù)可以實(shí)現(xiàn)單
51、片機(jī)對(duì)DS1302進(jìn)行時(shí)間的初始化和修改操作。設(shè)計(jì)a DS18B20的工作時(shí)序單總線在任何時(shí)刻只能有一個(gè)控制信號(hào)或數(shù)據(jù),數(shù)據(jù)要能在單片機(jī)和單總線芯片之間實(shí)現(xiàn)可靠的傳送,遵循單總線處理次序通信協(xié)議,確保數(shù)據(jù)有條不紊地傳送,單總線處理次序圖如圖4-8所示:圖4-8 單總線處理次序圖處理次序操作時(shí),一般有以下4 個(gè)過程:(1)初始化?;趩慰偩€上的所有傳輸過程都是以初始化開始的,初始化過程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。(2)ROM 操作命令。在主機(jī)檢測(cè)到應(yīng)答信號(hào)后,主機(jī)可以發(fā)出ROM 操作命令之一。所有的ROM 命令都是8 位,而且這些命令
52、與各個(gè)從機(jī)設(shè)備的唯一64位ROM代碼相關(guān),允許主機(jī)在單總線上連接多個(gè)從機(jī)設(shè)備時(shí),指定操作某個(gè)從機(jī)設(shè)備??砂l(fā)送的ROM 命令有:讀ROM,匹配ROM,搜索ROM,跳過ROM,超ROM,超速跳過ROM,條件查找ROM。(3)RAM 操作命令。當(dāng)成功執(zhí)行上述某個(gè)ROM 操作命令后,總線可以發(fā)出一個(gè)RAM 命令來訪問和控制RAM??砂l(fā)送的RAM 命令有:寫暫存RAM,讀暫存RAM,復(fù)制暫存RAM,數(shù)據(jù)轉(zhuǎn)換,回讀E2PROM,讀電源模式。(4)數(shù)據(jù)交換。主機(jī)和從機(jī)之間進(jìn)行數(shù)據(jù)的傳輸,所有的數(shù)據(jù)都是從低位開始讀寫的。所有的單總線器件要求采用嚴(yán)格的通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了幾種信號(hào):復(fù)位脈沖
53、、應(yīng)答脈沖、寫0、寫1、讀0 和讀1。這些信號(hào)當(dāng)中,除了應(yīng)答信號(hào)是由從機(jī)發(fā)給主機(jī)的以外,其他的信號(hào)都是由主機(jī)發(fā)出同步信號(hào),并且發(fā)送所有的命令和數(shù)據(jù)都是從字節(jié)的低位開始的。單總線上的所有通信都是以初始化時(shí)序開始,包括主機(jī)發(fā)出的復(fù)位脈沖及從機(jī)的應(yīng)答脈沖,初始化時(shí)序如圖4-9所示:圖4-9 初始化時(shí)序當(dāng)主機(jī)把數(shù)據(jù)從邏輯高電平拉到邏輯低電平時(shí),寫時(shí)序開始,寫“1”和“0”, 寫時(shí)序如圖4-10所示:圖4-10 寫時(shí)序圖4-11 讀時(shí)序b 測(cè)溫程序流程圖測(cè)溫程序流程圖如圖4-12所示: 開始DS18B20初始化跳過讀序列號(hào)操作啟動(dòng)溫度轉(zhuǎn)換延時(shí)DS18B20初始化跳過讀序列號(hào)操作讀取溫度寄存器值延時(shí)讀取溫
54、度值低位讀取溫度值高位相加的溫度值溫度值轉(zhuǎn)化為液晶字符圖4-12 DS18b20溫度傳感器程序流程圖根據(jù)初始化時(shí)序?qū)S18B20進(jìn)行初始化,根據(jù)讀寫時(shí)序?qū)S18B20進(jìn)行讀寫編程,另外,在循環(huán)讀取溫度數(shù)據(jù)后,要將讀取的溫度數(shù)據(jù)轉(zhuǎn)換為可以在液晶上顯示的液晶字符。a RS232通信模塊程序設(shè)計(jì)單片機(jī)通過MAX232與PC機(jī)通訊程序流程圖4-13所示: 開始串口初始化保存數(shù)據(jù)發(fā)送數(shù)據(jù)RI等于1YNTI等于1RI置零TI置零YN4-13 單片機(jī)通過MAX232與PC機(jī)通訊程序流程圖在PC機(jī)串口調(diào)試助手的發(fā)送窗口發(fā)送數(shù)據(jù)到單片機(jī),單片機(jī)接收到數(shù)據(jù)后發(fā)送給PC機(jī),并在串口調(diào)試助手接收窗口中顯示。 b RS485通信模塊程序設(shè)計(jì)單片機(jī)通過MAX485與PC機(jī)通訊程序流程圖如圖4-14所示:開始串口初始化保存數(shù)據(jù)發(fā)送數(shù)據(jù)RI等于1YNTI等于1RI置零TI置零YN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025貴州省安全員-C證(專職安全員)考試題庫
- 2025年甘肅建筑安全員C證考試題庫
- 珍愛生命-校園行為規(guī)范與安全教育班會(huì)課件
- 小學(xué)心理健康輔導(dǎo)家長(zhǎng)會(huì)課件
- 《PMC作業(yè)指引》課件
- DB61T-稻麥(油)輪作主要病蟲害防控技術(shù)規(guī)范編制說明
- 培訓(xùn)課件-車輛消防安全知識(shí)培訓(xùn)
- 單位管理制度展示選集【人力資源管理】十篇
- 單位管理制度展示大全【員工管理】
- 【物理課件】速度改變快慢的描述課件
- 迪士尼樂園總體規(guī)劃
- 惠州學(xué)院《大學(xué)物理》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024消防安全警示教育(含近期事故案例)
- Starter Section 1 Meeting English 說課稿 -2024-2025學(xué)年北師大版(2024)初中英語七年級(jí)上冊(cè)
- 2025年蛇年年度營(yíng)銷日歷營(yíng)銷建議【2025營(yíng)銷日歷】
- 2024年法律職業(yè)資格考試(試卷一)客觀題試卷及解答參考
- 食堂項(xiàng)目經(jīng)理培訓(xùn)
- 安全經(jīng)理述職報(bào)告
- 福建省泉州市2023-2024學(xué)年高一上學(xué)期期末質(zhì)檢英語試題 附答案
- 建筑項(xiàng)目經(jīng)理招聘面試題與參考回答(某大型集團(tuán)公司)2024年
- 安保服務(wù)評(píng)分標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論