• 优质范文
  • 工作总结
  • 工作计划
  • 作文大全
  • 心得体会
  • 述职报告
  • 实习报告
  • 写作方案
  • 教案反思
  • 演讲稿
  • 发言稿
  • 读书笔记
  • 精美散文
  • 读观后感
  • 当前位置: 博通范文网 > 读书笔记 > 正文

    双机通讯实验报告

    时间:2021-10-01 来源:博通范文网 本文已影响 博通范文网手机站

    单片机实验报告 化 (自动化 1 5级)

    实验名称:串行通讯实验

    一、实验目得

    1。掌握单片机串行口工作方式;

    2。掌握双机通讯得接口电路设计及程序设计。

    二、实验设备

    1、PC机; 2.单片机最小系统教学实验模块;

    3、数码管显示模块 三、实验内容

    1.双机通信 由两套单片机试验装置(两个实验小组)共同完成该实验。我们U1为甲机,U2为乙机。甲机发送本机(学生本人)学号后8位给乙机,乙机接收该8位数据,并显示在8位数码管上. 电路如图1所示。

    要求串行通信方式为方式1,波特率为2400bit/s,不加倍,单片机外部晶振频率为11、0592M。

    图1 双机通信原理示意图 附加要求:乙机接收完毕后,将本机(乙机)得学号后8位发送回甲机,甲机显示在数码管上。

    2、、单片机与 PC 机通信 单片机向PC机发送数据。单片机向PC机重复发送本机(学生本人)学号,发送波特率为1200,采用方式1,单片机外部晶振频率为11、0592M。

    四、实验原理

    4 4.1

    串行通讯得方式

    在串行通讯中,有两种基本得通讯方式:异步通讯,同步通讯.

    异步串行通讯规定了字符数据得传送格式,既每个数据以相同得帧格式发送.每个帧信息由起始位、数据位、奇偶校验位与停止位组成。本实验主要学习异步通讯得实现方法。

    在异步通讯中,每一个字符要用起始位与停止位作为字符开始与结束得标志,以至占用了时间。所以在数据块传送时,为了提高通讯速度,常去掉这些标志,而采用同步通讯.同步

    通讯不像异步通讯那样,靠起始位在每个字符数据开始时发送与接受同步.而就是通过同步字符在每个数据块传送开始时使收/发双方同步.

    按照通讯方式,又可将数据传输线路分成三种:单工方式、半双工方式、全双工方式。

    (1)单工方式 在单工方式下,通讯线得一端联接发送器,另一端联接接收器,它们形成单向联接,只允许数据按照一个固定得方向传送。

    (2)半双工方式 在半双工方式下,系统中得每个通讯设备都由一个发送器与一个接收器组成,通过收发开关接到通讯线路上,如图33—1所示。在这种方式中,数据能从A站送到B站,也能从B站传送到A站,但就是不能同时在二个方向上传送,即每次只能一个站发送,另一个站接收.

    图2 半双工通讯方式 图33-1中得收发开关并不就是实际得物理开关,而就是由软件控制得电子开关,由通讯线两端得半双工通讯协议进行功能切换。

    (3)全双工(Full—duplex)方式 虽然半双工方式比单工方式灵活,但它得效率依然较低.从发送方式切换到接收方式所需得时间一般大约为数毫秒,这么长得时间延迟在对时间较敏感得交互式应用(例如远程检测监视控制系统)中就是无法容忍得.重复线路切换所引起得延迟积累,正就是半双工通信协议效率不高得主要原因。

    半双工得这种缺点就是可以避免得,而且方法很简单,即采用信道划分技术。在图33—2得全双工连接中,不就是交替发送与接收,而就是可同时发送与接收。全双工通讯系统得每一端都包含发送器与接收器,数据可同时在两个方向上传送.

    图3 全双工通讯方式 4.2 单片机串行口工作方式 在静态数码管显示实验中,我们熟悉了单片机串口工作方式0;单片机串口还具有有3种工作方式。如下表所示:

    这3种工作方式,均用于串行异步通讯。在异步串行通讯得一个字节得传送中,必须包括了起始位(0)与停止位(1)。除此之外,方式1具有8位(1个字节)得数据位(低位在先),方式2、3则除这8位之外,还具有一个可编程得第9位,这个第9位编程通常被编程为奇偶校验位.我们将在下一个实验中用到它。

    串口工作方式在特殊寄存器SCON中设置。

    其中得SM0与SM1位确定了串口工作方式。要使通讯双方能够通讯成功,必须具有相同得串口工作模式;REN为允许接收位,本实验中因为双方都要进行接收,因此REN也都应设为1。TB8与RB8这里暂不涉及。利用以下语句来设置SCON: MOV SCON, #50H 4。

    。3 波特率得设置 在异步串口通讯中,一个很重要得工作就就是进行串口波特率得设置。波特率就是指串口通讯中每秒传送得位数,单位为BPS,它反映了串行口通讯得速度;同时,通讯双方得速度必须一致,才能够顺利进行通讯。

    在串口工作方式1、3中,传送波特率都就是可变得。单片机内部通过定时器T1来提供发送与接收缓存器得内部移位时钟。也就就是说,要确定串行通讯得波特率,必须对T1进行相

    关设置。51单片机系统对此时T1得设置有以下固定得规定: (1)必须工作在定时器状态; (2)必须工作在“8位自动重载”工作模式; 这必须在特殊寄存器TMOD中进行设置.关于TMOD得详细内容,我们在实验十七已经讲过。可以利用以下语句来设置TMOD: MOV TMOD, #20H 除了对TMOD得设置外,还必须设置定时器T1得定时值,也就就是保存在TH1中得8位重载值。这直接影响到波特率得大小: 它通过以下公式进行计算:

    其中得SMOD为特殊寄存器PCON得最高位。当它置1时,可以将波特率增大1倍。

    在双机通讯中,只要双方得波特率一致就能够完成通讯了;但就是,在标准得异步通讯协议中,只有几种波特就是适用得。例如1200bps,2400bps,4800bps,9600bps……等等.而通过这个公式可以瞧出,并不就是所有得晶振频率都能够得到准确得上述波特率。比如采用12MHz晶振,代入公式进行运算,就无法得到4800bps得准确波特率(TH1必须为小数了)。在这种情况下,过去人们都使用软件补偿得方法,尽量得到准确得波特率;而现在,市场上有很多通讯专用得晶振,例如3、6864MHz、11、0592MHz……得晶振,都能够直接得到准确得波特率.因此在进行本实验时,必须使用通讯专用晶振(如果使用仿真器,则设置为使用仿真头得外接晶振,并将11、0592M得晶振插入仿真头. 当波特率已经确定,就可以反向推导出TH1得取自大小,例如,在本次实验中,我们要求波特率为4800bps,在晶振采用11、0592MHz得情况下,推出TH1=0F4H.五、实验步骤

    1.参考图1并进行电路设计,画出电路图,并用导线正确连接两套装置得单片机最小系统实验模块,并连接最小系统模块与数码管显示模块。

    2。照实验要求编写程序流程图,然后编写程序,对编写得程序进行仿真调试,直至通讯成功。

    六、实验报告

    1 1.在该实验中,单片机串行口工作在什么工作方式下?说明该工作方式得特点。

    工作在工作方式 1。8 位数据通讯,波特率可变.

    2.波特率就是什么?怎样设置单片机串口通讯得波特率?如果实验要求通讯波特率为4800bps ,怎样修改程序?

    特率就是指串口通讯中每秒传送得位数,单位为 BPS,它反映了串行口通讯得速度。

    单片机内部通过定时器T1来提供发送与接收缓存器得内部移位时钟。必须工作在定时器状态;必须工作在“8 位自动重载”工作模式。

    3.详细说明本次实验采用得通讯协议.

    码数位8在示显并,据数位8该收接机乙,机乙给位8后号学)人本生学(机本送发机甲ﻩ管上。乙机接收完毕后,将本机(乙机)得学号后8位发送回甲机,甲机显示在数码管上.4.给针对实验要求编写本机得程序流程图、程序清单并给予适当注释, 并说明合作单片机(合 合作同学).这里有两个程序,一个就是先接受,一个就是先发送。

    # 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 。实验心得。(必须) 、.。。。。。。.。..。。.。。..。..。。。

    6. . 附能说明实验原理得实验照片。(必须)

    觉得自己很狭隘!

    融入了自己的思想,有感染力。

    实验三 双机通信实验

    一、实验目的

    UART 串行通信接口技术应用

    二、实验实现的功能

    用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。

    三、系统硬件设计

    实验所需硬件:电脑一台;

    开发板一块;

    串口通信线一根; USB线一根;

    四、系统软件设计

    实验所需软件:编译软件:keil uvision3;

    程序下载软件:STC_ISP_V480; 试验程序:

    #include sbit W1=P0^0; sbit W2=P0^1; sbit W3=P0^2; sbit W4=P0^3; sbit D9=P3^2; sbit D10=P3^3; sbit D11=P3^4; sbit D12=P3^5; sbit DP=P1^7; code unsigned char table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; sfr P1M1=0x91; sfr P1M0=0x92; sbit H1=P3^6; sbit H2=P3^7; sbit L1=P0^5; sbit L2=P0^6; sbit L3=P0^7; unsigned char dat; unsigned char keynum; unsigned char keyscan(); void display(); void delay(void);

    - 1 L1=1; L2=1; L3=1;

    H1=0; if(L1==0)

    return 1; else if(L2==0)

    return 2; else if(L3==0)

    return 3;

    H1=1; H2=0; if(L1==0)

    return 4; else if(L2==0)

    return 5; else if(L3==0)

    return 6; H2=1; return 0;

    } unsigned char keyscan() { static unsigned int ct=0; static unsigned char lastkey=0; unsigned char key; key=getkey();

    if(key==lastkey) {

    ct++;

    if(ct==900)

    {

    ct=0;

    lastkey=0;

    return key;

    } } else {

    - 3

    推荐访问:双机 实验 通讯

    • 读/观后感
    • 精美散文
    • 读书笔记
    • 演讲
    • 反思
    • 方案
    • 心得体会