《STC系列單片機(jī)項(xiàng)目實(shí)踐》課件(共九章)_第1頁(yè)
《STC系列單片機(jī)項(xiàng)目實(shí)踐》課件(共九章)_第2頁(yè)
《STC系列單片機(jī)項(xiàng)目實(shí)踐》課件(共九章)_第3頁(yè)
《STC系列單片機(jī)項(xiàng)目實(shí)踐》課件(共九章)_第4頁(yè)
《STC系列單片機(jī)項(xiàng)目實(shí)踐》課件(共九章)_第5頁(yè)
已閱讀5頁(yè),還剩153頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

STC系列單片機(jī)項(xiàng)目實(shí)踐項(xiàng)目一LED燈設(shè)計(jì)Contents123項(xiàng)目分析支撐知識(shí)實(shí)驗(yàn)儀4項(xiàng)目實(shí)施1項(xiàng)目分析選用LED燈作為本書的入門項(xiàng)目,主要目的是通過(guò)該項(xiàng)目簡(jiǎn)要介紹后續(xù)項(xiàng)目中要用到的基礎(chǔ)知識(shí)和開發(fā)工具,主要包括:STC單片機(jī)的基本結(jié)構(gòu)及基本資源、GPIO口的特性和使用方法、CCIT

STC單片機(jī)綜合實(shí)驗(yàn)儀使用方法和Keil

μVision4編輯環(huán)境的使用。

通過(guò)LED燈項(xiàng)目的設(shè)計(jì),用戶能夠?qū)TC單片機(jī)的基本資源(特別是GPIO口)、CCITSTC單片機(jī)綜合實(shí)驗(yàn)儀使用和Keil

μVision4編輯環(huán)境的使用有初步的了解,為后續(xù)項(xiàng)目的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。

2支撐知識(shí)支撐知識(shí)123STC單片機(jī)簡(jiǎn)介Keil開發(fā)環(huán)境CCITSTC單片機(jī)綜合實(shí)驗(yàn)儀STC單片機(jī)簡(jiǎn)介1單片機(jī)全稱為單片微型計(jì)算機(jī)(SingleChipMicrocontroller),又稱為MCU(MicrocontrollerUnit),是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A-D轉(zhuǎn)換器等電路)集成到一塊芯片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng)。本書適用的STC15系列單片機(jī)產(chǎn)品有STC15F2K60S2、IAP15F2K61S2、STC15F104W、等型號(hào)。STC15F2K60S2單片機(jī)內(nèi)部包含CPU、程序存儲(chǔ)器(Flash)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、I/O接口、通用異步串行通信接口、高速A-D轉(zhuǎn)換模塊、看門狗電路和片內(nèi)RC振蕩器等模塊。Keil開發(fā)環(huán)境2

Keil軟件是目前最流行開發(fā)IAP系列單片機(jī)的軟件,Keil提供了一個(gè)包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案。2.1開發(fā)環(huán)境的啟動(dòng)2.2新建工程2.3保存工程2.4選擇芯片廠商2.5選擇芯片具體型號(hào)

2.6新建文件2.7保存文件2.8加入工程2.9添加頭文件3實(shí)驗(yàn)儀3.1實(shí)驗(yàn)儀布局3.2了解實(shí)驗(yàn)儀實(shí)物圖及其外圍接口3.3下載調(diào)試方法4項(xiàng)目實(shí)施4.1IO口復(fù)用實(shí)驗(yàn)儀通過(guò)P0口復(fù)用實(shí)現(xiàn)對(duì)8個(gè)LED小燈的控制,復(fù)用的方法是使用74HC138譯碼器對(duì)74HC573鎖存器進(jìn)行片選,以增強(qiáng)實(shí)驗(yàn)儀的擴(kuò)展接口功能。4.2軟件設(shè)計(jì)4.3流水燈設(shè)計(jì)項(xiàng)目2簡(jiǎn)易計(jì)算器設(shè)計(jì)副標(biāo)題2.1學(xué)習(xí)目標(biāo)[知識(shí)目標(biāo)]

掌握GPIO口的配置方法;

掌握鍵盤的硬件設(shè)計(jì)原理;

掌握行列式鍵盤的驅(qū)動(dòng)原理;

掌握數(shù)碼管的硬件設(shè)計(jì)方法及其驅(qū)動(dòng)原理。

[能力目標(biāo)]

能夠熟練使用查詢方式識(shí)別按鍵;

能夠熟練使用復(fù)用引腳驅(qū)動(dòng)數(shù)碼管的顯示;

能夠CCITSTC單片機(jī)綜合實(shí)驗(yàn)儀Keil編輯環(huán)境下編寫和在線調(diào)試簡(jiǎn)易計(jì)算器程序。

2.2項(xiàng)目分析選用簡(jiǎn)易計(jì)算器設(shè)計(jì)項(xiàng)目,主要目的是通過(guò)該項(xiàng)目簡(jiǎn)要介紹鍵盤、數(shù)碼管的驅(qū)動(dòng)原理和編程方法,具體包括:GPIO口的配置、行列式鍵盤的識(shí)別、多位數(shù)碼管的顯示驅(qū)動(dòng)、GPIO

口的復(fù)用方法和簡(jiǎn)易計(jì)算器的綜合調(diào)試。簡(jiǎn)易計(jì)算器項(xiàng)目主要是設(shè)計(jì)兩個(gè)子任務(wù):行列式鍵盤掃描和多位數(shù)碼管顯示。通過(guò)這兩

個(gè)子任務(wù)的整合設(shè)計(jì)實(shí)現(xiàn)簡(jiǎn)易計(jì)算器的加、減、乘、除功能。通過(guò)該項(xiàng)目的訓(xùn)練,使讀者可以靈活運(yùn)用鍵盤和數(shù)碼管這兩個(gè)常用輸入和輸出模塊,同時(shí)進(jìn)一步熟悉STC單片機(jī)的基本資源,為后續(xù)項(xiàng)目的學(xué)習(xí)奠定基礎(chǔ)。

2.4支撐知識(shí)2.4.1行列式鍵盤1鍵盤模型及接口

鍵盤是由若干個(gè)按鍵組成的開關(guān)矩陣,它是嵌入式系統(tǒng)中最簡(jiǎn)單的數(shù)字量輸入設(shè)備,操作員通過(guò)鍵盤輸入數(shù)據(jù)或命令,實(shí)現(xiàn)簡(jiǎn)單的人-機(jī)通信。

(1)鍵盤模型

鍵盤的基本電路是一個(gè)接觸開關(guān),通、斷兩種狀態(tài)分別表示0和1,微處理器可以容易地檢測(cè)到開關(guān)的閉合。當(dāng)開關(guān)打開時(shí),提供邏輯“1”;當(dāng)開關(guān)

閉合時(shí),提供邏輯“0”。鍵盤接口1)獨(dú)立方式。獨(dú)立方式是指將每個(gè)獨(dú)立按鍵按一對(duì)一的方式直接接到I/O輸入線上,讀鍵值時(shí)直接讀I/O口,每一個(gè)鍵的狀態(tài)通過(guò)讀入鍵值來(lái)反映,所以也稱這種方式為一維直讀方式(按習(xí)慣稱為獨(dú)立式)。這種方式查鍵實(shí)現(xiàn)簡(jiǎn)單,但占用I/O資源較多,一般在鍵的數(shù)量較少時(shí)采用。

鍵盤接口2)矩陣方式。矩陣方式是用n條I/O線組成行輸入口,m?xiàng)lI/O線組成列輸出口,在

行列線的每一個(gè)交點(diǎn)上設(shè)置一個(gè)按鍵。讀鍵值方法一般采用掃描方式,即輸出口按位輪換輸出低電平,再?gòu)妮斎肟谧x入鍵信息,最后獲得鍵碼。這種方式占用I/O線較少,在實(shí)際應(yīng)用系統(tǒng)中采用較多。

鍵盤的基本問(wèn)題

為了能實(shí)現(xiàn)對(duì)鍵盤的編程,應(yīng)該了解下面幾個(gè)問(wèn)題:第一,如何識(shí)別鍵盤上的按鍵?第二,如何區(qū)分按鍵是被真正地按下,還是抖動(dòng)?第三,如何處理重鍵問(wèn)題?了解這些問(wèn)題有助于鍵盤編程。

(1)鍵盤識(shí)別

如何知道鍵盤上哪個(gè)鍵被按下就是鍵的識(shí)別問(wèn)題。若鍵盤上閉合鍵的識(shí)別由專用硬件實(shí)現(xiàn),稱為編碼鍵盤;而靠軟件實(shí)現(xiàn)的稱為未編碼鍵盤。在這里,主要討論未編碼鍵盤的接口技術(shù)和鍵輸入程序的設(shè)計(jì)。識(shí)別是否有鍵被按下,主要用查詢法。而要識(shí)別鍵盤上哪個(gè)鍵被按下,主要有行掃描法。

(2)抖動(dòng)問(wèn)題

當(dāng)手按下一個(gè)鍵時(shí),會(huì)出現(xiàn)所按的鍵在閉合位置和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài)的情況,當(dāng)釋放一個(gè)按鍵時(shí)也會(huì)出現(xiàn)類似的情況,這就是抖動(dòng)問(wèn)題。抖動(dòng)持續(xù)的時(shí)間因操作者而異,一般為5~10ms之間,穩(wěn)定閉合時(shí)間一般為十分之幾秒至幾秒,由操作者的按鍵動(dòng)作所確定。在軟件上,解決抖動(dòng)的方法通常是延遲等待抖動(dòng)的消失或多次識(shí)別判定。4×4行列式鍵盤驅(qū)動(dòng)設(shè)計(jì)分析

行列式鍵盤掃描驅(qū)動(dòng)的步驟:

1)判斷有無(wú)鍵閉合。

使行線P3.0~P3.3都輸出0,檢測(cè)列線P3.4、P3.5、P4.2、P4.4是否全為1。如果有鍵被按下,就會(huì)有某一根列線變?yōu)椋?,從而使P?4、P3.5、P4.2、P4.4不為全1;如果P3.4、P3.5、P4.2、P4.4為全1,說(shuō)明無(wú)鍵閉合。

2)消除鍵抖動(dòng)。

在檢測(cè)到有鍵閉合后,需延時(shí)10~20ms,避開抖動(dòng)階段,然后再檢測(cè)P3.4、P3.5、P4.2、P4.4是否為全1。如果為全1,作無(wú)鍵閉合處理,否則,則進(jìn)一步檢測(cè)閉合鍵鍵號(hào)。

3)確定閉合鍵鍵號(hào)。

如果有鍵按下,再逐行逐列地掃描,以檢測(cè)出所按鍵的鍵號(hào)。先使行線P3.0~P3.3=0111,分別檢測(cè)P3.4、P3.5、P4.2、P4.4。如果P3.4為0,則為1號(hào)鍵按下了;如果P3.5為0,則為2號(hào)鍵按下了。如果P3.4、P3.5、P4.2、P4.4都為1,說(shuō)明P3.4、P3.5、P4.2、P4.4這一行上沒有鍵被按下,再使P3.0~P3.3=1011,并逐列檢查。這樣依次地逐行逐列地掃描,直至找到閉合鍵為止。

鍵盤通用函數(shù)編程2.4.2數(shù)碼管驅(qū)動(dòng)4位數(shù)碼管驅(qū)動(dòng)設(shè)計(jì)分析

關(guān)于數(shù)碼管的硬件接線,使用宏定義描述硬件接線,且每個(gè)接線單獨(dú)宏定義,更具普適性,這樣,若數(shù)碼管SEG接在MCU的不同引腳,只需修改SEG的硬件接線宏定義即可。關(guān)于位選問(wèn)題,設(shè)置靜態(tài)變量bsel(初值為0x01)作為數(shù)碼管片選端的位選信號(hào),每隔10ms左右,循環(huán)左移1次,由于人眼的“視覺暫留”,可穩(wěn)定地在2個(gè)4位數(shù)碼管上穩(wěn)定顯示8?jìng)€(gè)字節(jié)的數(shù)據(jù)。

2.5項(xiàng)目實(shí)施

通過(guò)行列式鍵盤掃描,在兩個(gè)4位數(shù)碼管上動(dòng)態(tài)顯示相應(yīng)的鍵值和計(jì)算結(jié)果值。定義三個(gè)字符a、b、c作為操作數(shù)、被操作數(shù)以及結(jié)果,利用顯示緩存來(lái)存放鍵盤輸入的數(shù)值,主循環(huán)中不斷調(diào)用顯示函數(shù)及鍵盤掃描函數(shù),確保穩(wěn)定顯示以及按鍵能得到及時(shí)響應(yīng)。如果有鍵被按下,就將顯示緩存現(xiàn)有的內(nèi)容右移一位,將按鍵的鍵值填入顯示緩存的最高位,同時(shí)在LED顯示器上顯示出來(lái),當(dāng)按下“+、-、"、/”任意符號(hào)鍵時(shí),先將顯示緩存中已輸入的數(shù)值保存到字符a中作為被操作數(shù),然后把后續(xù)的按鍵值再逐次放到顯示緩存中,當(dāng)按下“=”鍵時(shí),再將顯示緩存中已輸入的數(shù)值保存到字符b中作為操作數(shù),同時(shí)運(yùn)算得出結(jié)果,并保存在字符c中,將c的數(shù)值顯示在數(shù)碼管上;當(dāng)下“C”鍵時(shí),表示清零。

2.6項(xiàng)目小結(jié)程序中,可利用顯示緩存來(lái)存放輸入的鍵值,主循環(huán)中應(yīng)不斷調(diào)用顯示函數(shù)keycount()函數(shù)和segdisp(dbuf)函數(shù),實(shí)現(xiàn)計(jì)算器功能,按鍵掃描函數(shù)和數(shù)碼管顯示函數(shù)均通過(guò)構(gòu)建通用函數(shù)實(shí)現(xiàn)構(gòu)建化編程。本實(shí)驗(yàn)通過(guò)IAP15F2K61S2與74HC138連接,對(duì)74HC573鎖在芯片進(jìn)行片選,通過(guò)P0口控制數(shù)碼管的段碼和位碼數(shù)據(jù)的輸入,通過(guò)P2口實(shí)現(xiàn)對(duì)P0口的片選復(fù)用。項(xiàng)目實(shí)驗(yàn)例程編譯下載后,單片機(jī)復(fù)位運(yùn)行,應(yīng)該可以看到第1位數(shù)碼管顯示0,接著通過(guò)按鍵可以實(shí)現(xiàn)8位以內(nèi)整數(shù)的加、減、乘、除的四則運(yùn)算。

項(xiàng)目3數(shù)字溫度計(jì)設(shè)計(jì)3.1學(xué)習(xí)目標(biāo)[知識(shí)目標(biāo)]

了解LCD1602液晶屏的工作原理、主要技術(shù)參數(shù)及指令功能;

了解DS18B20溫度傳感器的引腳定義、溫度數(shù)據(jù)格式及指令功能;

掌握LCD1602液晶的讀寫時(shí)序及DS18B20溫度傳感器的單總線協(xié)議;

掌握數(shù)字溫度計(jì)的設(shè)計(jì)方法。[能力目標(biāo)]

能夠讀懂?dāng)?shù)據(jù)手冊(cè),在LCD1602液晶屏上顯示字符;

能夠根據(jù)單總線協(xié)議獲取到DS18B20感測(cè)到的溫度值;

能夠在一個(gè)工程中進(jìn)行模塊化編程;

能夠編譯、下載并調(diào)試程序。

3.2項(xiàng)目分析本項(xiàng)目闡述制作一個(gè)數(shù)字溫度計(jì)的過(guò)程,該溫度計(jì)可以感測(cè)當(dāng)前環(huán)境的溫度,并能將溫度值在LCD1602液晶屏上顯示出來(lái)。為達(dá)到項(xiàng)目功能要求,將采用自制實(shí)驗(yàn)平臺(tái)CCITSTC實(shí)驗(yàn)板上的LCD1602液晶模塊和DS18B20模塊來(lái)實(shí)現(xiàn)相關(guān)功能,單片機(jī)通過(guò)讀?。模樱保福拢玻澳K感測(cè)到的當(dāng)前溫度值,然后將該值寫入LCD1602液晶屏中顯示輸出。

3.4支撐知識(shí)3.4.1LCD1602液晶屏驅(qū)動(dòng)

2讀寫時(shí)序3編程方法3編程方法4LCD1602驅(qū)動(dòng)設(shè)計(jì)分析初始化函數(shù)寫命令函數(shù)讀命令函數(shù)寫數(shù)據(jù)函數(shù)指定位置顯示字符串函數(shù)3.4.2DS18B20溫度傳感器驅(qū)動(dòng)

DS18B20是由美國(guó)美信半導(dǎo)體公司生產(chǎn)的單線智能溫度傳感器,提供9~12位攝氏溫度的測(cè)量,廣泛應(yīng)用于工業(yè)、民用和軍事等領(lǐng)域的溫度測(cè)量及控制儀器、測(cè)控系統(tǒng)和大型設(shè)備中。它具有體積小、低功耗、接口簡(jiǎn)單、傳輸距離遠(yuǎn)等特點(diǎn)。

DS18B20溫度傳感器有三種封裝,如SO(DS18B20)、uSOP(DS18B20U)和TO-92封裝,具體樣式可參考數(shù)據(jù)手冊(cè)。CCITSTC實(shí)驗(yàn)板上采用的是最常用的TO-92封裝,外觀像一個(gè)普通直插晶體管一樣。溫度數(shù)據(jù)格式

DS18B20內(nèi)部有9個(gè)8位的寄存器,跟溫度值相關(guān)的是起始兩個(gè)寄存器(TMSB和TLSB),分別用來(lái)存放當(dāng)前測(cè)到的溫度值。為什么要用兩個(gè)寄存器來(lái)存儲(chǔ)溫度值呢?

DS18B20通過(guò)編程可以實(shí)現(xiàn)最高12位的溫度存儲(chǔ),那么一個(gè)8位寄存器顯然放不下12位數(shù)據(jù),所以必須要用兩個(gè)寄存器。實(shí)際上,對(duì)于12位溫度值,TMSB,中的高5位存放的是12位溫度值的符號(hào)位(圖中的S位),低3位存放的是12位溫度值的高3位,TLSB則存放12位溫度值的低8位。

單總線協(xié)議

數(shù)據(jù)手冊(cè)中DS18B20的初始化時(shí)序圖,如圖所示,這幅圖詳細(xì)描述了初始化時(shí)DQ數(shù)據(jù)線上電平隨時(shí)間的變化關(guān)系:

①由單片機(jī)(主機(jī))發(fā)出復(fù)位脈沖,該脈沖最短時(shí)間為480μs。所謂復(fù)位脈沖,其實(shí)就是將DQ數(shù)據(jù)線電平拉低;

②單片機(jī)釋放DQ數(shù)據(jù)線。這時(shí)候由于上拉電阻的作用,DQ數(shù)據(jù)線上的電平會(huì)被拉高。所謂釋放DQ數(shù)據(jù)線,其實(shí)就是將DQ數(shù)據(jù)線電平拉高;

③經(jīng)過(guò)單片機(jī)完成①之后的15~60μs等待,如果總線上存在DS18B20,則DS18B20將發(fā)出一個(gè)存在脈沖,該脈沖的時(shí)間為60~240μs。所謂存在脈沖,其實(shí)也是將DQ數(shù)據(jù)線拉低;

④DS18B20發(fā)送完存在脈沖后,DQ數(shù)據(jù)線恢復(fù)為空閑狀態(tài),也就是高電平。單總線協(xié)議

寫‘0’時(shí)序

①由單片機(jī)(主機(jī))將DQ數(shù)據(jù)線電平拉低,持續(xù)時(shí)間為60~120μs。

②單片機(jī)釋放DQ數(shù)據(jù)線。這時(shí)候由于上拉電阻的作用,DQ數(shù)據(jù)線上的電平會(huì)被拉高。所謂釋放DQ數(shù)據(jù)線,其實(shí)就是將DQ數(shù)據(jù)線拉高。

③實(shí)際上,在單片機(jī)拉低DQ數(shù)據(jù)線15μs之后,DS18B20會(huì)在15μs~60μs之間來(lái)對(duì)DQ數(shù)據(jù)線進(jìn)行采樣,采樣的典型值是在30μs的時(shí)刻讀取,最遲也會(huì)在60μs時(shí)刻才讀??;

寫‘1’時(shí)序

①由單片機(jī)(主機(jī))將DQ數(shù)據(jù)線電平拉低,持續(xù)時(shí)間為大于1μs。

②單片機(jī)立即釋放DQ數(shù)據(jù)線。這時(shí)候由于上拉電阻的作用,DQ數(shù)據(jù)線上的電平會(huì)被拉高。需要注意的是,釋放總線的時(shí)間需要保持至少60μs。

③與寫‘0’類似,DS18B20會(huì)在DS18B20會(huì)在15~60μs之間來(lái)對(duì)DQ數(shù)據(jù)線進(jìn)行采

樣,來(lái)讀取這個(gè)‘1’單總線協(xié)議

DS18B20的讀時(shí)序圖的左半部分是讀‘0’時(shí)序,右半部分是讀‘1’時(shí)序。當(dāng)單片機(jī)去寫DS18B20時(shí),單片機(jī)將所要傳送的數(shù)據(jù)送到DQ數(shù)據(jù)線,然后DS18B20來(lái)采樣DQ上的數(shù)據(jù)。反過(guò)來(lái),當(dāng)單片機(jī)來(lái)讀DS18B20時(shí),DS18B20需要將所要傳送的數(shù)據(jù)送到DQ,然后由單片機(jī)來(lái)采樣DQ上的數(shù)據(jù)。

單總線協(xié)議

寫‘0’時(shí)序

①由單片機(jī)(主機(jī))將DQ數(shù)據(jù)線電平拉低,持續(xù)時(shí)間為60~120μs。

②單片機(jī)釋放DQ數(shù)據(jù)線。這時(shí)候由于上拉電阻的作用,DQ數(shù)據(jù)線上的電平會(huì)被拉高。所謂釋放DQ數(shù)據(jù)線,其實(shí)就是將DQ數(shù)據(jù)線拉高。

③實(shí)際上,在單片機(jī)拉低DQ數(shù)據(jù)線15μs之后,DS18B20會(huì)在15μs~60μs之間來(lái)對(duì)DQ數(shù)據(jù)線進(jìn)行采樣,采樣的典型值是在30μs的時(shí)刻讀取,最遲也會(huì)在60μs時(shí)刻才讀??;

寫‘1’時(shí)序

①由單片機(jī)(主機(jī))將DQ數(shù)據(jù)線電平拉低,持續(xù)時(shí)間為大于1μs。

②單片機(jī)立即釋放DQ數(shù)據(jù)線。這時(shí)候由于上拉電阻的作用,DQ數(shù)據(jù)線上的電平會(huì)被拉高。需要注意的是,釋放總線的時(shí)間需要保持至少60μs。

③與寫‘0’類似,DS18B20會(huì)在DS18B20會(huì)在15~60μs之間來(lái)對(duì)DQ數(shù)據(jù)線進(jìn)行采

樣,來(lái)讀取這個(gè)‘1’。溫度傳感器驅(qū)動(dòng)設(shè)計(jì)分析

溫度傳感器驅(qū)動(dòng)設(shè)計(jì)分析

3.5項(xiàng)目實(shí)施該項(xiàng)目整個(gè)程序的邏輯流程并不復(fù)雜,主要包含如下步驟:①單片機(jī)從DS18B20讀出溫度值;②單片機(jī)將該溫度值寫入LCD1602液晶屏;③返回①繼續(xù)執(zhí)行。該項(xiàng)目主要是由單片機(jī)和LCD1602和DS18B20兩個(gè)復(fù)雜的器件通信,各個(gè)模塊的難度有所增加,但通過(guò)以上模塊化劃分和通用函數(shù)設(shè)計(jì),在對(duì)LCD1602液晶屏和DS18B20分別進(jìn)行讀寫操作也就顯得相對(duì)容易。因此,在項(xiàng)目編程過(guò)程中,不能將不同元件的驅(qū)動(dòng)函數(shù)和main函數(shù)一起雜糅在一個(gè)c文件中,這樣編程難度和調(diào)試難度都不可預(yù)知。本項(xiàng)目將LCD1602液晶屏的驅(qū)動(dòng)程序和DS18B20的驅(qū)動(dòng)程序分別放在獨(dú)立的c文件中,然后main函數(shù)也放入一個(gè)獨(dú)立main.c文件,從而構(gòu)件成數(shù)字溫度計(jì)項(xiàng)目工程文件。

在工程中建立main.c文件,該文件主要實(shí)現(xiàn)了讀?。模樱保福拢玻暗臏囟戎?,并將結(jié)果顯示在LCD1602液晶屏上。由于DS18B20所表示的溫度值中,含有小數(shù)和整數(shù)兩個(gè)部分,所以將小數(shù)和整數(shù)分離出來(lái),在合適的位置放入小數(shù)點(diǎn)顯示即可。3.7項(xiàng)目小結(jié)通過(guò)數(shù)字溫度計(jì)項(xiàng)目,實(shí)現(xiàn)了一個(gè)單片機(jī)和多個(gè)外設(shè)的通信,項(xiàng)目開發(fā)過(guò)程應(yīng)用了很多知識(shí)和技能,為后面進(jìn)行復(fù)雜應(yīng)用開發(fā)打下了非常重要的基礎(chǔ)。首先,通過(guò)該項(xiàng)目開發(fā),了解了查閱器件數(shù)據(jù)手冊(cè)的重要性。任何一個(gè)元器件都會(huì)有相應(yīng)的數(shù)據(jù)手冊(cè),它用來(lái)告訴開發(fā)者如何使用該器件。因此,如果將來(lái)要從事單片機(jī)項(xiàng)目的開發(fā),良好的數(shù)據(jù)手冊(cè)閱讀能力是一項(xiàng)必備的基本功。然后,通過(guò)了解器件的主要技術(shù)參數(shù)和功能引腳定義,就能開始進(jìn)行硬件電路設(shè)計(jì)。例如LCD1602液晶屏的供電電壓為5V,這樣可以直接從單片機(jī)供電電源取電;DS18B20同單片機(jī)是單總線通信,因此將DQ數(shù)據(jù)線連接到單片機(jī)的某一引腳,且需添加上拉電阻。最后,重點(diǎn)講解了LCD1602的讀寫時(shí)序和DS18B20的單總線協(xié)議,這是本項(xiàng)目的重點(diǎn)和難點(diǎn)。LCD1602的讀寫時(shí)序比較簡(jiǎn)單,按照手冊(cè)上的固定設(shè)置方法設(shè)置一般不會(huì)出問(wèn)題,但是DS18B20的單總線協(xié)議還是很復(fù)雜的,尤其是對(duì)時(shí)間的要求極高。因此,對(duì)于廣大初學(xué)者來(lái)講,掌握該協(xié)議是一道坎,只有仔細(xì)分析、反復(fù)琢磨才能領(lǐng)悟。

項(xiàng)目4基于串行通信的電子廣告牌設(shè)計(jì)4.1學(xué)習(xí)目標(biāo)知識(shí)目標(biāo)掌握單片機(jī)UART通信知識(shí)掌握液晶屏驅(qū)動(dòng)知識(shí)能力目標(biāo)能夠使液晶屏顯示字符能夠使液晶屏顯示漢字能夠使液晶屏滾動(dòng)顯示通過(guò)串口向液晶發(fā)送廣告4.2串行通信異步串行通信的格式

空閑狀態(tài)為“1”,發(fā)送器通過(guò)發(fā)送一個(gè)“0”表示一個(gè)字節(jié)傳輸?shù)拈_始,隨

后是數(shù)據(jù)位(在MCU中一般是8位或9位,可以包含校驗(yàn)位)。最后,發(fā)送器發(fā)送1~2位的停止位,表示一個(gè)字節(jié)傳送結(jié)束。若繼續(xù)發(fā)送下一字節(jié),則重新發(fā)送開始位,開始一個(gè)新的字節(jié)傳送。若不發(fā)送新的字節(jié),則維持“1”的狀態(tài),使發(fā)送數(shù)據(jù)線處于空閑。

串行通信的波特率

每秒內(nèi)傳送的位數(shù)叫作波特率(baudrate)。波特率的單位為bits/s。通常使用的波特率有300、600、900、1200、1800、2400、4800、9600、19200、38400(bits/s)。

奇偶校驗(yàn)

字符奇偶校驗(yàn)檢查(characterparitychecking)稱為垂直冗余檢查

(VerticalRedundancyChecking,VRC),它是每個(gè)字符增加一個(gè)額外位使字符中“1”的個(gè)數(shù)

為奇數(shù)或偶數(shù)。奇數(shù)或偶數(shù)依據(jù)使用的是“奇校驗(yàn)檢查”還是“偶校驗(yàn)檢查”而定。當(dāng)使

用“奇校驗(yàn)檢查”時(shí),如果字符數(shù)據(jù)位中“1”的數(shù)目是偶數(shù),校驗(yàn)位應(yīng)為“1”,如果

“1”的數(shù)目是奇數(shù),校驗(yàn)位應(yīng)為“0”。當(dāng)使用“偶校驗(yàn)檢查”時(shí),如果字符數(shù)據(jù)位中“1”

的數(shù)目是偶數(shù),則校驗(yàn)位應(yīng)為“0”;如果是奇數(shù),則為“1”。

串行通信的傳輸方式

單工數(shù)據(jù)傳送是單向的,一端為發(fā)送端,另一端為接收端。全雙工數(shù)據(jù)傳送是雙向的,且可以同時(shí)接收與發(fā)送數(shù)據(jù)。

半雙工數(shù)據(jù)傳送是雙向,任何一個(gè)時(shí)刻,只能由一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù),不能同

時(shí)收發(fā)。RS232C總線標(biāo)準(zhǔn)負(fù)邏輯-3~-15V為邏輯“1”,+3~+15V為邏輯“0”9芯串行接口MCU中用到的3根線:接收線、發(fā)送線、地線USB轉(zhuǎn)串行接口電路CH341AUSB轉(zhuǎn)串口電路串行口寄存器串行口控制寄存器SCON功率控制寄存器PCON輔助寄存器AUXR串口初始化步驟1)確定定時(shí)器1的工作方式———編程TMOD寄存器;

2)計(jì)算定時(shí)器1的初值———裝載TH1,TL1;

3)啟動(dòng)定時(shí)器1———編程TCON中的TR1位;

4)確定串行口的工作方式———編程SCON;

5)串行口在中斷方式工作時(shí),須開CPU和中斷源———編程IE寄存器。

4.3LCD12864液晶屏顯示驅(qū)動(dòng)LCD12864液晶屏概述帶中文字庫(kù)的128×64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個(gè)16×16點(diǎn)漢字和128?jìng)€(gè)16×8點(diǎn)ASCII字符集。提供兩種界面來(lái)連接微處理機(jī):8位并行及串行兩種連接方式。具有多種功能:光標(biāo)顯示、畫面移位和睡眠模式等。

引腳說(shuō)明并行寫時(shí)序并行讀時(shí)序串行讀寫時(shí)序?qū)懭肜L圖RAM的步驟1)關(guān)閉繪圖顯示功能。2)先將水平的位元組坐標(biāo)(X)寫入繪圖RAM地址。3)再將垂直的坐標(biāo)(Y)寫入繪圖RAM地址。4)將D15~D8寫入到RAM中。5)將D7~D0寫入到RAM中。6)打開繪圖顯示功能。

字符顯示RAM(DDRAM)

文本顯示RAM提供10個(gè)×2行的漢字空間,當(dāng)寫入文本顯示RAM時(shí),可以分別顯示CGROM、HCGROM與CGRAM的字型;RT16032可以顯示3種字型,分別是半寬的HCGROM字型、CGRAM字型及中文CGROM字型。3種字型的選擇,由在DDRAM中寫入的編碼選擇,各種字型詳細(xì)編碼如下。顯示半寬字型:將一位字節(jié)寫入DDRAM中,范圍為02H~7FH的編碼。顯示CGRAM字型:將兩字節(jié)編碼寫入DDRAM中,總共有0000H、0002H、0004H、0006H四種編碼;顯示中文字形:將兩字節(jié)編碼寫入DDRAMK,范圍為A1A0H~F7FFH(GB碼)或

A140H~D75FH(BIG5碼)的編碼。

4.4項(xiàng)目實(shí)施串行查詢方式的電子廣告牌設(shè)計(jì)串行中斷方式的電子廣告牌設(shè)計(jì)

4.5項(xiàng)目小結(jié)該項(xiàng)目主要介紹了LCD12864液晶屏驅(qū)動(dòng)和串口通信驅(qū)動(dòng)程序的通用函數(shù)編程方法,實(shí)現(xiàn)串口通信和LCD12864液晶顯示的模塊化構(gòu)建,為后續(xù)通用性編程打下基礎(chǔ)。在Keil環(huán)境中建立項(xiàng)目輸入源程序包括SCI.h、SCI.c、LCD12864.h和LCD12864.c通用文件,再根據(jù)項(xiàng)目功能構(gòu)建工程文件main.c,編譯后下載到CCIT綜合實(shí)驗(yàn)儀,進(jìn)入在線調(diào)試方式,可以觀察到項(xiàng)目的功能實(shí)現(xiàn)情況。通過(guò)本項(xiàng)目的練習(xí),基本可以掌握如何靈活運(yùn)用串口和LCD12864液晶屏模塊,以實(shí)現(xiàn)

項(xiàng)目中需要的功能。

項(xiàng)目5電子日歷鐘設(shè)計(jì)5.1學(xué)習(xí)目標(biāo)知識(shí)目標(biāo)了解DS1302的工作原理及基本結(jié)構(gòu);掌握DS1302的讀寫功能及相關(guān)寄存器的配置方法;掌握I2C總線存儲(chǔ)數(shù)據(jù)到AT24C02的方法;掌握電子日歷鐘的設(shè)計(jì)方法。能力目標(biāo)能夠通過(guò)串口實(shí)現(xiàn)校時(shí)功能;能夠驅(qū)動(dòng)DS1302實(shí)現(xiàn)定時(shí)功能;能夠通過(guò)I2C總線存儲(chǔ)數(shù)據(jù)到AT24C02芯片;能夠在一個(gè)工程進(jìn)行模塊化編程。5.2項(xiàng)目分析本項(xiàng)目主要是綜合DS1302時(shí)鐘模塊、串口通信模塊、數(shù)碼管顯示模塊及I2C總線等知識(shí),以實(shí)現(xiàn)電子日歷鐘的功能,該日歷鐘功能包括:當(dāng)前時(shí)間實(shí)時(shí)顯示、校時(shí)、定時(shí)、報(bào)時(shí)和清零等。

5.3DS1302的基礎(chǔ)知識(shí)DS1302引腳功能及結(jié)構(gòu)

DS1302寄存器DS1302寄存器5.4I2C總線驅(qū)動(dòng)

I2C總線硬件相關(guān)術(shù)語(yǔ)與典型硬件電路主機(jī)從機(jī)地址發(fā)送器與接收器SDA、SCLI2C總線數(shù)據(jù)通信協(xié)議

數(shù)據(jù)的有效性信號(hào)類型開始信號(hào)停止信號(hào)應(yīng)答信號(hào)數(shù)據(jù)傳輸格式標(biāo)準(zhǔn)的I2C通信由4部分組成:開始信號(hào)、從機(jī)地址傳輸、數(shù)據(jù)傳輸

和結(jié)束信號(hào)。主機(jī)向從機(jī)讀/寫1個(gè)字節(jié)數(shù)據(jù)的過(guò)程

(1)主機(jī)向從機(jī)寫1個(gè)字節(jié)數(shù)據(jù)的過(guò)程

主機(jī)要向從機(jī)寫1個(gè)字節(jié)數(shù)據(jù)時(shí),主機(jī)首先產(chǎn)生START信號(hào),然后緊跟著發(fā)送1個(gè)從機(jī)地址(7位),查詢相應(yīng)的從機(jī),緊接著的第8位是數(shù)據(jù)方向位(R/W),0表示主機(jī)發(fā)送數(shù)據(jù)(寫),這時(shí)候主機(jī)等待從機(jī)的應(yīng)答信號(hào)(ACK),當(dāng)主機(jī)收到應(yīng)答信號(hào)時(shí),發(fā)送給從機(jī)1個(gè)位置參數(shù),告訴從機(jī)主機(jī)的數(shù)據(jù)在從機(jī)接收數(shù)組中存放的位置,然后繼續(xù)等待從機(jī)的響應(yīng)信號(hào),當(dāng)主機(jī)收到響應(yīng)信號(hào)時(shí),發(fā)送1個(gè)字節(jié)的數(shù)據(jù),繼續(xù)等待從機(jī)的響應(yīng)信號(hào),當(dāng)主

機(jī)收到響應(yīng)信號(hào)時(shí),產(chǎn)生停止信號(hào),結(jié)束傳送過(guò)程。

主機(jī)從從機(jī)讀1個(gè)字節(jié)數(shù)據(jù)的過(guò)程

當(dāng)主機(jī)要從從機(jī)讀1個(gè)字節(jié)數(shù)據(jù)時(shí),主機(jī)首先產(chǎn)生START信號(hào),然后緊跟著發(fā)送1個(gè)從機(jī)地址,查詢相應(yīng)的從機(jī),注意此時(shí)該地址的第8位為0,表明是向從機(jī)寫命令,這時(shí)候主機(jī)等待從機(jī)的應(yīng)答信號(hào)(ACK),當(dāng)主機(jī)收到應(yīng)答信號(hào)時(shí),發(fā)送給從機(jī)1個(gè)位置參數(shù),告訴從機(jī)主機(jī)的數(shù)據(jù)在從機(jī)接收數(shù)組中存放的位置,繼續(xù)等待從機(jī)的應(yīng)答信號(hào),當(dāng)主機(jī)收到應(yīng)答信號(hào)后,主機(jī)要改變通信模式(主機(jī)將由發(fā)送變?yōu)榻邮?,從機(jī)將由接收變?yōu)榘l(fā)送),所以主機(jī)發(fā)送重新開始信號(hào),然后緊跟著發(fā)送1個(gè)從機(jī)地址,注意此時(shí)該地址的第8位為1,表明將主機(jī)設(shè)置成接收模式開始讀取數(shù)據(jù),這時(shí)主機(jī)等待從機(jī)的應(yīng)答信號(hào),當(dāng)主機(jī)收到應(yīng)答信號(hào)時(shí),就可以接收1個(gè)字節(jié)的數(shù)據(jù),當(dāng)接收完成后,主機(jī)發(fā)送非應(yīng)答信號(hào),表示不再接收數(shù)據(jù),主機(jī)進(jìn)而產(chǎn)生停止信號(hào),結(jié)束傳送過(guò)程。

AT24C02功能描述

AT24C02支持I2C,總線協(xié)議規(guī)定任何將數(shù)據(jù)傳送到總線的元器件作為發(fā)送器。任何從總線接收數(shù)據(jù)的元器件為接收器,數(shù)據(jù)傳送是由產(chǎn)生串行時(shí)鐘和所有起始停止信號(hào)的主元器件控制的,主元器件和從元器件都可以作為發(fā)送器或接收器,但由主元器件控制傳送數(shù)據(jù)(發(fā)送或接收)的模式,由于A0、A1和A2可以組成000~111共8種情況,即通過(guò)元器件地址輸入端A0、A1和A2可以實(shí)現(xiàn)將最多8?jìng)€(gè)AT24C02元器件連接到總線上,通過(guò)進(jìn)行不同的配置進(jìn)行選擇元器件。

引腳功能

SCL串行時(shí)鐘:AT24C02串行時(shí)鐘輸入引腳用于產(chǎn)生元器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘,這是一個(gè)輸入引腳。SDA串行數(shù)據(jù)/地址:AT24C02雙向串行數(shù)據(jù)/地址引腳用于元器件所有數(shù)據(jù)的發(fā)送或

接收,SDA是一個(gè)開漏輸出引腳,可與其他開漏輸出或集電極開路輸出進(jìn)行線或(wire-

OR)。A0、A1、A2元器件地址輸入端:這些輸入腳用于多個(gè)元器件級(jí)聯(lián)時(shí)設(shè)置元器件地址,當(dāng)這些腳懸空時(shí)默認(rèn)值為0,當(dāng)使用AT24C02時(shí)最大可級(jí)聯(lián)8?jìng)€(gè)元器件。如果只有1個(gè)AT24C02被總線尋址,這3個(gè)地址輸入腳(A0、A1、A2)可懸空或連接到Vss。WP寫保護(hù):如果WP引腳連接到Vcc,所有的內(nèi)容都被寫保護(hù)只能讀,當(dāng)WP引腳連

接到Vss或懸空允許元器件進(jìn)行正常的讀/寫操作。

結(jié)構(gòu)與尋址

AT24C02的存儲(chǔ)容量為2KB,內(nèi)容分成32頁(yè),每頁(yè)8Byte,共256Byte,操作時(shí)有兩種尋址方式:芯片尋址和片內(nèi)子地址尋址。

芯片尋址:AT24C02的芯片地址為1010,其地址控制字格式如圖所示,其中A2,A1,A0可編程地址選擇位,A2,A1,A0引腳接高、低電平后得到確定的3位編碼,與1010形成7位編碼,即為該元器件的地址碼;R/W為芯片讀寫控制位,該位為0,表示芯片進(jìn)行寫操作。

片內(nèi)子地址尋址:芯片尋址可對(duì)內(nèi)部256B中的任一個(gè)進(jìn)行讀/寫操作,其尋址范圍為00~FF,共256個(gè)尋址單位。

蜂鳴器模塊設(shè)計(jì)

ULN2003簡(jiǎn)介ULN2003是大電流驅(qū)動(dòng)陣列,多用于單片機(jī)、智能儀表、PLC、數(shù)字量輸出卡等控制電路中,可直接驅(qū)動(dòng)繼電器等負(fù)載,輸入5VTTL電平,輸出可達(dá)500mA/50V。ULN2003引腳功能說(shuō)明引腳1~7:CPU脈沖輸入端,端口對(duì)應(yīng)一個(gè)信號(hào)輸出端。引腳8:接地。引腳9:該腳是內(nèi)部7個(gè)續(xù)流二極管負(fù)極的公共端,各二極管的正極分別接各達(dá)林頓管的集電極。用于感性負(fù)載時(shí),該腳接負(fù)載電源正極,實(shí)現(xiàn)續(xù)流作用。引腳10~16:脈沖信號(hào)輸出端,對(duì)應(yīng)引腳7~1信號(hào)輸入端。5.5項(xiàng)目實(shí)施電子日歷鐘的基本功能包括如下內(nèi)容。

1)計(jì)時(shí)功能:通過(guò)DS1302時(shí)鐘芯片進(jìn)行日期和時(shí)間的實(shí)時(shí)計(jì)數(shù)。

2)模式切換功能:通過(guò)K1鍵實(shí)現(xiàn)顯示模式和功能設(shè)置模式切換。

3)校時(shí)和定時(shí)設(shè)置功能切換:通過(guò)K2鍵實(shí)現(xiàn)校時(shí)和定時(shí)設(shè)置切換、日期和時(shí)間顯示切換。

4)校時(shí)功能設(shè)置:通過(guò)串口調(diào)試助手發(fā)送正確的日期和時(shí)間數(shù)據(jù),MCU接收后進(jìn)行實(shí)時(shí)校對(duì)。

5)定時(shí)功能設(shè)置:通過(guò)串口調(diào)試助手發(fā)送定時(shí)的時(shí)間數(shù)據(jù),MCU接收后存儲(chǔ)于AT24C02芯片。

6)報(bào)時(shí)功能:系統(tǒng)實(shí)時(shí)讀?。粒裕玻矗茫埃泊鎯?chǔ)的定時(shí)參數(shù),與當(dāng)前時(shí)間比較,若相等,則

蜂鳴器響5s。

流程圖項(xiàng)目6基于藍(lán)牙通信的智能風(fēng)扇設(shè)計(jì)副標(biāo)題6.1學(xué)習(xí)目標(biāo)[知識(shí)目標(biāo)]

掌握步進(jìn)電動(dòng)機(jī)的驅(qū)動(dòng)原理。

掌握藍(lán)牙通信的原理;

掌握定時(shí)器的工作原理。

[能力目標(biāo)]

能夠熟練應(yīng)用步進(jìn)電動(dòng)機(jī)對(duì)風(fēng)扇功率器件的驅(qū)動(dòng);

能夠熟練應(yīng)用藍(lán)牙模塊進(jìn)行通信;

能夠CCITSTC單片機(jī)綜合實(shí)驗(yàn)儀Keil編輯環(huán)境下編寫和在線調(diào)試基于藍(lán)牙通信的智能風(fēng)扇設(shè)計(jì)。

6.2項(xiàng)目分析基于藍(lán)牙通信的智能風(fēng)扇項(xiàng)目設(shè)計(jì),主要是介紹步進(jìn)電動(dòng)機(jī)的驅(qū)動(dòng)原理、藍(lán)牙通信模塊的原理及基于藍(lán)牙通信的設(shè)計(jì)方法?;谒{(lán)牙通信的智能風(fēng)扇設(shè)計(jì)項(xiàng)目主要是設(shè)計(jì)3個(gè)子任務(wù):藍(lán)牙通信、步進(jìn)電動(dòng)機(jī)的驅(qū)動(dòng)和12864漢字屏的顯示,通過(guò)這三個(gè)子任務(wù)的整合設(shè)計(jì),實(shí)現(xiàn)對(duì)智能風(fēng)扇的無(wú)線控制和顯示功能。培養(yǎng)用戶靈活應(yīng)用步進(jìn)電動(dòng)機(jī)、藍(lán)牙通信和12864漢字屏驅(qū)動(dòng)模塊進(jìn)行綜合項(xiàng)目開發(fā)調(diào)試能力。

6.4支撐知識(shí)在項(xiàng)目分析中,了解到基于藍(lán)牙通信的風(fēng)扇設(shè)計(jì)需要運(yùn)用步進(jìn)電動(dòng)機(jī)、藍(lán)牙通信和12864漢字屏知識(shí),主要是對(duì)STCSTC15F2K60S2單片機(jī)的基本I/O口的應(yīng)用、步進(jìn)電動(dòng)機(jī)原理及藍(lán)牙通信驅(qū)動(dòng)原理的訓(xùn)練,為了實(shí)現(xiàn)項(xiàng)目的在線方針和調(diào)試,需要借助CCITSTC單片機(jī)綜合試驗(yàn)儀平臺(tái)KeilμVision4開發(fā)軟件,進(jìn)一步熟悉和掌握系統(tǒng)編程方法和調(diào)試方法,根據(jù)情境分析中的要點(diǎn),要求如下:靈活配置GPIO口;掌握步進(jìn)電動(dòng)機(jī)原理及編程方法;掌握藍(lán)牙通信原理及編程驅(qū)動(dòng)方法;6.4.1步進(jìn)電動(dòng)機(jī)1步進(jìn)電動(dòng)機(jī)基本常識(shí)

2步進(jìn)電動(dòng)機(jī)的靜態(tài)術(shù)語(yǔ)

3步進(jìn)電動(dòng)機(jī)動(dòng)態(tài)指標(biāo)及術(shù)語(yǔ)

4反應(yīng)式步進(jìn)電動(dòng)機(jī)原理由于反應(yīng)式步進(jìn)電動(dòng)機(jī)比較簡(jiǎn)單,下面敘述三相反應(yīng)式步進(jìn)電動(dòng)機(jī)原理。

5電路設(shè)計(jì)6通用函數(shù)編程案例1:按鍵控制步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)向改變。6.4.2HC系列藍(lán)牙串口模塊1概述2藍(lán)牙轉(zhuǎn)串口HC-06無(wú)線模塊1.采用CSR主流藍(lán)牙芯片,藍(lán)牙V2.0協(xié)議標(biāo)準(zhǔn)。2.串口模塊工作電壓3.3V。3.波特率1200、2400、4800、9600、19200、38400、57600、115200,用戶可設(shè)置。3模塊選型藍(lán)牙串口在模塊功能上,偶數(shù)命名相互兼容,叢集命名也相互兼容,即HC-04與HC-06,HC-03與HC-05在功能上是兼容的。HC-04,HC-06是比較早的版本,用戶不可以自己切換主機(jī)或者從機(jī),AT指令集很少,包括修改藍(lán)牙名(限于從機(jī)),修改密碼,修改波特率,詢問(wèn)版本號(hào)等幾個(gè)基本功能,不如HC-03\HC-05的靈活和指令集多。4電路設(shè)計(jì)5藍(lán)牙串口模塊指令設(shè)置(1)測(cè)試通信(2)設(shè)置波特率(3)設(shè)置藍(lán)牙模塊名稱(4)設(shè)置藍(lán)牙配對(duì)密碼(5)無(wú)校驗(yàn)設(shè)置(6)偶校驗(yàn)設(shè)置6函數(shù)編程(1)藍(lán)牙模塊通用函數(shù)編程(2)繼電器模塊通用函數(shù)編程6.5項(xiàng)目實(shí)施6.5.1函數(shù)設(shè)計(jì)(1)LCD12864液晶顯示驅(qū)動(dòng)設(shè)計(jì)(2)DS18B20驅(qū)動(dòng)函數(shù)設(shè)計(jì)(3)步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)函數(shù)設(shè)計(jì)(4)基于藍(lán)牙通信的智能風(fēng)扇工程設(shè)計(jì)6.5.2項(xiàng)目小結(jié)項(xiàng)目7自動(dòng)售水機(jī)設(shè)計(jì)7.1功能描述自動(dòng)售水機(jī)能夠?qū)崿F(xiàn)對(duì)現(xiàn)實(shí)售水機(jī)的模擬,通過(guò)數(shù)碼管顯示費(fèi)率、出水量及總費(fèi)用;通過(guò)光敏電阻檢測(cè)環(huán)境亮度,在亮度過(guò)低的情況下,自動(dòng)開燈。系統(tǒng)硬件電路主要由單片機(jī)控制電路、數(shù)碼管顯示電路、A-D轉(zhuǎn)換電路及功能按鍵組成,系統(tǒng)功能框圖如圖7-1所示。

7.2系統(tǒng)設(shè)計(jì)思路及具體要求系統(tǒng)工作及初始化狀態(tài)設(shè)計(jì):上電后售水機(jī)處于待命狀態(tài),數(shù)碼管兩部分顯示為全0,等待按鍵按下。光敏實(shí)時(shí)檢測(cè)光照亮度,控制小燈亮滅。按鍵控制模塊:使用獨(dú)立按鍵,設(shè)定按鍵S7為出水控制按鍵,當(dāng)S7按下后,售水機(jī)持續(xù)出水(繼電器接通,指示燈點(diǎn)亮)。設(shè)定按鍵S6為停水控制按鍵,當(dāng)S6按下后,停止出水(繼電器斷開,指示燈熄滅)。數(shù)碼管顯示模塊:通過(guò)4位數(shù)碼管DS1顯示費(fèi)率,單位為元/升,保留2位有效數(shù)字。通過(guò)4位數(shù)碼管DS2顯示當(dāng)前出水總量(出水時(shí),單位為升)和總價(jià)(停止時(shí),單位為元)A-D轉(zhuǎn)換模塊:通過(guò)光敏電阻RD1和A-D轉(zhuǎn)換芯片PCF8591組成的亮度檢測(cè)電路(亮度值轉(zhuǎn)換為PCF8591光敏電阻通道的電壓)檢測(cè)環(huán)境亮度;當(dāng)PCF8591光敏電阻通道輸入電壓小于1.25V時(shí),L1點(diǎn)亮,大于1.25V時(shí),L1熄滅。繼電器模塊:繼電器模塊用來(lái)模擬售水機(jī)的開關(guān),繼電器吸合,指示燈亮起代表售水機(jī)開始工作;繼電器斷開,指示燈熄滅表示售水機(jī)停止工作。計(jì)數(shù)模擬:使用定時(shí)器來(lái)模擬出水量的計(jì)數(shù)并且在數(shù)碼管顯示。7.3A-D轉(zhuǎn)換模塊設(shè)計(jì)PCF8591

芯片介紹地址控制字A-D轉(zhuǎn)換模塊電路設(shè)計(jì)

7.4項(xiàng)目實(shí)施

系統(tǒng)整合按鍵模塊、數(shù)碼管顯示、A-D轉(zhuǎn)換模塊、繼電器控制模塊和功能按鍵模塊等功能模擬實(shí)現(xiàn)自動(dòng)售水機(jī)的基本功能,通過(guò)按鍵進(jìn)行操控,控制售水機(jī)開與關(guān),按鍵控制開啟后,售水機(jī)開始模擬出水,數(shù)碼管顯示出水量,并且顯示單價(jià);通過(guò)按鍵關(guān)閉售水機(jī)后,停止出水,數(shù)碼管顯示單價(jià)區(qū)域轉(zhuǎn)換為總價(jià)。售水機(jī)每秒價(jià)錢和出水量可改變,自動(dòng)售水機(jī)的光敏電阻用來(lái)檢測(cè)裝置外界亮度,達(dá)到預(yù)定值后打開LED指示燈,系統(tǒng)的主模塊流程圖如圖7-8所示。數(shù)碼管顯示測(cè)試:通電后,數(shù)碼管正常顯示初始值,無(wú)暗光閃爍,進(jìn)行出水狀態(tài)后正常顯示出水量。停止后顯示總價(jià)格和單價(jià)。按鍵功能測(cè)試:通電后按下S7按鍵,能夠正常進(jìn)入出水狀態(tài),此時(shí)再次按下S7無(wú)其他操作,按下S6后停止出狀態(tài),并結(jié)算金額。繼電器控制顯示:通電后,初始化繼電器關(guān)閉狀態(tài),進(jìn)入出水狀態(tài)后繼電器正常打開,指示燈點(diǎn)亮,退出出水狀態(tài)后,繼電器關(guān)閉,指示燈熄滅。光敏測(cè)試:通電后將手指蓋住光光敏電阻,1號(hào)LED燈正常點(diǎn)亮,挪開手指,小燈熄滅。光敏正常工作,使用萬(wàn)用表測(cè)量電壓,達(dá)到預(yù)期值。7.5項(xiàng)目運(yùn)行調(diào)試

7.6習(xí)題使用S5和S6作為售水機(jī)的開/關(guān)控制按鍵,單價(jià)設(shè)置為0.25元/升,出水量為200ml/

s,光敏控制的LED小燈改為6號(hào)LED燈。

項(xiàng)目8自動(dòng)澆灌模擬系統(tǒng)設(shè)計(jì)副標(biāo)題8.1功能描述要求“自動(dòng)模擬系統(tǒng)”能夠?qū)崿F(xiàn)溫度的顯示、溫度上下限的顯示和設(shè)置、溫度的報(bào)警、間隔時(shí)間和澆灌時(shí)間的顯示、根據(jù)當(dāng)前的溫度和光照進(jìn)行澆灌的控制等基本功能。

8.2系統(tǒng)設(shè)計(jì)思路及具體要求(1)系統(tǒng)工作及初始化狀態(tài)設(shè)計(jì)(2)LCD12864顯示模塊設(shè)計(jì)(3)報(bào)警澆灌模塊設(shè)計(jì)(4)功能按鍵模塊設(shè)計(jì)(5)實(shí)時(shí)時(shí)鐘模塊設(shè)計(jì)(6)EEPROM存儲(chǔ)單元(7)溫度采集模塊設(shè)計(jì)(8)光敏采集模塊設(shè)計(jì)

8.3.1項(xiàng)目實(shí)施系統(tǒng)整合ADC采集模塊、溫度采集模塊、時(shí)鐘芯片模塊、12864顯示模塊、EEPROM存儲(chǔ)模塊和繼電器控制模塊、功能按鍵模塊等功能模擬實(shí)現(xiàn)自動(dòng)灌溉系統(tǒng)的基本功能。

8.3.2驅(qū)動(dòng)程序(1)按鍵模塊(2)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論