雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)_第1頁
雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)_第2頁
雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)_第3頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、設(shè)計(jì)概況 21總體設(shè)計(jì) 31.1 設(shè)計(jì)要求 31.2 設(shè)計(jì)方案 32雙機(jī)通信硬件設(shè)計(jì) 42.1 AT89C51 簡介 42.2 AT89C51串行口的工作方式 52.3 晶振電路設(shè)計(jì) 82.4 復(fù)位電路設(shè)計(jì) 82.5 接口電路的設(shè)計(jì) 92.6輸入輸出電路設(shè)計(jì) 113雙機(jī)通信軟件設(shè)計(jì) 133.1 串行通信軟件實(shí)現(xiàn) 133.2 串行通信程序流程 133.3 程序清單 164 軟件仿真 205硬件連接 216 設(shè)計(jì)總結(jié) 23參考文獻(xiàn) 24設(shè)計(jì)概況要構(gòu)成一個(gè)較大規(guī)模的控制系統(tǒng),常常需要采用多機(jī)控制實(shí)現(xiàn),而AT89C51 單片機(jī)有一個(gè)異步通信方式的全雙工串行接口,可以方便地構(gòu)成雙機(jī)、多機(jī)系 統(tǒng)。而串行通

2、信也成為單片機(jī)與單片機(jī)、單片機(jī)與上位機(jī)之間進(jìn)行數(shù)據(jù)傳輸?shù)?主要方式,是一種適用于遠(yuǎn)距離通信的數(shù)據(jù)傳輸方式。串行通信是單片機(jī)的一個(gè)重要應(yīng)用。本次課程設(shè)計(jì)就是要利用單片機(jī)來完 成一個(gè)系統(tǒng),實(shí)現(xiàn)雙片單片機(jī)串行通信。通信的結(jié)果實(shí)用數(shù)碼管進(jìn)行顯示,數(shù) 碼管采用查表方式顯示。兩個(gè)單片機(jī)之間采用RS232進(jìn)行雙機(jī)通信。在通信過程中,使用通信協(xié)議進(jìn)行通信。關(guān)鍵詞:單片機(jī);串行通信;接口1總體設(shè)計(jì)1.1 設(shè)計(jì)要求設(shè)計(jì)一個(gè)單片機(jī)雙機(jī)通信系統(tǒng),單片機(jī) A接1個(gè)8位按鍵開關(guān),單片機(jī)B 接8個(gè)發(fā)光二極管,通過串行通信實(shí)現(xiàn)由 A機(jī)撥碼開關(guān)控制B機(jī)發(fā)光二極管的 亮火。1.2 設(shè)計(jì)方案本次設(shè)計(jì),對于兩片 AT89C51采用R

3、S-232進(jìn)行雙機(jī)通信。如圖1所示, 發(fā)送方的數(shù)據(jù)由串行口 TXD段輸出,經(jīng)過電平轉(zhuǎn)換芯片MAX232各TTL電平轉(zhuǎn)換 為RS-232電平輸出,經(jīng)過傳輸線將信號傳送到接收端。接收方也使用MAX232芯片進(jìn)行電平轉(zhuǎn)換后,信號到達(dá)接收方串行口的接收端。 接收方接收后,在LED 二極管上顯示接收的對應(yīng)信息。晶振電路復(fù)位電路8路撥碼開關(guān)電路接收機(jī)晶振電路復(fù)位電路顯示 電路圖1雙機(jī)通信系統(tǒng)原理框圖軟件部分,通過通信協(xié)議進(jìn)行發(fā)送接收,發(fā)送機(jī)先送聯(lián)絡(luò)信號給接收機(jī), 當(dāng)接收機(jī)接收到聯(lián)絡(luò)信號后,向發(fā)送機(jī)回答一個(gè)應(yīng)答信號,表示同意接收。發(fā) 送機(jī)收到應(yīng)答信號后開始發(fā)送數(shù)據(jù),每發(fā)送一個(gè)數(shù)據(jù)塊字節(jié)都要計(jì)算“校驗(yàn)和”,

4、假定數(shù)據(jù)長度為16個(gè)字節(jié),起始地址為40H, 個(gè)數(shù)據(jù)塊發(fā)送完畢后立即發(fā)送 “校驗(yàn)和”。接收機(jī)接收數(shù)據(jù)并存入數(shù)據(jù)緩沖區(qū)起始地址也為40H,每接收到一個(gè)數(shù)據(jù)字節(jié)便計(jì)算一次“校驗(yàn)和”,當(dāng)接收到一個(gè)數(shù)據(jù)塊后,在接受發(fā)送機(jī) 發(fā)來的“校驗(yàn)和”,并將它與接收機(jī)計(jì)算的校驗(yàn)和進(jìn)行比較。若二者相等,說 明接受正確,接收機(jī)回答 00H,發(fā)送機(jī)結(jié)束發(fā)送;若二者不等,說明接受不正 確,接收機(jī)回答0FFH請求重發(fā),發(fā)送機(jī)重新發(fā)送數(shù)據(jù)一次。接收機(jī)接收到數(shù) 據(jù)后通過發(fā)光二極管LED顯示發(fā)送機(jī)的發(fā)送狀態(tài)。2雙機(jī)通信硬件設(shè)計(jì)2.1AT89C51 簡介AT89C51是一個(gè)帶有4k字節(jié)存儲器的單片機(jī),它具有128字節(jié)內(nèi)部 RAM ;

5、 32個(gè)I/O 口線和;兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量兩級中斷結(jié)構(gòu), 一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至OHz 的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電 方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下 一個(gè)硬件復(fù)位。如圖2所示,DIP40封裝的AT89C51的各個(gè)引腳及其功能。pi nIV丿40r 1 U1n t 1239rl. 1 n i 刊338Flf Z437L丄 JApi A53a廠削pi 耳點(diǎn)35bn i 直7T34JT1B

6、0p 17S338932KjVVm1031r J1. W luW1pq- 1 /ivrfc9JI301 wv If XA-lr口令 n /TTOTTrfc1229rJ. 2/1NTU1328r J b j/ 丄 IN 11C3 -1 /tri14271 J* h/ 1U宅 E/T |1526r J* 0/ 11 d百 口 /iin?51625f JU D/ nADq 7 /RTi1724Jr Jif皿丿VT fiT oIS123VTAT 122A 1 ALillb2021Vai呢P0.0POL 1P0.2P0*3P0,4FO. 5P0.6P0.7 麗陸 ALE/ PSEJTP2.7P2.5P2

7、.4P2.3P2.2P2.0圖2 AT89C51單片機(jī)引腳封裝AT89C5仲片機(jī)各個(gè)引腳功能如下:(1)電源幾時(shí)鐘引腳?VCc( 40號引腳):電源接入引腳?Vss (20號引腳):接地引腳?XTAL1( 19號引腳):晶振接入的一個(gè)引腳?XTAL2( 18號引腳):晶振接入的另一個(gè)引腳(2)控制線引腳?RST/Vd(9號引腳):復(fù)位信號輸入引腳/備用電源輸入引腳?ALE/PROG (30號引腳):地址鎖存允許信號輸出引腳/編程脈沖輸入引?EA/Vpp(31號引腳):內(nèi)外存儲器選擇引腳/片內(nèi)EPROMS程電壓輸入引腳? PSEN (29號引腳):外部程序存儲器選通信號輸出引腳(3)I/O引腳

8、P0.0 P0.7 (39 32號引腳):一般I/O 口引腳/低位地址總線引腳 P1.0 P1.7(1 8 號引腳):一般 I/O 口引腳 P2.0 P2.7(21 28號引腳):一般I/O 口引腳/高位地址總線引腳 P3.0 P3.7(10 17號引腳):一般I/O 口引腳或第二功能引腳P3.0 (10號引腳):RXD串行口輸入P3.1 (11號引腳):TXD串行口輸出P3.2 (12號引腳):INT0外部中斷0輸入P3.3 (13號引腳):而1外部中斷1輸入P3.4 (14號引腳):T0定時(shí)器0的外部輸入P3.5 (15號引腳):T1定時(shí)器1的外部輸入P3.6 (16號引腳):WR片外數(shù)據(jù)

9、存儲器“寫”選通控制輸出P3.7 (17號引腳):RD片外數(shù)據(jù)存儲器“讀”選通控制輸出2.2 AT89C51串行口的工作方式AT89C51的串行口是一個(gè)可編程全雙工的通信接口,具有通信異步接受和發(fā)送的全部功能,能同時(shí)進(jìn)行數(shù)據(jù)的接收和發(fā)送,也可作為同步移位寄存器使 用。AT89C51的串行口主要由兩個(gè)獨(dú)立的串行數(shù)據(jù)緩沖寄存器 SBUF(個(gè)發(fā)送 緩沖寄存器,一個(gè)接收緩沖寄存器),串行口控制寄存器、輸入移位寄存器及若 干控制門電路組成。(1)串行口數(shù)據(jù)緩沖寄存器SBUFAT89C51可以通過特殊功能寄存器SBUF的讀寫操作,實(shí)現(xiàn)對串行接收或串 行發(fā)送寄存器的訪冋,串行接收和串行發(fā)送寄存器在串行口內(nèi)部

10、是兩個(gè)獨(dú)立的 存儲單元,共用同一個(gè)地址 99耳串行口數(shù)據(jù)傳送使用的是內(nèi)部數(shù)據(jù)傳送指令“ MOgSBUF或“ MOSBUF,A .當(dāng)執(zhí)行寫操作時(shí),訪問串行發(fā)送寄存器;當(dāng) 執(zhí)行讀操作時(shí),訪問串行接收寄存器。(2) 串行口控制寄存器 SCONAT89C51串行口工作的設(shè)定、接收與發(fā)送控制的設(shè)置都是通過對串行口控制寄存器SCON勺編程確定的。SCON1 一個(gè)特殊功能寄存器,其地址為98H,可 位尋址,其各位的作用定義如下:表2控制寄存器SCON9FH9EH9DH9CH9BH9AH99H98HSCON(98H)SM0SM1SM2RENTB8RB8TIRISM0、SM1串行口工作方式選擇位,工作方式選擇如

11、表2所示。其中fosc是晶體振蕩器的頻率。SM2多機(jī)通信控制位。在方式0下,SM2應(yīng)為0;在方式1下,如果SM2=0 則只有收到有效的停止位時(shí)才會激活 RI;在方式2和方式3下,如置SM2=側(cè) 只有收到第9位數(shù)據(jù)為1時(shí),RI被激活(Rl=1,申請中斷,要求CPU取走數(shù)據(jù))。REN允許接收控制位。由軟件置位或清零。REN=1允許接收;REN=0禁 止接收。TB8:在方式2和方式3下,存放要發(fā)送的第9位數(shù)據(jù),常用作奇偶校驗(yàn)位。 在多機(jī)通信中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)識位,若為地址幀,TB8=1;若為數(shù)據(jù)幀,TB8=QRB8在方式2和方式3下,存放接收到的第9位數(shù)據(jù);在方式1下,如 SM2=0則

12、該位為接收到的停止位;方式 0不用此位。TI:發(fā)送中斷標(biāo)志。在方式0下,發(fā)送完第8位數(shù)據(jù)位時(shí),由硬件置位;在 其他方式下,當(dāng)開始發(fā)送停止位時(shí),由硬件將 TI置位,即是向CPU申請中斷, CPU可以發(fā)送下一幀數(shù)據(jù)。在任何方式下, TI必須由軟件清零。RI :接收中斷標(biāo)志。在方式0下,接收完第8位數(shù)據(jù)時(shí),由硬件置位;在 其他方式下,當(dāng)接收到停止位時(shí) RI置位,即申請中斷,要求CPU取走數(shù)據(jù)。它 必須由軟件清零。表3串行口工作方式選擇SM0SM1方式功能波特率SM0SM1方式功能波特率000同步移位寄存器f osc/1210211位UARTfosc/16 或 fosc/3201110 位 UART可

13、變11311位UART可變本設(shè)計(jì)發(fā)送機(jī)串行口的工作方式為方式 1,即控制寄存器SCON中內(nèi)容如下:表4發(fā)送機(jī)控制寄存器SCON9FH9EH9DH9CH9BH9AH99H98HSCON(98H)SM0SM1SM2RENTB8RB8TIRI01000000接收機(jī)的串行口的工作方式為方式 1,即控制寄存器SCON中內(nèi)容如下:表5接收機(jī)控制寄存器SCON9FH9EH9DH9CH9BH9AH99H98HSCON(98H)SM0SM1SM2RENTB8RB8TIRI01010000串口以方式1發(fā)送,由CPU執(zhí)行一條寫發(fā)送寄存器指令“ MOV SBUF”,就可將數(shù)據(jù)位逐一由TXD端發(fā)送。當(dāng)發(fā)送一幀數(shù)據(jù)后,將

14、 TI置1。串口以方式 1接受,需控制SMO中的 REN為1(SMO為特殊功能寄存器PCON勺最高位), 此時(shí)對RXD引腳進(jìn)行采樣,當(dāng)采樣到起始位置有效時(shí),開始接收數(shù)據(jù)。當(dāng)一幀 數(shù)據(jù)接收完畢,且RI=0, SM2=0或接收到RB8=1時(shí),接收數(shù)據(jù)有效,此時(shí)可利 用讀接收寄存器指令“ MOV A,SBU”將數(shù)據(jù)送入CPU同時(shí)將RI置1。若要再 次發(fā)送或接收數(shù)據(jù),必須將 TI、RI清零。(3)波特率的計(jì)算根據(jù)表2可知串口工作方式方式1時(shí)一幀數(shù)據(jù)為10位(8位數(shù)據(jù)位,起始 位、停止位各1位)。其傳輸波特率是可變的,由定時(shí)器 T1的溢出率來決定。波特率=(2smd/32) (T1溢出率)當(dāng)T1作為波特

15、率發(fā)生器時(shí),最典型的用法是使T1工作在自動再裝入的8位定時(shí)器方式(即方式2,且TCON勺TR=1,以啟動定時(shí)器)。這時(shí)溢出率取決 于TH1中的計(jì)數(shù)值。TH 1 溢出率=fOsc 川2256 - TH 1 門在單片機(jī)的應(yīng)用中,常用的晶振頻率 fsc為:12MHz和11.0592MHz在本設(shè)計(jì)中晶振頻率采用fosc=11,。0592MHz即波特率為波特率=qSMOD32:12256(TH1)2.3 晶振電路設(shè)計(jì)AT89C51單片機(jī)內(nèi)部有一震蕩電路,只要在單片機(jī)的XTL1(19號)和XTAL2 (18號)引腳外接石英晶體(簡稱晶振)就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部 產(chǎn)生時(shí)鐘脈沖信號。如圖3所示,圖中

16、電容器C1和C2的作用是穩(wěn)定頻率和快 速起振,電容值為530pF,典型值為30pF,本設(shè)計(jì)取30pF。晶振CYS的振蕩 頻率范圍為1.2MHz12MHz典型值為12MHz和6MHz本設(shè)計(jì)取12MHz30uF1.7D12MIk30uF181920J O. U/ 神P3. 7/RDXTAL2XTAL1GND圖3晶振電路2.4復(fù)位電路設(shè)計(jì)AT89C5仲片機(jī)的RST( 9號)引腳引入高電平并保持兩個(gè)機(jī)器周期時(shí),單 片機(jī)內(nèi)部就執(zhí)行復(fù)位操作。在實(shí)際中 AT89C51通常有兩種操作方式復(fù)位,一種 是上電復(fù)位;另一種是按鍵上電復(fù)位。在雙機(jī)通信系統(tǒng)的設(shè)計(jì)中使用按鍵上電 復(fù)位,如圖4所示。單片機(jī)復(fù)位后進(jìn)入初始化狀

17、態(tài)。初始化后,程序計(jì)數(shù)器PC=0000H所以程序從0000H地址單元開始執(zhí)行。單片機(jī)啟動后,片內(nèi)RAM為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi)RAM的內(nèi)容。特殊功能寄存器復(fù)位后的狀態(tài)是確定的。P0P3為FFH, SP為07H, SBUF不定,IP、IE和PCON勺有效位為0,其余的特殊功能寄存器的狀態(tài)均為 00Ho2.5接口電路的設(shè)計(jì)(1) 直接通信單片機(jī)與單片機(jī)進(jìn)行雙擊串行通行時(shí),可將兩個(gè)單片機(jī)的串口直接連接, 接線圖如圖5所示,這種接線傳輸距離短,抗干擾能力差。LOI.EJ 丄 G % 呂勺 w E 一S- 右 E- 4 3- ; 1 3 1XJ:j:1 :祇fs_g1:1:1:g. 詈一旦S

18、-iH-衛(wèi)一壬主亠壬于一工-_一 dQ N- K-d -旦 M- u- n-f-亠-t-一 -亠亠圖5直接通信接線圖(2) 串口通信單片機(jī)與單片機(jī)進(jìn)行雙擊串行通行時(shí),AT89C51串行接口的信號電平為TTL 類型,抗干擾性差、傳輸距離短。為了提高串行通信的靠抗性,延長通信距離, 一般設(shè)計(jì)采用標(biāo)準(zhǔn)的串行接口。RS-232C接口是1969年EIA推出的串行通信標(biāo)準(zhǔn),目前是 PC機(jī)與通信工 業(yè)中應(yīng)用最廣的一種串行接口。數(shù)據(jù)傳輸速率在020kbps范圍內(nèi)的通信,最大傳輸距離可達(dá)15m能實(shí)現(xiàn)一發(fā)一收通信,目前常用的 RS- 232C接口連接器 有9針串口( DB-9)和25針串口( DB-25)。最常用

19、的的是 DB-9,常采用三 線制接法,即發(fā)送數(shù)據(jù)線、接受數(shù)據(jù)線和接地線三腳相連。傳輸線采用屏蔽雙 絞線,如圖6所示。GKD屏蔽線O *社1TXDE:也蛙RID紅色竦4O?右TRXDil色找丁知籃邑登T2 LLj01.biFUJOAIXFUN工H13舊 F劇 rafMbiFTETHXFX V- m* in 2H.iiFlWAI3 FXWAI-i. FX rMIBrMTC-P Kkl/TXfc psII . El PSlrfTTT r3.n 口 am rijvn. *XiiWFC41-I j*-4誓E豁參匸mmwm srB*our*Ei:jKHO-AtaPJ&TPT ViVW-TTW 1 1F!7

20、F1.L.Ct*rynfKsiffin*aiirnjPsorllTI THh arm F-IjS*3LT*FWfi TW.- I411押并仙HS時(shí)間至片機(jī)取機(jī)jffl佶系烷igg 閔io 回 qtus201甘年U2月27曰圖12雙機(jī)通信仿真圖5硬件連接左面電路板為發(fā)送電路,電路板右側(cè)如圖,為電源端,連接5V直流電源,左側(cè)為接地端,8個(gè)獨(dú)立按鍵分別連接AT89C52的1-8號引腳,9號引腳連接復(fù) 位電路,復(fù)位電路中需要的 8.2k電阻由兩個(gè)10k電阻并聯(lián),再串聯(lián)3.2k電阻 組成,電解電容用于復(fù)位上電。18、19號引腳連接晶振電路,兩個(gè)磁片電容用 于快速起振。晶振需要11.0592MHZ,本設(shè)計(jì)選擇相近的12MHZ右面電路板為接收電路,電路板右側(cè)如圖,為電源端,連接5V直流電源,左側(cè)為接地端,8個(gè)指示燈分別連接接受收 AT8

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論