单片机串行通信系统实验报告

合集下载

单片机串口通信实验报告

单片机串口通信实验报告

单片机串口通信实验报告Abstract本实验旨在通过单片机串口通信的方式,实现两个或多个单片机之间的数据传输与交互。

通过该实验,旨在加深对串口通信的理解,以及掌握单片机串口通信的配置与应用。

1. 实验背景在现代电子产品中,单片机广泛应用于各个领域。

而串口通信作为一种常见的单片机通信方式,被广泛使用。

通过串口通信,单片机可以与其他设备或单片机进行数据传输和通信。

2. 实验目的本实验的目的如下:- 了解串口通信的基本原理和工作方式;- 掌握单片机串口通信的配置方法;- 实现两个或多个单片机之间的数据传输与交互。

3. 实验原理3.1 串口通信的基本原理串口通信通过发送和接收两个引脚实现数据的传输。

典型的串口通信包含一个发送引脚(Tx)和一个接收引脚(Rx)。

发送端将数据通过发送引脚逐位发送,接收端通过接收引脚逐位接收。

3.2 单片机串口通信的配置在单片机中进行串口通信配置,需要设置波特率、数据位、停止位和校验位等参数。

波特率用于控制数据的传输速率,数据位决定发送和接收的数据位数,停止位用于标识数据的停止位,校验位用于检测数据传输的错误。

4. 实验步骤4.1 硬件准备(描述实验所需硬件的准备,例如单片机、串口模块等)4.2 软件配置(描述实验所需软件的配置,例如开发环境、编译器等)4.3 单片机串口通信程序编写(描述如何编写单片机串口通信程序,包括发送和接收数据的代码)4.4 程序下载与调试(描述如何下载程序到单片机,并进行调试)5. 实验结果与分析(描述实验的结果,并进行相应的分析和解释)6. 实验总结通过本实验,我深入了解了串口通信的基本原理和工作方式。

通过编写单片机串口通信程序,实现了两个单片机之间的数据传输与交互。

在实验过程中,我掌握了单片机串口通信的配置方法,并解决了一些可能出现的问题。

通过实验,我加深了对单片机串口通信的理解,并提升了自己的实践能力。

参考文献:(列出参考文献,不需要链接)致谢:(感谢相关人员或机构对实验的支持与帮助)附录:(附上相关的代码、电路图等附加信息)以上为单片机串口通信实验报告,通过该实验,我掌握了串口通信的基本原理和工作方式,以及单片机串口通信的配置与应用方法。

串行通讯实验报告

串行通讯实验报告

一、实验目的1. 理解串行通讯的基本原理及通信方式。

2. 掌握串行通讯的硬件设备和软件实现方法。

3. 学会使用串行通讯进行数据传输。

4. 通过实验,加深对单片机串行口工作原理和程序设计的理解。

二、实验原理串行通讯是指将数据一位一位地按顺序传送的通信方式。

与并行通讯相比,串行通讯的通信线路简单,成本低,适用于远距离通信。

串行通讯主要有两种通信方式:异步通信和同步通信。

1. 异步通信异步通信中,每个字符之间没有固定的时钟同步,而是通过起始位和停止位来标识字符的开始和结束。

每个字符由起始位、数据位、奇偶校验位和停止位组成。

2. 同步通信同步通信中,数据传输过程中有固定的时钟同步信号,发送方和接收方通过同步时钟来保证数据传输的准确性。

三、实验设备1. 单片机最小系统教学实验模块2. 数码管显示模块3. 串行数据线4. 电脑四、实验内容1. 单片机串行口初始化首先,我们需要对单片机串行口进行初始化,包括设置波特率、通信方式、数据位、停止位等。

2. 数据发送在单片机程序中,编写数据发送函数,将数据通过串行口发送出去。

3. 数据接收编写数据接收函数,从串行口接收数据。

4. 数据显示将接收到的数据通过数码管显示出来。

5. 双机通信通过两套单片机实验模块,实现双机通信。

一台单片机作为发送方,另一台单片机作为接收方。

五、实验步骤1. 将单片机最小系统教学实验模块和数码管显示模块连接到电脑上。

2. 编写单片机程序,初始化串行口,并设置波特率、通信方式、数据位、停止位等。

3. 编写数据发送函数,将数据通过串行口发送出去。

4. 编写数据接收函数,从串行口接收数据。

5. 编写数据显示函数,将接收到的数据通过数码管显示出来。

6. 编写双机通信程序,实现两台单片机之间的通信。

7. 将程序下载到单片机中,进行实验。

六、实验结果与分析1. 通过实验,成功实现了单片机串行口的初始化、数据发送、数据接收和数据显示。

2. 成功实现了双机通信,两台单片机之间可以相互发送和接收数据。

单片机串行通信实验报告(实验要求、原理、仿真图及例程)

单片机串行通信实验报告(实验要求、原理、仿真图及例程)

《嵌入式系统原理与实验》实验指导实验三调度器设计基础一、实验目的和要求1.熟练使用Keil C51 IDE集成开发环境,熟练使用Proteus软件。

2.掌握Keil与Proteus的联调技巧。

3.掌握串行通信在单片机系统中的使用。

4.掌握调度器设计的基础知识:函数指针。

二、实验设备1.PC机一套2.Keil C51开发系统一套3.Proteus 仿真系统一套三、实验容1.甲机通过串口控制乙机LED闪烁(1)要求a.甲单片机的K1按键可通过串口分别控制乙单片机的LED1闪烁,LED2闪烁,LED1和LED2同时闪烁,关闭所有的LED。

b.两片8051的串口都工作在模式1,甲机对乙机完成以下4项控制。

i.甲机发送“A”,控制乙机LED1闪烁。

ii.甲机发送“B”,控制乙机LED2闪烁。

iii.甲机发送“C”,控制乙机LED1,LED2闪烁。

iv.甲机发送“C”,控制乙机LED1,LED2停止闪烁。

c.甲机负责发送和停止控制命令,乙机负责接收控制命令并完成控制LED的动作。

两机的程序要分别编写。

d.两个单片机都工作在串口模式1下,程序要先进行初始化,具体步骤如下:i.设置串口模式(SCON)ii.设置定时器1的工作模式(TMOD)iii.计算定时器1的初值iv.启动定时器v.如果串口工作在中断方式,还必须设置IE和ES,并编写中断服务程序。

(2)电路原理图Figure 1 甲机通过串口控制乙机LED闪烁的原理图(3)程序设计提示a.模式1下波特率由定时器控制,波特率计算公式参考:b.可以不用使用中断方式,使用查询方式实现发送与接收,通过查询TI和RI标志位完成。

2.单片机与PC串口通讯及函数指针的使用(1)要求:a.编写用单片机求取整数平方的函数。

b.单片机把计算结果向PC机发送字符串。

c.PC机接收计算结果并显示出来。

d.可以调用Keil C51 stdio.h 中的printf来实现字符串的发送。

单片机串行通信实验报告

单片机串行通信实验报告

实验六串行通信实验报告班级:学号:姓名:教师:一、双机通信由两套单片机试验装置(两个实验小组)共同完成该实验。

我们U1为甲机,U2为乙机。

甲机发送本机(学生本人)学号后8位给乙机,乙机接收该8位数据,并显示在8位数码管上。

电路如图1所示。

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

实验电路图:1、C源程序清单甲机(U1)代码:#include<STC12C5A60s2.h>#define uchar unsigned charvoid delay(uchar i);void send(uchar temp);void init(void);void main(void){init();delay(200);while(1){send('^');send(1);send(2);send(1);send(3);send(2);send(2);send(3);send(1);}}/***********初始化***********/void init(void){SCON=0x40; //串口模式1 只发送不接收 TMOD=0x20; //T1 工作模式2TH1=0xf4; //波特率2400TL1=0xf4;PCON=0x00; //不加倍 SMOD=0TI=0;TR1=1; //开定时中断}/*********发送函数**********/void send(uchar temp){SBUF=temp;while(TI==0);TI=0;delay(50);}/**********延时函数**********/void delay(uchar i){unsigned int j;for(i;i>0;i--)for(j=0;j<100;j++);}乙机(U2)代码:#include<STC12C5A60s2.h>#define uchar unsigned char#define uint unsigned intvoid init(void);void delay(uchar t);void xianshi(void);uchar code distable[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管段码uchar code wi[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};uchar tab[9] = {0,0,0,0,0,0,0,0,0};uchar i=0,temp;uint a,b,c,d,e,f,g,h;void main(){init();while(1){xianshi();}}/////////////初始化///////////////void init(void){PCON = 0x00; //不加倍SMOD=0SCON = 0x50; //设置串口方式1且允许串口接收 REN=1TMOD = 0x20; //设置T1为方式2TH1 = 0xf4;TL1 = 0xf4; //设置波特率2400TR1 = 1; //开启定时器1ES = 1; //允许串行口中断EA = 1; //允许全局中断}////////////串口中断接收程序////////////void receive() interrupt 4{temp=SBUF;while(RI==0);RI=0;if(temp=='^')temp=0;tab[i]=temp;i++;if(i ==9){i=0;a=tab[1];b=tab[2];c=tab[3];d=tab[4];e=tab[5];f=tab[6];g=tab[7];h=tab[8];}}/////////////数码管显示/////////////void xianshi(void){uchar i,dm,wx;//m1:m0 00=标准; 01=推挽; 10=输入; 11=开漏输出P1M1 = 0X00;P1M0 = 0Xff;P2M1 = 0X00;P2M0 = 0Xff; //设定P1,P2推挽输出while(1){for(i=1;i<9;i++){//ram[i]=tab[i];dm=distable[tab[i]]; //取显示段码wx=wi[i-1]; //取位选码P1=0x00; //关显示P2=dm; //段码赋给P2口P1=wx; //点亮位选的那个数码管delay(1) ; //延时}}/*uchar k,ram[8];ram[0] = a;ram[1] = b;ram[2] = c;ram[3] = d;ram[4] = e;ram[5] = f;ram[6] = g;ram[7] = h;for(k=0;k<8;k++){P2=distable[ram[k]];P1=wi[k];P2=0x00;delay(1);}*/}//////////////延时函数/////////////void delay(uchar t ){uchar x,y,z;for(x=t;x>0;x--)for(y=25;y>0;y--)for(z=100;z>0;z--);}2、仿真结果3、问题分析在数码管显示这块,刚开始是这样写的在proteus上仿真的时候是没有任何问题的,但是后来在实验板上数码管显示特别暗,几乎看不出来有显示数字,想了想可能是没有加推挽输出,然后就将推挽输出代码加入,然后重新下载,但是结果和之前没什么不同。

单片机串口通信实验报告

单片机串口通信实验报告

单片机串口通信实验报告
实验目的:
1.掌握单片机串口通信的基本原理和实现方法;
2.学会使用串口模块与上位机进行数据交互;
3.进一步巩固单片机的编程与调试能力。

实验原理:
实验器材:
1.STC89C52单片机开发板1块
2.PC机一台
3.串口线1根
4. 上位机调试软件(如Tera Term) 1个
实验步骤:
1.将STC89C52单片机开发板与PC机通过串口线连接起来;
2. 使用Keil等编程软件编写单片机程序,实现串口通信功能;
4.在PC机上打开上位机调试软件,设置波特率和数据位;
5.测试通信功能,查看上位机接收到的数据是否正确。

实验结果:
经过调试和测试,实验结果如下:
1.单片机程序正常运行,可以通过串口与PC机进行数据交互;
2.上位机调试软件能够正确接收到单片机发来的数据,并显示在界面上;
实验总结:
通过本次实验,我掌握了单片机串口通信的基本原理和实现方法。


实验中,我学会了使用串口模块与上位机进行数据交互,并进一步提高了
单片机的编程与调试能力。

这对于今后的电子设计与开发工作将具有很大
的帮助。

同时,在实验过程中,我也遇到了一些问题和困难,如串口连接错误、波特率设置错误等,但通过仔细检查和调试,最终我成功解决了这些问题。

在以后的学习和工作中,我将进一步熟悉串口通信的相关知识,并通
过实际项目的实践,提升自己的实际操作能力和解决问题的能力。

我相信,通过不断的学习和实践,我会越来越熟练地掌握串口通信技术,为以后的
工作打下坚实的基础。

单片机串行通信实验结果描述

单片机串行通信实验结果描述

单片机串行通信实验结果描述一、引言单片机串行通信是嵌入式系统中常用的一种通信方式,通过串行通信可以实现单片机与其他外部设备的数据交换。

本文将详细描述单片机串行通信实验的结果。

二、实验目的本次实验的目的是通过单片机串行通信,实现与计算机之间的数据传输。

具体要求如下: 1. 使用串口通信模块与计算机进行数据交互; 2. 在计算机端编写相应的程序,实现数据的发送和接收; 3. 确保数据的准确传输和接收。

三、实验器材1.单片机开发板;2.串口通信模块;3.计算机。

四、实验步骤1. 连接硬件将单片机开发板与计算机通过串口通信模块连接,确保连接稳定。

2. 编写单片机程序在单片机开发板上编写程序,实现与计算机的串行通信。

具体步骤如下: 1. 初始化串口通信模块的相关参数,包括波特率、数据位、停止位等; 2. 设置串口通信模块为发送模式; 3. 通过串口发送数据。

3. 编写计算机程序在计算机上编写程序,实现与单片机的串行通信。

具体步骤如下: 1. 打开串口通信端口,并设置相关参数,与单片机的配置保持一致; 2. 接收串口发送的数据,并进行处理; 3. 将处理后的数据显示在计算机的界面上。

4. 运行实验将单片机程序烧录到开发板上,运行计算机程序。

观察数据的传输和接收情况,并记录实验结果。

五、实验结果与分析经过实验,我们得到了如下结果: 1. 数据传输稳定:通过串行通信,单片机与计算机之间的数据传输稳定可靠,没有出现丢失数据或传输错误的情况。

2. 传输速率较快:串行通信的传输速率较快,可以满足实际应用的需求。

3. 数据处理准确:计算机程序正确接收并处理了从单片机发送的数据,实现了数据的正确显示。

六、实验总结通过本次实验,我们掌握了单片机串行通信的基本原理和操作方法,实现了与计算机之间的数据传输。

实验结果表明,单片机串行通信是一种稳定可靠的通信方式,能够满足实际应用的需求。

在今后的实际工作中,我们可以利用串行通信实现更多功能,提高系统的性能和可靠性。

单片机双机串行实验报告

单片机双机串行实验报告

单片机双机串行实验报告实验目的:通过单片机实现双机串行通信功能,掌握串行通信的原理、方法和程序设计技巧。

实验原理:双机串行通信是指通过串行口将两台单片机连接起来,实现数据的传输和互动。

常用的串行通信方式有同步串行通信和异步串行通信。

异步串行通信是指通过发送和接收数据时的起始位、停止位和校验位进行数据的传输。

而同步串行通信是指通过外部时钟信号进行数据的同步传输。

实验器材:1.两台单片机开发板(MCU7516)2.两个串口线3.两台计算机实验步骤:1.将两台单片机开发板连接起来,通过串口线连接它们的串行口。

2.在两台计算机上分别打开串口调试助手软件,将波特率设置为相同的数值(例如9600)。

3.在编程软件中,编写两个程序分别用于发送数据和接收数据。

4.在发送数据的程序中,首先要设置串口的波特率、数据位、停止位和校验位,并将数据存储在缓冲区中。

然后利用串口发送数据的指令将数据发送出去。

5.在接收数据的程序中,同样要设置串口的参数。

然后使用串口接收数据的指令将接收到的数据存储在缓冲区中,并将其打印出来。

实验结果与分析:经过实验,我们成功地实现了单片机之间的双机串行通信。

发送数据的单片机将数据发送出去后,接收数据的单片机能够正确地接收到数据,并将其打印出来。

实验中需要注意的是,串口的波特率、数据位、停止位和校验位必须设置为相同的数值。

否则,发送数据的单片机和接收数据的单片机无法正常进行通信。

同时,在实验之前,需要了解单片机开发板支持的串口通信相关的指令和函数。

实验总结:通过本次实验,我们深入了解了单片机之间的双机串行通信原理和方法。

掌握了串口的设置和使用方法,以及相关的指令和函数。

在实验中,我们学会了如何通过串行口实现数据的传输和互动,为今后的单片机应用和开发打下了基础。

同时,我们还发现,双机串行通信在实际应用中有着广泛的用途。

例如,可以通过串行通信实现两台计算机之间的数据传输,或者实现单片机与计算机之间的数据收发。

单片机实验报告-串口通信

单片机实验报告-串口通信

单片机实验报告姓名___ _ 学号___一、实验项目单片机串行口通讯实验二、实验要求利用单片机串行口,实现两个实验台之间的串行通讯。

其中一个实验台作为发送方,另一侧为接收方。

发送方读入按键值,并发送给接收方,接收方收到数据后在LED上显示。

三、实验目的1.掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。

2.了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。

3.学习串口通讯的中断方式的程序编写方法。

四、实验说明1、8051、80C196 的RXD、TXD接线柱在POD51/96 仿真板上,8088/86的TXD、RXD在POD8086仿真板上的8251芯片旁边。

2、通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。

也可以将本机的TXD接到RXD上,这样按下的键,就会在本机LED上显示出来。

3、若想与标准的RS232设备通信,就要做电平转换,输出时要将TTL电平换成RS232电平,输入时要将RS232电平换成TTL电平。

可以将仿真板上的RXD、TXD信号接到实验板上的“用户串口接线”的相应RXD和TXD端,经过电平转换,通过“用户串口”接到外部的RS232设备。

可以用实验仪上的逻辑分析仪采样串口通信的波形五、程序框图六、源程序发射程序:org 0000hljmp mainorg 0023hljmp com_in ;串行口中断服务子程序入口org 1000hmain: mov sp,#50h ;设置堆栈指针mov dptr,#7f00h ;81c55初始化mov a,#03hmovx @dptr,amov tmod,#20h ;设置定时器T1工作方式为方式2mov th1,#0f4h ;设置定时器T1计数初值mov tl1,#0f4hmov pcon,#80h ;波特率加倍setb tr1 ;打开定时器mov scon,#40h ;设置串行口工作方式为方式1,8位异步收发,波特率可变mov ie,#90h ;打开中断允许寄存器,采用中断方式发送数据clr ti ;关闭发送中断标志位T1loop: acall key1 ;调用读取键值子程序mov r0,a ;键值存入R0setb ti ;开发送中断标志位T1ljmp loopcom_in: clr ti ;关闭发送中断标志位T1mov sbuf,r0 ;发送数据retikey1: acall ks1 ;调用判定有无键闭合子程序jnz lk1 ;有键闭合,跳转lk1acall dir ;无键闭合,调用显示子程序ajmp key1lk1: acall dir ;可能有键闭合,延时24msacall diracall ks1 ;调用判定有无键闭合jnz lk2 ;经去抖动,判断有键闭合跳转lk2acall dir ;无键闭合,调用延时子程序ajmp key1lk2: mov r2,#0feh ;列选码送到R2mov r4,#00h ;r4为列号计数器lk4: mov dptr,#7f01h ;列选码送到PA口mov a,r2movx @dptr,amov dptr,#7f03Hmovx a,@dptr ;读PC口jb acc.0,lone ;0行线为高电平,无键闭合,跳转lone,转判1行mov a,#00h ;0行有键闭合,首键号0→Aajmp lkp ;跳转lkp,计算键号lone: jb acc.1,ltw0 ;1行线为高电平,无键闭合,跳转ltwo,转判2行mov a,#06h ;1行有键闭合,首键号8→Aajmp lkp ;跳转lkp,计算键号ltw0: jb acc.2,lthr ;2行线为高电平,无键闭合,跳转lthr,转判3行mov a,#12h ;2行有键闭合,首键号10H→Aajmp lkp ;跳转lkp,计算键号lthr: jb acc.3,next ;3行线为高电平,无键闭合,跳转next,准备下一列扫描mov a,#18h ;3行有键闭合,首键号18H→Alkp: add a,r4 ;计算键号,即行首键号+列号=键号push a ;键号进栈保护lk3: acall dir ;调用显示子程序,延时6msacall ks1 ;调用判定有无键闭合子程序,延时6msjnz lk3 ;判定键释放否,未释放,则循环pop a ;键已释放,键号出栈→Aretnext: inc r4 ;列计数器加1,为下一列扫描做准备mov a,r2 ;判定是否已扫到最后一列jnb acc.5,knd ;键扫描已到最后一列,跳转knd,重新扫描rl a ;键未扫到最后一列,位选码左移一位mov r2,a ;位选码→R2ajmp lk4knd: ajmp key1ks1: mov dptr,#7f01h ;判定有无键闭合子程序,全0→扫描口(PA口)mov a,#00h ;即列线全为低电平movx @dptr,amov dptr,#7f03h ;PC口地址movx a,@dptr ;从PC口读行线状态cpl a ;行线状态取反,如无键按下,则A中内容为0anl a,#0fh ;屏蔽无用的高四位ret接受程序:org 0000hljmp mainorg 0023hljmp com_inorg 1000hmain: mov sp,#50h ;设置堆栈指针mov 60h,#0 ;显示缓冲区初始化mov 61h,#0mov 62h,#0mov 63h,#0mov 64h,#0mov 65h,#0mov dptr,#7f00h ;81c55初始化mov a,#03hmovx @dptr,aacall dir ;调用显示子程序mov tmod,#20h ;设置定时器T1工作方式为方式2mov th1,#0f4h ;设置定时器T1计数初值mov tl1,#0f4hmov pcon,#80h ;波特率加倍setb tr1 ;打开定时器mov scon,#50h ;设置串行口工作方式为方式1,允许串行接受位REN置1 mov ie,#90h ;打开中断允许寄存器,采用中断方式发送数据com_in: clr ri ;接收中断标志位清0mov a,sbuf ;接收数据retiloop: mov r1,a ;键值转换为显示数据mov r0,#0f0hmov a,r1anl a,r0mov 61h,a ;61h对应的数码管显示大于16的数mov r2,#0fhmov a,r1anl a,r2mov 60h,a ;60h对应的数码管显示小于16的数acall dirhere: sjmp $dir: mov r0,#60h ;置缓冲器指针初值mov r3,#01h ;位选码的初值送R3mov a,r3ld0: mov dptr,#7f01h ;位选码→PA口movx @dptr,ainc dptr ;指向PB口mov a,@r0 ;显示数据送到Aadd a,#0dh ;加偏移量movc a,@a+pc ;根据显示数据来查表取段码movx @dptr,a ;段码→PB口acall delay ;延时1ms,即该位显示1msinc r0 ;显示数据缓冲区指针指向下一个数据单元mov a,r3 ;位选码送入A中jb acc.5,ld1 ;判断是否扫描到最右边的LED,如到,则返回rl a ;位选码向左移一位,准备让显示位右边的下一位LED亮mov r3,a ;位选码送r3中保存ajmp ld0ld1: rettab: db 3fh,06h,5bh,4fh,66h,6dh ;共阴极LED段码表db 7dh,07h,7fh,6fh,77h,7chdb 39h,5eh,79h,71h,73h,3ehdb 31h,6eh,1ch,23h,40h,03hdb 18h,00hdelay: mov r7,#02h ;延时1ms子程序D1: mov r6,#0FFHD2: djnz r6,D2djnz r7,D1ret七、实验小结单片机实验报告姓名:毛幸林班级:2010138学号:201013803专业:电子信息工程。

单片机串行通信实验报告

单片机串行通信实验报告

单片机实验报告(三)实验名称:串行通信姓名:张昊学号:110404247班级:通信2班时间:2013.11南京理工大学紫金学院电光系一、实验目的1、理解单片机串行口的工作原理;2、学习使用单片机的TXD、RXD口;3、了MAX232解芯片的作用。

二、实验原理计算机与其外部设备之间进行数据交换称为通信。

通信的基本方式可分为并行通信和串行通信两种。

并行通信中数据至少有8路,可以同时将一个字节的8位二进制代码发送到对方。

串行通信用两根传输线进行数据的传输,一次只能发送一位二进制。

串行通信技术根据传送的编码格式不同,可分为同步通信和异步通信两种方式:1、同步方式:数据以数据块为单位传送。

在开始传送前用同步字符来指示,并由时钟来实现发送端和接收端同步。

2、异步方式:数据时不连续传送的。

以字符为单位进行传送。

被传送字节分为:起始位、数据位、校验位和停止位,称为一帧。

常用格式:a、1bit起始位+8bit数据位+无校验位+1bit停止位b、1bit起始位+8bit数据位+1位偶校验位+1bit停止位串行通信技术根据数据流动方向分为三种方式:1、单工通信:数据流动方向是固定的,数据只能由一方发送到另一方。

2、半双工通信:数据的流动方向是双向的,但一时刻,数据只能在一个方向流动。

3、全双工通信:允许数据在两个方向流动,即通信双方的数据发送和接收是同时的。

串行口控制寄存器SCON的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SM0、SM1:由软件置位或清零,用于选择串行口四种工作方式。

SM2:多机通信控制位。

在方式2和方式3中,如SM2=1,则接收到的第9位数据(RB8)为0时不启动接收中断标志RI(即RI=0),并且将接收到的前8位数据丢弃;RB8为1时,才将接收到的前8位数据送入SBUF,并置位RI,产生中断请求。

当SM2=0时,则不论第9位数据为0或1,都将前8位数据装入SBUF中,并产生中断请求。

串行通信_实验报告

串行通信_实验报告

一、实验目的1. 理解串行通信的基本原理和概念;2. 掌握串行通信的常用接口和协议;3. 学会使用串行通信进行数据传输;4. 熟悉串行通信在嵌入式系统中的应用。

二、实验原理串行通信是一种数据传输方式,通过一根或多根数据线,将数据一位一位地按顺序传送。

与并行通信相比,串行通信在传输速度和成本上具有优势,广泛应用于嵌入式系统、工业控制、远程通信等领域。

串行通信的基本原理如下:1. 数据格式:串行通信中,数据以字节为单位进行传输,每个字节由起始位、数据位、校验位和停止位组成。

2. 通信方式:串行通信主要有同步通信和异步通信两种方式。

a. 同步通信:通信双方使用统一的时钟信号进行数据传输,数据在传输过程中保持同步。

b. 异步通信:通信双方使用不同的时钟信号进行数据传输,数据在传输过程中不保持同步。

3. 串行通信接口:常用的串行通信接口有RS-232、RS-485、USB等。

三、实验设备1. 单片机开发板:STC89C52;2. 串口通信模块:MAX232;3. 串口通信线;4. 电脑;5. 串口调试助手。

四、实验步骤1. 连接电路:将单片机开发板、串口通信模块和电脑通过串口通信线连接起来。

2. 初始化单片机串口:设置单片机串口的工作方式、波特率、校验位和停止位等参数。

3. 编写串口发送程序:在单片机上编写程序,实现数据的串行发送。

4. 编写串口接收程序:在单片机上编写程序,实现数据的串行接收。

5. 使用串口调试助手进行测试:在电脑上打开串口调试助手,设置相应的通信参数,发送和接收数据。

五、实验结果与分析1. 实验结果:通过串口调试助手,成功实现了单片机与电脑之间的数据传输。

2. 分析:a. 在初始化单片机串口时,设置了正确的波特率、校验位和停止位等参数,保证了数据的正确传输。

b. 在编写串口发送程序时,正确地实现了数据的串行发送。

c. 在编写串口接收程序时,正确地实现了数据的串行接收。

六、实验总结1. 通过本次实验,掌握了串行通信的基本原理和概念;2. 学会了使用串行通信进行数据传输;3. 熟悉了串行通信在嵌入式系统中的应用。

串行通信实验报告

串行通信实验报告

串行通信实验报告班级姓名学号日期一、实验目的:1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。

2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。

3、学习串口通讯的程序编写方法。

二、实验要求1.单机自发自收实验:实现自发自收。

编写相应程序,通过发光二极管观察收发状态。

2.利用单片机串行口,实现两个实验台之间的串行通讯。

其中一个实验台作为发送方,另一侧为接收方。

三、实验说明通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。

也可以将本机的TXD接到RXD上。

连线方法:在第一个实验中将一台实验箱的RXD和TXD相连,用P1.0连接发光二极管。

波特率定为600,SMOD=0。

在第二个实验中,将两台实验箱的RXD和TXD交叉相连。

编写收发程序,一台实验箱作为发送方,另一台作为接收方,编写程序,从内部数据存储器20H~3FH单元中共32个数据,采用方式1串行发送出去,波特率设为600。

通过运行程序观察存储单元内数值的变化。

四、程序甲方发送程序如下:ORG 0000HLJMP MAINORG 0023HLJMP COM_INTORG 1000HMAIN: MOV SP,#53HMOV 78H,#20HMOV 77H,00HMOV 76H,20HMOV 75H,40HACALL TRANS HERE: SJMP HERE TRANS: MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1MOV SCON,#40H MOV IE,#00HCLR F0MOV SBUF,78H WAIT1: JNB TI,WAIT1 CLR TIMOV SBUF,77H WAIT2: JNB TI,WAIT2 CLR TIMOV SBUF,76H WAIT3: JNB TI,WAIT3 CLR TIMOV SBUF,75H WAIT4: JNB TI,WAIT4CLR TIMOV IE,#90HMOV DPH,78HMOV DPL,77HMOVX A,@DPTRMOV SBUF,A WAIT: JNB F0,WAITRETCOM_INT: CLR TIINC DPTRMOV A,DPHCJNE A,76H,END1 MOV A,DPLCJNE A,75H,END1 SETB F0CLR ESCLR EARETEND1: MOVX A,@DPTRMOV SBUF,AEND乙方发送程序如下:ORG 0000HLJMP MAINORG 0023HLJMP COM_INTORG 1000H MAIN: MOV SP,#53HACALL RECEI HERE: SJMP HERE RECEI: MOV R0,#78H MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1MOV SCON,#50H MOV IE,#90H CLR F0CLR 7FH WAIT: JNB 7FH,WAITCOM_INT: PUSH DPLPUSH DPHPUSH AccCLR RIJB F0,R_DATAMOV A,SBUFMOV @R0,ADEC R0CJNE R0,#74H,RETN SETB F0RETN: POP AccPOP DPHPOP DPLRETIR_DATA: MOV DPH,78HMOV DPL,77HMOV A,SBUFMOVX @DPTR,AINC 77HMOV A,77HJNZ END2INC 78HEND2: MOV A,76HCJNE A,78H,RETNMOV A,75HCJNE A,77H,RETNCLR ESCLR EASETB 7FHSJMP RETNEND五、实验过程中遇到的主要问题OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口IN equ 08001h ; 键盘读入口HasRcv equ 20h.0 ; 接收标志位LEDBuf equ 40h ; 显示缓冲RCVBuf equ 50H ; 接收缓冲ORG 0000HLJMP START; 串行口中断程序ORG 0023HJNB TI,S0_RCLR TINOPSJMP S0_RETS0_R: ; 接收数据CLR RIMOV RCVBUF,SBUF ; 保存数据SETB HasRcv ; 提示收到数据NOPS0_RET:RETILEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, LoopretTestKey:mov dptr, #OUTBITmov a, #0movx @dptr, a ; 输出线置为0mov dptr, #INmovx a, @dptr ; 读入键状态cpl aanl a, #0fh ; 高四位不用retKeyTable: ; 键码定义db 16h, 15h, 14h, 0ffhdb 13h, 12h, 11h, 10hdb 0dh, 0ch, 0bh, 0ahdb 0eh, 03h, 06h, 09hdb 0fh, 02h, 05h, 08hdb 00h, 01h, 04h, 07hGetKey:mov dptr, #OUTBITmov P2, dphmov r0, #Low(IN)mov r1, #00100000bmov r2, #6KLoop:mov a, r1 ; 找出键所在列cpl amovx @dptr, acpl arr amov r1, a ; 下一列movx a, @r0cpl aanl a, #0fhjnz Goon1 ; 该列有键入djnz r2, KLoopmov r2, #0ffh ; 没有键按下, 返回0ffhsjmp ExitGoon1:mov r1, a ; 键值= 列X 4 + 行mov a, r2dec arl arl amov r2, a ; r2 = (r2-1)*4mov a, r1 ; r1中为读入的行值mov r1, #4LoopC:rrc a ; 移位找出所在行jc Exitinc r2 ; r2 = r2+ 行值djnz r1, LoopCExit:mov a, r2 ; 取出键码mov dptr, #KeyTablemovc a, @a+dptrmov r2, aWaitRelease:mov dptr, #OUTBIT ; 等键释放clr amovx @dptr, amov r6, #10call Delaycall TestKeyjnz WaitReleasemov a, r2retSTART:MOV SP, #60HMOV IE, #0 ; DISABLE ALL INTERRUPTMOV TMOD,#020H ; 定时器1工作于方式2 (8位重装)MOV TH1, #0F3H ; 波特率?2400BPS @ 12MHzMOV TL1, #0F3HANL PCON,#07FH ; SMOD 位清零orl PCON,#80hMOV SCON,#050H ; 串行口工作方式设置MOV LEDBuf, #0ffh ; 显示8.8.8.8.mov LEDBuf+1, #0ffhmov LEDBuf+2, #0ffhmov LEDBuf+3, #0ffhmov LEDBuf+4, #0mov LEDBuf+5, #0SETB TR1SETB ESSETB EA;mov sbuf,a;jnb ti,$MLoop:jb HasRcv, RcvData ; 收到数据?call DisplayLED ; 显示call TestKey ; 有键入?jz MLoop ; 无键入, 继续显示call GetKey ; 读入键码anl a, #0fh ; 通讯口输出键码MOV SBUF,ALJMP MLoopRcvData:clr HasRcv ; 是mov a, RcvBuf ; 显示数据mov b,aanl a,#0fh ; 显示低位mov dptr, #LEDMapmovc a, @a+dptrmov LEDBuf+5, amov a,bswap a ; 显示高位anl a,#0fhmov dptr, #LEDMapmovc a, @a+dptrmov LEDBuf+4, aljmp MLoopEND六、实验后的心得体会。

单片机串口通信实验报告

单片机串口通信实验报告

单片机串口通信实验报告篇一:串行口通信实验单片机实验报告实验六串行口通信实验一、实验内容实验板上有RS-232接口,将该接口与PC机的串口连接,可以实现单片机与PC机的串行通信,进行双向数据传输。

本实验要求当PC机向实验板发送的数字在实验板上显示,按实验板键盘输入的数字在PC机上显示,并用串口助手工具软件进行调试。

二、实验目的掌握单片机串行口工作原理,单片机串行口与PC机的通信工作原理及编程方法。

三、实验原理51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通信。

进行串行通讯信要满足一定的条件,比如电脑的串口是RS232电平(-5~-15V为1,+5~+15V为0),而单片机的串口是TTL电平(大于+2.4V为1,小于- 0.7V为0),两者之间必须有一个电平转换电路实现RS232电平与TTL电平的相互转换。

为了能够在PC机上看到单片机发出的数据,我们必须借助一个Windows软件进行观察,这里我们可以使用免费的串口调试程序SSCOM32或Windows的超级终端。

单片机串行接口有两个控制寄存器:SCON和PCON。

串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。

在这种方式下,数据为8位,只能从RXD端输入输出,TXD端用于输出移位同步时钟信号,其波特率固定为振荡频率的1/12。

由软件置位串行控制寄存器(SCON)的REN 位后才能启动,串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。

待8位数据输完后,硬件将SCON寄存器的T1位置1,必须由软件清零。

单片机与PC机通信时,其硬件接口技术主要是电平转换、控制接口设计和远近通信接口的不同处理技术。

在DOS操作环境下,要实现单片机与微机的通信,只要直接对微机接口的通信芯片8250进行口地址操作即可。

WINDOWS的环境下,由于系统硬件的无关性,不再允许用户直接操作串口地址。

如果用户要进行串行通信,可以调用WINDOWS的API应用程序接口函数,但其使用较为复杂,可以使用KEILC的通信控件解决这一问题。

实验四 串行通信实验

实验四  串行通信实验

实验四 串行通信实验一、实验目的1.了解51单片机串行口的结构、串行通讯的原理。

2.掌握51单片机与PC 机之间通讯的方法。

3. 学习系统应用程序的设计和调试二、实验设备PC 机一台 、 实验教学板一块。

三、实验原理51单片机的串行接口是全双工的,它能做异步接收器/发送器(UART ),也能做同步移位寄存器使用。

在做UART 使用时,相关的寄存器有SBUF 、SCON 、和PCON 中的波特率倍增位SMOD 。

SBUF 是数据发送缓冲器和接收缓冲器,逻辑上用同一个地址,物理上是分开的,用读写操作来选择。

SCON 是串行口控制寄存器,用于设定串行口的工作方式;保存方式2和方式3的第9位数据;存放发送、接收的中断标志。

在串行通讯的方式1和方式3中,通信的波特率是可以设置的,满足下式:2/132SMOD=⨯波特率(定时器计数器的溢出率)PC 机的串行通讯口是借助通用异步接收发送器8250(或16C550等)实现的,可使用comdebug.exe 等提供了有关串行口的收、发操作窗口的软件实现通讯。

PC 机的串行通讯采用RS232电平,因此要求单片机的实验板也要配置RS232接口,解决逻辑电平的配接。

如果通讯距离较远,则要配接调制解调器。

四、实验内容1, 自发自收用一根短路线,将实验板中RS232插口的RXD 和TXD 两个插孔短路。

然后编程设定串行口为工作方式1,传送55H 和0AAH 两个数据。

实验要求:程序采用查询方式。

每传送、接收一个数据,做一次检查,看是否正确,若两次都正确,则在显示器上显示“GOOD”,若不正确,则不显示,并要重新传送。

2, 单片机与PC 机的通信先使用通讯电缆将单片机的RS232接口与PC 机的COM1口连接,PC 机起动并运行comdebug.exe 软件,窗口上设置波特率为1200,8位数据、一个停止位。

单片机端也采用工作方式1,波特率为1200,完成单片机与PC 机的通信。

单片机双机之间的串行通信设计

单片机双机之间的串行通信设计

单片机双机串行实验报告实验报告:单片机双机串行通信实验一、实验目的本实验旨在通过单片机实现双机间的串行通信,包括数据的发送和接收,并利用这种通信方式完成一定的任务。

二、实验原理1.串行通信:串行通信是将数据一个个位发送或接收的方式。

数据通过一个线路逐位发送或接收,可以减少通信所需的线路数目。

2. UART串口通信:UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)的简称,是一种最常用的串口通信方式,通常用于单片机与计算机、单片机与单片机之间的通信。

3.串口模块:串口模块是负责将数据转变为串行传输的硬件模块,包括发送端和接收端。

通过设置波特率、数据位、校验位和停止位等参数,可以实现数据的可靠传输。

4.单片机串口通信:单片机内部集成了UART串口通信接口,只需要通过相应的寄存器配置,可以实现串口通信功能。

5.双机串行通信:双机串行通信是通过串口将两台单片机进行连接,一台单片机作为发送端,负责将数据发送出去;另一台单片机作为接收端,负责接收并处理发送的数据。

三、实验器材与软件1.实验器材:两台单片机、USB转TTL模块、杜邦线若干。

2. 实验软件:Keil C51集成开发环境。

四、实验内容与步骤1.配置发送端单片机(1)连接单片机和USB转TTL模块,将USB转TTL模块的TXD端连接到单片机的P3口,将GND端连接到单片机的地线。

(2)在Keil C51环境下创建新工程,编写发送端程序。

(3)配置串口通信的波特率、数据位、校验位和停止位,并打开串口发送中断。

(4)循环发送指定的数据。

2.配置接收端单片机(1)连接单片机和USB转TTL模块,将USB转TTL模块的RXD端连接到单片机的P3口,将GND端连接到单片机的地线。

(2)在Keil C51环境下创建新工程,编写接收端程序。

(3)配置串口通信的波特率、数据位、校验位和停止位,并打开串口接收中断。

串行口实验报告

串行口实验报告

一、实验目的1. 理解串行通信的基本原理和常用协议。

2. 掌握单片机串行口的工作方式及其程序设计。

3. 通过实际操作,实现单片机之间的串行通信,验证通信协议的正确性。

4. 学习串行通信在实际应用中的调试和故障排除方法。

二、实验设备1. 单片机开发板(如STC89C52、AT89C51等)2. 串行通信模块(如MAX232、CH340等)3. 连接线(杜邦线、串行线等)4. 电脑(用于调试程序)5. 串口调试工具(如串口助手、PuTTY等)三、实验原理串行通信是指数据在一条线路上按位顺序传送,一次只能传送一位。

与并行通信相比,串行通信具有成本低、传输距离远、易于实现等优点。

串行通信的常见协议有RS-232、RS-485、I2C、SPI等。

本实验采用RS-232协议,通过单片机的串行口实现数据的发送和接收。

四、实验步骤1. 硬件连接将单片机的串行口(如RXD、TXD)与串行通信模块的RXD、TXD引脚相连,并通过杜邦线连接到电脑的串口。

2. 软件设计(1)编写单片机程序,实现数据的发送和接收。

(2)编写电脑端程序,用于发送和接收数据。

3. 程序调试(1)将单片机程序烧写到单片机中。

(2)在电脑端打开串口调试工具,设置波特率、数据位、停止位、校验位等参数。

(3)通过串口调试工具发送数据,观察单片机接收到的数据是否正确。

4. 实验结果分析通过实验,成功实现了单片机之间的串行通信。

在调试过程中,遇到以下问题:(1)波特率设置不正确:波特率设置错误会导致数据无法正确接收。

通过查阅相关资料,找到了正确的波特率设置方法。

(2)串行口初始化错误:串行口初始化参数设置错误会导致通信中断。

通过查阅相关资料,找到了正确的初始化方法。

(3)数据接收错误:数据接收过程中,可能出现乱码现象。

通过检查程序代码,发现是数据接收缓冲区溢出导致的。

通过调整接收缓冲区大小,解决了该问题。

五、实验总结通过本次实验,掌握了单片机串行通信的基本原理和编程方法。

单片机串口通讯实验报告

单片机串口通讯实验报告

试验十单片机串行口与PC机通讯试验汇报㈠试验目旳1.掌握串行口工作方式旳程序设计, 掌握单片机通讯旳编制;2.理解实现串行通讯旳硬环境, 数据格式旳协议, 数据互换旳协议;3.理解PC机通讯旳基本规定。

㈡试验器材1.G6W仿真器一台2.MCS—51试验板一台3.PC机一台㈢试验内容及规定运用8051单片机串行口, 实现与PC机通讯。

本试验实现如下功能, 将从试验板键盘上键入旳字符或数字显示到PC 机显示屏上, 再将PC机所接受旳字符发送回单片机, 并在试验板旳LED上显示出来。

㈣试验环节1.编写单片机发送和接受程序, 并进行汇编调试。

2.运行PC机通讯软件“commtest.exe”, 将单片机和PC机旳波特率均设定为1200。

运行单片机发送程序, 按下不一样按键(每个按键都定义成不一样旳字符), 检查PC机所接受旳字符与否与发送旳字符相似。

将PC机所接受旳字符发送给单片机, 与此同步运行单片机接受程序, 检查试验板LED数码管所显示旳字符与否与PC机发送旳字符相似。

㈤试验框图源程序代码:ORG 0000HAJMP STARTORG 0023HAJMP SERVEORG 0050HSTART: MOV 41H,#0H ;对几种寄存地址进行初始化MOV 42H,#0HMOV 43H,#0HMOV 44H,#0HMOV SCON,#00H ;初始化串行口控制寄存器, 设置其为方式0LCALL DISPLAY ;初始化显示MOV TMOD,#20H ;设置为定期器0, 模式选用2MOV TL1, #0E6H ;设置1200旳波特率MOV TH1, #0E6HSETB TR1 ;开定期器MOV SCON,#50H ;选用方式1, 容许接受控制SETB ESSETB EA ;开中断LOOP: ACALL SOUT ;键盘扫描并发送, 等待中断SJMP LOOPSERVE JNB RI,SEND ;判断是发送中断还是接受中断, 若为发送中断则调用ACALL SIN ;发送子程序, 否则调用接受子程序RETISEND: CLR TI ;发送子程序RETISIN: CLR RI ;接受子程序MOV SCON, #00HMOV A, SBUF ;接受数据LCALL XS ;调用显示子程序RETI子程序:SOUT: CLR TI ;清发送中断标志位LCALL KEY ;调用判断按键与否按下子程序MOV A,R0 ;将按键对应旳数字存入AMOV SBUF,A ;输出按键数字给锁存RETKEY: MOV P1,#0FFH ;将P1设置为输入口MOV A, P1CPL A ;将A内值取反ANL A, #0FFHJZ KEY ;将A与FFH与后判断与否为0, 若为0则表达无按键按下跳回KEYLCALL D ;调用延时子程序消抖MOV A, P1CPL AANL A, #0FFHJZ KEYMOV B,A ;判断有按键按下, 将值赋给BKEY1: MOV A, P1CPL AANL A,#0FFHJNZ KEY1LCALL DMOV A,BJB ACC.0,PKEY1 ;依次判断A内数据每个位与否为1, 并跳JB ACC.1,PKEY2 ;转到相对应位旳子程序JB ACC.2,PKEY3JB ACC.3,PKEY4JB ACC.4,PKEY5JB ACC.5,PKEY6JB ACC.6,PKEY7JB ACC.7,PKEY8EKEY: RETPKEY1: A JMP K1PKEY2: A JMP K2PKEY3: A JMP K3PKEY4: A JMP K4PKEY5: A JMP K5PKEY6: A JMP K6PKEY7: A JMP K7PKEY8: A JMP K8K1: MOV R0,#01H ;将对应旳数据赋给R0后跳转到EKEY SJMP EKEYK2: MOV R0,#02HSJMP EKEYK3: MOV R0,#03HSJMP EKEYK4: MOV R0,#04HSJMP EKEYK5: MOV R0,#05HSJMP EKEYK6: MOV R0,#06HSJMP EKEYK7: MOV R0, #07HSJMP EKEYK8: MOV R0, #08HSJMP EKEYXS:MOV SCON,#00H ;显示子程序, 采用同步移位寄存器CLR TIMOV DPTR, #TABMOVC A,@A+DPTR ;将对应数值旳数码管显示数值送入SBUF MOV R5,#04H ;共四位需要显示MOV 41H, AMOV R0, #41HDISPLAY1: MOV A,@R0MOV SBUF, AJNB TI,$ ;与否传完了CLR TI ;清除中断标志位INC R0DJNZ R5, DISPLAY1MOV S CON, #50HRETD: ;延时子程序MOV R7, #10HDELAY1: MOV R6, #0FFHDELAY2: DJNZ R6, DELAY2DJNZ R7, DELAY1RETTAB: DB 0BBH, 09H, 0EAH, 6BHDB 59H, 73H, 0F3H, 0BHDB 0FBH本次试验中处理了怎样判断数据是发送还是接受旳问题和怎样判断数据与否发送或接受完毕旳问题, 通过试验中旳讨论和研究书上有关串行口旳内容, 我们通过中断标志位和循环很好旳处理了这个问题。

单片机串口通讯实验报告

单片机串口通讯实验报告

单片机串口通讯实验报告本实验是基于单片机和串口通讯的实验,旨在通过掌握单片机与计算机之间的串口通讯原理、方法和技巧,提高学生在单片机应用方面的操作技能和实践能力。

本实验将分为以下三个部分进行讲解:一、实验原理串口是指通过一条通信线路,将数据以一定的格式传输到一个设备或计算机上。

单片机是一种非常常见的嵌入式系统,具有很好的应用前景。

通过学习单片机串口通信原理,可以更好地理解嵌入式系统的应用场景。

串口发送数据的基本原理是将二进制的数据码转换成特定规则的数据帧,发送到串口的通信线路上。

串口接收数据的基本原理是从串口线路上读取二进制码,对码进行格式化解码,再存储到相应的缓存区中。

计算机和单片机通讯的原理基本一致,但是具体的实现方法和细节要根据所用的串口模块和单片机芯片来确定。

二、实验步骤该实验将从计算机到单片机的数据传输进行实验。

其中,计算机上将使用串口终端软件RealTERM,单片机使用TTL串口。

1.连接TTL串口首先,将串口线连接到单片机的TTL串口上(RX、TX、GND)。

2.串口设置打开RealTERM软件,设置串口参数(波特率、数据位、奇偶校验、停止位等)。

在Windows系统中,可以通过设备管理器查看串口设备,从而确定串口号(通常为COM1、COM2等)。

3.单片机程序设计单片机程序中需要设置串口参数、发送数据和接收数据等功能。

在发送数据时,需要将发送缓存区中的数据转换成相应的数据帧格式,再通过串口发送到计算机上。

在接收数据时,需要从串口接收缓存区中读取数据,并且解析成特定的格式,再将数据存储到所需的区域。

4.进行实验打开串口终端软件后,点击“打开串口”按钮,可以看到从单片机发送的数据。

可以通过键盘输入数据,以进行数据的发送和接收。

具体操作步骤可以根据实际需要来确定,可以设置不同的数据帧格式和接收响应逻辑。

三、实验结果通过上述实验,可以掌握单片机串口通信的基本原理和实现方法。

可以通过实验得到一些操作技巧,例如:1.根据计算机和单片机所使用的串口模块和相关参数,选择合适的波特率、数据位、奇偶校验和停止位等控制参数。

单片机串口通信实验报告

单片机串口通信实验报告

信息工程学院实验报告课程名称:单片机原理及接口实验项目名称:串口通信实验实验时间:2017.5一、实验目的:1.了解什么是串口,串口的作用等。

2、了解串口通信的相关概念3、利用keil软件,熟悉并掌握中串口通信的使用4、通过实验,熟悉串口通信程序的格式,串口通信的应用等二、实验原理1、串口通信概念:单片机应用与数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通信成本,提高通信可靠性。

如下图所示。

2、串口数据通信方式及特点★数据通信方式有两种:并行通信与串行通信★并行通信:所传送数据的各位同时发送或接收,数据有多少位就需要多少根数据线。

特点:速度快,成本高,适合近距离传输如计算机并口,打印机,8255 。

★串行通信:所传送数据的各位按顺序一位一位地发送或接收。

只需一根数据,一根地线,共2 根特点:成本低,硬件方便,适合远距离通信,传输速度低。

串行通信与并行通信示意图如下:成绩:指导老师(签名):3、串行通信基本格式①单工通信:数据只能单向传送。

②半双工通信:通信是双向的,但每一时刻,数据流通的方向是单向的。

③全双工通信:允许数据同时在两个方向流动,即通信双方的数据发送和接收是同时进行的。

4、异步串行通信/同步串行通信①异步串行通信:异步串行通信采用如下的帧结构:起始位+ 8位数据位+ 停止位或起始位+ 9位数据位+ 停止位其中:起始位为低电平,停止位为高电平。

优点:硬件结构简单缺点:传输速度慢②同步串行通信:在同步通信中,发送方在数据或字符开始处就用同步字符(常约定1~2个字节)指示一帧的开始,由时钟来实现发送端和接收端同步,接收方一旦检测到与规定的同步字符符合,下面就连续按顺序传送若干个数据,最后发校验字节。

见下图:5、串行通信过程与UART基本的计算机异步串行通信系统中,两台计算机之间通过三根信号线TxD、RxD和GND连接起来,TxD与GND构成发送线路,RxD与GND构成接收线路。

单片机串口通信实验报告

单片机串口通信实验报告

信息工程学院实验报告课程名称:单片机原理及接口实验项目名称:串口通信实验实验时间:2017、5一、实验目得:1.了解什么就是串口,串口得作用等。

2、了解串口通信得相关概念3、利用keil软件,熟悉并掌握中串口通信得使用4、通过实验,熟悉串口通信程序得格式,串口通信得应用等二、实验原理1、串口通信概念:单片机应用与数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通信成本,提高通信可靠性。

如下图所示。

2、串口数据通信方式及特点★数据通信方式有两种:并行通信与串行通信★并行通信: 所传送数据得各位同时发送或接收,ﻩ数据有多少位就需要多少根数据线。

特点: 速度快,成本高,适合近距离传输如计算机并口,打印机,8255 。

★串行通信:所传送数据得各位按顺序一位一位地发送或接收。

只需一根数据,一根地线,共2 根特点:成本低,硬件方便,适合远距离通信,传输速度低。

串行通信与并行通信示意图如下:成绩:指导老师(签名):3、串行通信基本格式①单工通信:数据只能单向传送。

②半双工通信:通信就是双向得,但每一时刻,数据流通得方向就是单向得。

③全双工通信:允许数据同时在两个方向流动,即通信双方得数据发送与接收就是同时进行得。

4、异步串行通信/同步串行通信①异步串行通信:异步串行通信采用如下得帧结构:起始位+ 8位数据位+ 停止位或起始位+ 9位数据位+停止位其中:起始位为低电平,停止位为高电平。

优点:硬件结构简单缺点:传输速度慢②同步串行通信:在同步通信中,发送方在数据或字符开始处就用同步字符(常约定1~2个字节)指示一帧得开始,由时钟来实现发送端与接收端同步,接收方一旦检测到与规定得同步字符符合,下面就连续按顺序传送若干个数据,最后发校验字节。

见下图:5、串行通信过程与UART基本得计算机异步串行通信系统中,两台计算机之间通过三根信号线TxD、RxD与GND连接起来,TxD与GND构成发送线路,RxD与GND构成接收线路。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五串行通信系统实验班级电科9班姓名殷哑_ 学号 _ 时间周八_
实验目的
本实验要实现简单串口通信与简单通信协议的编写与功能测试。

实验内容
1、简单串口通信实验
2、简单通信协议实验
实验原理及实验记录
1、简单串口通信实验
(1)实验原理图
简单串口通信实验仿真图
(2)实验程序
org 0000h
lcall csh
lcall xh
lop:
Jnb ri, $
clr ri
mov 30h, sbuf
mov a, 30h
cjne a, #'f', fh
lcall loop
ljmp lop
xh:
jnb ti, $
mov a, #'S'
mov sbuf, a
clr ti
ret
csh:
mov scon, #52h
mov tmod, #20h
mov th1, #-3
mov tl1, #-3
setb tr1
mov pcon, #80h
mov dptr, #tab
mov r6, #0
ret
loop:
jnb ti, $
clr ti
mov a, r6
movc a, @a+dptr
mov sbuf, a
inc r6
cjne r6, #10, loop
mov r6, #0
fh:
jnb ti, $
clr ti
mov a, 30h
mov sbuf, a
ljmp lop
tab: db "2018022090"
end
2、简单通信协议实验
(1)实验原理图
简单通信协议实验仿真图
(2)实验程序
org 0030h
lcall init
main:
mov dptr, #0cf01h
movx a, @dptr
mov dptr, #0cf00h
movx @dptr, a
Jmp main
init:
mov dptr, #0cf03h
mov a, #82h
movx @dptr, a
ret
end
实验总结
通过这次的实验,增加了对代码的认知,强化了代码记忆:
1、本次实验对定时器和计数器进行了设计与仿真,充分加深了我对中断的应用。

2、通过这次的实验,对实现简单串口通信编写与功能测试应用更加熟练,同时对与简单通信协议的应用有了更深的理解;
3、在学习中,通过实验,知道了各部分代码的严谨性。

相关文档
最新文档