微機(jī)原理設(shè)計(jì)分析報(bào)告_第1頁(yè)
微機(jī)原理設(shè)計(jì)分析報(bào)告_第2頁(yè)
微機(jī)原理設(shè)計(jì)分析報(bào)告_第3頁(yè)
微機(jī)原理設(shè)計(jì)分析報(bào)告_第4頁(yè)
微機(jī)原理設(shè)計(jì)分析報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩110頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 微機(jī)原理設(shè)計(jì)報(bào)告 創(chuàng)新型實(shí)驗(yàn)設(shè)計(jì)報(bào)告題 目 基于藍(lán)牙通信的無(wú)線操縱系統(tǒng) 學(xué) 院 自動(dòng)化學(xué)院 專(zhuān) 業(yè) 電氣工程及其自動(dòng)化 成 員 陳 旭 3012203270 吳海成 3012203292 指導(dǎo)教師 劉迎澍 摘 要隨著現(xiàn)代互聯(lián)網(wǎng)技術(shù)的進(jìn)展,物聯(lián)網(wǎng)和智能家居概念開(kāi)始逐步進(jìn)展。智能家居是以住宅為平臺(tái),利用綜合布線技術(shù)、網(wǎng)絡(luò)通信技術(shù)、自動(dòng)操縱等技術(shù)將生活有關(guān)的設(shè)施集成,構(gòu)建高效的住宅設(shè)施與家庭日程治理系統(tǒng),提升家居安全性、便利性,并能實(shí)現(xiàn)環(huán)保節(jié)能的居住環(huán)境。藍(lán)牙技術(shù)是一種尖端的開(kāi)放式無(wú)限通訊標(biāo)準(zhǔn),藍(lán)牙無(wú)線技術(shù)使用全球通用的頻帶(2.4GHz)藍(lán)牙成本低,體積小,比802.11協(xié)議更具有移動(dòng)性,同時(shí)一

2、般的手持平臺(tái)(手機(jī),PC機(jī),Pad)均具有藍(lán)牙功能。本系統(tǒng)是典型的藍(lán)牙無(wú)線通信操縱系統(tǒng),包括手持設(shè)備指令的發(fā)送、處理系統(tǒng)的接收、處理、和功能的具現(xiàn)化。本文基于市場(chǎng)常見(jiàn)的藍(lán)牙通訊模塊(HC-06)和8086微機(jī)實(shí)驗(yàn)平臺(tái)結(jié)合,利用現(xiàn)有的資源實(shí)現(xiàn)簡(jiǎn)單的基于藍(lán)牙通信的無(wú)線操縱系統(tǒng)的搭建。關(guān)鍵詞:藍(lán)牙;8086微機(jī)平臺(tái);串口通信目錄第一章 緒論1.1 課程介紹1.2 題目簡(jiǎn)介第12二章 硬件結(jié)構(gòu)2.1 硬件組成2.2 芯片簡(jiǎn)介2.2.1 8255芯片2.2.2 8253芯片2.2.3 8251芯片2.2.4 12864液晶顯示模塊2.3 藍(lán)牙接收模塊第三章 軟件結(jié)構(gòu)3.1 程序子模塊組成3.1.1 概況

3、3.1.2 模塊組成3.2 程序運(yùn)行詳細(xì)流程3.2.1 主程序流程圖3.2.2 中斷子程序流程圖3.2.3 3.2.4 3.2.5 3.2.6 第四章 實(shí)驗(yàn)總結(jié)4.1 實(shí)驗(yàn)現(xiàn)象4.2 實(shí)驗(yàn)感想4.3 實(shí)驗(yàn)分工附錄程序清單第一章 緒論1.1 課程介紹微型計(jì)算機(jī)原理及接口技術(shù)是電氣工程及其自動(dòng)化專(zhuān)業(yè)的重要基礎(chǔ)課程,具有專(zhuān)門(mén)強(qiáng)的實(shí)踐性。天津大學(xué)在開(kāi)展微機(jī)實(shí)踐教學(xué)改革的過(guò)程中開(kāi)發(fā)了學(xué)生創(chuàng)新型題目,這類(lèi)題目在教材知識(shí)的基礎(chǔ)上,要求學(xué)生綜合運(yùn)用多學(xué)科知識(shí),結(jié)合自學(xué),通過(guò)團(tuán)隊(duì)合作來(lái)共同完成,以提升同學(xué)們的自學(xué)能力、團(tuán)隊(duì)精神、創(chuàng)新意識(shí)和動(dòng)手能力,為把學(xué)生培養(yǎng)為卓越工程師打下良好基礎(chǔ)。1.2 題目簡(jiǎn)介本題目是設(shè)

4、計(jì)一個(gè)基于藍(lán)牙通信的手機(jī)對(duì)PC機(jī)的操縱系統(tǒng),通過(guò)將手機(jī)發(fā)送的信息編碼,在PC機(jī)的程序中解碼,能夠?qū)崿F(xiàn)手機(jī)發(fā)送指令,PC機(jī)執(zhí)行相應(yīng)功能的目的。我們利用微機(jī)開(kāi)發(fā)試驗(yàn)箱共設(shè)計(jì)了四種功能:數(shù)碼管顯示輸入數(shù)字、電機(jī)運(yùn)動(dòng)與停止、LCD屏顯示英文與數(shù)字、LCD屏顯示漢字報(bào)文。運(yùn)行程序后,通過(guò)輸入命令字可進(jìn)入相應(yīng)的功能中,然后依照功能可輸入數(shù)字、英文、漢字的編碼,即可實(shí)現(xiàn)相應(yīng)的顯示或動(dòng)作。本題目的設(shè)計(jì)特色要緊用兩點(diǎn)。一、通過(guò)手機(jī)終端的智能操縱是家居智能化的一個(gè)方向,目的是通過(guò)手機(jī)等終端發(fā)送指令,實(shí)現(xiàn)對(duì)電器設(shè)備的操縱。本題目實(shí)現(xiàn)了手機(jī)操縱PC機(jī)做出響應(yīng)動(dòng)作,而藍(lán)牙的有效范圍為10米,因此能夠?qū)崿F(xiàn)對(duì)一個(gè)房間內(nèi)電器

5、的操縱,同時(shí)能夠隨時(shí)連接。二、藍(lán)牙信號(hào)的接收。由于實(shí)驗(yàn)箱沒(méi)有可接收藍(lán)牙信號(hào)裝置,因此我們接入了一個(gè)藍(lán)牙接收模塊,并設(shè)計(jì)了模塊底板,將信號(hào)以串行信號(hào)發(fā)出,再通過(guò)實(shí)驗(yàn)箱上的串口芯片接收,自己設(shè)計(jì)相應(yīng)的通信協(xié)議和傳輸速率。第二章 硬件結(jié)構(gòu)2.1 硬件組成本課題的硬件由PC機(jī)、微型計(jì)算機(jī)實(shí)驗(yàn)系統(tǒng)、藍(lán)牙接收模塊構(gòu)成。操縱信號(hào)輸入部分由手機(jī)通過(guò)藍(lán)牙發(fā)出信號(hào),藍(lán)牙接收模塊接收,并通過(guò)8251芯片將串行信號(hào)轉(zhuǎn)換成并行數(shù)據(jù)傳給PC機(jī)。被控部分由實(shí)驗(yàn)箱上的LCD屏,數(shù)碼管,直流電手機(jī)藍(lán)牙微機(jī)實(shí)驗(yàn)系統(tǒng)PC手機(jī)藍(lán)牙微機(jī)實(shí)驗(yàn)系統(tǒng)PC機(jī)圖2-1 硬件組成原理示意圖圖2-2 實(shí)物連接圖2.2 芯片簡(jiǎn)介2.2.1 8255芯

6、片一、簡(jiǎn)介:8255是可編程并行1/0接口芯片,有3個(gè)8位并行1/0口.具有3個(gè)通道3種工作方式的可編程并行接口芯片(40引腳)。其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255可作為單片機(jī)與多種外設(shè)連接時(shí)的中間接口電路。8255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個(gè)總線接口,即數(shù)據(jù)線、地址線、操縱線接口。同時(shí)必須具有與外設(shè)連接的接口 A、B、C口。由于8255可編程,因此必須具有邏輯操縱部分,因而 8255內(nèi)部結(jié)構(gòu)分為3個(gè)部分:與CPU連接部分、與外設(shè)連接部分、操縱部分。二、與CPU連接部分依照定義,8255能并行傳送8位數(shù)據(jù),因此其數(shù)據(jù)線為8根DOD7。 由于8255具有3

7、個(gè)通道A、B、C,因此只要兩根地址線就能尋址A、B、C 口及操縱寄存器,故地址線為兩根A0A1。此外CPU要對(duì)8255進(jìn)行讀、寫(xiě)與片選操作,因此操縱線為片選、復(fù)位、讀、寫(xiě)信號(hào)。各信號(hào)的引腳編號(hào)如下:(1)數(shù)據(jù)總線DB:編號(hào)為DOD7,用于8255與CPU傳送8位數(shù)據(jù)。(2)地址總線AB:編號(hào)為A0A1,用于選擇A、B、C口與操縱寄存器。(3)操縱總線CB:片選信號(hào)、復(fù)位信號(hào)RST、寫(xiě)信號(hào)、讀信號(hào)。當(dāng)CPU要對(duì)8255進(jìn)行讀、寫(xiě)操作對(duì),必須先向8255發(fā)片選信號(hào)選中8255芯片, 然后發(fā)讀信號(hào)或?qū)懶盘?hào)對(duì)8255進(jìn)行讀或?qū)憯?shù)據(jù)的操作。三、與外設(shè)接口部分依照定義,8255有3個(gè)通道A、B、C與外設(shè)連

8、接,每個(gè)通道又有8根線與外設(shè)連接,因此8255能夠用24根線與外設(shè)連接,若進(jìn)行開(kāi)關(guān)量操縱,則 8255可同時(shí)操縱24路開(kāi)關(guān)。各通道的引腳編號(hào)如下:(1)A口:編號(hào)為PA0PA7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。(2)B口:編號(hào)為PB0PB7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。(3)C口:編號(hào)為PC0PC7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。當(dāng)8255工作于應(yīng)答I/O方式時(shí),C 口用于應(yīng)答信號(hào)的通信。四、操縱器8255將3個(gè)通道分為兩組。即PA0PA7與PC4PC7組成A組,PB0 PB7與PC0PC3組成B組.如圖7. 5所示,相應(yīng)的操縱器也分為A組操縱器和B組操縱器,各組

9、操縱的作用如下:A組操縱器:操縱A口與上C口的輸入與輸出。B組操縱器:操縱B口與上C口的輸入與輸出。五、8255A的引腳功能講明8255A采納40引腳的雙列直插式封裝。40個(gè)引腳分為與外設(shè)連接的引腳和與CPU連接引腳。(1)與外設(shè)連接的引腳 8255A與外設(shè)連接的引腳共有:PA7PA0A端口數(shù)據(jù)線,雙向三態(tài)。PB7PB0B端口數(shù)據(jù)線,雙向三態(tài)。PC7PC0C端口數(shù)據(jù)線,雙向三態(tài)。PB7PB0和PC7PC0引腳能驅(qū)動(dòng)達(dá)林頓復(fù)合晶體管(在5V時(shí)輸出1mA),因此B、C端口一般作為輸出端口。(2)與CPU連接的引腳8255A與CPU連接的引腳,有8根數(shù)據(jù)引腳D7D0。它們?nèi)渴请p向、三態(tài)引腳,用來(lái)與

10、數(shù)據(jù)總線相連接;另外,它還有6根輸入操縱引腳,用來(lái)接收CPU送來(lái)的地址和操縱信號(hào)。這些引腳分不是:RESET輸入復(fù)位信號(hào),高電平有效。當(dāng)RESET有效時(shí),把8255A內(nèi)部所有寄存器(包括操縱寄存器)全部清零,端口A、B、C自動(dòng)設(shè)置為輸入狀態(tài),三個(gè)端口的數(shù)據(jù)線處于髙阻狀態(tài)。一旦復(fù)位后,若使8255A重新工作必須進(jìn)行初始化編程。CS片選信號(hào)輸入端,低電平有效。當(dāng)CS =0為低電平常,8255A才被選中,才能對(duì) 8255A進(jìn)行讀寫(xiě)操作。RD讀命令信號(hào),輸入低電平有效。當(dāng)RD =0為低電乎時(shí)CPU對(duì)8255A進(jìn)行讀操作,讀出或狀態(tài)。WR寫(xiě)命令信號(hào),輸入,低電平有效。WR=0為低電平常,CPU對(duì)8255

11、A進(jìn)行寫(xiě)操作,把數(shù)據(jù)或操縱字寫(xiě)入8255A。A1A0端口選擇信號(hào),輸入。A1A0的編碼輸入選擇端口。8255A有四個(gè)端口地址,分不為A端口、B端口、C端口和操縱寄存器。選擇方法見(jiàn)表8.5。表8.5 8255A端口尋址及差不多操作向8255A輸出一寫(xiě)操作CSRDWRA1A0操作功能01000選擇A端口,對(duì)A端口寫(xiě)操作01001選擇B端口,對(duì)B端口寫(xiě)操作01010選擇C端口,對(duì)C端口寫(xiě)操作01011對(duì)操縱寄存器寫(xiě)入操縱字向8255A輸出一讀操作CSRDWRA1A0操作功能00100選擇A端口,對(duì)A端口讀操作00101選擇B端口,對(duì)B端口讀操作00110選擇C端口,對(duì)C端口讀操作00111非法操作,

12、數(shù)據(jù)線處于高阻狀態(tài)1XXXX未選中,數(shù)據(jù)線處于高阻狀態(tài)2.2.2 8253芯片一、簡(jiǎn)介8253內(nèi)部有三個(gè)計(jì)數(shù)器,分不稱(chēng)為計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2,他們的機(jī)構(gòu)完全相同。每個(gè)計(jì)數(shù)器的輸入和輸出都決定于設(shè)置在 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=1 操縱寄存器中的操縱字,互相之間工作完全獨(dú)立。每個(gè)計(jì)數(shù)器通過(guò)三個(gè)引腳和外部聯(lián)系,一個(gè)為時(shí)鐘輸入端CLK,一個(gè)為門(mén)控信號(hào)輸入端GATE,另一個(gè)為輸出端OUT。每個(gè)計(jì)數(shù)器內(nèi)部有一個(gè)8位的操縱寄存器,還有一個(gè)16位的計(jì)數(shù)初值寄存器CR、一個(gè)計(jì)數(shù)執(zhí)行部件CE和一個(gè)輸出 HYPERLINK /edi

13、t/8253%E8%8A%AF%E7%89%87/3699917?dl=1 鎖存器OL。執(zhí)行部件實(shí)際上是一個(gè)16位的減法計(jì)數(shù)器,它的起始值確實(shí)是初值 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=1 寄存器的值,而初始值寄存器的值是通過(guò)程序設(shè)置的。輸出鎖存器的值是通過(guò)程序設(shè)置的。輸出鎖存器OL用來(lái)鎖存計(jì)數(shù)執(zhí)行部件CE的內(nèi)容,從而使CPU能夠?qū)Υ诉M(jìn)行 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=1 讀操作。二、工作原理8253具有3個(gè)獨(dú)立的計(jì)數(shù)通道,采納減1計(jì)數(shù)方式。在門(mén)控信號(hào)有效時(shí),每

14、輸入1個(gè)計(jì)數(shù)脈沖,通道作1次計(jì)數(shù)操作。當(dāng)計(jì)數(shù)脈沖是已知周期的 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 時(shí)鐘信號(hào)時(shí),計(jì)數(shù)就成為定時(shí)。8253芯片有24條引腳,封裝在雙列直插式陶瓷管殼內(nèi)。1. HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器與 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 系統(tǒng)總線連接,8位雙向,與 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/

15、3699917?dl=2 CPU交換信息的通道。這是8253與CPU之間的數(shù)據(jù)接口,它由8位雙向三態(tài) HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 緩沖存儲(chǔ)器構(gòu)成,是CPU與8253之間交換信息的必經(jīng)之路。圖2-3 8253內(nèi)部原理圖2.讀/寫(xiě)操縱讀/寫(xiě)操縱分不連接系統(tǒng)的IOR和IOW,由CPU操縱著訪問(wèn)8253的內(nèi)部通道。接收CPU送入的讀/寫(xiě) HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 操縱信號(hào), 并完成對(duì)芯片內(nèi)部各功能部件的操縱功能, 因此, 它實(shí)際上是8253芯片內(nèi)部的

16、操縱器。A1A0:端口選擇信號(hào),由CPU輸入。8253內(nèi)部有3個(gè)獨(dú)立的通道,加上操縱字 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 寄存器,構(gòu)成8253芯片的4個(gè)端口,CPU可對(duì)3個(gè)通道進(jìn)行讀/寫(xiě)操作3對(duì)操縱字寄存器進(jìn)行寫(xiě)操作。這4個(gè) HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 端口地址由最低2位 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 地址碼A1和A0來(lái)選擇。如表所示。(1) CS HYPERLINK /edi

17、t/8253%E8%8A%AF%E7%89%87/3699917?dl=2 片選信號(hào),由CPU輸入, HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 低電平有效,通常由端口地址的高位地址 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 譯碼形成。(2) RD、WR讀/寫(xiě)操縱命令,由CPU輸入,低電平有效。RD有效時(shí),CPU讀取由A1A0所選定的通道內(nèi)計(jì)數(shù)器的內(nèi)容。WR有效時(shí),CPU將計(jì)數(shù)值寫(xiě)入各個(gè)通道的計(jì)數(shù)器中,或者是將方式操縱字寫(xiě)入操縱字 HYPERLINK /edit/8253%

18、E8%8A%AF%E7%89%87/3699917?dl=2 寄存器中。CPU對(duì)8253的讀/寫(xiě)操作。3.計(jì)數(shù)通道02每個(gè)計(jì)數(shù)通道內(nèi)含1個(gè)16位的初值寄存器、減1計(jì)數(shù)器和1個(gè)16位的(輸出) HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 鎖存器。8253內(nèi)部包含3個(gè)功能完全相同的通道,每個(gè)通道內(nèi)部設(shè)有一個(gè)16位計(jì)數(shù)器,可進(jìn)行 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 二進(jìn)制或 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=

19、2 十進(jìn)制( HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 BCD碼)計(jì)數(shù)。采納二進(jìn)制計(jì)數(shù)時(shí), 寫(xiě)入的初值范圍為0000H0FFFFH,最大計(jì)數(shù)值是0000H,代表65536。采納BCD碼計(jì)數(shù)時(shí),寫(xiě)入的初值范圍為00009999,最大計(jì)數(shù)值是0000,代表10000。與此計(jì)數(shù)器相對(duì)應(yīng),每個(gè)通道內(nèi)設(shè)有一個(gè)16位計(jì)數(shù)值鎖存器。必要時(shí)可用來(lái)鎖存計(jì)數(shù)值。當(dāng)某通道用作計(jì)數(shù)器時(shí),應(yīng)將要求計(jì)數(shù)的次數(shù)預(yù)置到該通道的計(jì)數(shù)器中、被計(jì)數(shù)的事件應(yīng)以脈沖方式從 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2

20、 CLK端輸入,每輸入一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器內(nèi)容減“1”,待計(jì)數(shù)值計(jì)到“0”,OUT端將有輸出,表示計(jì)數(shù)次數(shù)到。當(dāng)某個(gè)通道用作 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 定時(shí)器時(shí),由CLK輸入一定頻率的 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 時(shí)鐘脈沖,依照要求定時(shí)的時(shí)刻長(zhǎng)短確定所需的計(jì)數(shù)值。計(jì)數(shù)器的初值即定時(shí)系數(shù)應(yīng)依照要求定時(shí)的時(shí)刻進(jìn)行如下運(yùn)算才能得到:定時(shí)系數(shù)=需要定時(shí)的時(shí)刻/ HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/369991

21、7?dl=2 時(shí)鐘脈沖周期設(shè)置通道:向方式操縱字 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 寄存器端口 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 寫(xiě)入方式選擇操縱字,用于確定要設(shè)置的通道及工作方式;計(jì)數(shù)/定時(shí):向通道寫(xiě)入計(jì)數(shù)值,啟動(dòng)計(jì)數(shù)操作;讀取當(dāng)前的計(jì)數(shù)值:向指定通道讀取當(dāng)前計(jì)數(shù)器值時(shí),8253將計(jì)數(shù)器值存入 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 鎖存器,從鎖存器向外提供當(dāng)前的計(jì)數(shù)器值,計(jì)數(shù)器則接著作計(jì)數(shù)

22、操作。計(jì)數(shù)到:當(dāng)計(jì)數(shù)器減1為0時(shí),通過(guò) HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 引腳OUT向外輸出“到”的 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 脈沖信號(hào)。計(jì)數(shù)初值輸入存放在初值 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 寄存器中,計(jì)數(shù)開(kāi)始或重裝入時(shí)被復(fù)制到計(jì)數(shù)器中。4.方式選擇操縱字8253的初始化編程確實(shí)是對(duì)其工作方式的確定。具體實(shí)現(xiàn)確實(shí)是在8253上電后,由CPU向8253的 HYPERLINK /

23、edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 操縱寄存器寫(xiě)入一個(gè)操縱字,就能夠規(guī)定8253的工作方式、計(jì)數(shù)值的長(zhǎng)度以及計(jì)數(shù)所用的 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 數(shù)制等,另外依照要求將計(jì)數(shù)值寫(xiě)入8253的相應(yīng)通道。8253的一個(gè)方式操縱字只決定一個(gè)技術(shù)通道的工作模式。三、8253的通道工作方式8253中各通道可有6種可供選擇的工作方式, 以完成定時(shí)、計(jì)數(shù)或 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 脈沖發(fā)生器等多種功能。825

24、3的各種工作方式如下:1.方式0:計(jì)數(shù)結(jié)束則中斷工作方式0被稱(chēng)為計(jì)數(shù)結(jié)束 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 中斷方式。當(dāng)任一通道被定義為工作方式0時(shí), OUT輸出為 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 低電平;若門(mén)控信號(hào)GATE為 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 高電平,當(dāng)CPU利用輸出指令向該通道寫(xiě)入計(jì)數(shù)值WR#有效時(shí),OUT仍保持低電平,然后計(jì)數(shù)器開(kāi)始減“1”計(jì)數(shù), 直到計(jì)數(shù)值為“0

25、”,此刻O(píng)UT將輸出由低電平向高電平跳變,可用它向CPU發(fā)出 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 中斷請(qǐng)求,OUT端輸出的高電平一直維持到下次再寫(xiě)入計(jì)數(shù)值為止。在工作方式0情況下,門(mén)控信號(hào)GATE用來(lái)操縱減“1”計(jì)數(shù)操作是否進(jìn)行。當(dāng)GATE=1時(shí),同意減“1”計(jì)數(shù);GATE=0時(shí),禁止減“1”計(jì)數(shù); 計(jì)數(shù)值將保持GATE有效時(shí)的數(shù)值不變, 待GATE重新有效后,減“1”計(jì)數(shù)接著進(jìn)行。顯然,利用工作方式0既可完成計(jì)數(shù)功能, 也可完成定時(shí)功能。當(dāng)用作計(jì)數(shù)器時(shí),應(yīng)將要求計(jì)數(shù)的次數(shù)預(yù)置到計(jì)數(shù)器中,將要求計(jì)數(shù)的事件以脈沖方式從CLK端輸

26、入, 由它對(duì)計(jì)數(shù)器進(jìn)行減“1”計(jì)數(shù),直到計(jì)數(shù)值為0,此刻O(píng)UT輸出正跳變, 表示計(jì)數(shù)次數(shù)到。當(dāng)用作 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 定時(shí)器時(shí),應(yīng)把依照要求定時(shí)的時(shí)刻和CLK的周期計(jì)算出定時(shí)系數(shù),預(yù)置到計(jì)數(shù)器中。從CLK,輸入的應(yīng)是一定頻率的 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 時(shí)鐘脈沖,由它對(duì)計(jì)數(shù)器進(jìn)行減“1”計(jì)數(shù), 定時(shí)時(shí)刻從寫(xiě)入計(jì)數(shù)值開(kāi)始,到計(jì)數(shù)值計(jì)到“0”為止,這時(shí)OUT輸出正跳變,表示定時(shí)時(shí)刻到。有一點(diǎn)需要講明,任一通道工作在方式0情況下, 計(jì)數(shù)器

27、初值一次有效,通過(guò)一次計(jì)數(shù)或定時(shí)后假如需要接著完成計(jì)數(shù)或定時(shí)功能,必須重新寫(xiě)入計(jì)數(shù)器的初值。2.方式1:?jiǎn)?HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 脈沖發(fā)生器工作方式1被稱(chēng)作可編程單脈沖發(fā)生器。進(jìn)入這種工作方式, CPU裝入計(jì)數(shù)值n后OUT輸出 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 高電平, 不管現(xiàn)在的GATE輸入是高電平依舊 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 低電平, 都不開(kāi)始減“1”計(jì)數(shù),必須

28、等到GATE由低電平向高電平跳變形成一個(gè) HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 上升沿后,計(jì)數(shù)過(guò)程才會(huì)開(kāi)始。與此同時(shí),OUT輸出由高電平向低電平跳變,形成了輸出單脈沖的前沿,待計(jì)數(shù)值計(jì)到“0”, OUT輸出由低電平向高電平跳變,形成輸出單脈沖的后沿, 因此,由方式l所能輸出單脈沖的寬度為CLK周期的n倍。假如在減“1”計(jì)數(shù)過(guò)程中, GATE由高電平跳變?yōu)榈碗姾?,這并不阻礙計(jì)數(shù)過(guò)程,仍接著計(jì)數(shù);但若重新遇到GATE的上升沿,則從初值開(kāi)始重新計(jì)數(shù), 其效果會(huì)使輸出的單脈沖加寬,如教材圖9-22(b)中的第2個(gè)單脈沖。這種工作方式下,

29、計(jì)數(shù)值也是一次有效,每輸入一次計(jì)數(shù)值,只產(chǎn)生一個(gè)負(fù)極性單脈沖。3.方式2:速率波發(fā)生器工作方式2被稱(chēng)作速率波發(fā)生器。進(jìn)入這種工作方式, OUT輸出 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 高電平,裝入計(jì)數(shù)值n后假如GATE為高電平,則立即開(kāi)始計(jì)數(shù),OUT保持為高電平不變; 待計(jì)數(shù)值減到“1”和“0”之間, OUT將輸出寬度為一個(gè)CLK周期的負(fù)脈沖,計(jì)數(shù)值為“0”時(shí),自動(dòng)重新裝入計(jì)數(shù)初值n,實(shí)現(xiàn)循環(huán)計(jì)數(shù),OUT將輸出一定頻率的負(fù)脈沖序列, 其脈沖寬度固定為一個(gè)CLK周期, 重復(fù)周期為CLK周期的n倍。假如在減“1”計(jì)數(shù)過(guò)程中,GAT

30、E變?yōu)闊o(wú)效(輸入0電平),則暫停減“1”計(jì)數(shù),待GATE恢復(fù)有效后,從初值n開(kāi)始重新計(jì)數(shù)。如此會(huì)改變輸出脈沖的速率。假如在操作過(guò)程中要求改變輸出脈沖的速率,CPU可在任何時(shí)候,重新寫(xiě)人新的計(jì)數(shù)值, 它可不能阻礙正在進(jìn)行的減“1”計(jì)數(shù)過(guò)程,而是從下一個(gè)計(jì)數(shù)操作用期開(kāi)始按新的計(jì)數(shù)值改變輸出脈沖的速率。4.方式3:方波發(fā)生器工作方式3被稱(chēng)作方波發(fā)生器。任一通道工作在方式3,只在計(jì)數(shù)值n為偶數(shù),則可輸出重復(fù)周期為n、 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 占空比為1:1的方波。進(jìn)入工作方式3,OUT輸出 HYPERLINK /edit/

31、8253%E8%8A%AF%E7%89%87/3699917?dl=2 低電平, 裝入計(jì)數(shù)值后,OUT立即跳變?yōu)?HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 高電平。假如當(dāng)GATE為高電平, 則立即開(kāi)始減“1”計(jì)數(shù),OUT保持為高電平,若n為偶數(shù),則當(dāng)計(jì)數(shù)值減到n/2時(shí),OUT跳變?yōu)榈碗娖?,一直保持到?jì)數(shù)值為“0”,系統(tǒng)才自動(dòng)重新置入計(jì)數(shù)值n,實(shí)現(xiàn)循環(huán)計(jì)數(shù)。這時(shí)OUT端輸出的周期為nCLK周期, HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 占空比為1:1的方波序列; 若n為奇

32、數(shù), 則OUT端輸出周期為nCLK周期,占空比為(n+1)/2)/(n-1)/2)的近似方波序列。假如在操作過(guò)程中, GATE變?yōu)闊o(wú)效,則暫停減“1”計(jì)數(shù)過(guò)程,直到GATE再次有效,重新從初值n開(kāi)始減“1”計(jì)數(shù)。假如要求改變輸出方波的速率, 則CPU可在任何時(shí)候重新裝入新的計(jì)數(shù)初值n,并從下一個(gè)計(jì)數(shù)操作周期開(kāi)始改變輸出方波的速率。5.方式4:軟件觸發(fā)方式計(jì)數(shù)工作方式4被稱(chēng)作軟件觸發(fā)方式。進(jìn)入工作方式4,OUT輸出 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 高電平。 裝入計(jì)數(shù)值n后, 假如GATE為高電平,則立即開(kāi)始減“1”計(jì)數(shù),直到

33、計(jì)數(shù)值減到“0”為止,OUT輸出寬度為一個(gè)CLK周期的負(fù)脈沖。由軟件裝入的計(jì)數(shù)值只有一次有效,假如要接著操作, 必須重新置入計(jì)數(shù)初值n。假如在操作的過(guò)程中,GATE變?yōu)闊o(wú)效,則停止減“1”計(jì)數(shù),到GATE再次有效時(shí),重新從初值開(kāi)始減“1”計(jì)數(shù)。顯然,利用這種工作方式能夠完成定時(shí)功能,定時(shí)時(shí)刻從裝入計(jì)數(shù)值n開(kāi)始,則OUT輸出負(fù)脈沖(表示定時(shí)時(shí)刻到),其定時(shí)時(shí)刻=nCLK周期。這種工作方式也可完成計(jì)數(shù)功能,它要求計(jì)數(shù)的事件以脈沖的方式從CLK輸入,將計(jì)數(shù)次數(shù)作為計(jì)數(shù)初值裝入后,由CLK端輸入的計(jì)數(shù)脈沖進(jìn)行減“1”計(jì)數(shù),直到計(jì)數(shù)值為“0”,由OUT端輸出負(fù)脈沖(表示計(jì)數(shù)次數(shù)到)。 因此也可利用OUT

34、向CPU發(fā)出 HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 中斷請(qǐng)求。 因此工作方式4與工作方式0專(zhuān)門(mén)相似,只是方式0在OUT端輸出正階躍信號(hào)、方式4在OUT端輸出負(fù) HYPERLINK /edit/8253%E8%8A%AF%E7%89%87/3699917?dl=2 脈沖信號(hào)。2.2.3 8251芯片一、8251A的內(nèi)部結(jié)構(gòu)圖2-4 8251引腳圖二、8251A的工作過(guò)程 (1)8251A發(fā)送數(shù)據(jù)的過(guò)程 當(dāng)發(fā)送緩沖器為空時(shí),信號(hào)TXRDY有效(或狀態(tài)字的D0=1),以示發(fā)送器預(yù)備好,等待CPU送入數(shù)據(jù)。 CPU將要發(fā)送的數(shù)據(jù)寫(xiě)入82

35、51A的發(fā)送緩沖器; 發(fā)送的數(shù)據(jù)進(jìn)行“并串”轉(zhuǎn)換; 插入起始位、奇/偶位和停止位或同步字符等,數(shù)據(jù)一位一位從TXD端串行輸出。(2)8251A接收數(shù)據(jù)的過(guò)程 在RXD端檢測(cè)到起始位或同步字符; 開(kāi)始在RXD線上采集數(shù)據(jù); 將接收到的數(shù)據(jù)“串并”轉(zhuǎn)換,并進(jìn)行奇偶校驗(yàn)和檢查錯(cuò)誤; 將采樣到的、通過(guò)變換的8位數(shù)據(jù)由接收緩沖器送入數(shù)據(jù)總線緩沖器; 信號(hào)RXRDY有效(或狀態(tài)字的D1=1),以示8251A已接收到一個(gè)數(shù)據(jù),待CPU讀取。三、8251A的初始化在如前面差不多強(qiáng)調(diào)過(guò)的,在使用可編程接口之前必須進(jìn)行初始化,即在使用8251A進(jìn)行數(shù)據(jù)傳輸前,對(duì)其進(jìn)行編程,將相關(guān)方式指令字、命令指令字寫(xiě)入8251

36、A。8251A初始化的具體步驟如圖所示。圖2-5 初始化流程圖四、8251A的操縱字和狀態(tài)字 關(guān)于8251A的方式指令字、命令指令字和狀態(tài)字,應(yīng)著重對(duì)字中各位符號(hào)0、1含義的理解,掌握這些字的應(yīng)用。(1)方式指令字(操縱字)格式 方式指令字的格式如圖1-4所示:注方式指令字的B2B1=00,現(xiàn)在8251A工作于同步方式,而字中S2S1的設(shè)置不起作用。圖2-6 251A方式指令字格式(2)命令指令字(操縱字)格式 命令指令字的格式如圖1-5所示: 圖2-7 8251A方式指令字格式(3)狀態(tài)字 8251A的狀態(tài)字格式如圖1-6所示: (i)狀態(tài)位RXRDY、TXE、SYNDET和8251A的引腳

37、信號(hào)RXRDY、TXE、SYNDET定義相同,電平一致; (ii)狀態(tài)位TXRDY與8251A的引腳信號(hào)TXRDY定義相同,但條件不一樣。當(dāng)發(fā)送緩沖器為空時(shí),狀態(tài)位TXRDY=1;而引腳信號(hào)TXRDY為高電平的條件是狀態(tài)位TXRDY=1、命令操縱字TXEN=1,且輸入低電平。 (iii)采納查詢(xún)方式利用8251A傳送數(shù)據(jù)時(shí),可通過(guò)對(duì)狀態(tài)位RXRDY或TXRDY的測(cè)試來(lái)進(jìn)行數(shù)據(jù)的傳送。 圖2-8 8251A的狀態(tài)字格式2.2.4 12864字符型液晶屏一、管腳詳解管腳號(hào)管腳名稱(chēng)電平管腳功能描述1VSS0V電源地2VCC3.0+5V電源正3V0-對(duì)比度(亮度)調(diào)整4RS(CS)H/LRS=“H”,

38、表示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ù)被寫(xiě)到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ù)線14DB7H/L三態(tài)數(shù)據(jù)線15PSBH/LH:8位或4位并口方式,L:串口方式(見(jiàn)注釋1)16NC-空腳17/RESETH/L復(fù)位端,低電平有效(見(jiàn)注釋2)18VOUT-LCD驅(qū)動(dòng)電壓

39、輸出端19AVDD背光源正端(+5V)(見(jiàn)注釋3)20KVSS背光源負(fù)端(見(jiàn)注釋3)*注釋1:如在實(shí)際應(yīng)用中僅使用并口通訊模式,可將PSB接固定高電平,也能夠?qū)⒛K上的J8和“VCC”用焊錫短接。二、操縱器接口信號(hào)講明(1)RS,R/W的配合選擇決定操縱界面的4種模式:RSR/W功能講明LLMPU寫(xiě)指令到指令暫存器(IR)LH讀出忙標(biāo)志(BF)及地址記數(shù)器(AC)的狀態(tài)HLMPU寫(xiě)入數(shù)據(jù)到數(shù)據(jù)暫存器(DR)HHMPU從數(shù)據(jù)暫存器(DR)中讀出數(shù)據(jù)(2)E信號(hào)E狀態(tài)執(zhí)行動(dòng)作結(jié)果高低I/O緩沖DR配合/W進(jìn)行寫(xiě)數(shù)據(jù)或指令高DRI/O緩沖配合R進(jìn)行讀數(shù)據(jù)或指令低/低高無(wú)動(dòng)作 忙標(biāo)志:BF BF標(biāo)志提

40、供內(nèi)部工作情況.BF=1表示模塊在進(jìn)行內(nèi)部操作,現(xiàn)在模塊不同意外部指令和數(shù)據(jù).BF=0時(shí),模塊為預(yù)備狀態(tài),隨時(shí)可同意外部指令和數(shù)據(jù). 利用STATUS RD 指令,能夠?qū)F讀到DB7總線,從而檢驗(yàn)?zāi)K之工作狀態(tài). 字型產(chǎn)生ROM(CGROM) 字型產(chǎn)生ROM(CGROM)提供8192個(gè)此觸發(fā)器是用于模塊屏幕顯示開(kāi)和關(guān)的操縱。DFF=1為開(kāi)顯示(DISPLAY ON),DDRAM 的內(nèi)容就顯示在屏幕上,DFF=0為關(guān)顯示(DISPLAY OFF)。DFF 的狀態(tài)是指令DISPLAY ON/OFF和RST信號(hào)操縱的。 顯示數(shù)據(jù)RAM(DDRAM)模塊內(nèi)部顯示數(shù)據(jù)RAM提供642個(gè)位元組的空間,最

41、多可操縱4行16字(64個(gè)字)的中文字型顯示,當(dāng)寫(xiě)入顯示數(shù)據(jù)RAM時(shí),可分不顯示CGROM與CGRAM的字型;此模塊可顯示三種字型,分不是半角英數(shù)字型(16*8)、CGRAM字型及CGROM的中文字型,三種字型的選擇,由在DDRAM中寫(xiě)入的編碼選擇,在0000H0006H的編碼中(其代碼分不是0000、0002、0004、0006共4個(gè))將選擇CGRAM的自定義字型,02H7FH的編碼中將選擇半角英數(shù)字的字型,至于A1以上的編碼將自動(dòng)的結(jié)合下一個(gè)位元組,組成兩個(gè)位元組的編碼形成中文字型的編碼BIG5(A140D75F),GB(A1A0-F7FFH)。 字型產(chǎn)生RAM(CGRAM) 字型產(chǎn)生RA

42、M提供圖象定義(造字)功能, 能夠提供四組1616點(diǎn)的自定義圖象空間,使用者能夠?qū)?nèi)部字型沒(méi)有提供的圖象字型自行定義到CGRAM中,便可和CGROM中的定義一樣地通過(guò)DDRAM顯示在屏幕中。 地址計(jì)數(shù)器AC地址計(jì)數(shù)器是用來(lái)貯存DDRAM/CGRAM之一的地址,它可由設(shè)定指令暫存器來(lái)改變,之后只要讀取或是寫(xiě)入DDRAM/CGRAM的值時(shí),地址計(jì)數(shù)器的值就會(huì)自動(dòng)加一,當(dāng)RS為“0”時(shí)而R/W為“1”時(shí),地址計(jì)數(shù)器的值會(huì)被讀取到DB6DB0中。 光標(biāo)/閃耀操縱電路此模塊提供硬體光標(biāo)及閃耀操縱電路,由地址計(jì)數(shù)器的值來(lái)指定DDRAM中的光標(biāo)或閃耀位置。3、指令講明模塊操縱芯片提供兩套操縱命令,差不多指令

43、和擴(kuò)充指令如下:指令表1:(RE=0:差不多指令)指 令 碼功 能令RSR/WD7D6D5D4D3D2D1D0 清除顯示0000000001地址歸位000000001X顯示狀態(tài)開(kāi)/關(guān)0000001DCBD=1: 整體顯示 ONC=1: 游標(biāo)ON B=1:游標(biāo)位置反白同意進(jìn)入點(diǎn)設(shè)定00000001I/DS指定在數(shù)據(jù)的讀取與寫(xiě)入時(shí),設(shè)定游標(biāo)的移動(dòng)方向及指定顯示的移位I/D=1;AC自增,若光標(biāo)顯示同意,則光標(biāo)自動(dòng)右移1位I/D=0;AC自減,SH=1;移動(dòng)顯示打開(kāi),若I/D=1;整屏左移一位,0右移一位游標(biāo)或顯示移位操縱000001S/CR/LXX設(shè)定游標(biāo)的移動(dòng)與顯示的移位操縱位;那個(gè)指令不改變D

44、DRAM 的內(nèi)容功能設(shè)定00001DLXREXXDL=0/1:4/8位數(shù)據(jù)RE=1: 擴(kuò)充指令操作RE=0: 差不多指令操作設(shè)定CGRAM地址0001AC5AC4AC3AC2AC1AC0設(shè)定CGRAM 地址設(shè)定DDRAM地址0010AC5AC4AC3AC2AC1AC0設(shè)定DDRAM 地址(顯示位址)第一行:80H87H第二行:90H97H讀取忙標(biāo)志和地址01BFAC6AC5AC4AC3AC2AC1AC0讀取忙標(biāo)志(BF)能夠確認(rèn)內(nèi)部動(dòng)作是否完成,同時(shí)能夠讀出地址計(jì)數(shù)器(AC)的值寫(xiě)數(shù)據(jù)到RAM10數(shù)據(jù)將數(shù)據(jù)D7D0寫(xiě)入到內(nèi)部的RAM (DDRAM/CGRAM/IRAM/GRAM)讀出RAM的值

45、11數(shù)據(jù)從內(nèi)部RAM讀取數(shù)據(jù)D7D0(DDRAM/CGRAM/IRAM/GRAM)指令表2:(RE=1:擴(kuò)充指令)指令指 令 碼功 能RSR/WD7D6D5D4D3D2D1D0 待命模式0000000001進(jìn)入待命模式,執(zhí)行其他指令都棵終止待命模式000000001SR 反白 選擇00000001R1R0選擇2行中的任一行作反白顯示,并可決定反白與否。初始值R1R000,第一次設(shè)定為反白顯示,再次設(shè)定變回正常 睡眠 模式0000001SLXXSL=0:進(jìn)入睡眠模式SL=1:脫離睡眠模式 擴(kuò)充 功能 設(shè)定00001CLXREG0CL=0/1:4/8位數(shù)據(jù)RE=1: 擴(kuò)充指令操作RE=0: 差不多

46、指令操作G=1/0:繪圖開(kāi)關(guān)設(shè)定繪圖RAM地址0010AC60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0設(shè)定繪圖RAM先設(shè)定垂直(列)地址AC6AC5AC0再設(shè)定水平(行)地址AC3AC2AC1AC0將以上16位地址連續(xù)寫(xiě)入即可備注;當(dāng)IC1在同意指令前,微處理器必須先確認(rèn)其內(nèi)部處于非忙碌狀態(tài),即讀取BF標(biāo)志時(shí),BF需為零,方可同意新的指令;假如在送出一個(gè)指令前并不檢查BF標(biāo)志,那么在前一個(gè)指令和那個(gè)指令中間必須延長(zhǎng)一段較長(zhǎng)的時(shí)刻,即是等待前一個(gè)指令確實(shí)執(zhí)行完成。2.2 藍(lán)牙收發(fā)模塊2.2.1 概述BLK-MD-BC04-B藍(lán)牙模塊是深圳市博陸科電子科技有限公司專(zhuān)為智能無(wú)線

47、數(shù)據(jù)傳輸而打造,采納英國(guó) CSR 公司 BlueCore4-Ext 芯片,遵循V2.1+EDR藍(lán)牙規(guī)范。本模塊支持 UART,USB,SPI,PCM,SPDIF 等接口,并支持SPP藍(lán)牙串口協(xié)議,具有成本低、體積小、功耗低、收發(fā)靈敏性高等優(yōu)點(diǎn),只需配備少許的外圍元件就能實(shí)現(xiàn)其強(qiáng)大功能。2.2.2 特點(diǎn)藍(lán)牙 V2.1+EDR 藍(lán)牙 Class 2內(nèi)置 PCB 射頻天線內(nèi)置 8Mbit Flash 支持 SPI 編程接口支持 UART,USB,SPI,PCM 等接口3.3V 電源通過(guò) REACH、ROHS 認(rèn)證2.2.3 應(yīng)用領(lǐng)域該模塊要緊用于短距離的數(shù)據(jù)無(wú)線傳輸領(lǐng)域。能夠方便的和 PC 機(jī)的藍(lán)牙

48、設(shè)備相連,也能夠兩個(gè)模塊之間的數(shù)據(jù)互通。幸免繁瑣的線纜連接,能直接替代串口線。 藍(lán)牙無(wú)線數(shù)據(jù)傳輸; 工業(yè)遙控、遙測(cè); POS 系統(tǒng),無(wú)線鍵盤(pán)、鼠標(biāo); 交通,井下定位、報(bào)警; 自動(dòng)化數(shù)據(jù)采集系統(tǒng); 無(wú)線數(shù)據(jù)傳輸;銀行系統(tǒng); 無(wú)線數(shù)據(jù)采集; 樓宇自動(dòng)化、安防、機(jī)房設(shè)備無(wú)線監(jiān)控、門(mén)禁系統(tǒng); 智能家居、工業(yè)操縱; 汽車(chē)檢測(cè)設(shè)備; 電視臺(tái)的互動(dòng)節(jié)目表決設(shè)備; 政府路燈節(jié)能設(shè)備 無(wú)線 LED 顯示屏系統(tǒng) 2.2.4 功能框圖圖2-8 藍(lán)牙模塊功能框圖2.2.5 應(yīng)用電路圖圖2-9 應(yīng)用電路圖2.2.6 主從設(shè)置及其他配置狀態(tài)指示 LED:PIO(1)用于指示藍(lán)牙模塊所處狀態(tài),LED 燈閃耀方式與藍(lán)牙模塊狀

49、態(tài)對(duì)應(yīng)見(jiàn)下表:模式LED 顯示模塊狀態(tài)從模式均勻快速閃耀(200ms-on,200ms-off)等待配對(duì)長(zhǎng)亮建立連接第三章 軟件結(jié)構(gòu)3.1 程序子模塊組成3.1.1 設(shè)計(jì)思路1、差不多功能通過(guò)輸入命令字可進(jìn)入相應(yīng)的功能中: = 1 * GB2 、數(shù)碼管顯示輸入數(shù)字 = 2 * GB2 、電機(jī)運(yùn)動(dòng)與停止 = 3 * GB2 、LCD屏顯示英文與數(shù)字 = 4 * GB2 、LCD屏顯示漢字報(bào)文。在各個(gè)功能可輸入數(shù)字、英文、漢字的編碼,即可實(shí)現(xiàn)相應(yīng)的顯示或動(dòng)作。2、設(shè)計(jì)過(guò)程在本創(chuàng)新課程設(shè)計(jì)中依照復(fù)雜程序設(shè)計(jì)思想模塊化程序設(shè)計(jì),首先分析和確定程序設(shè)計(jì)的總體目標(biāo);然后將總體目標(biāo)劃分為若干模塊,具體的對(duì)每

50、個(gè)功舵的實(shí)現(xiàn)進(jìn)行設(shè)計(jì)。裎序設(shè)計(jì)的思路按以下順序進(jìn)行:分析與確定程序總體設(shè)計(jì)目標(biāo).藍(lán)牙接收部分的選擇.藍(lán)牙接收電路的設(shè)計(jì)、焊接與調(diào)試.定義毎個(gè)模塊的具體任務(wù)編寫(xiě)源程序并進(jìn)行調(diào)試。程序調(diào)試過(guò)程中現(xiàn)將各個(gè)模塊進(jìn)行調(diào)試,然后和進(jìn)行整體調(diào)試。完成實(shí)艙報(bào)告。3.1.2 程序模塊組成 主程序主程序首先是對(duì)各個(gè)芯片及外設(shè)的初始化,然后依照串口中斷中收到的數(shù)據(jù)推斷命令字,依照命令字進(jìn)入相應(yīng)的程序塊中執(zhí)行相應(yīng)動(dòng)作。主程序?qū)嶋H是一個(gè)死循環(huán),當(dāng)進(jìn)入主程序后推斷命令字,只有輸入正確命令字才進(jìn)入相應(yīng)的程序塊中。再程序塊中執(zhí)行相應(yīng)功能時(shí),假如再有命令字輸入就會(huì)再次跳到命令字推斷程序。 顯示實(shí)現(xiàn)子程序?qū)CD的操作要緊有兩個(gè)

51、方面:(1)在使用之前要先對(duì)其進(jìn)行初始化。這次實(shí)驗(yàn)均是對(duì)各文字顯示,因此只涉及對(duì)差不多顯示的命令設(shè)置,包括開(kāi)顯示和游標(biāo)復(fù)位。在寫(xiě)入命令字時(shí)依照操作要求將對(duì)應(yīng)操縱為置位、復(fù)位。(2)寫(xiě)顯示操作。在對(duì)LCD初始化之后,就能寫(xiě)要顯示的數(shù)據(jù)了,數(shù)據(jù)是通過(guò)串口接收到的。寫(xiě)入數(shù)據(jù)時(shí)先使能液晶屏,再將D/I位置位表示寫(xiě)入為數(shù)據(jù),然后將讀寫(xiě)位復(fù)位,字符型數(shù)據(jù)可直接寫(xiě)入數(shù)據(jù)口,在寫(xiě)入漢字時(shí)要將數(shù)據(jù)第八位寫(xiě)1,并連續(xù)寫(xiě)入兩個(gè)數(shù)據(jù)才能顯示出一個(gè)漢字。 串口復(fù)位及初始化子程序串口復(fù)位及初始化要緊是依照8251芯片工作方式操縱字及命令操縱字對(duì)8251寫(xiě)入操縱字。由于初始化編程必須在系統(tǒng)復(fù)位以后,因此需要首先進(jìn)行復(fù)位操作

52、。8251的復(fù)位操作是將8251的命令操縱字響應(yīng)位寫(xiě)1實(shí)現(xiàn)的。系統(tǒng)復(fù)位后,就能夠?qū)?251進(jìn)行工作方式的設(shè)置,通過(guò)寫(xiě)入工作方式操縱字,將工作方式設(shè)置為1停止位、無(wú)校驗(yàn)位、波特率因子為16,最后使能串口發(fā)送和接收即可完成初始化編程。 串口接收子程序在串口接收程序中,首先重新寫(xiě)入操縱字,同意接收,以使波特率誤差校正。然后不斷的讀狀態(tài)操縱寄存器,檢測(cè)是否接收完成。接收完成后即可讀出數(shù)據(jù)寄存器中的數(shù)據(jù),并在PC機(jī)屏幕顯示R以表示接收完成。 各功能程序塊1、數(shù)碼管顯示數(shù)碼管顯示比較容易,確實(shí)是將接收到的字符碼轉(zhuǎn)換為十進(jìn)制數(shù),然后查找數(shù)碼管碼表得到編碼,進(jìn)行顯示即可。假如接收到新的命令字,返回程序命令推斷

53、部分。2、電機(jī)動(dòng)作當(dāng)接收到電機(jī)動(dòng)作指令時(shí),進(jìn)入電機(jī)動(dòng)作程序塊,將電機(jī)操縱端置位,電機(jī)即可運(yùn)轉(zhuǎn)。在此期間關(guān)于非命令字,不予理睬,假如接收到新的命令字,返回程序命令推斷部分。3、LCD屏顯示英文及數(shù)字那個(gè)是利用了LCD屏最差不多的顯示字符功能,通過(guò)手機(jī)操縱端發(fā)送英文及數(shù)字,藍(lán)牙協(xié)議將轉(zhuǎn)化為編碼形式發(fā)出,PC機(jī)接收到編碼后,寫(xiě)入LCD翻譯顯示即可實(shí)現(xiàn)在LCD上顯示英文及數(shù)字的功能。4、LCD屏顯示報(bào)文ASCII碼表只是對(duì)字符的編碼,關(guān)于漢字并沒(méi)有編碼,因此就要依照漢字碼表進(jìn)行翻譯顯示。在接收到數(shù)據(jù)后要對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,首先將接收數(shù)據(jù)第八位寫(xiě)1,變成漢字表,然后要將兩個(gè)連續(xù)接收的數(shù)據(jù)依次寫(xiě)入LCD屏

54、才能實(shí)現(xiàn)漢字顯示。通過(guò)此功能可實(shí)現(xiàn)顯示短信、報(bào)文翻譯顯示的功能。3.2 程序運(yùn)行流程圖3.2.1 主程序流程圖開(kāi)始開(kāi)始初始化初始化8253,設(shè)置CNT0初值為0DH初始化初始化8255,IO口設(shè)置為輸出初始化初始化LCD,功能設(shè)定,開(kāi)顯示存儲(chǔ)存儲(chǔ)原中斷向量,填寫(xiě)中斷向量表開(kāi)放中斷請(qǐng)求開(kāi)放中斷請(qǐng)求,打開(kāi)中斷調(diào)用調(diào)用8251初始化子程序,初始化8251是DATA_R是DATA_R是否等于2跳轉(zhuǎn)至數(shù)碼管顯示程序塊跳轉(zhuǎn)至數(shù)碼管顯示程序塊否0否0是DATA_R是否是DATA_R是否等于3跳轉(zhuǎn)至電機(jī)動(dòng)作程序塊跳轉(zhuǎn)至電機(jī)動(dòng)作程序塊是否0是否0跳轉(zhuǎn)至LCD跳轉(zhuǎn)至LCD顯示英文、數(shù)字程序塊DATA_R是否等于4

55、否0否0是DATA_R是DATA_R是否等于5跳轉(zhuǎn)至LCD跳轉(zhuǎn)至LCD顯示報(bào)文程序塊否0否0等待等待中斷3.2.2 中斷子程序流程圖開(kāi)始開(kāi)始關(guān)中斷關(guān)中斷調(diào)用串口調(diào)用串口數(shù)據(jù)讀入函數(shù),將接收的數(shù)據(jù)存入DATA_R變量變量SW寫(xiě)入8發(fā)出中斷結(jié)束發(fā)出中斷結(jié)束指令結(jié)束開(kāi)中斷結(jié)束開(kāi)中斷3.2.3 復(fù)位8251子程序流程圖開(kāi)始開(kāi)始向8251操縱寄存器寫(xiě)入數(shù)據(jù)并延時(shí)向8251操縱寄存器寫(xiě)入數(shù)據(jù)并延時(shí)愛(ài)護(hù)現(xiàn)場(chǎng)愛(ài)護(hù)現(xiàn)場(chǎng)向向8251數(shù)據(jù)寄存器寫(xiě)入數(shù)據(jù)并延時(shí)寫(xiě)入操縱寫(xiě)入操縱命令字,內(nèi)部復(fù)位恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)結(jié)束結(jié)束3.2.3 初始化8251子程序流程圖開(kāi)始開(kāi)始調(diào)用調(diào)用8251復(fù)位子程序并延時(shí)愛(ài)護(hù)現(xiàn)場(chǎng)愛(ài)護(hù)現(xiàn)場(chǎng)寫(xiě)入工作方

56、式字,寫(xiě)入工作方式字,1停止位,無(wú)校驗(yàn),波特率因子為16延時(shí)延時(shí)寫(xiě)入操縱寫(xiě)入操縱命令字,同意發(fā)送接收延時(shí)延時(shí)恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)結(jié)束結(jié)束3.2.4 串口發(fā)送子程序流程圖開(kāi)始開(kāi)始檢測(cè)TXRED位,等待發(fā)送緩沖器檢測(cè)TXRED位,等待發(fā)送緩沖器空,寫(xiě)入待發(fā)送數(shù)據(jù)同意發(fā)送RTSRTS輸出低電平,復(fù)位出錯(cuò)檢驗(yàn)位同意發(fā)送同意發(fā)送檢測(cè)檢測(cè)TXE位,等待發(fā)送完畢延時(shí)延時(shí)結(jié)束結(jié)束3.2.4 串口接收數(shù)據(jù)子程序流程圖開(kāi)始開(kāi)始同意發(fā)送讀入狀態(tài)字,檢測(cè)RXRED同意發(fā)送讀入狀態(tài)字,檢測(cè)RXRED位,等待接收就緒讀入數(shù)據(jù)將數(shù)據(jù)存入將數(shù)據(jù)存入變量DATA_R中在在PC屏幕顯示數(shù)據(jù),并顯示R表示接收正確結(jié)束結(jié)束3.2.5 L

57、CD操縱位相關(guān)子程序流程圖 LCD液晶屏EN位置位子程序開(kāi)始開(kāi)始愛(ài)護(hù)現(xiàn)場(chǎng)愛(ài)護(hù)現(xiàn)場(chǎng)將將8255的PC2口置位恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)結(jié)束結(jié)束 LCD液晶屏EN位復(fù)位子程序開(kāi)始開(kāi)始愛(ài)護(hù)現(xiàn)場(chǎng)將8255的PC2口復(fù)位恢復(fù)現(xiàn)場(chǎng)愛(ài)護(hù)現(xiàn)場(chǎng)將8255的PC2口復(fù)位恢復(fù)現(xiàn)場(chǎng)結(jié)束 LCD液晶屏RW位置位子程序開(kāi)始開(kāi)始愛(ài)護(hù)現(xiàn)場(chǎng)將8255的PC1口置位恢復(fù)現(xiàn)場(chǎng)愛(ài)護(hù)現(xiàn)場(chǎng)將8255的PC1口置位恢復(fù)現(xiàn)場(chǎng)結(jié)束 LCD液晶屏RW位復(fù)位子程序開(kāi)始開(kāi)始結(jié)束恢復(fù)現(xiàn)場(chǎng)將8255的PC1口復(fù)位結(jié)束恢復(fù)現(xiàn)場(chǎng)將8255的PC1口復(fù)位愛(ài)護(hù)現(xiàn)場(chǎng) LCD液晶屏DI位置位子程序開(kāi)始開(kāi)始結(jié)束恢復(fù)現(xiàn)場(chǎng)將8255的PC0口置位結(jié)束恢復(fù)現(xiàn)場(chǎng)將8255的PC0口置

58、位愛(ài)護(hù)現(xiàn)場(chǎng) LCD液晶屏DI位復(fù)位子程序開(kāi)始開(kāi)始愛(ài)護(hù)現(xiàn)場(chǎng)將8255的PC0口復(fù)位恢復(fù)現(xiàn)場(chǎng)愛(ài)護(hù)現(xiàn)場(chǎng)將8255的PC0口復(fù)位恢復(fù)現(xiàn)場(chǎng)結(jié)束3.2.5 LCD屏顯示子程序流程圖開(kāi)始開(kāi)始愛(ài)護(hù)現(xiàn)場(chǎng)調(diào)用EN愛(ài)護(hù)現(xiàn)場(chǎng)調(diào)用EN置位子程序,使能LCD調(diào)用調(diào)用DI置位子程序,寫(xiě)入數(shù)據(jù)調(diào)用調(diào)用RW復(fù)位子程序,對(duì)LCD寫(xiě)操作通過(guò)通過(guò)8255的PA口,輸出數(shù)據(jù)調(diào)用調(diào)用EN復(fù)位子程序,復(fù)位EN位結(jié)束恢復(fù)現(xiàn)場(chǎng)結(jié)束恢復(fù)現(xiàn)場(chǎng)3.2.6 數(shù)碼管顯示程序塊流程圖開(kāi)始開(kāi)始等待等待中斷接收串口數(shù)據(jù)是DATA_R是DATA_R是否小于0AH返回命令推斷返回命令推斷程序否否00DATA_RDATA_R減30H,得到字符對(duì)應(yīng)的十進(jìn)制數(shù)00BX

59、指向數(shù)碼管編碼首地址BX指向數(shù)碼管編碼首地址那個(gè)數(shù)字是否大于0FH否是是將H將H的編碼存入AL查表得到編碼顯示顯示顯示顯示3.2.7 電機(jī)動(dòng)作程序塊流程圖開(kāi)始開(kāi)始82558255電機(jī)操縱口輸出置位等待中斷接收等待中斷接收串口數(shù)據(jù)00是DATA_R是否小是DATA_R是否小于0AH88255電機(jī)操縱口輸出復(fù)位否否返回命令返回命令推斷程序03.2.8 LCD顯示英文、數(shù)字程序塊流程圖開(kāi)始開(kāi)始等待等待中斷接收串口數(shù)據(jù)是DATA_R是DATA_R是否小于0AH清屏,游標(biāo)復(fù)位清屏,游標(biāo)復(fù)位否0否0返回命令推斷返回命令推斷程序否那個(gè)數(shù)字是否等于0FH是是將數(shù)據(jù)寫(xiě)入將數(shù)據(jù)寫(xiě)入LCD清屏,游標(biāo)復(fù)位3.2.9

60、數(shù)碼管顯示報(bào)文程序塊流程圖清屏,游標(biāo)復(fù)位將數(shù)據(jù)寫(xiě)入LCD那個(gè)數(shù)字是否等于0FH0DATA_R是否小于0AH清屏,游標(biāo)復(fù)位將數(shù)據(jù)寫(xiě)入LCD那個(gè)數(shù)字是否等于0FH0DATA_R是否小于0AH清屏,游標(biāo)復(fù)位等待中斷接收串口數(shù)據(jù)開(kāi)始是是返回返回命令推斷程序第四章 實(shí)驗(yàn)總結(jié)4.1 實(shí)驗(yàn)現(xiàn)象1開(kāi)始實(shí)驗(yàn)打開(kāi)手機(jī)藍(lán)牙,與串口藍(lán)牙芯片連接,預(yù)備通信。2通過(guò)手機(jī)藍(lán)牙向串口發(fā)送操縱指令,選擇功能菜單。3進(jìn)入功能菜單選擇功能,操縱電機(jī)/數(shù)碼管/LCD屏顯示。4在功能中選擇操縱菜單退出功能,(電機(jī)停轉(zhuǎn)/數(shù)碼管清零/LCD清屏)5電機(jī)的轉(zhuǎn)動(dòng)操縱6數(shù)碼管顯示數(shù)據(jù),超限報(bào)警。7LCD附帶功能,顯示藍(lán)牙串口通信內(nèi)容與清屏。4.

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論