兩個(gè)單片機(jī)之間數(shù)據(jù)通信的仿真實(shí)現(xiàn)_第1頁
兩個(gè)單片機(jī)之間數(shù)據(jù)通信的仿真實(shí)現(xiàn)_第2頁
兩個(gè)單片機(jī)之間數(shù)據(jù)通信的仿真實(shí)現(xiàn)_第3頁
兩個(gè)單片機(jī)之間數(shù)據(jù)通信的仿真實(shí)現(xiàn)_第4頁
兩個(gè)單片機(jī)之間數(shù)據(jù)通信的仿真實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄一、課程設(shè)計(jì)內(nèi)容要求 4二、方案設(shè)計(jì) 5三、電路原理圖設(shè)計(jì) 63.1電路原理圖 63.2 硬件系統(tǒng)簡(jiǎn)介 63.3 AT89C51 單片機(jī)簡(jiǎn)介 73.4 晶振電路的設(shè)計(jì) 7 四、軟件的設(shè)計(jì) 84.1 軟件流程圖 84.2 程序的設(shè)計(jì) 10五、仿真與調(diào)試 14六、結(jié)論與心得 18七、參考文獻(xiàn) 19摘 要80C51是最常見的一種8位單片機(jī),具有多機(jī)通信的功能,可以很好完成基本的數(shù)據(jù)數(shù)據(jù)通信的功能。借助PROTEUS等仿真軟件強(qiáng)大的仿真功能,可以從工程的角度直接能夠看到仿真程序的運(yùn)行電路工作的結(jié)果。因此彌補(bǔ)實(shí)驗(yàn)和實(shí)際單片機(jī)之間數(shù)據(jù)通信的脫節(jié)環(huán)節(jié),因而具有一定的研究意義。本次設(shè)計(jì)在了解一定數(shù)據(jù)通信

2、有關(guān)知識(shí)的基礎(chǔ)上,利用單片機(jī)串口進(jìn)行多個(gè)單片機(jī)的數(shù)據(jù)通信的仿真基本上達(dá)到了與實(shí)際多個(gè)單片機(jī)之間的數(shù)據(jù)通信的相同一致的效果。一課程設(shè)計(jì)內(nèi)容要求 單片機(jī)在工業(yè)控制、尖端武器、通信設(shè)備、信息處理、家用電器等各測(cè)控領(lǐng)域的應(yīng)用非常廣泛。單片機(jī)之所以能在通信設(shè)備的測(cè)控領(lǐng)域中廣泛應(yīng)用的一個(gè)重要的基礎(chǔ)就是它具有數(shù)據(jù)通信的能力。而串行數(shù)據(jù)通信又是數(shù)據(jù)通信中最基本的也是最重要的一種。80C51是最常見的一種8位單片機(jī),具有多機(jī)通信的功能,可以很好完成基本的數(shù)據(jù)數(shù)據(jù)通信的功能。借助PROTEUS等仿真軟件強(qiáng)大的仿真功能,可以從工程的角度直接能夠看到仿真程序的運(yùn)行電路工作的結(jié)果。因此彌補(bǔ)實(shí)驗(yàn)和實(shí)際單片機(jī)之間數(shù)據(jù)通信的

3、脫節(jié)環(huán)節(jié),因而具有一定的研究意義。本次設(shè)計(jì)在了解一定數(shù)據(jù)通信有關(guān)知識(shí)的基礎(chǔ)上,利用單片機(jī)串口進(jìn)行多個(gè)單片機(jī)的數(shù)據(jù)通信的仿真基本上達(dá)到了與實(shí)際多個(gè)單片機(jī)之間的數(shù)據(jù)通信的相同一致的效果。具體應(yīng)完成以下任務(wù) 1分析設(shè)計(jì)任務(wù),搜集參考文獻(xiàn),根據(jù)設(shè)計(jì)任務(wù)要求進(jìn)行分析與論證,認(rèn)真完成開題報(bào)告。 2熟悉了解并掌握8051單片機(jī)工作原理和結(jié)構(gòu)及接口技術(shù)、串行通信工作原理、熟練掌握8051匯編語言或單片機(jī)C語言的運(yùn)用 ,熟練掌握PROTEUS仿真軟件的使用,了解并掌握串行通信的種類及學(xué)會(huì)如何利用單片機(jī)的來實(shí)現(xiàn)相關(guān)功能。 3根據(jù)要求,完成(仿真)硬件電路的設(shè)計(jì),并再理解和掌握一定相關(guān)數(shù)據(jù)串行通信的與概念的基礎(chǔ)上用

4、8051單片機(jī)匯編語言或C語言,完成數(shù)據(jù)串行通信的數(shù)據(jù)發(fā)送與接受。利用仿真軟件完成多個(gè)單片機(jī)之間數(shù)據(jù)通信功能的軟件設(shè)計(jì)。 4通過調(diào)試或(仿真)多個(gè)單片機(jī)之間的通信功能。 5總結(jié)設(shè)計(jì)過程,完成課程設(shè)計(jì)。二、方案設(shè)計(jì)本設(shè)計(jì)的題目要求是一個(gè)8951(主)與兩個(gè)8951(副)做串行多工發(fā)送數(shù)據(jù),但是串行通信分同步異步兩種方式。1 異步通信ASYNC(Asynvhronous Data Communication)在異步通訊中數(shù)據(jù)或字符是一幀(frame)一幀地傳送的。幀定義為一個(gè)字符的完整的通訊格式,通常也稱為幀格式。最常見德的幀格式一般是先用一個(gè)起始位“0”表示字符的開始;然后是58位的數(shù)據(jù),規(guī)定低

5、位在前,高位在后;其后是奇偶效驗(yàn)位,此位通過對(duì)數(shù)據(jù)奇偶性的檢查,可用于判別字符傳送的正確性,其有三種可能的選擇,即奇,偶,無效驗(yàn),用戶可根據(jù)需要選擇(在有的格式中這個(gè)位可省略);最后是停止位,用以表示字符的結(jié)束,停止位可以是1位,1.5位,2位,不同的計(jì)算機(jī)規(guī)定有所不同。從起始位開始就停止位結(jié)束構(gòu)成完整的一幀。下圖是一種11位的幀格式。由于異步通信每傳送一幀有固定格式,通訊雙方只需按約定的幀格式來發(fā)送和接收數(shù)據(jù),所以硬件結(jié)構(gòu)比同步通訊方式簡(jiǎn)單。此外,他還能利用校驗(yàn)位檢測(cè)錯(cuò)誤,所以這種通信方式應(yīng)用較廣泛。2 同步通信SYNC(Synchronous Data Communication)在同步通

6、信中,數(shù)據(jù)或字符開始處是用一同步字符在指示(一般約定為12個(gè)字符),以現(xiàn)發(fā)送端和接收端同步,一旦檢測(cè)到約定同步字符,下面就連續(xù)按順序接收數(shù)據(jù)。同步傳送個(gè)數(shù)如下圖因?yàn)橥酵ㄐ艛?shù)據(jù)塊傳送時(shí)去掉了字符的開始和結(jié)束的標(biāo)志,所以其速度高于異步傳送,但這種方式對(duì)硬件結(jié)構(gòu)要求較高。在單片機(jī)主要是采用異步通訊方式,我們也采用這種通訊方式。串行通信制式的確定在串行通訊中,數(shù)據(jù)是在兩機(jī)之間傳送的。按照數(shù)據(jù)傳送方向,串行通信可分為半雙工(half duplex)制式和全雙工(dull duplex)制式。所以我們的設(shè)計(jì)采取全雙工的制式 為了使仿真效果,一目了然我們?cè)O(shè)計(jì)時(shí)用LED燈接收信號(hào),用它的亮滅代表信號(hào)的傳遞效

7、果。三、電路設(shè)計(jì)3.1 電路原理圖 圖1 兩單片機(jī)間數(shù)據(jù)通信原理圖3.2 硬件系統(tǒng)的簡(jiǎn)介1). 主CPU為8751-A:P1接指撥開關(guān),P2接指撥開關(guān)。2). 副CPU8751B:片接8個(gè)LED.3). 副CPU8751C:片接8個(gè)LED.4). 當(dāng)主CPU8751A,P1的指撥開關(guān)切換時(shí),此數(shù)據(jù)會(huì)發(fā)送給副CPU8951-B并控制其P2口8個(gè)LED的亮滅。同理,當(dāng)主CPU 8951-A,P1的指撥開關(guān)切換時(shí),此數(shù)據(jù)會(huì)發(fā)送給5). 副CPU8751C并控制其P2口8個(gè)LED的亮滅。當(dāng)副CPU8951-B,P1的指撥開關(guān)切換時(shí),此數(shù)據(jù)會(huì)發(fā)送給主CPU8751A并控制其P0口低四位的四個(gè)LED的亮滅

8、。同理,當(dāng)副CPU8951-C, P1的指撥開關(guān)切換時(shí),則此數(shù)據(jù)會(huì)發(fā)送給主CPU8951-A,并控制其P0口高四位的四個(gè)LED亮滅。3.3 AT89C51 單片機(jī)簡(jiǎn)介振蕩器及定時(shí)電路CPU4K字節(jié)ROM128字節(jié)RAMSFR(26)8位并行口串行口2個(gè)16位定時(shí)器/計(jì)數(shù)器 圖2 單片機(jī)內(nèi)部結(jié)構(gòu)圖(1) 一個(gè)8位的CPU(2) 一個(gè)片內(nèi)振蕩器及時(shí)鐘電路(3) 4KB的FLAShROM(4) 128的內(nèi)部RAM(5) 可擴(kuò)展64KB外部ROM和外部RAM的控制電路;(6) 2個(gè)16位的定時(shí)/計(jì)數(shù)器(7) 26個(gè)特殊功能寄存器(8) 4個(gè)8位的并行口(9) 一個(gè)全雙工的串行口(10) 5個(gè)中斷源,2

9、個(gè)外部中斷,3內(nèi)部中斷(11) 內(nèi)部硬件看門狗電路(12) 一個(gè)SPI串行接口,用于芯片的在系統(tǒng)編程3.4 晶振電路的設(shè)計(jì)1 設(shè)計(jì)原理8051片內(nèi)有一由高增益反相放大器構(gòu)成的振蕩器。反相放大器的輸入端為xTALl,輸出端為xTAL2,兩端躊接石英晶體及兩個(gè)電容形成穩(wěn)定的自激振蕩器。電容通常取30PF左右。具體電路設(shè)計(jì)這部分在兩個(gè)方案中是相同的,電路圖如下 圖3 晶振電路原理圖四軟件設(shè)計(jì)4.1軟件流程圖 中斷地址符合否?發(fā)回地址接受下一幀是命令幀嗎命令分類從接受準(zhǔn)備就緒否?從接受準(zhǔn)備就緒否?RRDY=1送主機(jī)TRDY=1送主機(jī)發(fā)送數(shù)據(jù)幀接受數(shù)據(jù)幀RRDY=0送主機(jī)TRDY=0送主機(jī)接收完否?發(fā)送

10、完否?SM2=1恢復(fù)現(xiàn)場(chǎng) 返回N N 非法命令 0100N N Y N NY Y圖4 多機(jī)通訊從機(jī)中斷服務(wù)程序框圖子程序入口 串行口初始化 發(fā)送地址幀從機(jī)應(yīng)答否?發(fā)送命令幀從機(jī)應(yīng)答復(fù)否命令正確否命令分類從機(jī)接收 準(zhǔn)備就緒否發(fā)送數(shù)據(jù)塊從機(jī)發(fā)送 準(zhǔn)備就緒否接受數(shù)據(jù)塊返回N Y應(yīng)答地址相符否?Y 命令從機(jī)復(fù)位 NNY NY01 NYY 4.2 程序的設(shè)計(jì)RI或TI串行中斷請(qǐng)求。當(dāng)接收或發(fā)送完一串行幀數(shù)據(jù)時(shí),使內(nèi)部串行口中斷請(qǐng)求標(biāo)志RI或TI=1,并請(qǐng)求中斷。當(dāng)某中斷源的中斷申請(qǐng)被CPU響應(yīng)后,CPU將把此中斷源的入口地址裝入PC,中斷服務(wù)程序即從此地址開始執(zhí)行。中斷源:串行口中斷 入口地址:0023

11、H。TMOD為T0,T1的工作方式寄存器,當(dāng)為工作方式2,功能為自動(dòng)再裝入8位計(jì)數(shù)器51 芯片的串口可以工作在幾個(gè)不同的工作模式下,其工作模式的設(shè)置就是使用SCON 寄存器。主機(jī)程序A:ORG 00H JMP START ;UART中斷起始地址 ORG 23H JMP UARTISTART: MOV TMOD,#00100000B ;TIMER1 工作在MODE2 ANL PCON,#01111111B ;SMOD=0 MOV TH1,#0F3H ;波特率為2400 SETB TR1 ;啟動(dòng)TIMER1 MOV SCON,#11010000B ;UART工作MODE3 MOV IE,#1001

12、0000B ;UART中斷使能 SETB SM2 ;SM2=1 MOV 30H,#0FFH ;P1指撥開關(guān)的初值 MOV 31H,#OFFH MOV 32H,#0FFHLOOP: MOV A,P1 ;讀入P1指撥開關(guān)值 CJNE A,30H,UART1 ;判斷有否變化? JMP LOOP1LOOP1: MOV A,P2 ;讀入P2指撥開關(guān)值 CJNE A,31H,UART2 ;判斷有否變化? JMP LOOPUART1: MOV 30H,A ;P1指撥開關(guān)存入新值 SETB TB8 ;設(shè)TB8=1 MOV SBUF,#01H ;發(fā)送8951b的地址WAIT1: JBC TI,L1 ;發(fā)送完畢否

13、? JMP WAIT1L1: CLR TB8 ;清楚TB8=0 MOV SBUF,30H ;把P1指撥開關(guān)值發(fā)送給8951bWAIT2: JBC TI,LOOP ;發(fā)送完畢否 JMP WAIT2UART2: MOV 31H,A SETB TB8 MOV SBUF,#02HWAIT3: JBC TI,L3 JMP WAIT3L3: CLR TB8 MOV SBUF,31HWAIT4: JBC TI,LOOP JMP WAIT4UARTI: PUSH ACC ;壓入堆棧 PUSH PSW JBC RI,L5 ;是否接受中斷?RI=1? JMP RETURNL5: JB SM2,6 ; SM2=1接

14、收地址,SM2=0接收數(shù)據(jù) MOV A,SBUF ; 接收數(shù)據(jù)載入累加器 MOV 33H,A ;暫存入(33H)RAM MOV A,32H ; 判斷接收8951-B或8951-C的數(shù)據(jù)? CJNE A,#01H,L8 ;接到收8951-B的數(shù)據(jù)? MOV A,33H ;是則輸出至P0顯示(低4位) MOV P0,A SETB SM2 ;設(shè)SM2=1,準(zhǔn)備接收下一個(gè)地址 MOV 32H,#0FFH ;清楚地址(32H)RAM JMP RETURNL8: CJNE A,#02H,RETURN MOV A,33H SWAP A MOV P0,A SETB SM2 MOV 32H,#0FFH JMP

15、RETURNL6: MOV A,SBUF ;載入接收到的地址 CJNE A,#01H,L7 ;是8951-B的地址? MOV 32H,A ;是則此將8951B的地址存入(32H)RAM CLR SM2 ;設(shè)SM2=0,準(zhǔn)備接收數(shù)據(jù) JMP RETURNL7: CJNE A,#02H,RETURN MOV 32H,A CLR SM2RETURN: POP PSW ;取回PSW POP ACC RETI END從機(jī)程序B: ORG 00H JMP START ORG 23H ;UART中斷起始地址 JMP UARTI START: MOV TMOD,#00100000B ;TIMER1 工作在MO

16、DE2 ANL PCON,#01111111B ;SMOD=0 MOV TH1,#0F3H ;波特率為2400 SETB TR1 ;啟動(dòng)TIMER1 MOV SCON,#11010000B MOV IE,#10010000B SETB SM2 MOV 30H,#0FFHLOOP: MOV A,P1 CJNE A,30H,UART1 JMP LOOPUART1: ORL A,#0F0H ;有變化取低4位 MOV 30H,A ;存入P1指撥開關(guān)的新值 SETB TB8 ;設(shè)TB8=1 MOV SBUF,#01 ;發(fā)送本身地址(01H)給8951AWAIT1: JBC TI,L1 ;發(fā)送完畢否 JM

17、P WAIT1L1: CLR TB8 ;是則清楚TB8=0 MOV SBUF,30H ;將指撥開關(guān)的值發(fā)送給8951AWAIT2: JBC TI,LOOP ;發(fā)送完畢否 JMP WAIT2UARTI: PUSH ACC ;壓入堆棧 PUSH PSW JBC RI,L5 ;是否為接收中斷? JMP RETURNL5: JB SM2,L6 MOV A,SBUF MOV P2,A SETB SM2 JMP RETURNL6: MOV A,SBUF CJNE A,#01H,RETURN CLR SM2RETURN: POP PSW POP ACC RETI END從機(jī)程序C ORG 00H JMP S

18、TART ORG 23H JMP UARTISTART: MOV TMOD,#00100000B ANL PCON,#01111111B MOV TH1,#0F3H SETB TR1 MOV SCON,#11010000B MOV IE,#10010000B SETB SM2 MOV 30H,#0FFHLOOP: MOV A,P1 CJNE A,30H,UART1 JMP LOOPUART1: ORL A,#0FH SWAP A MOV 30H,A SETB TB8 MOV SBUF,#02WAIT1: JBC TI,L1 JMP WAIT1L1: CLR TB8 MOV SBUF,30HWA

19、IT2: JBC TI,LOOP JMP WAIT2UARTI: PUSH ACC PUSH PSW JBC RI,L5 JMP RETURNL5: JB SM2,L6 ;SM2=1接收地址,SM2=0接收數(shù)據(jù) MOV A,SBUF ;SM=0,則接收數(shù)據(jù)并輸出至P2 MOV P2,A SETB SM2 ;設(shè)SM2=1,準(zhǔn)備接收下一個(gè)地址 JMP RETURNL6: MOV A,SBUF ;SM2=1,載入地址 CJNE A,#02H,RETURN ;是否(02H)地址? CLR SM2 ;是則清除SM2=0,準(zhǔn)備接收數(shù)據(jù)RETURN: POP PSW POP ACC RETI END五仿真與

20、調(diào)試單擊仿真運(yùn)行開始按鈕,我們能清楚地觀察到每一個(gè)引腳的電頻變化,紅色代表高電頻,藍(lán)色代表低電頻。如圖6.14所示。 圖5 完整電路圖點(diǎn)擊DSW1開關(guān)使它指向ON,U3的燈將熄滅,如圖6所示 圖 6 運(yùn)行結(jié)果點(diǎn)擊DSW1開關(guān)使它指向ON,U6的燈將熄滅,如圖7所示 圖 7 運(yùn)行結(jié)果點(diǎn)擊DSW4開關(guān)使它指向ON,燈A0,A1,A2,A3將亮起來如圖8所示 圖 8 運(yùn)行結(jié)果點(diǎn)擊DSW3開關(guān)使它指向ON,燈A4,A5,A6,A7將亮起來,如圖9所示 圖 9 運(yùn)行結(jié)果經(jīng)測(cè)試,該系統(tǒng)性能優(yōu)越。六.結(jié)論與心得1、通過這次課程設(shè)計(jì),加強(qiáng)了我們動(dòng)手、思考和解決問題的能力。2、我沉得做課程設(shè)計(jì)同時(shí)也是對(duì)課本知識(shí)

21、的鞏固和加強(qiáng),由于課本上的知識(shí)太多,平時(shí)課間的學(xué)習(xí)并不能很好的理解和運(yùn)用各個(gè)元件的功能,而且考試內(nèi)容有限,所以在這次課程設(shè)計(jì)過程中,對(duì)知識(shí)使用有了更多的認(rèn)識(shí)。認(rèn)識(shí)來源于實(shí)踐,實(shí)踐是認(rèn)識(shí)的動(dòng)力和最終目的,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。所以這個(gè)課程設(shè)計(jì)對(duì)我們以后找工作的作用是非常大的。3、兩個(gè)星期的課程設(shè)計(jì),過程曲折可謂一語難盡。在此期間我們也失落過,也曾一度熱情高漲。從開始時(shí)滿富盛激情到最后汗水背后的復(fù)雜心情,點(diǎn)點(diǎn)滴滴無不令我回味無長(zhǎng)。生活就是這樣,汗水預(yù)示著結(jié)果也見證著收獲。勞動(dòng)是人類生存生活永恒不變的話題。通過做課程設(shè)計(jì),我才真正領(lǐng)略到“艱苦奮斗”這一詞的真正含義。我想說,設(shè)計(jì)確實(shí)有些辛苦,但苦

22、中也有樂,在如今單一的理論學(xué)習(xí)中,很少有機(jī)會(huì)能有實(shí)踐的機(jī)會(huì),但我們可以,而且設(shè)計(jì)也是一個(gè)團(tuán)隊(duì)的任務(wù),一起的工作可以讓我們有說有笑,相互幫助,配合默契,多少人間歡樂在這里灑下,大學(xué)里一年的相處還趕不上這十來天的合作,我感覺我和同學(xué)們之間的距離更加近了;我想說,確實(shí)很累,但當(dāng)我們看到自己所做的成果時(shí),心中也不免產(chǎn)生興奮; 正所謂“三百六十行,行行出狀元”。我們同樣可以為社會(huì)作出我們應(yīng)該做的一切,這有什么不好?我們不斷的反問自己。也許有人不喜歡這類的工作,也許有人認(rèn)為設(shè)計(jì)的工作有些枯燥,但我們認(rèn)為無論干什么,只要人生活的有意義就可。社會(huì)需要我們,我們也可以為社會(huì)而工作。既然如此,那還有什么必要失落呢?于是我們決定沿著自己的路,執(zhí)著的走下去。同時(shí)我認(rèn)為我們的工作是一個(gè)團(tuán)隊(duì)的工作,團(tuán)隊(duì)需要個(gè)人,個(gè)人也離不開團(tuán)隊(duì),必須發(fā)揚(yáng)團(tuán)結(jié)協(xié)作的精神。某個(gè)人的離群都可能導(dǎo)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論