單片機(jī)間的通信_第1頁
單片機(jī)間的通信_第2頁
單片機(jī)間的通信_第3頁
單片機(jī)間的通信_第4頁
單片機(jī)間的通信_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)課程設(shè)計第一章 概論1.1 單片機(jī)單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機(jī)系統(tǒng)。在我國,單片機(jī)已經(jīng)不是一個陌生的名詞,它的出現(xiàn)是近代計算機(jī)技術(shù)發(fā)展史上的一個重要里程碑,因為單片機(jī)的誕生標(biāo)志著計算機(jī)正式形成了通用計算機(jī)系統(tǒng)和嵌入式計算機(jī)系統(tǒng)兩大分支。在單片機(jī)誕生之前,為了滿足工程對象的嵌入式應(yīng)用要求,只能將通用計算機(jī)進(jìn)行機(jī)械加固、電氣加固后嵌入到

2、對象系統(tǒng)中構(gòu)成。由于通用計算機(jī)的巨大體積和高成本,無法嵌入到大多數(shù)對象體系中。單片機(jī)則應(yīng)嵌入式應(yīng)用而誕生。單片機(jī)的單芯片的微小體積和極低的成本,可廣泛的嵌入到玩具、家用電器、機(jī)器人、儀器儀表、汽車電子系統(tǒng)、工業(yè)控制單元、辦公自動化設(shè)備、金融電子系統(tǒng)、艦船、個人信息終端及通訊產(chǎn)品中,成為現(xiàn)代電子系統(tǒng)中最重要的智能化工具。單片機(jī)作為最典型的嵌入式系統(tǒng),它的成功應(yīng)用推動了嵌入式系統(tǒng)的發(fā)展。近年來。除了各種類型的工控機(jī),各種以通用微處理器構(gòu)成的計算機(jī)主模板快、以通用處理器為核,片內(nèi)擴(kuò)展一些外圍功能電路單元構(gòu)成的嵌入式微處理器,甚至單片形式的PC及等,都實現(xiàn)了嵌入式應(yīng)用,成為嵌入式系統(tǒng)的龐大家族。作為典

3、型的嵌入式系統(tǒng)的單片機(jī),在我國大規(guī)模應(yīng)用已有十余年歷史。在全國高等工科院校中,已普遍開設(shè)單片機(jī)及相關(guān)課程。單片機(jī)已成為電子系統(tǒng)中最普遍的應(yīng)用手段。除了單設(shè)課程外,在涉及的許多環(huán)節(jié),如課程設(shè)計、畢業(yè)設(shè)計、研究生論文課題中,單片機(jī)系統(tǒng)都是最廣泛的應(yīng)用手段。目前,許多單片機(jī)教材都Shiite以80C51系列為基礎(chǔ)來講述其原理及應(yīng)用的。這是因為MCS-51系列單片機(jī)奠定了8位單片機(jī)的基礎(chǔ),形成了單片機(jī)的經(jīng)典體系結(jié)構(gòu)。單片機(jī)是現(xiàn)代計算機(jī)、電子技術(shù)的新興領(lǐng)域,無論是單片機(jī)本身還是單片機(jī)應(yīng)用系統(tǒng)設(shè)計方案都會隨著時代不斷發(fā)生變變化。1.2雙機(jī)通信兩臺機(jī)器的通信方式可分為單工通信、半雙工通信、雙工通信,他們的通

4、信原理及通信方式為:單工通信:是指消息只能單方向傳輸?shù)墓ぷ鞣绞?。單工通信信道是單向信道,發(fā)送端和接收端的身份是固定的,發(fā)送端只能發(fā)送信息,不能接收信息;接收端只能接收信息,不能發(fā)送信息,數(shù)據(jù)信號僅從一端傳送到另一端,即信息流是單方向的。通信雙方采用“按講”(Push To Talk,PTT)單工通信屬于點到點的通信。根據(jù)收發(fā)頻率的異同,單工通信可分為同頻通信和異頻通信。半雙工通信:這種通信方式可以實現(xiàn)雙向的通信,但不能在兩個方向上同時進(jìn)行,必須輪流交替地進(jìn)行。也就是說,通信信道的每一段都可以是發(fā)送端,也可以是接端。但同一時刻里,信息只能有一個傳輸方向。如日常生活中的例子有步話機(jī)通信等。雙工通信

5、:雙工通信是指在同一時刻信息可以進(jìn)行雙向傳輸,和打電話一樣,說的同時也能聽,邊說邊聽。這種發(fā)射機(jī)和接收機(jī)分別在兩個不同的頻率上(兩個頻率差有一定要求)能同時進(jìn)行工作的雙工機(jī)也稱為異頻雙工機(jī)。雙工機(jī)的特點是使用方便,但線路設(shè)計較復(fù)雜,價格也較高。第2章 串行通信的系統(tǒng)分析2.1 基本原理MCS-51系列單片機(jī)上有一個通用異步接收發(fā)送器UART,通過引腳RXDP3O和TXDP31可與外音B電路進(jìn)行全雙工的串行異步通信,發(fā)送數(shù)據(jù)時由TXD端送出,接收時數(shù)據(jù)由RXD端輸入。本文將具體介紹單片機(jī)串口的特點和編程方法,并且在最后給出一個實用的單片機(jī)與計算機(jī)通過串口通信的程序。MCS-51單片機(jī)的串行端口有

6、4種基本工作方式,通過編程設(shè)置,可以使其工作在任一方式,以滿足不同場合的需要。其中,方式0主要用于外接移位寄存器,以擴(kuò)展單片機(jī)的IO電路;工作方式1多用于雙機(jī)之間或與外設(shè)電路的通信;方式2、3除有方式1的功能外,還可以作多機(jī)通信,以構(gòu)成分布式多微機(jī)系統(tǒng)。 串行端口有兩個控制寄存器SCON、PCON,用于設(shè)置工作方式、發(fā)送或接收的狀態(tài)、特征位、數(shù)據(jù)傳送波特率每秒傳送的位數(shù)以及作為中斷標(biāo)志等。串行端口有一個數(shù)據(jù)寄存器SBUF在特殊功能寄存器中的字節(jié)地址為99H,該寄存器為發(fā)送和接收所共用。串行端口的波特率可以用程序來控制。在不同工作方式中,由時鐘振蕩頻率的分頻值或由定時器T1的定時溢出時間確定,使

7、用十分方便靈活。?串口控制寄存器輸入:在(REN)=1時,串行口采樣RXD引腳,當(dāng)采樣到1至O的跳變時,確認(rèn)是串行發(fā)送來的一幀數(shù)據(jù)的開始位0,從而開始接收一幀數(shù)據(jù)。只有當(dāng)8位數(shù)據(jù)接收完,并檢測到高電平停止位后,只有滿足(R1)=0;(SM2)=0或接收到的第9位數(shù)據(jù)為1時,停止位才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由硬件置位中斷標(biāo)志RI;否則信息丟失。所以在方式1接收時,應(yīng)先用軟件清零RI和SM2標(biāo)志。方式2為固定波特率的11位UART方式。它比方式1增加了一位可程控為1或0的第9位數(shù)據(jù)。輸出:發(fā)送的串行數(shù)據(jù)由TXD端輸出一幀信息為11位,附加的第9位來自SCON寄存器的TB8位,用軟

8、件置位或復(fù)位。它可作為多機(jī)通訊中地址數(shù)據(jù)信息的標(biāo)志位,也可以作為數(shù)據(jù)的奇偶校驗位。當(dāng)CPU執(zhí)行一條數(shù)據(jù)寫入SUBF的指令且TI=0時,就啟動發(fā)送器發(fā)送。發(fā)送一幀信息后,置位中斷標(biāo)志TI。 輸入:在(REN)=1時,串行口采樣RXD引腳,當(dāng)采樣到1至O的跳變時,確認(rèn)是串行發(fā)送來的一幀數(shù)據(jù)的開始位0,從而開始接收一幀數(shù)據(jù)。在接收到附加的第9位數(shù)據(jù)后,當(dāng)滿足(RI):0;(SM2)=0或接收到的第9位數(shù)據(jù)為1時,第9位數(shù)據(jù)才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由硬件置位中斷標(biāo)志Ri;否則信息丟失。且不置位RI。方式3為波特率可變的11位UART方式。除波特率外,其余與方式2相同。 波特率的選擇

9、。如前所述,在串行通訊中,收發(fā)雙方的數(shù)據(jù)傳送率(波特率)要有一定的約定。在MCS-51串行口的四種工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可變的,由定時器T1的溢出率控制。1方式1方式1的波特率固定為主振頻率的1/12。2方式2 方式2的波特率由PCON中的選擇位SMOD來決定,可表示為:波特率=2sMoD×fosc64也就是當(dāng)SMOD=1時,波特率為132×fosc,當(dāng)SMOD=0時,波特率為164×fosc。3方式1和方式3定時器T1作為波特率發(fā)生器,其公式如下:波特率=2SMOD32×定時器T1溢出率T1溢出率=T1計數(shù)率產(chǎn)生

10、溢出所需的周期數(shù) 式中T1計數(shù)率取決于它工作在定時器狀態(tài)還是計數(shù)器狀態(tài)。當(dāng)工作于定時器狀態(tài)時,T1計數(shù)率為Fosc/2:當(dāng)工作于計數(shù)器狀態(tài)時,T1計數(shù)率為外部輸入頻率,此頻率應(yīng)小于Fosc/24。產(chǎn)生溢出所需周期與定時器T1的工作方式、T1的預(yù)置值有關(guān)。定時器T1工作于方式O:溢出所需周期數(shù)=8192-×定時器T1工作于方式1:溢出所需周期數(shù)=65536-X定時器T1工作于方式2:溢出所需周期數(shù)=256-X因為方式2為自動重裝入初值的8位定時器計數(shù)器模式,所以用它來做波特率發(fā)生器最恰當(dāng)。這種方式下,T1的溢出率次秒計算式可以表示為:T1溢出率=Fsoc12256-X2.2 波特率選擇

11、波特率(Boud Rate)就是在串口通信中每秒能夠發(fā)送的位數(shù)(bits/second)。MCS-51串行端口在四種工作模式下有不同的波特率計算方法。其中,模式0和模式2波特率計算很簡單,請同學(xué)們參看教科書;模式1和模式3的波特率選擇相同,故在此僅以工作模式1為例來說明串口通信波特率的選擇。在串行端口工作于模式1,其波特率將由計時/計數(shù)器1來產(chǎn)生,通常設(shè)置定時器工作于模式2(自動再加模式)。在此模式下波特率計算公式為:波特率=(1+SMOD)*晶振頻率/(384*(256-TH1) 其中,SMOD寄存器PCON的第7位,稱為波特率倍增 。TH1定時器的重載值。在選擇波特率的時候需要考慮兩點:首

12、先,系統(tǒng)需要的通信速率。這要根據(jù)系統(tǒng)的運作特點,確定通信的頻率范圍。然后考慮通信時鐘誤差。使用同一晶振頻率在選擇不同的通信速率時通信時鐘誤差會有很大差別。為了通信的穩(wěn)定,我們應(yīng)該盡量選擇時鐘誤差最小的頻率進(jìn)行通信。下面舉例說明波特率選擇過程:假設(shè)系統(tǒng)要求的通信頻率在20000bit/s以下,晶振頻率為12MHz,設(shè)置SMOD=1(即波特率倍增)。TH1=256-62500/波特率 根據(jù)波特率取值表,我們知道可以選取的波特率有:1200,2400,4800,9600,19200。列計數(shù)器重載值。因此,在通信中,最好選用波特率為2400,4800,9600中的一個。2.3 通信協(xié)議的使用通信協(xié)議是

13、通信設(shè)備在通信前的約定。單片機(jī)、計算機(jī)有了協(xié)議這種約定,通信雙方才能明白對方的意圖,以進(jìn)行下一步動作。假定我們需要在PC機(jī)與單片機(jī)之間進(jìn)行通信,在雙方程式設(shè)計過程中,有如下約定:0xA1:單片機(jī)讀取P0端口數(shù)據(jù),并將讀取數(shù)據(jù)返回PC機(jī);0xA2:單片機(jī)從PC機(jī)接收一段控制數(shù)據(jù);0xA3:單片機(jī)操作成功信息。在系統(tǒng)工作過程中,單片機(jī)接收到PC機(jī)數(shù)據(jù)信息后,便查找協(xié)議,完成相應(yīng)的操作。當(dāng)單片機(jī)接收到0xA1時,讀取P0端口數(shù)據(jù),并將讀取數(shù)據(jù)返回PC機(jī);當(dāng)單片機(jī)接收到0xA2時,單片機(jī)等待從PC機(jī)接收一段控制數(shù)據(jù);當(dāng)PC接收到0xA3時,就表明單片機(jī)操作已經(jīng)成功。AT89C51是一種帶4K字節(jié)閃存可

14、編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的

15、方案。外形及引腳排列如圖所示:管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1

16、口作為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P

17、3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時器0外部輸入) P3.5 T1(記時器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) P3口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RS

18、T腳兩個機(jī)器周期的高電平時間。 ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每

19、個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。 振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器,石晶振蕩和陶瓷振蕩均可采用。第三章 硬件

20、設(shè)計3.1單片機(jī)串行通信功能圖1 AT89C51管腳圖計算機(jī)與外界的信息交換稱為通信,常用的通信方式有兩種:并行通信和串行通信。51單片機(jī)用4個接口與外界進(jìn)行數(shù)據(jù)輸入與數(shù)據(jù)輸出就是并行通信,并行通信的特點是傳輸信號的速度快,但所用的信號線較多,成本高,傳輸?shù)木嚯x較近。串行通信的特點是只用兩條信號線(一條信號線,再加一條地線作為信號回路)即可完成通信,成本低,傳輸?shù)木嚯x較遠(yuǎn)。51單片機(jī)的串行接口是一個全雙工的接口,它可以作為UART(通用異步接受和發(fā)送器)用,也可以作為同步移位寄存器用。51單片機(jī)串行接口的結(jié)構(gòu)如下:(1)數(shù)據(jù)緩沖器(SBUF)接受或發(fā)送的數(shù)據(jù)都要先送到SBUF緩存。有兩個,一個

21、緩存,另一個接受,用同一直接地址99H,發(fā)送時用指令將數(shù)據(jù)送到SBUF即可啟動發(fā)送;接收時用指令將SBUF中接收到的數(shù)據(jù)取出。(2)串行控制寄存器(PCON)SCON用于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式選擇位,這兩位組合成00,01,10,11對應(yīng)于工作方式0、1、2、3。串行接口工作方式特點見下表SM0SM1工作方式功能波特率0008位同步移位寄存器(用于I/O擴(kuò)展)fORC/1201110位異步串行通信(UART)可變(T1溢出率*2SMOD/32)10211位異步串行通信(UART)fORC

22、/64或fORC/3211311位異步串行通信(UART)可變(T1溢出率*2SMOD/32)SM2:多機(jī)通信控制位。REN:接收允許控制位。軟件置1允許接收;軟件置0禁止接收。TB8:方式2或3時,TB8為要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0。RB9:在方式2或3時,RB8位接收到的第9位數(shù)據(jù),實際為主機(jī)發(fā)送的第9位數(shù)據(jù)TB8,使從機(jī)根據(jù)這一位來判斷主機(jī)發(fā)送的時呼叫地址還是要傳送的數(shù)據(jù)。TI:發(fā)送中斷標(biāo)志。發(fā)送完一幀數(shù)據(jù)后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)發(fā)送。RI:接收中斷標(biāo)志。接收完一幀數(shù)據(jù)后由硬件自動置位,并申請中斷。必須要軟件清零后才能繼續(xù)接收。(3)輸入移

23、位寄存器接收的數(shù)據(jù)先串行進(jìn)入輸入移位寄存器,8位數(shù)據(jù)全移入后,再并行送入接收SBUF中。(4)波特率發(fā)生器波特率發(fā)生器用來控制串行通信的數(shù)據(jù)傳輸速率的,51系列單片機(jī)用定時器T1作為波特率發(fā)生器,T1設(shè)置在定時方式。波特率時用來表示串行通信數(shù)據(jù)傳輸快慢程度的物理量,定義為每秒鐘傳送的數(shù)據(jù)位數(shù)。(5)電源控制寄存器PCON其最高位為SMOD。(6)波特率計算當(dāng)定時器T1工作在定時方式的時候,定時器T1溢出率=(T1計數(shù)率)/(產(chǎn)生溢出所需機(jī)器周期)。由于是定時方式,T1計數(shù)率= fORC/12。產(chǎn)生溢出所需機(jī)器周期數(shù)=模M-計數(shù)初值X。3.2整體電路設(shè)計最終設(shè)計電路如下圖3所示,發(fā)送方的數(shù)據(jù)由串

24、行口TXD段輸出,經(jīng)過電平轉(zhuǎn)換芯片MAX232將TTL電平轉(zhuǎn)換為RS232電平輸出,經(jīng)過傳輸線將信號傳送到接收端。接收方也使用MAX232芯片進(jìn)行電平轉(zhuǎn)換后,信號到達(dá)接收方串行口的接收端。接受方接收后,通過P1口在數(shù)碼管上顯示接收的信息。圖2 串行通信電路第四章 軟件設(shè)計通過通信協(xié)議進(jìn)行發(fā)送接收,主機(jī)先送AAH給從機(jī),當(dāng)從機(jī)接收到AAH后,向主機(jī)回答B(yǎng)BH。主機(jī)收到BBH后就把數(shù)碼表TAB16中的10個數(shù)據(jù)送給從機(jī),并發(fā)送檢驗和。從機(jī)收到16個數(shù)據(jù)并計算接收到數(shù)據(jù)的檢驗和,與主機(jī)發(fā)送來的檢驗和進(jìn)行比較,若檢驗和相同則發(fā)送00H給主機(jī);否則發(fā)送FFH給主機(jī),重新接受。從機(jī)收到16個正確數(shù)據(jù)后送到

25、一個數(shù)碼管顯示。4.1串行通信軟件實現(xiàn)(1)串行口工作于方式1;用定時器1產(chǎn)生9600bit/s的波特率,工作于方式2。(2)功能:將本機(jī)ROM中數(shù)碼表TAB16中的16個數(shù)發(fā)送到從機(jī),并保存在從機(jī)內(nèi)部ROM中,從機(jī)收到這16個數(shù)據(jù)后送到一個數(shù)碼管循環(huán)顯示。(3)通信協(xié)議:主機(jī)首先發(fā)送連絡(luò)信號(AAH),從機(jī)接收到之后返回一個連絡(luò)信號(BBH)表示從機(jī)已準(zhǔn)備好接收。(4)通信過程使用第九位發(fā)送奇偶校驗位。(5)從機(jī)接收到一個數(shù)據(jù)后,立即進(jìn)行奇偶校驗,若數(shù)據(jù)沒有錯誤,則返回00H,否則返回FFH。(6)主機(jī)發(fā)送一個數(shù)據(jù)后,等待從機(jī)返回數(shù)據(jù);若為00H,則繼續(xù)發(fā)送下一個數(shù)據(jù),若為FFH,則重新發(fā)送

26、數(shù)據(jù)。4.2程序流程圖(1)發(fā)送端程序流程圖主程序開程序初始化主機(jī)發(fā)送AAH從機(jī)是否回答B(yǎng)BH?N主機(jī)發(fā)送數(shù)據(jù),檢驗輸出完成?清除標(biāo)志位N圖3 流程圖一主程序開(2)接收端程序流程圖程序初始化接收數(shù)據(jù),計算檢驗接收完成?檢驗和相等?發(fā)送00H至主機(jī)發(fā)送FFH,重新接收NN清除標(biāo)志位顯示圖4 流程圖二第五章 調(diào)試與仿真在protues上進(jìn)行仿真實驗。首先使用KeilC將編寫完成的程序編譯生成HEX文件,將HEX文件燒錄到兩片單片機(jī)中,進(jìn)行仿真實驗,結(jié)果如下圖所示,可以看到,接收端已將接受到的數(shù)據(jù)完整的顯示了出來。圖5 仿真圖第六章 總結(jié)本次設(shè)計是通過兩塊簡單的89C51單片機(jī)實現(xiàn)信息的串口通信。

27、設(shè)計過程中,從雙機(jī)通信背景的了解,到89C51單片機(jī)具體功能的了解,與89C51單片機(jī)的區(qū)別;從串口通信的原理的熟悉,到掌握具體串口通信在雙機(jī)之間的實現(xiàn);從硬件電路設(shè)計到程序編寫;從硬件調(diào)試到軟件模擬實現(xiàn)等過程在自己的努力和老師的親切指導(dǎo)下,都是有條不紊地進(jìn)行。  設(shè)計中,收獲不少東西,也遇到了不少的問題。首先,在完成單片機(jī)課程學(xué)習(xí)任務(wù)后,對內(nèi)容的掌握不夠,缺乏靈活運用的能力,對于知識的擴(kuò)展也存在一定的問題,因此,初面對設(shè)計課題,無法系統(tǒng)地進(jìn)行設(shè)計思路的擬定。其次,一個學(xué)期的學(xué)習(xí),在鞏固和學(xué)習(xí)硬件知識的同時,用軟件控制協(xié)調(diào)硬件實現(xiàn)現(xiàn)實功能,通過硬件完成軟件的功能等方面的融會

28、貫通,取得了一定的效果。再者,硬件設(shè)計過程中,I/O口的擴(kuò)展,外部ROM的擴(kuò)展,對于芯片的選擇,軟件編寫時,對于某些指令的功能,功能模塊的連接,芯片地址選擇等都遇到了很大的障礙,不過在老師幫助和自己查閱資料得到了解決,與此同時,了解了不少的問題。另外,設(shè)計中犯一些常識性的錯誤,對設(shè)計進(jìn)程造成了一定的影響。例如,程序調(diào)試時,由于粗心錄入程序時,將程序敲錯,比如將0(零)和字母O混淆,還有中文標(biāo)點符號和英文標(biāo)點符號混淆等。這樣的錯誤很難發(fā)現(xiàn),以至于花費了很多時間。通過本次課程設(shè)計,不僅使理論知識得到了實踐,有效鞏固了知識。同時對于單片機(jī)發(fā)展歷史、強(qiáng)大功能、應(yīng)用領(lǐng)域以及系列知識得到了大概的系統(tǒng)認(rèn)識,

29、同時也初步了解了一個完整的系統(tǒng)開發(fā)的過程,對于創(chuàng)造思維的培養(yǎng)和開發(fā)能力的鍛煉,本次設(shè)計,為此提供了一個很好的平臺。參考文獻(xiàn)1 錢建立,周曉軍.智能快速充電器設(shè)計與制作M.北京:科學(xué)出版社,2001.2 劉美俊.基于AT89C2051單片機(jī)的智能充電器設(shè)計J.電子質(zhì)量,2004(7).3 張毅剛,彭喜源.MCS-51單片機(jī)應(yīng)用設(shè)計M.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997.4 電子之城:TL431特性及應(yīng)用EB/OL.5 童詩白,華成英.模擬電子技術(shù)基礎(chǔ)M.北京:高等教育出版社,2000.6 張國雄,金篆芷.測控電路M.北京:機(jī)械工業(yè)出版社,2000. 附錄:1.主機(jī)發(fā)送程序#include <reg51.h>#define uchar unsigned char void init();void send();ucharTAB16 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar i,sum;int j;main() init(); send(); void init(void) EA=1; ES=1; TMOD=0x20; TH1=0xfd; TL1=0xfd; PCON=0x00

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論