搜档网
当前位置:搜档网 › 串口通信实验讲解

串口通信实验讲解

串口通信实验讲解
串口通信实验讲解

课程名称:Zigbee技术及应用实验项目:串口通信实验指导教师:

专业班级:姓名:学号:成绩:

一、实验目的:

(1)认识串口通信的概念;

(2)学习单片机串口通信的开发过程;

(3)编写程序,使单片机与PC通过串口进行通信。

二、实验过程:

(1)根据实验目的分析实验原理;

(2)根据实验原理编写C程序;

(3)编译下载C程序,并在实验箱上观察实验结果。

三、实验原理:

串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,此时只需要一条数据线,外加一条公共信号地线和若干条控制信号线。因为一次只能传送一位,所以对于一个字节的数据,至少要分8位才能传送完毕,如图3-1所示。

图2-1串行通信过程

串行通信制式:

(1)单工制式

这种制式是指甲乙双方通信时只能单向传送数据,发送方和接收方固定。

(2)半双工制式

这种制式是指通信双方都具有发送器和接收器,即可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。

(3)全双工制式

这种制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时能发送。

三种制式分别如图3-2所示

图3-2串行通信制式

3.1硬件设计原理

CC2530有两个串行通信接口USART0和USART1,两个USART具有同样的功能,可已分别运行于UART模式和同步SPI模式。

CC2530的两个串行通信接口引脚图分布如表3-1所示

表3-1 CC2530串行通信口引脚图分布

本实验CC2530模块使用的是USART1的位置2,P1_6和P1_7。

3.2程序设计原理

串口通信程序流程图如图3-3所示

开始

系统时钟初始化串口1初始化等待接收数据

中断

将接收的数据存入缓存将缓存的数据原样发送给PC

中断结束,继

续执行主程序

图3-3程序设计流程图

(1)寄存器的配置

P1SEL寄存器,P1_0-P1_7功能选择,0:通用I/O 1:外设

U1CSR寄存器,USART1

控制和状态

U1UCR寄存器,USART1控制

(2)本实验配置UART:无硬件流控制,无奇偶校验,8位数据位,1位停止位,所以,U1UCR应配置为0x00

因单片机复位,U1UCR全部为0,所以U1UCR寄存器应保持默认,无需配置。

(3)波特率设置

当运行在UART 模式时,内部的波特率发生器设置UART 波特率。当运行在SPI 模式时,内部的波特率发

生器设置SPI 主时钟频率。

由寄存器UxBAUD.BAUD_M[7:0]和UxGCR.BAUD_E[4:0]定义波特率。该波特率用于UART 传送,也用于SPI 传送的串行时钟速率。波特率由下式给出:

F M BAUD E

BAUD **+=28

_22)_256(波特率 (3-1)

(式3-1中:F 是系统时钟频率,等于16 MHz RCOSC 或者32 MHz XOSC 。)

本实验设置的波特率为57600,U1GCR |= 10,U1BAUD |= 216 四、实验步骤和实验结果 1.硬件配置 :

(1)实验设备:CC2530核心板一块;传感器底板一个;仿真器一个;方口USB线一根;USB转TTL 模块一个;杜邦线三根。

2.实验步骤:

步骤一:编写串口收发程序,编译无误。

步骤二:将CC2530模块(CC2530核心板与传感器底板,简称CC2530模块)与仿真器连接,仿真器用USB连接线与电脑进行连接。

步骤三:点击IAR软件中的 Download and Debug 按钮进行编译下载。

步骤四:然后单击调试工具栏中的GO 按钮。

步骤五:CC2530模块与USB转TTL模块连接,将USB转TTL模块插入PC的USB口。

3. 程序及现象:

1)实验程序:

#include

char str[]="MICROSEC USART TEST!\n";

/***********************************

* @fn Clock_Init

* @brief 初始化系统时钟.

* @param None

* @return None

**********************************/

void Clock_Init(void)

{

CLKCONCMD &= ~0x40; //选择32MHz晶振

while(!(SLEEPSTA&0x40)); //等待晶振稳定

CLKCONCMD &= ~0x47; //TICHSPD128分频,CLKSPD不分频

SLEEPCMD |= 0x04; //关闭不用的RC振荡器

}

/***********************************

c语言串口通信范例

一个c语言的串口通信程序范例 分类:技术笔记 标签: c语言 串口通信 通信程序 it 最近接触一个项目,用HL-C1C激光位移传感器+易控组态软件完成生产线高度跳变检测,好久没有接触c c#,一些资料,找来做个记录,也许大家用的着 #include #include #include #include #define COM232 0x2f8 #define COMINT 0x0b #define MaxBufLen 500 #define Port8259 0x20 #define EofInt 0x20 static int comportaddr; static char intvectnum; static unsigned char maskb; static unsigned char Buffer[MaxBufLen]; static int CharsInBuf,CircIn,CircOut; static void (interrupt far *OldAsyncInt)();

static void interrupt far AsyncInt(void); void Init_COM(int ComPortAddr, unsigned char IntVectNum, int Baud, unsigned char Data, unsigned char Stop, unsigned char Parity) { unsigned char High,Low; int f; comportaddr=ComPortAddr; intvectnum=IntVectNum; CharsInBuf=0;CircIn=0;CircOut=0; f=(Baud/100); f=1152/f; High=f/256; Low=f-High*256; outp(ComPortAddr+3,0x80); outp(ComPortAddr,Low); outp(ComPortAddr+1,High); Data=(Data-5)|((Stop-1)*4); if(Parity==2) Data=Data|0x18; else if(Parity==1) Data=Data|0x8; outp(ComPortAddr+3,Data); outp(ComPortAddr+4,0x0a);

实验四-串口通信实验

姓名:彭嘉乔 学号:3130104084 日期:2015.05 地点: ___________ 指导老师:弓 ________________ 成绩: 实验类型: 同组学生姓名:吴越 、实验内容和原理(必 填) 四、操作方法和实验步骤 六、实验结果与分析(必 填) 七、讨论、心得 一、实验目的 1、掌握80C51串行口工作方式选择、理解串行口四种通讯模式的区别、波特率发生器的作用及通讯过程屮的时 序关系。 2、 掌握串口初始化的设置方法和串行通信编程的能力。 3、 了解PC 机通讯的基本要求,掌握上位机和下位机的通讯方法。 4、 编写简单的通信协议(如串行口工作方式、波特率、校验方式、出错处理等) 二、 实验器材 1、 Micetek 仿真器一台。 2、 实验板一块。 3、 PC 机电脑一台。 4、 九针串口线一条。 別f 尹丿占实验报告 课程名称:彳 — 实验名称:实验四 串口通信实验 、实验目的和要求(必 填) 三、主要仪器设备(必 填) 五、实验数据记录和处理

三、实验原理 串口通讯对单片机而言意义重大,不但可以实现将单片机(下位机)的数据传输到PC端(上位机),

便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是 RS232电平的,而单片机的 串口是TTL 电平的,两者Z 间必须有一个电平转换电路,本实验采用专用芯片 也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。 3. 1 RS232九针串口基本功能简介 九针串口即RS-232接口,是个人计算机上的通讯接口之一,由电子工业协会 Industries Association , EIA)所制定的异步传输标准接口。通常RS-232接口以9个引脚(DB-9)或是25个引脚(DB-25) 的型态出现,一般个人计算机上会有两组 RS-232接口,分别称为COM1和COM2。该接口分 为公头子和母头子。九针串口(母头)的功能如下,请见图 1 : 9 / \ 6 Ov 3v Ov Ov 图1 RS232九针串口母头功能说明 分别为1 :载波检测 (DCD) ; 2 :接收数据(RXD) ; 3 :发送数据(TXD) : 4 :数据终端准备 好(DTR) ; 5 :信号地(GND) ; 6 :数据准备好(DSR) ; 7 :发送请求(RTS) ; 8 :发送清除(CTS) ; 9 :振铃 指示(RI)接法。 本实验采用三线制连接串口,也就是说和电脑的 9针串口只需连接其屮的3根线:第5脚的GND 、 第2脚的RXD 、第3脚的TXD 。这是最简单的连接方法, 但是已满足本实验硬件需求, 电路如图2所示, MAX232的第11脚和单片机的11脚连接,通过MAX232芯片的电平转换,将T1OUT 输出连接板子上9针串口(母头)MAX232进行转换,虽然 (Electronic

基于verilog的串口通信实验指导和源程序

自己看了很多材料以后,精心整理的串口通信实验原理和指导,在网上找了很多代码,大部分因为没有很好的注释,看起来很头疼,于是自己写了一份,附带详细的注释,在modelsim仿真器上已经得到验证,现在传上来,仅供参考。 PS1:最后部分给出了一个测试文件,写的非常简单,只是验证了功能,不是很好的测试; PS2:代码部分看上去有点乱,因为在word中代码的层次结构无法清晰显示,如有需要,下载后把代码copy到notepad++这种类似的专用变成工具里面,就很清晰的显示代码和注释了。 第一部分:实验原理串行通信要求的传输线少,可靠性高,传输距离远,被广泛应用于计算机和外设的数据交换。通常都由通用异步收发器(UART)来实现串口通信的功能。在实际应用中,往往只需要UART的几个主要功能,专用的接口芯片会造成资源浪费和成本提高。随着FPGA/CPLD的飞速发展与其在现代电子设计中的广泛应用,FPGA/CPLD功能强大、开发过程投资小、周期短、可反复编程、保密性好等特点也越来越明显。因此可以充分利用其资源,在芯片上集成UART功能模块,从而简化了电路、缩小了体积、提高了可靠性,而且设计时的灵活性更大,周期更短。

UART简介 UART(Universal Asynchronous Receiver Transmitter通用异步收发器)是一种应用广泛的短距离串行传输接口。常常用于短距离、低速、低成本的通讯中。8250、8251、NS16450等芯片都是常见的UART器件。 基本的UART通信只需要两条信号线(RXD、TXD)就可以完成数据的相互通信,接收与发送是全双工形式。TXD是UART发送端,为输出;RXD是UART接收端,为输入。 UART的基本特点是: (1)在信号线上共有两种状态,可分别用逻辑1(高电平)和逻辑0(低电平)来区分。在发送器空闲时,数据线应该保持在逻辑高电平状态。 (2)起始位(Start Bit):发送器是通过发送起始位而开始一个字符传送,起始位使数据线处于逻辑0状态,提示接受器数据传输即将开始。 (3)数据位(Data Bits):起始位之后就是传送数据位。数据位一般为8位一个字节的数据(也有6位、7位的情况),低位(LSB)在前,高位(MSB)在后。 (4)校验位(parity Bit):可以认为是一个特殊的数据位。校验位一般用来判断接收的数据位有无错误,一般是奇偶校验。在使用中,该位常常取消。 (5)停止位:停止位在最后,用以标志一个字符传送的结束,它对应于逻辑1状态。 (6)位时间:即每个位的时间宽度。起始位、数据位、校验位的位宽度是一致的,停止位有0.5位、1位、1.5位格式,一般为1位。 (7)帧:从起始位开始到停止位结束的时间间隔称之为一帧。

RS232串口通信实验报告

RS232串口通信实验报告 学院:电子信息学院 班级:08031102 姓名:张泽宇康启萌余建军 学号:2011301966 2011301950 2011301961 时间:2014年11月13日 学校:西北工业大学

一.实验题目: 设计一个简单的基于串口通信的信息发送和接受界面 二.实验目的: 1.熟悉并掌握RS232串口标准及原理。 2.实现PC机通过RS232串口进行数据的收发。 3.熟悉VC语言编写程序的环境,掌握基本的VC语言编程技巧。 三.实验内容 程序代码: P// PC1PC2Dlg.cpp : implementation file // #include "stdafx.h" #include "PC1PC2.h" #include "PC1PC2Dlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL

VC++_串口上位机编程实例

VC++串口上位机简单例程(源码及详细步骤) (4.33MB) VC++编写简单串口上位机程序 2010年4月13日10:23:40 串口通信,MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境等不少,VB、C#、LABVIEW等等,我会的语言很少,C语言用得比较多,但是还没有找到如何用C语言来写串口通信上位机程序的资料,在图书管理找到了用VC++编写串口上位机的资料,参考书籍,用自己相当蹩脚的C++写出了一个简单的串口上位机程序,分享一下,体验一下单片机和PC通信的乐趣。 编译环境:VC++6.0 操作系统:VMWare虚拟出来的Windows XP 程序实现功能: 1、PC初始化COM1口,使用n81方式,波特率57600与单片机通信。PC的COM口编号可以通过如下方式修改: 当然也可以通过上位机软件编写,通过按钮来选择COM端口号,但是此次仅仅是简单的例程,就没有弄那么复杂了。COM1口可用的话,会提示串口初始化完毕。否则会提示串口已经打开Port already open,表示串口已经打开,被占用了。 2、点击开始转换,串口会向单片机发送0xaa,单片机串口中断接收到0xaa后启动ADC转

换一次,并把转换结果ADCL、ADCH共两个字节的结果发送至PC,PC进行数值转换后在窗口里显示。(见文章末尾图) 3、为防止串口被一只占用,点击关闭串口可以关闭COM1,供其它程序使用,点击后按钮变为打开串口,点击可重新打开COM1。 程序的编写: 1、打开VC++6.0建立基于对话框的MFC应用程序Test,

2、在项目中插入MSComm控件:工程->增加到工程->Components and Controls->双击Registered ActiveX Controls->选择Microsoft Communications Control,version6.0->Insert,按

实验四-串口通信实验

. 实验报告 课程名称:微机原理与接口技术 指导老师:张军明 成绩:__________________ 实验名称:实验四 串口通信实验 实验类型:________________同组学生姓名:吴越 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的 1、掌握80C51串行口工作方式选择、理解串行口四种通讯模式的区别、波特率发生器的作用及通讯过程中的时序关系。 2、掌握串口初始化的设置方法和串行通信编程的能力。 3、了解PC 机通讯的基本要求,掌握上位机和下位机的通讯方法。 4、编写简单的通信协议(如串行口工作方式、波特率、校验方式、出错处理等)。 二、实验器材 1、Micetek 仿真器一台。 2、实验板一块。 3、PC 机电脑一台。 4、九针串口线一条。 三、实验原理 串口通讯对单片机而言意义重大,不但可以实现将单片机(下位机)的数据传输到PC 端(上位机), 专业:电子信息工程 姓名:彭嘉乔 学号:3130104084 日期:2015.05 地点:东3-409

而且也能实现PC对单片机的控制,51单片机有一个全双工的串行通讯口,所以单片机和PC之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,本实验采用专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。 3.1 RS232九针串口基本功能简介 九针串口即RS-232接口,是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。通常RS-232 接口以9个引脚(DB-9) 或是25个引脚(DB-25) 的型态出现,一般个人计算机上会有两组RS-232接口,分别称为COM1和COM2。该接口分为公头子和母头子。九针串口(母头)的功能如下,请见图1: 图1 RS232九针串口母头功能说明 分别为1:载波检测(DCD);2:接收数据(RXD);3:发送数据(TXD);4:数据终端准备好(DTR);5:信号地(GND);6:数据准备好(DSR);7:发送请求(RTS);8:发送清除(CTS);9:振铃指示(RI)接法。 本实验采用三线制连接串口,也就是说和电脑的9针串口只需连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是已满足本实验硬件需求,电路如图2所示,MAX232的第11脚和单片机的11脚连接,通过MAX232芯片的电平转换,将T1OUT输出连接板子上9针串口(母头)第2脚的RXD;板子上9针串口(母头)第3脚的TXD与MAX232芯片的第13脚相连,通过RS232电平转换为TTL电平后,将MAX232芯片的第12脚和单片机的10脚连接,同时9针

物联网实验指导书

物联网 实验指导书 四川理工学院通信教研室 2014年11月

目录 前言 (1) 实验一走马灯IAR工程建立实验 (5) 实验二串口通信实验 (14) 实验三点对点通信实验 (18) 实验四 Mesh自动组网实验 (21) 附录 (25) 实验一代码 (25) 实验二代码 (26) 实验三代码 (28) 实验四代码 (29)

前言 1、ZigBee基础创新套件概述 无线传感器网络技术被评为是未来四大高科技产业之一,可以预见无线传感器网络将会是继互联网之后一个巨大的新兴产业,同时由于无线传感网络的广泛应用,必然会对传统行业起到巨大的拉动作用。 无线传感器网络技术,主要是针对短距离、低功耗、低速的数据传输。数据节点之间的数据传输强调网络特性。数据节点之间通过特有无线传输芯片进行连接和转发形成大范围的覆盖容纳大量的节点。传感器节点之间的网络能够自由和智能的组成,网络具有自组织的特征,即网络的节点可以智能的形成网络连接,连接根据不同的需要采用不同的拓扑结构。网络具有自维护特征,即当某些节点发生问题的时候,不影响网络的其它传感器节点的数据传输。正是因为有了如此高级灵活的网络特征,传感器网络设备的安装和维护非常简便,可以在不增加单个节点成本同时进行大规模的布设。 无线传感器网络技术在节能、环境监测、工业控制等领域拥有非常巨大的潜力。目前无线传感器网络技术尚属一个新兴技术,正在高速发展,学习和掌握新技术发展方向和技术理念是现代化高等教育的核心理念。 “ZigBee基础创新套件”产品正是针对这一新技术的发展需要,使这种新技术能够得到快速的推广,让高校师生能够学习和了解这项潜力巨大的新技术。“ZigBee基础创新套件”是由多个传感器节点组成的无线传感器网络。该套件综合了传感器技术、嵌入式计算技术、现代网络及无线通信技术、分布式信息处理技术等多种技术领域,用户可以根据所需的应用在该套件上进行自由开发。 2、ZigBee基础创新套件的组成 CITE 创新型无线节点(CITE-N01 )4个 物联网创新型超声波传感器(CITE-S063)1个 物联网创新型红外传感器(CITE-S073)1个 物联网便携型加速度传感器(CITE-S082)1个 物联网便携型温湿度传感器(CITE-S121 )1个 电源6个 天线8根 CC Debugger 1套(调试器,带MINI USB接口的USB线,10PIN排线)物联网实验软件一套

串口通信实验报告全版.doc

实验三双机通信实验 一、实验目的 UART 串行通信接口技术应用 二、实验实现的功能 用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。 三、系统硬件设计 (1)单片机的最小系统部分 (2)电源部分 (3)人机界面部分

数码管部分按键部分 (4)串口通信部分 四、系统软件设计 #include #define uchar unsigned char #define uint unsigned int void send(); uchar code0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9的数码管显示 sbit H1=P3^6; sbit H2=P3^7;

sbit L1=P0^5; sbit L2=P0^6; sbit L3=P0^7; uint m=0,i=0,j; uchar temp,prt; /***y延时函数***/ void delay(uint k) { uint i,j; //定义局部变量ij for(i=0;i

{ m=1; //KEY1键按下 return(m); } if(H2==0) { m=4; //KEY4键按下 return(m); } } } if(L2==0) { delay(5); if (L2==0) { L2=0;H1=1;H2=1; if(H1==0) { m=2; //KEY2键按下 return(m); } if(H2==0) { m=5; //KEY5键按下 return(m); } } } if(L3==0) { delay(5); if (L3==0) { L3=0;H1=1;H2=1; if(H1==0) { m=3; //KEY3键按下

单片机串口通信C程序及应用实例

一、程序代码 #include//该头文件可到https://www.sodocs.net/doc/184591431.html,网站下载#define uint unsigned int #define uchar unsigned char uchar indata[4]; uchar outdata[4]; uchar flag; static uchar temp1,temp2,temp3,temp; static uchar R_counter,T_counter; void system_initial(void); void initial_comm(void); void delay(uchar x); void uart_send(void); void read_Instatus(void); serial_contral(void); void main() { system_initial(); initial_comm(); while(1) { if(flag==1) { ES = 0; serial_contral(); ES = 1; flag = 0; } else read_Instatus(); } } void uart_send(void) { for(T_counter=0;T_counter<4;T_counter++) { SBUF = outdata[T_counter]; while(TI == 0);

TI = 0; } T_counter = 0; } uart_receive(void) interrupt 4 { if(RI) { RI = 0; indata[R_counter] = SBUF; R_counter++; if(R_counter>=4) { R_counter = 0; flag = 1; } } } void system_initial(void) { P1M1 = 0x00; P1M0 = 0xff; P1 = 0xff; //初始化为全部关闭 temp3 = 0x3f;//初始化temp3的值与六路输出的初始值保持一致 temp = 0xf0; R_counter = 0; T_counter = 0; } void initial_comm(void) { SCON = 0x50; //设定串行口工作方式:mode 1 ; 8-bit UART,enable ucvr TMOD = 0x21; //TIMER 1;mode 2 ;8-Bit Reload PCON = 0x80; //波特率不加倍SMOD = 1 TH1 = 0xfa; //baud: 9600;fosc = 11.0596 IE = 0x90; // enable serial interrupt TR1 = 1; // timer 1 RI = 0; TI = 0; ES = 1; EA = 1; }

串口通信实验讲解

课程名称:Zigbee技术及应用实验项目:串口通信实验指导教师: 专业班级:姓名:学号:成绩: 一、实验目的: (1)认识串口通信的概念; (2)学习单片机串口通信的开发过程; (3)编写程序,使单片机与PC通过串口进行通信。 二、实验过程: (1)根据实验目的分析实验原理; (2)根据实验原理编写C程序; (3)编译下载C程序,并在实验箱上观察实验结果。 三、实验原理: 串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,此时只需要一条数据线,外加一条公共信号地线和若干条控制信号线。因为一次只能传送一位,所以对于一个字节的数据,至少要分8位才能传送完毕,如图3-1所示。 图2-1串行通信过程 串行通信制式: (1)单工制式 这种制式是指甲乙双方通信时只能单向传送数据,发送方和接收方固定。 (2)半双工制式 这种制式是指通信双方都具有发送器和接收器,即可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。

(3)全双工制式 这种制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时能发送。 三种制式分别如图3-2所示 图3-2串行通信制式 3.1硬件设计原理 CC2530有两个串行通信接口USART0和USART1,两个USART具有同样的功能,可已分别运行于UART模式和同步SPI模式。 CC2530的两个串行通信接口引脚图分布如表3-1所示 表3-1 CC2530串行通信口引脚图分布 本实验CC2530模块使用的是USART1的位置2,P1_6和P1_7。

串口通信实验指导书

串口通信实验 一、实验目的 1、掌握8051单片机串行口工作原理; 2、掌握串口编程与调试方法; 3、掌握串口通信中标志位的查询法与中断法 二、实验任务 1、设置仿真器模块和Keil软件 2、接收PC机发送的控制命令,并返回字符; 3、根据控制命令,控制LED的亮灭; 三、实验设备 1、ID101 89S5x单片机模块 2、ID216 流水灯与交通灯模块 3、ID204 RS232模块(或者ID205 USB转串口模块) 4、STC单片机仿真模块(IAP15W4K58S4) 5、ID205 USB转串口模块 6、USB线(方口/打印机数据线) 7、RS232线(235连线,23交叉,选用) 8、便携电源箱(220V电源线、4芯端子直流电源线) 四、实验内容和步骤 (一)串口通信介绍 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串最基本的串口通信只需要使用3根线即可完成全双工通信,分别是地线、发送、接收。串口通信也可以有其他辅助通信线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。 波特率:这是一个衡量符号传输速率的参数。指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps。 起始位:起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,

UART串口通信实验报告

实验四 UART 串口通信 学院:研究生院 学号:1400030034 姓名:张秋明 一、 实验目的及要求 设计一个UART 串口通信协议,实现“串 <-->并”转换功能的电路,也就是 “通用异步收发器”。 二、 实验原理 UART 是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实 现全双工传输和接收。在嵌入式设计中,UART 用来主机与辅助设备通信,如汽 车音响与外接AP 之间的通信,与PC 机通信包括与监控调试器和其它器件,如 EEPROM 通信。 UART 作为异步串口通信协议的一种,工作原理是将传输数据的每个字符一 位接一位地传输。 其中各位的意义如下: 起始位:先发出一个逻辑” 0的信号,表示传输字符的开始。 资料位:紧接着起始位之后。资料位的个数可以是 4、5、6、7、8等,构成 一个字符。通常采用ASCII 码。从最低位开始传送,靠时钟定位。 奇偶校验位:资料位加上这一位后,使得“ 1的位数应为偶数(偶校验)或奇数 (奇校验),以此来校验资料传送的正确性。 停止位:它是一个字符数据的结束标志。可以是 1位、1.5位、2位的高电 平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能 在通信中两台设备间出现了小小的不同步。 因此停止位不仅仅是表示传输的结束, 并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步 的容忍程度越大,但是数据传输率同时也越慢。 空闲位:处于逻辑“ 1状态,表示当前线路上没有资料传送。 波特率:是衡量资料传送速率的指标。表示每秒钟传送的符号数(symbol )。 一个符号代表的信息量(比特数)与符号的阶数有关。例如资料传送速率为 120 字符/秒,传输使用256阶符号,每个符号代表8bit ,则波特率就是120baud,比 特率是120*8=960bit/s 。这两者的概念很容易搞错。 三、 实现程序 library ieee; use ieee.std 」o gic_1164.all; end uart; architecture behav of uart is en tity uart is port(clk : in std_logic; rst_n: in std 」o gic --系统时钟 --复位信号 rs232_rx: in std 」o gic rs232_tx: out std 」o gic --RS232接收数据信号; --RS232发送数据信号;); use ieee.std_logic_ un sig ned.all;

UART串口通信设计实例

2.5 UART串口通信设计实例(1) 接下来用刚才采用的方法设计一个典型实例。在一般的嵌入式开发和FPGA设计中,串口UART是使用非常频繁的一种调试手段。下面我们将使用Verilog RTL编程设计一个串口收发模块。这个实例虽然简单,但是在后续的调试开发中,串口使用的次数比较多,这里阐明它的设计方案,不仅仅是为了讲解RTL编程,而且为了后续使用兼容ARM9内核实现嵌入式开发。 串口在一般的台式机上都会有。随着笔记本电脑的使用,一般会采用USB转串口的方案虚拟一个串口供笔记本使用。图2-7为UART串口的结构图。串口具有9个引脚,但是真正连接入FPGA开发板的一般只有两个引脚。这两个引脚是:发送引脚TxD和接收引脚RxD。由于是串行发送数据,因此如果开发板发送数据的话,则要通过TxD线1 bit接着1 bit 发送。在接收时,同样通过RxD引脚1 bit接着1 bit接收。 再看看串口发送/接收的数据格式(见图2-8)。在TxD或RxD这样的单线上,是从一个周期的低电平开始,以一个周期的高电平结束的。它中间包含8个周期的数据位和一个周期针对8位数据的奇偶校验位。每次传送一字节数据,它包含的8位是由低位开始传送,最后一位传送的是第7位。

这个设计有两个目的:一是从串口中接收数据,发送到输出端口。接收的时候是串行的,也就是一个接一个的;但是发送到输出端口时,我们希望是8位放在一起,成为并行状态(见图2-10)。我们知道,串口中出现信号,是没有先兆的。如果出现了串行数据,则如何通知到输出端口呢?我们引入“接收有效”端口。“接收有效”端口在一般情况下都是低电平,一旦有数据到来时,它就变成高电平。下一个模块在得知“接收有效”信号为高电平时,它就明白:新到了一个字节的数据,放在“接收字节”端口里面。

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

实验六串行口通信实验 一、实验内容 实验板上有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的通信控件解决这一问题。 四、实验电路 [参考学习板说明书P27]

实验五 串行通信实验

实验五串行通信实验 1、(实验指导书Page52五)使用RS-232通信接口,实现AT89S15单片机与PC 机之间的数据通信。硬件接口采用MAX202电平转换芯片实现。PC机使用串口调试助手或者超级终端作为上位机串口调试程序。要求单片机程序运行后接收PC机发来的数据,并原样发送给PC机(MCU主频为11.0592MHz)。实验仪中MAX202驱动电路硬件连接如下图所示。 程序 ORG 0000H SJMP START ORG 0030H START:MOV SCON,#0D0H MOV TMOD,#20H MOV TH1,#0FAH MOV TL1,#0FAH MOV PCON,#00H SETB TR1 LOOP1:JNB RI,$ CLR RI MOV A,SBUF MOV SBUF,A JNB TI,$ SJMP LOOP1 SJMP $ END

2、电路图如下所示,编写程序实现串口的自发自收。串行口工作方式为1,发送数据块放在片内RAM空间30H~3FH中,通过串口发出,再通过串口接收,接收的数据放在片内RAM空间40H~4FH中。 程序 ORG 0000H SJMP START ORG 0030H START:MOV R0,#30H MOV R2,#00H MOV R3,#10H LOOP1:MOV A,R2 MOV @R0,A INC R0 INC R2 DJNZ R3,LOOP1 MOV R0,#30H MOV R6,#10H MOV R1,#40H MOV SCON,#40H MOV TMOD,#20H MOV TH1,#0F4H MOV TL1,#0F4H MOV PCON,#00H SETB TR1 SETB EA SETB ES SETB REN LOOP2:MOV A,@R0 MOV SBUF,A JNB TI,$ CLR TI INC R0 JNB RI,$ CLR RI MOV A,SBUF MOV @R1,A INC R1 DJNZ R6,LOOP2 SJMP $ END

单片机串口通讯实验报告

实验十单片机串行口与PC机通讯实验报告 ㈠实验目的 1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制; 2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议; 3.了解PC机通讯的基本要求。 ㈡实验器材 1.G6W仿真器一台 2.MCS—51实验板一台 3.PC机一台 ㈢实验内容及要求 利用8051单片机串行口,实现与PC机通讯。 本实验实现以下功能,将从实验板键盘上键入的字符或数字显示到PC 机显示器上,再将PC机所接收的字符发送回单片机,并在实验板的LED上显示出来。 ㈣实验步骤 1.编写单片机发送和接收程序,并进行汇编调试。 2.运行PC机通讯软件“commtest.exe”,将单片机和PC机的波特率均设定 为1200。 3.运行单片机发送程序,按下不同按键(每个按键都定义成不同的字符), 检查PC机所接收的字符是否与发送的字符相同。 4.将PC机所接收的字符发送给单片机,与此同时运行单片机接受程序,检 查实验板LED数码管所显示的字符是否与PC机发送的字符相同。

㈤ 实验框图

源程序代码: ORG 0000H AJMP START ORG 0023H AJMP SERVE ORG 0050H START: MOV 41H,#0H ;对几个存放地址进行初始化 MOV 42H,#0H MOV 43H,#0H MOV 44H,#0H MOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式0 LCALL DISPLAY ;初始化显示 MOV TMOD,#20H ;设置为定时器0,模式选用2 MOV TL1, #0E6H ;设置1200的波特率 MOV TH1, #0E6H SETB TR1 ;开定时器 MOV SCON,#50H ;选用方式1,允许接收控制 SETB ES SETB EA ;开中断 LOOP: ACALL SOUT ;键盘扫描并发送,等待中断 SJMP LOOP SERVE JNB RI,SEND ;判断是发送中断还是接收中断,若为发送中 断则调用 ACALL S IN ;发送子程序,否则调用接收子程序 RETI SEND: CLR TI ;发送子程序 RETI SIN: CLR RI ;接受子程序 MOV SCON, #00H MOV A, SBUF ;接收数据 LCALL XS ;调用显示子程序 RETI 子程序: SOUT: CLR TI ;清发送中断标志位 LCALL KEY ;调用判断按键是否按下子程序 MOV A,R0 ;将按键对应的数字存入A MOV SBUF,A ;输出按键数字给锁存 RET KEY: MOV P1,#0FFH ;将P1设置为输入口 MOV A, P1 CPL A ;将A内值取反

WIN_API串口通信详细讲解带范例程序说明

WIN32 API串口通讯实例教程 第一节实现串口通讯的函数及串口编程简介 API函数不仅提供了打开和读写通讯端口的操作方法,还提供了名目繁多的函数以支持对串行通讯的各种操作。常用函数及作用下: 函数名作用 CreateFile 打开串口 GetCommState 检测串口设置 SetCommState 设置串口 BuilderCommDCB 用字符串中的值来填充设备控制块 GetCommTimeouts 检测通信超时设置 SetCommTimeouts 设置通信超时参数 SetCommMask 设定被监控事件 WaitCommEvent 等待被监控事件发生 WaitForMultipleObjects 等待多个被监测对象的结果 WriteFile 发送数据 ReadFile 接收数据 GetOverlappedResult 返回最后重叠(异步)操作结果 PurgeComm 清空串口缓冲区,退出所有相关操作 ClearCommError 更新串口状态结构体,并清除所有串口硬件错误 CloseHandle 关闭串行口 用Windows API 编写串口程序本身是有巨大优点的,因为控制能力会更强,效率也会更高。 API编写串口,过程一般是这样的: 1、创建串口句柄,用CreateFile; 2、对串口的参数进行设置,其中比较重要的是波特率(BaudRate),数据宽度(BytesBits),奇偶校验(Parity),停止位(StopBits),当然,重要的还有端口号(Port); 3、然后对串口进行相应的读写操作,这时候用到ReadFile和WriteFile函数; 4、读写结束后,要关闭串口句柄,用CloseFile。 下面依次讲述各个步骤的过程。

光纤通信实验指导书(新格式)(精)

《—光纤通信原理—》 实验指导书 刘伟群编写 适用专业:计算机网络 计算机应用 湖南人文科技学院计算机科学技术系 2008年9 月 前言 光纤通信是大容量信息传输的主要手段,光纤通信技术是信息产业的主要支柱技术之一,光纤网络已经遍布全球。为了满足社会对人才的需求,各大学的许多专业(如电子与通信工程、光电子技术、电子信息工程和计算机应用等纷纷开设了有关光纤通信技术的专业理论课程,以培养这方面的专业人才。由于光纤通信是一门实验性很强的技术,除了课堂理论学习外,还需要实验性环节与之配合,否则学习效果会受到很大的影响。由于种种原因,光纤实验课程的开设很困难,许多学校只停留在课堂的理论教学。为了克服这些不足,我们经过多年的研究,研制成功了这个光纤通信实验平台,多次获军内外教学成果奖,现已广泛用于我们和兄弟院校的教学,取得了良好的教学效果,为光纤通信实验课程的开设提供了一种全新的实验教学模式。 该实验平台可置于一个便携式的实验箱内,配合常用的电子信号源、示波器和常用的光纤通信仪表就可以开设光纤通信系统原理的相关实验。其突出的优点为: 1、平台紧扣光纤通信系统的知识点,实验内容丰富,波形测试点多。 2、采用了模块化设计思想和数字化、软件化的实现手段,性能稳定可靠。 3、具有友好的人机界面,操作维护方便。

4、具有专业的指导老师进行实验箱的培训和实验课的指导。 5、具有配套的实验教材和光盘,由人民邮电等出版社正式出版。 由于实验课的开设与理论课相比,存在的问题较多,加上我们的经验和水平有限,肯定存在许多不足,欢迎与我们交流共同开设好实验课,让学生满意。 2008.6 目录 实验一:光纤损耗特性测量 (1 实验二:光源P-I曲线测试 (1 实验三:光纤机械接续与熔接 (1 实验四:线路码型实验 (5 实验五:光接收机灵敏度测试 (11 2M (11 实验六:模拟话音光传输实验 (14 实验七:2M数字光纤通信系统实验 (18 实验八:计算机串口数据光纤传输实验 (24 实验一:光纤损耗特性测量 实验学时:2 实验类型:验证 实验要求:必修 一、实验目的

最新串行通信实验报告整理

串行通信实验报告 班级姓名学号日期 一、实验目的: 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 0000H LJMP MAIN ORG 0023H LJMP COM_INT ORG 1000H MAIN: MOV SP,#53H MOV 78H,#20H

MOV 77H,00H MOV 76H,20H MOV 75H,40H ACALL TRANS HERE: SJMP HERE TRANS: MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1 MOV SCON,#40H MOV IE,#00H CLR F0 MOV SBUF,78H WAIT1: JNB TI,WAIT1 CLR TI MOV SBUF,77H WAIT2: JNB TI,WAIT2 CLR TI MOV SBUF,76H WAIT3: JNB TI,WAIT3 CLR TI

相关主题