![雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/24/3c676aea-8fb4-409e-a574-3d344d22c77e/3c676aea-8fb4-409e-a574-3d344d22c77e1.gif)
![雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/24/3c676aea-8fb4-409e-a574-3d344d22c77e/3c676aea-8fb4-409e-a574-3d344d22c77e2.gif)
![雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/24/3c676aea-8fb4-409e-a574-3d344d22c77e/3c676aea-8fb4-409e-a574-3d344d22c77e3.gif)
![雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/24/3c676aea-8fb4-409e-a574-3d344d22c77e/3c676aea-8fb4-409e-a574-3d344d22c77e4.gif)
![雙機(jī)通信系統(tǒng)單片機(jī)課程設(shè)計(jì)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/24/3c676aea-8fb4-409e-a574-3d344d22c77e/3c676aea-8fb4-409e-a574-3d344d22c77e5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)雙機(jī)通信系統(tǒng)設(shè)計(jì)設(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)2425 1 頁(yè)設(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,采用RS-232進(jìn)
3、行雙機(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)電路發(fā)送機(jī)接收機(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ī)答復(fù)一個(gè)應(yīng)答信號(hào),表示同意接收。發(fā)送機(jī)收到應(yīng)答信號(hào)后開(kāi)始發(fā)送數(shù)據(jù),每發(fā)送一個(gè)數(shù)據(jù)塊字節(jié)都要計(jì)算“校驗(yàn)和,假定數(shù)據(jù)長(zhǎng)度
4、為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)行比擬。假設(shè)二者相等,說(shuō)明接受正確,接收機(jī)答復(fù)00H,發(fā)送機(jī)結(jié)束發(fā)送;假設(shè)二者不等,說(shuō)明接受不正確,接收機(jī)答復(fù)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.1 AT89C51簡(jiǎn)介AT89C51 是一個(gè)帶有4k 字節(jié)存儲(chǔ)器的單片機(jī),它具有128字節(jié)內(nèi)部RAM;32 個(gè)I/O 口線
5、和;兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。如圖2所示,DIP40封裝的AT89C51的各個(gè)引腳及其功能。 圖2 AT89C51單片機(jī)引腳封裝AT89C51單片機(jī)各個(gè)引腳功能如下:1電源幾時(shí)鐘引腳VCC40號(hào)引腳:電源接入引腳VSS20號(hào)引腳:接地引腳XTAL119號(hào)引腳:晶振接入的一個(gè)引腳XT
6、AL218號(hào)引腳:晶振接入的另一個(gè)引腳(2) 控制線引腳RST/VPD9號(hào)引腳:復(fù)位信號(hào)輸入引腳/備用電源輸入引腳ALE/30號(hào)引腳:地址鎖存允許信號(hào)輸出引腳/編程脈沖輸入引/(31號(hào)引腳):內(nèi)外存儲(chǔ)器選擇引腳/片內(nèi)EPROM編程電壓輸入引腳(29號(hào)引腳):外部程序存儲(chǔ)器選通信號(hào)輸出引腳(3) I/O引腳·P0.0P0.73932號(hào)引腳:一般I/O口引腳/低位地址總線引腳·P1.0P1.7(18號(hào)引腳):一般I/O口引腳·P2.0P2.7(2128號(hào)引腳):一般I/O口引腳/高位地址總線引腳·P3.0P3.7(1017號(hào)引腳):一般I/O口引腳或第二功能
7、引腳P3.010號(hào)引腳:RXD串行口輸入P3.111號(hào)引腳:TXD串行口輸出P3.212號(hào)引腳:外部中斷0輸入P3.313號(hào)引腳:外部中斷1輸入P3.414號(hào)引腳:T0定時(shí)器0的外部輸入P3.515號(hào)引腳:T1定時(shí)器1的外部輸入P3.616號(hào)引腳:片外數(shù)據(jù)存儲(chǔ)器“寫(xiě)選通控制輸出P3.717號(hào)引腳:片外數(shù)據(jù)存儲(chǔ)器“讀選通控制輸出2.2 AT89C51串行口的工作方式 AT89C51的串行口是一個(gè)可編程全雙工的通信接口,具有通信異步接受和發(fā)送的全部功能,能同時(shí)進(jìn)行數(shù)據(jù)的接收和發(fā)送,也可作為同步移位存放器使用。AT89C51的串行口主要由兩個(gè)獨(dú)立的串行數(shù)據(jù)緩沖存放器SBUF一個(gè)發(fā)送緩沖存放器,一個(gè)接
8、收緩沖存放器,串行口控制存放器、輸入移位存放器及假設(shè)干控制門電路組成。(1) 串行口數(shù)據(jù)緩沖存放器SBUF AT89C51可以通過(guò)特殊功能存放器SBUF的讀寫(xiě)操作,實(shí)現(xiàn)對(duì)串行接收或串行發(fā)送存放器的訪問(wèn),串行接收和串行發(fā)送存放器在串行口內(nèi)部是兩個(gè)獨(dú)立的存儲(chǔ)單元,共用同一個(gè)地址99H。串行口數(shù)據(jù)傳送使用的是內(nèi)部數(shù)據(jù)傳送指令“MOV A,SBUF或“MOV SBUF,A.當(dāng)執(zhí)行寫(xiě)操作時(shí),訪問(wèn)串行發(fā)送存放器;當(dāng)執(zhí)行讀操作時(shí),訪問(wèn)串行接收存放器。(2) 串行口控制存放器SCONAT89C51串行口工作的設(shè)定、接收與發(fā)送控制的設(shè)置都是通過(guò)對(duì)串行口控制存放器SCON的編程確定的。SCON是一個(gè)特殊功能存放器
9、,其地址為98H,可位尋址,其各位的作用定義如下:表2 控制存放器SCON9FH9EH9DH9CH9BH9AH99H98HSCON(98H)SM0SM1SM2RENTB8RB8TIRI SM0、SM1:串行口工作方式選擇位,工作方式選擇如表2所示。其中是晶體振蕩器的頻率。SM2:多機(jī)通信控制位。在方式0下,SM2應(yīng)為0;在方式1下,如果SM2=0,那么只有收到有效的停止位時(shí)才會(huì)激活RI;在方式2和方式3下,如置SM2=1那么只有收到第9位數(shù)據(jù)為1時(shí),RI被激活RI=1,申請(qǐng)中斷,要求CPU取走數(shù)據(jù)。REN:允許接收控制位。由軟件置位或清零。REN=1,允許接收;REN=0,禁止接收。TB8:在
10、方式2和方式3下,存放要發(fā)送的第9位數(shù)據(jù),常用作奇偶校驗(yàn)位。在多機(jī)通信中,可作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)識(shí)位,假設(shè)為地址幀,TB8=1;假設(shè)為數(shù)據(jù)幀,TB8=0。RB8:在方式2和方式3下,存放接收到的第9位數(shù)據(jù);在方式1下,如SM2=0,那么該位為接收到的停止位;方式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)中斷,要求
11、CPU取走數(shù)據(jù)。它必須由軟件清零。表3 串行口工作方式選擇SM0SM1方式功能波特率SM0SM1方式功能波特率000同步移位存放器/1210211位UART/16或/3201110位UART可變11311位UART可變 本設(shè)計(jì)發(fā)送機(jī)串行口的工作方式為方式1,即控制存放器SCON中內(nèi)容如下:表4 發(fā)送機(jī)控制存放器SCON9FH9EH9DH9CH9BH9AH99H98HSCON(98H)SM0SM1SM2RENTB8RB8TIRI01000000 接收機(jī)的串行口的工作方式為方式1,即控制存放器SCON中內(nèi)容如下:表5 接收機(jī)控制存放器SCON9FH9EH9DH9CH9BH9AH99H98HSCON
12、(98H)SM0SM1SM2RENTB8RB8TIRI01010000串口以方式1發(fā)送,由CPU執(zhí)行一條寫(xiě)發(fā)送存放器指令“MOV SBUF,A,就可將數(shù)據(jù)位逐一由TXD端發(fā)送。當(dāng)發(fā)送一幀數(shù)據(jù)后,將TI置1。串口以方式1接受,需控制SMOD中的REN為1SMOD為特殊功能存放器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,SBUF將數(shù)據(jù)送入CPU。同時(shí)將RI置1。假設(shè)要再次發(fā)送或接收數(shù)據(jù),必須將TI、RI清零。3波特率的計(jì)算根據(jù)表2可知串口工作
13、方式方式1時(shí)一幀數(shù)據(jù)為10位8位數(shù)據(jù)位,起始位、停止位各1位。其傳輸波特率是可變的,由定時(shí)器T1的溢出率來(lái)決定。波特率=當(dāng)T1作為波特率發(fā)生器時(shí),最典型的用法是使T1工作在自動(dòng)再裝入的8位定時(shí)器方式即方式2,且TCON的TR=1,以啟動(dòng)定時(shí)器。這時(shí)溢出率取決于TH1中的計(jì)數(shù)值。在單片機(jī)的應(yīng)用中,常用的晶振頻率為:12MHz和11.0592MHz。在本設(shè)計(jì)中晶振頻率采用=11,。0592MHz。即波特率為 波特率=2.3 晶振電路設(shè)計(jì)AT89C51單片機(jī)內(nèi)部有一震蕩電路,只要在單片機(jī)的XTL119號(hào)和XTAL218號(hào)引腳外接石英晶體簡(jiǎn)稱晶振就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。如圖3
14、所示,圖中電容器C1和C2的作用是穩(wěn)定頻率和快速起振,電容值為530pF,典型值為30pF,本設(shè)計(jì)取30pF。晶振CYS的振蕩頻率范圍為1.2MHz12MHz,典型值為12MHz和6MHz,本設(shè)計(jì)取12MHz。圖3 晶振電路2.4 復(fù)位電路設(shè)計(jì)AT89C51單片機(jī)的RST9號(hào)引腳引入高電平并保持兩個(gè)機(jī)器周期時(shí),單片機(jī)內(nèi)部就執(zhí)行復(fù)位操作。在實(shí)際中AT89C51通常有兩種操作方式復(fù)位,一種是上電復(fù)位;另一種是按鍵上電復(fù)位。在雙機(jī)通信系統(tǒng)的設(shè)計(jì)中使用按鍵上電復(fù)位,如圖4所示。 圖4 復(fù)位電路 單片機(jī)復(fù)位后進(jìn)入初始化狀態(tài)。初始化后,程序計(jì)數(shù)器PC=0000H,所以程序從0000H地址單元開(kāi)始執(zhí)行。單片
15、機(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)均為00H。2.5 接口電路的設(shè)計(jì)(1) 直接通信單片機(jī)與單片機(jī)進(jìn)行雙擊串行通行時(shí),可將兩個(gè)單片機(jī)的串口直接連接,接線圖如圖5所示,這種接線傳輸距離短,抗干擾能力差。圖5 直接通信接線圖2串口通信單片機(jī)與單片機(jī)進(jìn)行雙擊串行通行時(shí),AT89C51串行接口的信號(hào)電平為TTL類型,抗干擾性差、傳輸距離短。為了提高串行通信的靠抗性,延長(zhǎng)通信距離,一般設(shè)計(jì)采用標(biāo)準(zhǔn)的串行接口。RS-232C接口是
16、1969年EIA推出的串行通信標(biāo)準(zhǔn),目前是PC機(jī)與通信工業(yè)中應(yīng)用最廣的一種串行接口。數(shù)據(jù)傳輸速率在020kbps范圍內(nèi)的通信,最大傳輸距離可達(dá)15m,能實(shí)現(xiàn)一發(fā)一收通信,目前常用的RS232C接口連接器有9針串口DB9和25針串口DB25。最常用的的是DB9,常采用三線制接法,即發(fā)送數(shù)據(jù)線、接受數(shù)據(jù)線和接地線三腳相連。傳輸線采用屏蔽雙絞線,如圖6所示。 圖6 DB9三線制接法RS232C信號(hào)的電平與單片機(jī)串口信號(hào)的電平不一致,二者之間必須進(jìn)行電平轉(zhuǎn)換。使用電平轉(zhuǎn)換芯片MAX232就可以實(shí)現(xiàn)RS232C/TTL電平的雙向轉(zhuǎn)換。MAX232芯片使用單一的+5V電源供電,配接5個(gè)1uF電解電容即可完
17、成RS232C電平的TTL電平之間的轉(zhuǎn)換,其電路接線圖如圖7所示。圖7 MAX232電平轉(zhuǎn)換芯片電路接線圖表6 DB9常用信號(hào)引腳說(shuō)明DB9引腳信號(hào)名稱符號(hào)功能1載波檢測(cè)DCD 接收遠(yuǎn)程載波2接收數(shù)據(jù)RXD接受串行數(shù)據(jù)3發(fā)送數(shù)據(jù)TXD發(fā)送串行數(shù)據(jù)4數(shù)據(jù)準(zhǔn)備就緒DTR準(zhǔn)備就緒5信號(hào)的SGND 信號(hào)公共地6數(shù)據(jù)準(zhǔn)備就緒DSR準(zhǔn)備就緒7發(fā)送請(qǐng)求RTS請(qǐng)求將線路切換到發(fā)送發(fā)式8允許發(fā)送CTS線路已接通,可以發(fā)送數(shù)據(jù)9振鈴指示RI數(shù)據(jù)通信接通,終端設(shè)備被呼叫2.6 輸入輸出電路設(shè)計(jì)P1口是AT89C51單片機(jī)的唯一的單功能口,僅能用作數(shù)據(jù)輸入/輸出口。P1口的位結(jié)構(gòu)如圖8所示圖8 P1口的位結(jié)構(gòu) 由圖8
18、可知,P1口由一個(gè)輸出鎖存器,兩個(gè)三態(tài)輸入緩沖器和輸出驅(qū)動(dòng)電路組成。內(nèi)部設(shè)有上拉電阻。P1口是通用的準(zhǔn)雙向I/O口。輸出高電平時(shí),能向外提供拉電流負(fù)載,不必再接上拉電阻。當(dāng)口用于輸入時(shí),須向口鎖存器寫(xiě)入“1。輸入低電平有效。因此其輸入電路如圖9,輸出電路圖10:圖9 發(fā)送機(jī)輸入電路圖10 接收機(jī)輸出電路3 雙機(jī)通信軟件設(shè)計(jì) 通過(guò)通信協(xié)議進(jìn)行發(fā)送接收。發(fā)送機(jī)先送聯(lián)絡(luò)信號(hào)給接收機(jī),當(dāng)接收機(jī)接收到聯(lián)絡(luò)信號(hào)后,向發(fā)送機(jī)答復(fù)一個(gè)應(yīng)答信號(hào),表示同意接收。發(fā)送機(jī)收到應(yīng)答信號(hào)后開(kāi)始發(fā)送數(shù)據(jù),每發(fā)送一個(gè)數(shù)據(jù)塊字節(jié)都要計(jì)算“校驗(yàn)和,假定數(shù)據(jù)長(zhǎng)度為16個(gè)字節(jié),起始地址為40H,一個(gè)數(shù)據(jù)塊發(fā)送完畢后立即發(fā)送“校驗(yàn)和。
19、接收機(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)行比擬。假設(shè)二者相等,說(shuō)明接受正確,接收機(jī)答復(fù)00H,發(fā)送機(jī)結(jié)束發(fā)送;假設(shè)二者不等,說(shuō)明接受不正確,接收機(jī)答復(fù)0FFH,請(qǐng)求重發(fā),發(fā)送機(jī)重新發(fā)送數(shù)據(jù)一次。接收機(jī)接收到數(shù)據(jù)后通過(guò)發(fā)光二極管顯示發(fā)送機(jī)的發(fā)送狀態(tài)。3.1 串行通信軟件實(shí)現(xiàn)1串行口工作于方式1;用定時(shí)器1產(chǎn)生9600bit/s的波特率。2功能:將本機(jī)ROM中數(shù)碼表TAB16中的16個(gè)數(shù)發(fā)送到從機(jī),并保存在從機(jī)內(nèi)部ROM中,從機(jī)收到這16個(gè)數(shù)據(jù)后送到一個(gè)數(shù)碼管循環(huán)顯示。3
20、通信協(xié)議:發(fā)送機(jī)首先發(fā)送連絡(luò)信號(hào)(E1H),接收機(jī)接收到之后返回一個(gè)連絡(luò)信號(hào)(E2H)表示從機(jī)已準(zhǔn)備好接收。通信過(guò)程使用第九位發(fā)送奇偶校驗(yàn)位。接收機(jī)接收到一個(gè)數(shù)據(jù)后,立即進(jìn)行奇偶校驗(yàn),假設(shè)數(shù)據(jù)沒(méi)有錯(cuò)誤,那么返回00H,否那么返回FFH。發(fā)送機(jī)發(fā)送一個(gè)數(shù)據(jù)后,等待接收機(jī)返回?cái)?shù)據(jù);假設(shè)為00H,那么繼續(xù)發(fā)送下一個(gè)數(shù)據(jù),假設(shè)為FFH,那么重新發(fā)送數(shù)據(jù)。3.2 串行通信程序流程(1) 發(fā)送機(jī)程序流程根據(jù)通信協(xié)議發(fā)送機(jī)需向接收機(jī)發(fā)送聯(lián)絡(luò)信號(hào)“E1,當(dāng)接收到應(yīng)答信號(hào)后,發(fā)送機(jī)發(fā)送數(shù)據(jù),發(fā)送數(shù)據(jù)完畢后將校驗(yàn)和發(fā)送至接收機(jī),接收機(jī)進(jìn)行校驗(yàn)如果正確等待下一次發(fā)送;如果錯(cuò)誤重新發(fā)送數(shù)據(jù)。其流程圖如下:開(kāi)始設(shè)置波特
21、率啟動(dòng)定時(shí)器T1設(shè)置串行口工作方式發(fā)送“E1聯(lián)絡(luò)信號(hào)接收機(jī)允許發(fā)送?指針初始化校驗(yàn)和清0發(fā)送1個(gè)數(shù)據(jù)字節(jié)求校驗(yàn)和數(shù)據(jù)塊發(fā)送完畢?發(fā)送校驗(yàn)和接收機(jī)接收正確?返回YNYNYN圖10 發(fā)送流程圖(2) 接收機(jī)程序流程根據(jù)通信協(xié)議,接收機(jī)等待發(fā)送機(jī)發(fā)出的聯(lián)絡(luò)信號(hào)“E1并向發(fā)送機(jī)發(fā)送應(yīng)答信號(hào)“E2,當(dāng)接收1個(gè)數(shù)據(jù)字節(jié)后求檢驗(yàn)和,發(fā)送機(jī)在發(fā)送完一個(gè)數(shù)據(jù)塊后將發(fā)送機(jī)計(jì)算的校驗(yàn)和發(fā)送至接收機(jī),接收機(jī)將兩個(gè)校驗(yàn)和進(jìn)行比擬,如果正確等待下一次接收;如果錯(cuò)誤那么發(fā)送出錯(cuò)標(biāo)志重新發(fā)送數(shù)據(jù)。其流程圖如下:開(kāi)始設(shè)置波特率啟動(dòng)定時(shí)器T1設(shè)置串行口工作方式等待發(fā)送機(jī)聯(lián)絡(luò)發(fā)送機(jī)請(qǐng)求發(fā)送?NY指針初始化校驗(yàn)和清0接收1個(gè)數(shù)據(jù)字節(jié)
22、求校驗(yàn)和數(shù)據(jù)塊發(fā)送完畢?比擬校驗(yàn)和接收機(jī)接收正確?返回YNYN發(fā)送應(yīng)答信號(hào)發(fā)送出錯(cuò)標(biāo)志圖11 接收機(jī)流程圖3.3 程序清單基于AT89C51單片機(jī)雙機(jī)通信時(shí),串行輸入輸出可直接進(jìn)行連接,實(shí)現(xiàn)雙機(jī)通信。這樣連接方式,傳輸距離短,抗干擾能力弱,但容易實(shí)現(xiàn),其接線和程序較為簡(jiǎn)單,其程序如下:1發(fā)送機(jī)程序 ORG 0000H AJMP MAIN ORG O1OOHMAIN: MOV SP,#6OH MOV SCON,#40H MOV TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH SETB TR1 MOV P1,#0FFH MOV 30H,#0FFH K0: MOV A,P
23、1 CJNE A,30H,KI SJMP K0 KI: MOV 30H,A MOV SBUF,A SJMP K0WAIT: JBC T1,K0 SJMP WAIT END(2) 接收機(jī)程序 ORG 0000H AJMP MAIN ORG O1OOHMAIN: MOV SP,#6OH MOV SCON,#50H MOV TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH SETB TR1 MOV P1,#0FFH K0: JB RI,KK SJMP K0 KK: MOV A,SBUF MOV P1,A CLR RI SJMP K0 END 發(fā)送機(jī)與接收機(jī)也可以經(jīng)過(guò)串口進(jìn)行
24、通信,這種通信方式較上一種方式提高通信距離,抗干擾能力強(qiáng),傳輸穩(wěn)定,但其接線復(fù)雜,程序比擬繁瑣。其程序如下:1發(fā)送程序清單ASTRT: CLR EA MOV TMOD,#20H ;定時(shí)器1置為方式2 MOV TH1,#0F4H ;裝在定時(shí)器初值,波特率為2400 MOV TL1,#0F4H MOV PCON,#00H SETB TR1 MOV SCON,#50H ;設(shè)定串行口方式1,且準(zhǔn)備接受應(yīng)答信號(hào)ALOOP1:MOV SBUF,#0E1H ;發(fā)送聯(lián)絡(luò)信號(hào) JNB TI,$ ;等待一幀發(fā)送完畢 CLB TI ;允許在發(fā)送 JNB RI,$ ;等待接收機(jī)的應(yīng)答信號(hào) CLR RI ;允許在接收
25、MOV A,SBUF ;接收機(jī)應(yīng)答后,讀至A XRL A,#0E2 ;判斷接收機(jī)是否準(zhǔn)備完畢 JNZ ALOOP1 ;接收機(jī)未準(zhǔn)備好,繼續(xù)聯(lián)絡(luò)ALOOP2: MOV P1,#0FFH MOV 30H,#0FFH ;設(shè)定撥碼開(kāi)關(guān)初值 MOV R7,#10H ;設(shè)定數(shù)據(jù)塊長(zhǎng)度 MOV R6,#00H ;清校驗(yàn)和單元ALOOP3:MOV A,P1 ;讀入撥碼開(kāi)關(guān) CJNE A,30H,ALOOP4 SJMP ALOOP3ALOOP4:MOV 30H,A ;存入撥碼開(kāi)關(guān)新值 MOV SBUF,A ;發(fā)送一個(gè)數(shù)據(jù)字節(jié) MOV A,R6 ADD A,P1 ;求校驗(yàn)和 MOV R6,A ;保存校驗(yàn)和 INC
26、 R0 JNB T1,$ CLB T1 DJNZ R7,ALOOP3 ;整個(gè)數(shù)據(jù)塊是否發(fā)送完畢 MOV SBUF,R6 ;發(fā)送校驗(yàn)和 JNB TI,$ CLR TI JNB RI,$ ;等待接收機(jī)應(yīng)答信號(hào) CLR RI MOV A,SBUF ;接收機(jī)應(yīng)答,讀至A JNZ ALOOP2 ;接收機(jī)應(yīng)答錯(cuò)誤,轉(zhuǎn)至重新發(fā)送 SJMP ALOOP3 ;進(jìn)入下一循環(huán)傳送 END (2) 接收程序清單BSTART: CLR EA MOV TMOA,#20H MOV TH1,#0F4H MOV TL1,#0F4H MOV PCON,#00H SETB TR1 MOV SCON,#5OH ;設(shè)定串行口工作方式1
27、,且準(zhǔn)備接收BLOOP1: JNB RI,$ ;等待1號(hào)機(jī)的聯(lián)絡(luò)信號(hào) CLR RI MOV A,SBUF ;收到1號(hào)機(jī)的信號(hào) XRL A,#0E2H ;判斷是否為1號(hào)機(jī)聯(lián)絡(luò)信號(hào) JNZ BLOOP1 ;不是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),再等待 MOV SBUF,#0E2H ;是1號(hào)機(jī)聯(lián)絡(luò)信號(hào),發(fā)應(yīng)答信號(hào) JNB T1,$ CLR TIBLOOP2: MOV R0,#40H ;設(shè)定數(shù)據(jù)塊地址指針初值 MOV R7,#10H ;設(shè)定數(shù)據(jù)塊長(zhǎng)度初值 MOV R6,#00H ;清校驗(yàn)和單元BLOOP3: JNB RI,$ CLR RI MOV A,SBUF MOV R0,A ;接收數(shù)據(jù)轉(zhuǎn)儲(chǔ) INC RO ADD A
28、,R6 ;求校驗(yàn)和 MOV R6,A DJNZ R7,BLOOP3 ;判斷數(shù)據(jù)塊是否接收完畢 JNB RI,$ ;完畢,接收1號(hào)機(jī)發(fā)來(lái)的校驗(yàn)和 CLR RI MOV A,SBUF XRL A,R6 ;比擬校驗(yàn)和 JZ END1 MOV SBUF,#0FFH ;校驗(yàn)和相等,跳至發(fā)正確標(biāo)志 JNB TI,# ;校驗(yàn)和不相等,發(fā)錯(cuò)誤標(biāo)志 CLR TI ;轉(zhuǎn)重新接收 SJMP BLOOP2END1: MOV SBUF,#00H RET4 軟件仿真 Proteus 7 Professional 是一種低投資的電子設(shè)計(jì)自動(dòng)化軟件,它可以仿真單片機(jī)和周邊設(shè)備,可以仿真51系列、AVR、PIC等常用的MCU。與KEIL和MPLAB不同的是,它還可以仿真周邊的設(shè)備。例如,示波器、RAM、ROM、LED等。本次設(shè)計(jì),通過(guò)兩片兩片AT89C52單片機(jī)由8位按鍵開(kāi)關(guān)分別控制8個(gè)指示燈。具體接線如下;發(fā)送電路18、19號(hào)引腳連接晶振電路,9號(hào)引腳連接復(fù)位電路。1-8號(hào)引腳連接8位按鍵開(kāi)關(guān)。10、11號(hào)引腳連接接收電路單片機(jī)的11、10號(hào)引腳。接收電路,18、19號(hào)引腳
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽(yáng)理工大學(xué)《室內(nèi)軟裝與陳設(shè)設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西傳媒學(xué)院《信息光學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 東營(yíng)科技職業(yè)學(xué)院《工程機(jī)械構(gòu)造》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶海聯(lián)職業(yè)技術(shù)學(xué)院《心理測(cè)量學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 南華大學(xué)船山學(xué)院《創(chuàng)業(yè)管理與實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林建筑科技學(xué)院《數(shù)據(jù)通信》2023-2024學(xué)年第二學(xué)期期末試卷
- 炎黃職業(yè)技術(shù)學(xué)院《傳感器與智能測(cè)試技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 二零二五年度醫(yī)院臨時(shí)檢驗(yàn)師勞動(dòng)合同規(guī)范
- 二零二五年度新能源汽車補(bǔ)貼申請(qǐng)與購(gòu)車合同
- 《項(xiàng)目經(jīng)濟(jì)評(píng)價(jià)要素》課件
- 2025年山東商務(wù)職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025年個(gè)人合法二手車買賣合同(4篇)
- 2025年內(nèi)蒙古自治區(qū)包頭市中考試卷數(shù)學(xué)模擬卷(二)
- 2025年華潤(rùn)燃?xì)庹衅腹P試參考題庫(kù)含答案解析
- 推進(jìn)煙草網(wǎng)格化管理工作
- 銅礦隱蔽致災(zāi)普查治理工作計(jì)劃
- 金融服務(wù)鄉(xiāng)村振興
- 2024-2030年中國(guó)出版社行業(yè)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- (新版)廣電全媒體運(yùn)營(yíng)師資格認(rèn)證考試復(fù)習(xí)題庫(kù)(含答案)
- 教師及教育系統(tǒng)事業(yè)單位工作人員年度考核登記表示例范本1-3-5
- 2024年低空智聯(lián)網(wǎng)發(fā)展研究報(bào)告
評(píng)論
0/150
提交評(píng)論