基于51單片機(jī)的多機(jī)通信系統(tǒng).doc
課程設(shè)計(jì)報(bào)告課程 單片機(jī)技術(shù) 題目 串口通信多機(jī)通信系統(tǒng) 系 別 年 級(jí) 07級(jí) 專 業(yè) 電子科學(xué)與技術(shù) 班 級(jí) 學(xué) 號(hào) 學(xué)生姓名 指導(dǎo)教師 職 稱 設(shè)計(jì)時(shí)間 目 錄1 題設(shè)要求分析12 硬件電路的設(shè)計(jì)32.1 系統(tǒng)的組成32.2 系統(tǒng)的工作原理32.3 硬件電路原理圖設(shè)計(jì)42.4 硬件電路的實(shí)現(xiàn)63 軟件電路的設(shè)計(jì)83.1 通信協(xié)議的設(shè)計(jì)83.2 主機(jī)程序設(shè)計(jì)83.3 從機(jī)程序設(shè)計(jì)124 系統(tǒng)的調(diào)試與實(shí)現(xiàn)154.1 從機(jī)模塊調(diào)試154.2 LED顯示模塊調(diào)試154.3電平轉(zhuǎn)換模塊功能調(diào)試154.4主機(jī)模塊功能調(diào)試164.5整體設(shè)計(jì)功能調(diào)試16參考文獻(xiàn)181 題設(shè)要求分析本小組的試驗(yàn)題目如下:一、任務(wù):設(shè)計(jì)實(shí)現(xiàn)多臺(tái)單片機(jī)系統(tǒng)之間的串行通信二、基本要求(難度系數(shù)0.8):(1)設(shè)計(jì)一個(gè)主從式多機(jī)通信系統(tǒng),包含1臺(tái)主機(jī)和3臺(tái)從機(jī),主機(jī)和從機(jī)全部為單片機(jī);(2)選擇合適總線接口芯片,正確連接主機(jī)和從機(jī);(3)編程實(shí)現(xiàn)分布式數(shù)據(jù)采集功能,主機(jī)可以獲取各分機(jī)當(dāng)前AD轉(zhuǎn)換結(jié)果,并顯示。三、發(fā)揮部分:(1)完善通信功能。(根據(jù)完成情況加分,上限+0.2)經(jīng)過(guò)本小組成員對(duì)本課題認(rèn)真討論先做出如下分析:對(duì)課題分析后本小組認(rèn)為本次實(shí)驗(yàn)的目的是就是應(yīng)用單片的串口通信功能實(shí)現(xiàn)一個(gè)分布式采集系統(tǒng)。整個(gè)系統(tǒng)中包含一片主機(jī)和三片從機(jī),主機(jī)的任務(wù)是實(shí)現(xiàn)對(duì)三片從機(jī)的AD轉(zhuǎn)換結(jié)果的采集并在數(shù)碼管上顯示之。這樣從硬件的角度上將整個(gè)系統(tǒng)分為兩個(gè)模塊主機(jī)模塊和從機(jī)模塊。主機(jī)模塊中包含單片機(jī)模塊、led數(shù)碼管顯示子模塊和串口電平轉(zhuǎn)換子模塊,從機(jī)模塊則包括單片機(jī)子模塊、AD轉(zhuǎn)換子模塊和串口電平轉(zhuǎn)換子模塊。就本次試驗(yàn)而言硬件電路的設(shè)計(jì)難點(diǎn)在于串口電平轉(zhuǎn)換芯片的選擇及其連接,而軟件的設(shè)計(jì)難點(diǎn)在于串口通信協(xié)議的制定及相關(guān)程序的編寫。實(shí)現(xiàn)多機(jī)通信方案的實(shí)現(xiàn)。不同于雙機(jī)通信多機(jī)通信系統(tǒng)中需要識(shí)別通信信息發(fā)出者或是接受者是誰(shuí)。經(jīng)過(guò)查閱資料發(fā)現(xiàn)在大多數(shù)的多機(jī)通信系統(tǒng)中都是才采用地址識(shí)別的方法實(shí)現(xiàn)的。所謂地址識(shí)別方法就是在發(fā)送或接受信息前先發(fā)送和校驗(yàn)地址幀。就本題目而言,先要對(duì)通信系統(tǒng)中的每臺(tái)機(jī)器分配一個(gè)唯一的地址作為識(shí)別信息。具體的識(shí)別過(guò)程如下:n 首先,從機(jī)處于只接收地址幀的狀態(tài);n 主機(jī)發(fā)送一幀地址信息;n 從機(jī)接受到地址幀后,將本機(jī)地址與地址幀中的地址進(jìn)行比較,如果地址相同準(zhǔn)備接受數(shù)據(jù),否則丟棄當(dāng)前幀,依然處于只接受地址幀的狀態(tài);n 主機(jī)發(fā)送數(shù)據(jù)幀,相應(yīng)的從機(jī)接受數(shù)據(jù),數(shù)據(jù)傳送完畢后,從機(jī)繼續(xù)回到只接受地址幀的狀態(tài),在這個(gè)過(guò)程中其他從機(jī)不受影響;n 當(dāng)主機(jī)需要與其他從機(jī)進(jìn)行數(shù)據(jù)傳輸時(shí),可以再次發(fā)送地址幀呼叫從機(jī),重復(fù)這一過(guò)程1。對(duì)于本題而言可通過(guò)此過(guò)程實(shí)現(xiàn)主機(jī)對(duì)從機(jī)的絕對(duì)控制。這樣在主機(jī)中編寫一個(gè)循環(huán)程序就可以實(shí)現(xiàn)對(duì)三臺(tái)從機(jī)的AD轉(zhuǎn)換結(jié)果的不停采集。至于地址幀與數(shù)據(jù)幀的區(qū)別則可通過(guò)串口工作方式三下的第九位的置1或置0來(lái)實(shí)現(xiàn)。在完成通信的基礎(chǔ)上,再將采集到的三路結(jié)果分別用兩個(gè)led數(shù)碼管顯示即可試驗(yàn)預(yù)期目的。2 硬件電路的設(shè)計(jì)2.1 系統(tǒng)的組成根據(jù)題目分析可知硬件電分為主機(jī)模塊和從機(jī)模塊。主機(jī)模塊中包含單片機(jī)子模塊、led數(shù)碼管顯示子模塊和串口電平轉(zhuǎn)換子模塊,從機(jī)模塊則包括單片機(jī)子模塊、AD轉(zhuǎn)換子模塊和串口電平轉(zhuǎn)換子模塊。在主模塊中由AT89S51單片機(jī)擔(dān)任主機(jī),六個(gè)led數(shù)碼管擔(dān)任顯示設(shè)備和一片MAX485擔(dān)任串口的電平轉(zhuǎn)換。在整個(gè)主機(jī)系統(tǒng)中有三個(gè)從機(jī)模塊三個(gè)從機(jī)模塊結(jié)構(gòu)一樣,有一片AT89S51單片機(jī)擔(dān)任從機(jī)外接一片ADC0809轉(zhuǎn)換芯片和一片MAX485擔(dān)任串口的電平轉(zhuǎn)換。串口采用單工及異步通信方式。整個(gè)硬件結(jié)構(gòu)原如圖1所示。圖 1 系統(tǒng)結(jié)構(gòu)原理圖2.2 系統(tǒng)的工作原理主機(jī)AT89S51編程可實(shí)現(xiàn)循環(huán)訪問(wèn)個(gè)從機(jī),當(dāng)從機(jī)接受主機(jī)訪問(wèn)后啟動(dòng)AD轉(zhuǎn)換設(shè)備ADC0809對(duì)外部模擬信號(hào)進(jìn)行轉(zhuǎn)換。當(dāng)從機(jī)獲得轉(zhuǎn)換結(jié)果后通過(guò)串口將其發(fā)送到主機(jī),主機(jī)接受到轉(zhuǎn)換結(jié)果后再將其發(fā)送到相應(yīng)的led數(shù)碼管顯示。2.3 硬件電路原理圖設(shè)計(jì)(1)led數(shù)碼管顯示電路led數(shù)碼管顯示電路如圖2所示顯示子模塊由六個(gè)數(shù)碼管和相應(yīng)的啟動(dòng)芯片構(gòu)成。其中每路通道的采集值用量為數(shù)碼管顯示。為了節(jié)約單片機(jī)的I/O口本題的數(shù)碼管采用MAX7219芯片。給芯片的優(yōu)點(diǎn)在于可完成電路的刷新。MAX7219芯片的SEG A-SEG DP為數(shù)碼管段碼接口,DIG0-DIG7為位碼接口,CLK、DIN、LOAD分別與單片機(jī)P1.0、P1.1、P1.2連接。單片機(jī)通過(guò)串行的方式將要顯示的數(shù)據(jù)通過(guò)CLK、DIN、LOAD三個(gè)接口送入相應(yīng)的顯示寄存器內(nèi),MAX7219將自動(dòng)完成對(duì)數(shù)碼管的刷新工作。具體的電路如圖2所示。圖 2 led顯示電路(2)串口電平轉(zhuǎn)換電路 串口電平轉(zhuǎn)換電路的電路圖如圖3所示:本實(shí)驗(yàn)中采用MAX485的電平轉(zhuǎn)換芯片。MAX485是一種RS-485標(biāo)準(zhǔn)接口的電平轉(zhuǎn)換芯片。RS-485采用差分式半雙工通信方式,真正實(shí)現(xiàn)多點(diǎn)總線連接,具有傳輸距離遠(yuǎn)可靠性高的特點(diǎn)?;谝陨显虮拘〗M選擇該芯片實(shí)現(xiàn)電平轉(zhuǎn)換。MAX485的1號(hào)引腳RO為接收端接單片RXD, 4號(hào)引腳DI為發(fā)送端接單片TXD, 2、3號(hào)引腳分別為發(fā)送接收使能端端接單片P1.3引腳。6、7號(hào)引腳總線接線口。圖 3 電平轉(zhuǎn)換電路(3)主機(jī)模塊電路 根據(jù)設(shè)計(jì)要求繪制主機(jī)模塊電路圖如圖4所示。圖 4 主機(jī)模塊電路圖(4)從機(jī)模塊電路根據(jù)設(shè)計(jì)要求繪制從機(jī)模塊電路圖如圖5所示。圖 5 從機(jī)模塊電路圖2.4 硬件電路的實(shí)現(xiàn)首先是主從機(jī)電路的實(shí)現(xiàn)。主機(jī)的電路的搭建采用主CPU板、鍵盤顯示接口板各一塊。照實(shí)驗(yàn)原理圖將主CPU板的P0口接到鍵盤顯示接口板的位碼接口,P1口接到鍵盤顯示接口板的段碼的接口。從機(jī)的電路由CPU板和ADDA轉(zhuǎn)換板構(gòu)成。其次是電平轉(zhuǎn)換電路的焊接。電平轉(zhuǎn)換的路的實(shí)現(xiàn)是通過(guò)自己搭建電路完成。電平轉(zhuǎn)換的電路主要有四塊MAX485和兩個(gè)100電阻構(gòu)成。四塊MAX485采用總線方式連接,每個(gè)芯片分別引出三個(gè)引腳用于單片的連接。最后將各個(gè)模塊的按照原理圖連接起來(lái)。圖 6 硬件電路的連接3 軟件電路的設(shè)計(jì)3.1 通信協(xié)議的設(shè)計(jì)通信協(xié)議的設(shè)計(jì)的設(shè)計(jì)是本題的重點(diǎn)難點(diǎn),本題通信協(xié)議主要是區(qū)別主機(jī)和從機(jī)。由于串口的方式2、3發(fā)送和接收都是11位其第九為可編程置位可以此作為區(qū)分地址幀與數(shù)據(jù)幀從而實(shí)現(xiàn)主機(jī)與從機(jī),從機(jī)與從機(jī)的區(qū)別。通信協(xié)議同樣要規(guī)定相同通信速率。參考相關(guān)資料后編寫如下的通信協(xié)議。n 數(shù)據(jù)傳輸?shù)碾p方均使用9600kb/s的速率傳送數(shù)據(jù),使用主從式通信,主機(jī)發(fā)送數(shù)據(jù),從機(jī)接受數(shù)據(jù),雙方在發(fā)送數(shù)據(jù)時(shí)使用查詢方式。n 雙機(jī)開始數(shù)據(jù)傳輸時(shí),主機(jī)發(fā)送地址幀呼叫從機(jī)。n 各從機(jī)開始都處于只收地址幀狀態(tài)。接收到地址幀后,將接收到的地址內(nèi)容和本機(jī)地址比較,如果地址相同,則向主機(jī)返回本機(jī)地址作為確認(rèn)信息,并開始接收數(shù)據(jù);如果不同,則繼續(xù)等待。n 主機(jī)在發(fā)送地址幀后等待,如果接收到的應(yīng)答信息中的內(nèi)容和所發(fā)地址幀的內(nèi)容相同,就開始發(fā)送數(shù)據(jù),如果不一致,主機(jī)將繼續(xù)發(fā)送地址幀。如多次應(yīng)答仍無(wú)回應(yīng)則認(rèn)為出錯(cuò)則主機(jī)跳出本次通信。n 從機(jī)在接收完數(shù)據(jù)后,將根據(jù)最后的校驗(yàn)結(jié)果判斷數(shù)據(jù)接收是否正確,若校驗(yàn)真確,則向主機(jī)發(fā)送2AH信號(hào),同時(shí)點(diǎn)亮led燈半秒鐘,表示本次通信成功;若校驗(yàn)錯(cuò)誤,則發(fā)送F0H信號(hào),表示接收數(shù)據(jù)錯(cuò)誤,并請(qǐng)求從發(fā)。n 主機(jī)接收到2AH信號(hào),則通信結(jié)束,否則主機(jī)將重新發(fā)送這組數(shù)據(jù)。3.2 主機(jī)程序設(shè)計(jì)依據(jù)試驗(yàn)要求及相應(yīng)的通信協(xié)議現(xiàn)繪制如下的主機(jī)程序流程圖:圖 7 主機(jī)程序流程圖主機(jī)程序:#include<stdio.h>#include<reg51.h>unsigned char LED_seg10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char LED_bit6=0x01,0x02,0x04,0x08,0x10,0x20;unsigned char LED_buf6=0x00,0x00,0x00,0x00,0x00,0x00;void delay(unsigned long n) /延時(shí)子程序 unsigned int i; for(i=1;i<n;i+) ; void convert(unsigned char a ,unsigned char j) /電壓轉(zhuǎn)換子程序 unsigned char m,n,i; unsigned char b=0; for(i=0;i<51;i+) b=i*5; if(b<a)i+;elsebreak; m=i/10; n=i%10; j=j*2; LED_bufj=LED_segn; LED_bufj+1=LED_segm+0x80; void sbuf_init(void) /串口初始化子程序SCON=0xd0; /工作方式3PCON=0x00;TMOD=(TMOD&0xf)|0x20;TH1=0xfd;TL1=0xfd;TR1=1;void flash_led(void) /led顯示子程序 unsigned char i; for(i=0;i<6;i+) P2=LED_bufi; P0=LED_biti; delay(200); P0=0x00; void main(void) /主函數(shù)unsigned char ADDR=0x00;unsigned char tmp;unsigned char a=0;unsigned char i=0;unsigned char j=0;sbuf_init();while(1)tmp = ADDR+1;while(tmp!=ADDR)/* 發(fā)送從機(jī)地址 */TI = 0;TB8 = 1; / 發(fā)送地址幀P1 = 0xff; /發(fā)送使能delay(20);SBUF = ADDR;while(!TI);TI = 0;delay(20);/* 接收從機(jī)應(yīng)答 */P1 = 0x00; /接受使能delay(50);while(!RI);tmp = SBUF;RI = 0;delay(20);P1 = 0x00; /接受使能delay(10);while(!RI);a = SBUF;RI = 0;delay(10);j=ADDR;i+;ADDR+;if (i>=3)i=0;ADDR=0x00; convert(a,j);flash_led();3.3 從機(jī)程序設(shè)計(jì)從程序流程圖如下:圖 8 從機(jī)模塊流程圖從機(jī)程序:#include<reg51.h>#include<absacc.h>#include<stdio.h>#define INO XBYTE0x0000#define ADDR 0x02 /從機(jī)地址0x00、ox01、0x02sbit AD_BUSY=P33;void delay(unsigned long n) /延時(shí)子程序 unsigned int i; for(i=1;i<n;i+) ; void sbuf_init(void) /串口初始換子程序SCON=0xd0; /工作方式3PCON=0x00;TMOD=(TMOD&0xf)|0x20;TH1=0xfd;TL1=0xfd;TR1=1;void main(void) /主程序unsigned char a;unsigned char tmp=0xff;sbuf_init();while(1)SM2=1; / 只接收地址幀 /* 如果接收到的地址幀不是本機(jī)地址,則繼續(xù)等待 */tmp=ADDR+1;P1=0x00; /接受使能while(tmp!=ADDR) while(!RI);tmp=SBUF;RI=0;delay(20);/* 發(fā)送本機(jī)地址作為應(yīng)答信號(hào),準(zhǔn)備接收數(shù)據(jù) */ P1=0xff; /發(fā)送使能delay(40);TI=0;TB8=0; / 主機(jī)不檢測(cè)該位SBUF = ADDR;delay(10);while(!TI);TI = 0;/SM2 = 0; /允許接收數(shù)據(jù)/* 數(shù)據(jù)發(fā)送 */delay(40);/*INO=0;i=i;i=i;while(AD_BUSY=0);a=INO;*/a=0x88;SBUF=a;while(TI=0);TI=0;delay(60);4 系統(tǒng)的調(diào)試與實(shí)現(xiàn)對(duì)本課題的設(shè)計(jì)思路清晰之后,我們接下來(lái)所需要做的工作就是依據(jù)我們的方案編程實(shí)現(xiàn)功能。本過(guò)程可以分為五個(gè)部分:從機(jī)模塊調(diào)試、 LED顯示模塊調(diào)試、電平轉(zhuǎn)換模塊功能調(diào)試、主機(jī)模塊功能調(diào)試、整體設(shè)計(jì)功能調(diào)試。4.1 從機(jī)模塊調(diào)試從機(jī)部分實(shí)現(xiàn)的功能是針對(duì)主機(jī)發(fā)送來(lái)的地址進(jìn)行對(duì)照,如果是自己的從機(jī)地址,就會(huì)發(fā)送AD轉(zhuǎn)換結(jié)果。為了檢測(cè)此部分的功能是否能夠?qū)崿F(xiàn),我們借助串口測(cè)試軟件,發(fā)送預(yù)設(shè)的從機(jī)地址看看該從機(jī)是否會(huì)把AD轉(zhuǎn)換的結(jié)果發(fā)送來(lái)。此從機(jī)調(diào)試模塊分為兩個(gè)層次:1、用一個(gè)簡(jiǎn)單的程序測(cè)試從機(jī)硬件部分是否能正常運(yùn)行;2、在硬件良好的情況下測(cè)試編寫的從機(jī)部分代碼能否順利實(shí)現(xiàn)功能。4.2 LED顯示模塊調(diào)試該部分相比較而言簡(jiǎn)單一點(diǎn),其實(shí)也可以歸為主機(jī)模塊調(diào)試的一部分。LED功能就是用來(lái)顯示DA轉(zhuǎn)換的結(jié)果。連接好電路之后,用個(gè)小程序測(cè)試LED顯示功能良好的情況下顯示從機(jī)發(fā)送來(lái)的數(shù)據(jù)。此部分在主機(jī)模塊功能調(diào)試具體介紹。4.3電平轉(zhuǎn)換模塊功能調(diào)試此部分硬件電路多為我們自己焊接。包括4片MAX485轉(zhuǎn)換芯片組成的電平轉(zhuǎn)換電路。它們完成將TTL電平轉(zhuǎn)換為RS485電平的功能。MAX485芯片的結(jié)構(gòu)和引腳都非常簡(jiǎn)單,內(nèi)部含有一個(gè)驅(qū)動(dòng)器和接收器。RO和DI端分別為接收器的輸出和驅(qū)動(dòng)器的輸入端,與單片機(jī)連接時(shí)只需分別與單片機(jī)的RXD和TXD相連即可;/RE和DE端分別為接收和發(fā)送的使能端,當(dāng)/RE為邏輯0時(shí),器件處于接收狀態(tài);當(dāng)DE為邏輯1時(shí),器件處于發(fā)送狀態(tài),因?yàn)镸AX485工作在半雙工狀態(tài),所以只需用單片機(jī)的一個(gè)管腳控制這兩個(gè)引腳即可;A端和B端分別為接收和發(fā)送的差分信號(hào)端,當(dāng)A引腳的電平高于B時(shí),代表發(fā)送的數(shù)據(jù)為1;當(dāng)A的電平低于B端時(shí),代表發(fā)送的數(shù)據(jù)為0。在與單片機(jī)連接時(shí)接線非常簡(jiǎn)單。只需要一個(gè)信號(hào)控制MAX485的接收和發(fā)送即可。同時(shí)將A和B端之間加匹配電阻,一般可選100的電阻。由于經(jīng)驗(yàn)知識(shí)不足,我們匹配電阻選擇了一個(gè)阻值為10K的電阻,造成芯片燒壞,此處應(yīng)引起注意。4.4主機(jī)模塊功能調(diào)試當(dāng)主機(jī)發(fā)送地址幀呼叫從機(jī)時(shí)從機(jī)將接收到的內(nèi)容與自己的地址比較,如若相同從機(jī)會(huì)向主機(jī)發(fā)送主機(jī)所需要的數(shù)據(jù)。而主機(jī)接收到正確的數(shù)據(jù),便會(huì)通過(guò)LED數(shù)碼管顯示出來(lái),這樣便會(huì)實(shí)現(xiàn)我們預(yù)想的主機(jī)模塊功能。當(dāng)然主機(jī)部分程序包含上面調(diào)試好的LED顯示模塊程序。此處將從機(jī)送來(lái)的數(shù)值通過(guò)調(diào)用LED顯示模塊子程序顯示出來(lái)。LED顯示模塊分為三個(gè)區(qū)域,從機(jī)0、從機(jī)1、從機(jī)2分別占用2個(gè)顯示管。4.5整體設(shè)計(jì)功能調(diào)試各個(gè)模塊程序功能調(diào)試好之后,將他們各就各位。但此時(shí)我們又遇到一個(gè)難題:從機(jī)送給主機(jī)的數(shù)據(jù)在經(jīng)MAX485傳遞給主機(jī)時(shí)讀出來(lái)的不是理想的結(jié)果,后經(jīng)過(guò)示波器查看輸出波形,經(jīng)多次調(diào)試,將主機(jī)與從機(jī)時(shí)序調(diào)整一致才得以在主機(jī)收到從機(jī)發(fā)送來(lái)的數(shù)據(jù)。5 總結(jié)與體會(huì)為期一個(gè)禮拜的單片機(jī)課程設(shè)計(jì)就這么快的結(jié)束了,在這短暫的一個(gè)星期里我們學(xué)到了很多很多。我們?cè)谡n堂上掌握的僅僅是書面的理論知識(shí),如何去鍛煉我們的實(shí)踐能力,如何把我們所學(xué)的專業(yè)基礎(chǔ)課理論知識(shí)運(yùn)用到實(shí)踐中去呢?我想做此類的課程設(shè)計(jì)就為我們提供了良好的實(shí)踐平臺(tái)。在做本次課程設(shè)計(jì)的過(guò)程中,我感觸最深的當(dāng)屬查閱大量的資料,無(wú)論是課本上的還是網(wǎng)上的我們都學(xué)習(xí)了不少,從中也借鑒了別人的思想,開闊了自己的思路。做單片機(jī)課程設(shè)計(jì),對(duì)設(shè)計(jì)者對(duì)軟硬件的理解和掌握的要求比較高。在設(shè)計(jì)程序之前,設(shè)計(jì)者必學(xué)對(duì)所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個(gè)系統(tǒng)的了解,知道該單片機(jī)內(nèi)有哪些資源;要有一個(gè)清晰的思路和一個(gè)完整的的軟件流程圖;在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計(jì)課程過(guò)程中遇到問(wèn)題是很正常的,但我們應(yīng)該將每次遇到的問(wèn)題記錄下來(lái),并分析清楚,以免下次再碰到同樣的問(wèn)題。我們?cè)趯?shí)驗(yàn)中就遇到了一系列問(wèn)題,比如剛剛開始時(shí)硬件電路的連接,針對(duì)MAX485芯片匹配電阻的選擇,從機(jī)與主機(jī)握手的過(guò)程等等,在大家仔細(xì)的思考和老師同學(xué)的幫助下順利解決。此次課程設(shè)計(jì)在組長(zhǎng)楊小強(qiáng)同學(xué)的帶領(lǐng)下我們步步為營(yíng),大家學(xué)會(huì)了一個(gè)重要的設(shè)計(jì)技巧,就是一步一個(gè)腳印,踏踏實(shí)實(shí)的編程,每編寫好一個(gè)模塊的程序后應(yīng)及時(shí)檢測(cè)是否正確。若是“一步登天”,一次性將所有程序編寫好再進(jìn)行測(cè)試,這樣如若出現(xiàn)問(wèn)題,但無(wú)法知道問(wèn)題出在何處,這樣會(huì)帶來(lái)更大的麻煩,修改就無(wú)從下手。總而言之,此次的單片機(jī)課程設(shè)計(jì)讓我們“吃盡了苦頭”,花費(fèi)了不少腦細(xì)胞,無(wú)論是軟件的使用還是對(duì)單片機(jī)內(nèi)部資源硬件的了解,我們的認(rèn)識(shí)都大大加深了。同時(shí)感謝李老師及同學(xué)們,感謝你們給予我們小組的指導(dǎo)和幫助,謝謝你們!參考文獻(xiàn)1 戴佳,戴衛(wèi)恒,劉博文 51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講.第二版 電子工業(yè)出版社 2008.12