雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)_第1頁(yè)
雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)_第2頁(yè)
雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)_第3頁(yè)
已閱讀5頁(yè),還剩21頁(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、設(shè)計(jì)概況 21總體設(shè)計(jì) 31.1 設(shè)計(jì)要求 31.2 設(shè)計(jì)方案 32雙機(jī)通信硬件設(shè)計(jì) 42.1 AT89C51 簡(jiǎn)介 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ī)來(lái)完 成一個(gè)系統(tǒng),實(shí)現(xiàn)雙片單片機(jī)串行通信。通信的結(jié)果實(shí)用數(shù)碼管進(jìn)行顯示,數(shù) 碼管采用查表方式顯示。兩個(gè)單片機(jī)之間采用RS232進(jìn)行雙機(jī)通信。在通信過(guò)程中,使用通信協(xié)議進(jìn)行通信。關(guān)鍵詞:?jiǎn)纹瑱C(jī);串行通信;接口1總體設(shè)計(jì)1.1 設(shè)計(jì)要求設(shè)計(jì)一個(gè)單片機(jī)雙機(jī)通信系統(tǒng),單片機(jī) A接1個(gè)8位按鍵開(kāi)關(guān),單片機(jī)B 接8個(gè)發(fā)光二極管,通過(guò)串行通信實(shí)現(xiàn)由 A機(jī)撥碼開(kāi)關(guān)控制B機(jī)發(fā)光二極管的 亮火。1.2 設(shè)計(jì)方案本次設(shè)計(jì),對(duì)于兩片 AT89C51采用R

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

4、假定數(shù)據(jù)長(zhǎng)度為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ā)來(lái)的“校驗(yàn)和”,并將它與接收機(jī)計(jì)算的校驗(yàn)和進(jìn)行比較。若二者相等,說(shuō) 明接受正確,接收機(jī)回答 00H,發(fā)送機(jī)結(jié)束發(fā)送;若二者不等,說(shuō)明接受不正 確,接收機(jī)回答0FFH請(qǐng)求重發(fā),發(fā)送機(jī)重新發(fā)送數(shù)據(jù)一次。接收機(jī)接收到數(shù) 據(jù)后通過(guò)發(fā)光二極管LED顯示發(fā)送機(jī)的發(fā)送狀態(tài)。2雙機(jī)通信硬件設(shè)計(jì)2.1AT89C51 簡(jiǎn)介AT89C51是一個(gè)帶有4k字節(jié)存儲(chǔ)器的單片機(jī),它具有128字節(jié)內(nèi)部 RAM ;

5、 32個(gè)I/O 口線和;兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(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號(hào)引腳):電源接入引腳?Vss (20號(hào)引腳):接地引腳?XTAL1( 19號(hào)引腳):晶振接入的一個(gè)引腳?XTAL2( 18號(hào)引腳):晶振接入的另一個(gè)引腳(2)控制線引腳?RST/Vd(9號(hào)引腳):復(fù)位信號(hào)輸入引腳/備用電源輸入引腳?ALE/PROG (30號(hào)引腳):地址鎖存允許信號(hào)輸出引腳/編程脈沖輸入引?EA/Vpp(31號(hào)引腳):內(nèi)外存儲(chǔ)器選擇引腳/片內(nèi)EPROMS程電壓輸入引腳? PSEN (29號(hào)引腳):外部程序存儲(chǔ)器選通信號(hào)輸出引腳(3)I/O引腳

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

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

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

11、表2所示。其中fosc是晶體振蕩器的頻率。SM2多機(jī)通信控制位。在方式0下,SM2應(yīng)為0;在方式1下,如果SM2=0 則只有收到有效的停止位時(shí)才會(huì)激活 RI;在方式2和方式3下,如置SM2=側(cè) 只有收到第9位數(shù)據(jù)為1時(shí),RI被激活(Rl=1,申請(qǐng)中斷,要求CPU取走數(shù)據(jù))。REN允許接收控制位。由軟件置位或清零。REN=1允許接收;REN=0禁 止接收。TB8:在方式2和方式3下,存放要發(fā)送的第9位數(shù)據(jù),常用作奇偶校驗(yàn)位。 在多機(jī)通信中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)識(shí)位,若為地址幀,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)開(kāi)始發(fā)送停止位時(shí),由硬件將 TI置位,即是向CPU申請(qǐng)中斷, CPU可以發(fā)送下一幀數(shù)據(jù)。在任何方式下, TI必須由軟件清零。RI :接收中斷標(biāo)志。在方式0下,接收完第8位數(shù)據(jù)時(shí),由硬件置位;在 其他方式下,當(dāng)接收到停止位時(shí) RI置位,即申請(qǐng)中斷,要求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í)行一條寫(xiě)發(fā)送寄存器指令“ MOV SBUF”,就可將數(shù)據(jù)位逐一由TXD端發(fā)送。當(dāng)發(fā)送一幀數(shù)據(jù)后,將

14、 TI置1。串口以方式 1接受,需控制SMO中的 REN為1(SMO為特殊功能寄存器PCON勺最高位), 此時(shí)對(duì)RXD引腳進(jìn)行采樣,當(dāng)采樣到起始位置有效時(shí),開(kāi)始接收數(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的溢出率來(lái)決定。波特率=(2smd/32) (T1溢出率)當(dāng)T1作為波特

15、率發(fā)生器時(shí),最典型的用法是使T1工作在自動(dòng)再裝入的8位定時(shí)器方式(即方式2,且TCON勺TR=1,以啟動(dòng)定時(shí)器)。這時(shí)溢出率取決 于TH1中的計(jì)數(shù)值。TH 1 溢出率=fOsc 川2256 - TH 1 門(mén)在單片機(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號(hào))和XTAL2 (18號(hào))引腳外接石英晶體(簡(jiǎn)稱晶振)就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部 產(chǎn)生時(shí)鐘脈沖信號(hào)。如圖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號(hào))引腳引入高電平并保持兩個(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地址單元開(kāi)始執(zhí)行。單片機(jī)啟動(dòng)后,片內(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串行接口的信號(hào)電平為T(mén)TL 類(lèi)型,抗干擾性差、傳輸距離短。為了提高串行通信的靠抗性,延長(zhǎng)通信距離, 一般設(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號(hào)引腳,9號(hào)引腳連接復(fù) 位電路,復(fù)位電路中需要的 8.2k電阻由兩個(gè)10k電阻并聯(lián),再串聯(lián)3.2k電阻 組成,電解電容用于復(fù)位上電。18、19號(hào)引腳連接晶振電路,兩個(gè)磁片電容用 于快速起振。晶振需要11.0592MHZ,本設(shè)計(jì)選擇相近的12MHZ右面電路板為接收電路,電路板右側(cè)如圖,為電源端,連接5V直流電源,左側(cè)為接地端,8個(gè)指示燈分別連接接受收 AT8

溫馨提示

  • 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)論