狠狠干影院/欧美午夜电影在线观看/高黄文/国产精品一区二区在线观看完整版

雙機(jī)通訊實(shí)驗(yàn)報(bào)告

| 瀏覽次數(shù):

 單片機(jī)實(shí)驗(yàn)報(bào)告 化 (自動(dòng)化 1 5級)

 實(shí)驗(yàn)名稱:串行通訊實(shí)驗(yàn)

 一、實(shí)驗(yàn)?zāi)康?/p>

 1。掌握單片機(jī)串行口工作方式;

 2。掌握雙機(jī)通訊得接口電路設(shè)計(jì)及程序設(shè)計(jì)。

 二、實(shí)驗(yàn)設(shè)備

 1、 PC機(jī); 2.單片機(jī)最小系統(tǒng)教學(xué)實(shí)驗(yàn)?zāi)K;

 3、 數(shù)碼管顯示模塊 三、實(shí)驗(yàn)內(nèi)容

  1. 雙機(jī)通信 由兩套單片機(jī)試驗(yàn)裝置(兩個(gè)實(shí)驗(yàn)小組)共同完成該實(shí)驗(yàn)。我們U1為甲機(jī),U2為乙機(jī)。甲機(jī)發(fā)送本機(jī)(學(xué)生本人)學(xué)號后8位給乙機(jī),乙機(jī)接收該8位數(shù)據(jù),并顯示在8位數(shù)碼管上. 電路如圖1所示。

  要求串行通信方式為方式1,波特率為2400bit/s,不加倍,單片機(jī)外部晶振頻率為11、0592M。

 圖1 雙機(jī)通信原理示意圖 附加要求:乙機(jī)接收完畢后,將本機(jī)(乙機(jī))得學(xué)號后8位發(fā)送回甲機(jī),甲機(jī)顯示在數(shù)碼管上。

 2、 、 單片機(jī)與 PC 機(jī)通信 單片機(jī)向PC機(jī)發(fā)送數(shù)據(jù)。單片機(jī)向PC機(jī)重復(fù)發(fā)送本機(jī)(學(xué)生本人)學(xué)號,發(fā)送波特率為1200,采用方式1,單片機(jī)外部晶振頻率為11、0592M。

 四、實(shí)驗(yàn)原理

  4 4.1

 串行通訊得方式

 在串行通訊中,有兩種基本得通訊方式:異步通訊,同步通訊.

 異步串行通訊規(guī)定了字符數(shù)據(jù)得傳送格式,既每個(gè)數(shù)據(jù)以相同得幀格式發(fā)送.每個(gè)幀信息由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位與停止位組成。本實(shí)驗(yàn)主要學(xué)習(xí)異步通訊得實(shí)現(xiàn)方法。

 在異步通訊中,每一個(gè)字符要用起始位與停止位作為字符開始與結(jié)束得標(biāo)志,以至占用了時(shí)間。所以在數(shù)據(jù)塊傳送時(shí),為了提高通訊速度,常去掉這些標(biāo)志,而采用同步通訊.同步

 通訊不像異步通訊那樣,靠起始位在每個(gè)字符數(shù)據(jù)開始時(shí)發(fā)送與接受同步.而就是通過同步字符在每個(gè)數(shù)據(jù)塊傳送開始時(shí)使收/發(fā)雙方同步.

 按照通訊方式,又可將數(shù)據(jù)傳輸線路分成三種:單工方式、半雙工方式、全雙工方式。

 (1)單工方式 在單工方式下,通訊線得一端聯(lián)接發(fā)送器,另一端聯(lián)接接收器,它們形成單向聯(lián)接,只允許數(shù)據(jù)按照一個(gè)固定得方向傳送。

 (2)半雙工方式 在半雙工方式下,系統(tǒng)中得每個(gè)通訊設(shè)備都由一個(gè)發(fā)送器與一個(gè)接收器組成,通過收發(fā)開關(guān)接到通訊線路上,如圖33—1所示。在這種方式中,數(shù)據(jù)能從A站送到B站,也能從B站傳送到A站,但就是不能同時(shí)在二個(gè)方向上傳送,即每次只能一個(gè)站發(fā)送,另一個(gè)站接收.

 圖2 半雙工通訊方式 圖33-1中得收發(fā)開關(guān)并不就是實(shí)際得物理開關(guān),而就是由軟件控制得電子開關(guān),由通訊線兩端得半雙工通訊協(xié)議進(jìn)行功能切換。

 (3)全雙工(Full—duplex)方式 雖然半雙工方式比單工方式靈活,但它得效率依然較低.從發(fā)送方式切換到接收方式所需得時(shí)間一般大約為數(shù)毫秒,這么長得時(shí)間延遲在對時(shí)間較敏感得交互式應(yīng)用(例如遠(yuǎn)程檢測監(jiān)視控制系統(tǒng))中就是無法容忍得.重復(fù)線路切換所引起得延遲積累,正就是半雙工通信協(xié)議效率不高得主要原因。

 半雙工得這種缺點(diǎn)就是可以避免得,而且方法很簡單,即采用信道劃分技術(shù)。在圖33—2得全雙工連接中,不就是交替發(fā)送與接收,而就是可同時(shí)發(fā)送與接收。全雙工通訊系統(tǒng)得每一端都包含發(fā)送器與接收器,數(shù)據(jù)可同時(shí)在兩個(gè)方向上傳送.

  圖3 全雙工通訊方式 4.2 單片機(jī)串行口工作方式 在靜態(tài)數(shù)碼管顯示實(shí)驗(yàn)中,我們熟悉了單片機(jī)串口工作方式0;單片機(jī)串口還具有有3種工作方式。如下表所示:

 這3種工作方式,均用于串行異步通訊。在異步串行通訊得一個(gè)字節(jié)得傳送中,必須包括了起始位(0)與停止位(1)。除此之外,方式1具有8位(1個(gè)字節(jié))得數(shù)據(jù)位(低位在先),方式2、3則除這8位之外,還具有一個(gè)可編程得第9位,這個(gè)第9位編程通常被編程為奇偶校驗(yàn)位.我們將在下一個(gè)實(shí)驗(yàn)中用到它。

 串口工作方式在特殊寄存器SCON中設(shè)置。

 其中得SM0與SM1位確定了串口工作方式。要使通訊雙方能夠通訊成功,必須具有相同得串口工作模式;REN為允許接收位,本實(shí)驗(yàn)中因?yàn)殡p方都要進(jìn)行接收,因此REN也都應(yīng)設(shè)為1。TB8與RB8這里暫不涉及。利用以下語句來設(shè)置SCON: MOV SCON, #50H 4。

 。3 波特率得設(shè)置 在異步串口通訊中,一個(gè)很重要得工作就就是進(jìn)行串口波特率得設(shè)置。波特率就是指串口通訊中每秒傳送得位數(shù),單位為BPS,它反映了串行口通訊得速度;同時(shí),通訊雙方得速度必須一致,才能夠順利進(jìn)行通訊。

 在串口工作方式1、3中,傳送波特率都就是可變得。單片機(jī)內(nèi)部通過定時(shí)器T1來提供發(fā)送與接收緩存器得內(nèi)部移位時(shí)鐘。也就就是說,要確定串行通訊得波特率,必須對T1進(jìn)行相

 關(guān)設(shè)置。51單片機(jī)系統(tǒng)對此時(shí)T1得設(shè)置有以下固定得規(guī)定: (1)必須工作在定時(shí)器狀態(tài); (2)必須工作在“8位自動(dòng)重載”工作模式; 這必須在特殊寄存器TMOD中進(jìn)行設(shè)置.關(guān)于TMOD得詳細(xì)內(nèi)容,我們在實(shí)驗(yàn)十七已經(jīng)講過。可以利用以下語句來設(shè)置TMOD: MOV TMOD, #20H 除了對TMOD得設(shè)置外,還必須設(shè)置定時(shí)器T1得定時(shí)值,也就就是保存在TH1中得8位重載值。這直接影響到波特率得大小: 它通過以下公式進(jìn)行計(jì)算:

 其中得SMOD為特殊寄存器PCON得最高位。當(dāng)它置1時(shí),可以將波特率增大1倍。

 在雙機(jī)通訊中,只要雙方得波特率一致就能夠完成通訊了;但就是,在標(biāo)準(zhǔn)得異步通訊協(xié)議中,只有幾種波特就是適用得。例如1200bps,2400bps,4800bps,9600bps……等等. 而通過這個(gè)公式可以瞧出,并不就是所有得晶振頻率都能夠得到準(zhǔn)確得上述波特率。比如采用12MHz晶振,代入公式進(jìn)行運(yùn)算,就無法得到4800bps得準(zhǔn)確波特率(TH1必須為小數(shù)了)。在這種情況下,過去人們都使用軟件補(bǔ)償?shù)梅椒?盡量得到準(zhǔn)確得波特率;而現(xiàn)在,市場上有很多通訊專用得晶振,例如3、6864MHz、11、0592MHz……得晶振,都能夠直接得到準(zhǔn)確得波特率.因此在進(jìn)行本實(shí)驗(yàn)時(shí),必須使用通訊專用晶振(如果使用仿真器,則設(shè)置為使用仿真頭得外接晶振,并將11、0592M得晶振插入仿真頭. 當(dāng)波特率已經(jīng)確定,就可以反向推導(dǎo)出TH1得取自大小,例如,在本次實(shí)驗(yàn)中,我們要求波特率為4800bps,在晶振采用11、0592MHz得情況下,推出TH1=0F4H. 五、實(shí)驗(yàn)步驟

 1.參考圖1并進(jìn)行電路設(shè)計(jì),畫出電路圖,并用導(dǎo)線正確連接兩套裝置得單片機(jī)最小系統(tǒng)實(shí)驗(yàn)?zāi)K,并連接最小系統(tǒng)模塊與數(shù)碼管顯示模塊。

 2。照實(shí)驗(yàn)要求編寫程序流程圖,然后編寫程序,對編寫得程序進(jìn)行仿真調(diào)試,直至通訊成功。

 六、實(shí)驗(yàn)報(bào)告

 1 1. 在該實(shí)驗(yàn)中,單片機(jī)串行口工作在什么工作方式下?說明該工作方式得特點(diǎn)。

  工作在工作方式 1。8 位數(shù)據(jù)通訊,波特率可變.

 2. 波特率就是什么?怎樣設(shè)置單片機(jī)串口通訊得波特率?如果實(shí)驗(yàn)要求通訊波特率為4800bps ,怎樣修改程序?

  特率就是指串口通訊中每秒傳送得位數(shù),單位為 BPS,它反映了串行口通訊得速度。

 單片機(jī)內(nèi)部通過定時(shí)器T1來提供發(fā)送與接收緩存器得內(nèi)部移位時(shí)鐘。必須工作在定時(shí)器狀態(tài);必須工作在“8 位自動(dòng)重載”工作模式。

 3. 詳細(xì)說明本次實(shí)驗(yàn)采用得通訊協(xié)議.

 碼數(shù)位8在示顯并,據(jù)數(shù)位8該收接機(jī)乙,機(jī)乙給位8后號學(xué))人本生學(xué)(機(jī)本送發(fā)機(jī)甲?管上。乙機(jī)接收完畢后,將本機(jī)(乙機(jī))得學(xué)號后8位發(fā)送回甲機(jī),甲機(jī)顯示在數(shù)碼管上. 4. 給針對實(shí)驗(yàn)要求編寫本機(jī)得程序流程圖、程序清單并給予適當(dāng)注釋, 并說明合作單片機(jī)(合 合作同學(xué)). 這里有兩個(gè)程序,一個(gè)就是先接受,一個(gè)就是先發(fā)送。

 # include 〈STC12C5A60S2、h〉 #define uchar unsigned char void init(void); void send(void); void delay(unsigned int i); uchar xuehao[8]={6,6,6,6,6,6,6}; void main(void) {

 ;)(tini? send();

 while(1); } void init(void)

 {

 TMOD=0x20;

  TH1=0xfd;

 ;dfx0=1LT?

 ? SCON=0x50;

 PCON=0x00;

 TR1=1; } void send(void) {

 ;i rahcu? do

 {

 ? delay(200);

  SBUF=0xaa;

  ;0=IT;)0==IT(elihw?

 ;0=IR;)0==IR(elihw? }while(SBUF!=0xbb);

 //-----———-—-——-—--————-—-———--—----?????

 ;)08(yaled? for(i=0;i<=7;i++)

 {? ? SBUF=xuehao[i];

 ;0=IT;)0==IT(elihw??

 ;)5(yaled?

 }? ;9=FUBS?

  ;)01(yaled?} /////////////////////////////////////////////////////////// void delay(unsigned int i) {

 unsigned char j;

 )——i;0〉i;(rof? )++j;521〈j;0=j(rof? {;} } # include 〈STC12C5A60S2、h〉 #define uchar unsigned char void init(void); void receive(void); void delay(unsigned int i); void display(uchar A,uchar B); void duanxuan(uchar c); uchar xuehao[8]={0}; void main(void) {

 ;)(tini? ;)(eviecer? while(1)

 {

 ? display(1,xuehao[0]);

 ;)3(yaled?

 P0=0x00;

 ;)]1[oaheux,2(yalpsid? ;)3(yaled?? ;00x0=0P??

 display(3,xuehao[2]);

  ;)3(yaled?

 P0=0x00;

 ? display(4,xuehao[3]);

  delay(3);

 ? P0=0x00;

  display(5,xuehao[4]);

 ? delay(3);

 ;00x0=0P? ? display(6,xuehao[5]);

 ? delay(3);

  P0=0x00;

  display(7,xuehao[6]);

  ;)3(yaled?

 P0=0x00;

 ? ;)]7[oaheux,8(yalpsid??

 ;)3(yaled? ? P0=0x00;

 }

 //

 } void init(void)

 {

 ;00X0=1M0P? P0M0=0Xff;

  P2M1=0x00;

 P2M0=0xff;

 TMOD=0x20;

 ;dfx0=1HT? TL1=0xfd;

  SCON=0x50;

 PCON=0x00;

 TR1=1; } void receive(void) {

 uchar enpty;

 ;0=j rahcu? od? {

 ;0=IR;)0==IR(elihw?} ;)aax0=!FUBS(elihw? SBUF=0xbb;

 while(TI==0);TI=0;

 enpty=SBUF;// while(RI==0);RI=0;

  //—--——-—-—--——-——---—---———---——??

 delay(10);

 for(j=0;j<=7;j++)

 {? ;FUBS=]j[oaheux?? ;0=IR;)0==IR(elihw?? } } ////////////////////////////////////////????////////////////////////////////////////////////// void display(uchar A,uchar B) { ,28x0,29x0,99x0,0bx0,4ax0,9fx0,0cx0{=]21[ofni edoc rahcu?0xf8,0x80,0x90, //

 0xff,

 ?

  ?

  ? 0 ?—//;}fbx? ;)A(nauxnaud?

 switch (B)

  {??:0 esac?

  ;]0[ofni~=0P?? ?

  break;

 :1 esac? ?

 ;]1[ofni~=0P??

 ?

 ;kaerb?

  case 2:

  ?;]2[ofni~=0P?

 break; ?:3 esac? ?

 ? P0=~info[3];

  ?? break;

  :4 esac?? ??

 P0=~info[4];

  ?

 ;kaerb? ?? case 5:

  ?

 ;]5[ofni~=0P?;kaerb?? ?? case 6:

  ?? P0=~info[6]; ;kaerb??

  :7 esac?

  ? P0=~info[7];

 ?;kaerb? ?

 case 8:

 ??

 P0=~info[8];

 ?

  ;kaerb?

  :9 esac?

  ? P0=~info[9];

 ?

  break;

 ?

 :01 esac?

 ;]01[ofni~=0P?

 ;kaerb??:11 esac? ?

 ;]11[ofni~=0P??

 ?

 ;kaerb?

 }?} void duanxuan(uchar c) {

 )c( hctiws? {

 ? case 1:

  ;10x0=2P? ?

 break;

 ? case 2:

 P2=0x02;

  ? break;

 :3 esac?? ?

 ;40x0=2P? ?

 break;

 ? case 4:

 ;80x0=2P??;kaerb?

 case 5:

 ?;01x0=2P? ?

 break;

  :6 esac?? ?? P2=0x20;

  ;kaerb?? ? case 7:

 ?

 P2=0x40;

 ?

 break;

 :8 esac?? ?

 ;08x0=2P?

 ;kaerb??

 :tluafed? ?

 break;

 } } ///////////////////////////////////////////////////////////////////////////////////////////// void delay(unsigned int i)

 {

 unsigned char j;

 )—-i;0〉i;(rof? for(j=0;j〈125;j++)

 };{?} 5 。實(shí)驗(yàn)心得。(必須) 、.。。。。。。.。..。。.。。..。..。。。

 6. . 附能說明實(shí)驗(yàn)原理得實(shí)驗(yàn)照片。(必須)

推薦訪問: 雙機(jī) 實(shí)驗(yàn) 通訊

【雙機(jī)通訊實(shí)驗(yàn)報(bào)告】相關(guān)推薦

工作總結(jié)最新推薦

NEW