当前位置:文档之家› 串口通信电路设计

串口通信电路设计

串口通信电路设计
串口通信电路设计

第十一章制作PCB

11.1设计任务

使用Protel2004设计出串口通信电路。画出电路原理图和PCB板,并生成制造文件。11.2创建项目文件及工作环境

打开Protel2004,选择菜单中【文件】|【创建】|【项目】|【PCB项目】,系统的工作区会自动产生PCB项目文件PCB_Project1.PrjPCB。右键点击,在右

键菜单中选择【追加新文件到项目中】|【Schematic】,则系统会自动产生Sheet1.SchDoc 文件和原理图设计界面。选择菜单【文件】|【保存】,系统会弹出【保存】对话框,如图11-1

所示【保存】对话框。将文件名称改为Serial.SchDoc,点击。

图11-1 【保存】对话框

右键点击,在右键菜单中选择【追加新文件到项目中】|【PCB】,

2

则系统会自动产生PCB1.PcbDoc 文件和原理图设计界面。选择菜单【文件】|【保存】,系统会弹出【保存】对话框,如图11-2所示【保存】对话框。将文件名称改为Serial.PcbDoc ,点击

图11-2 【保存】对话框

11.3 原理图设计

11.3.1 设计思路

本例使用的是MAXIM 公司的Max232芯片,设计串口通信电路。

11.3.2 元件库管理与设计

根据8.4.1中介绍的方法添加元件库。将Library 文件夹中的Miscellaneous Connectors.IntLib 和Miscellaneous Devices.IntLib 以及Library/Maxim 文件夹中的Maxim Communication Transceiver.IntLib 添加进来。如图11-3和11-4所示【打开】对话框。

3

图11-3 【打开】对话框

图11-3 【打开】对话框

4

添加元件库后,【可用元件库】对话框就变成如图11-4所示。点击。

图11-4 【可用元件库】

11.3.3 原理图布线

单击屏幕右侧按钮,弹出【元件库】对话框,在下拉菜单中选择元件库,在元件清

性】 对话框,修改元件标识符和注释,点击

,然后将选择的元件放置在原理图

5

表11-1 元件参数表

选择菜单【放置】|【端口】属性】 对话框设置端口名称和I/O 类型。点击

,然后将端口放置在原理图上。串

口通信电路的原理图所需要的端口参数如表11-2所示端口参数表。

表11-2 端口参数表

选择菜单【放置】|【电源端口】开【电源端口】 对话框设置电源端口的网络和风格。点击

,然后将电源端口放置在原理图上。串口通信电路的原理图所需要的电源端口参数如表11-3所示电源端口参数表。

表11-3 电源端口参数表

将串口通信电路所需要的所有元件全部放置在原理图中,如图11-5所示串口通信电路所需要的所有元件。然后选择菜单中【放置】|【导线】,将所有的元件连接起来,如图11-6所示连接好所有的元件。

6

图11-5 串口通信电路所需要的元件

图11-6 连接好所有元件

7

络标签】对话框,在下拉菜单中选择网络名称。然后点击

,将网络标签放在原理

图中相应位置。把所有的网络标签放在相应的端口后,串口通信电路原理图就完成了。如图11-7所示串口通信电路原理图。

图11-7 串口通信电路原理图

11.3.4 编译工程及查错

当原理图连接好后,需要对原理图的连接进行错误检查。选择菜单中【项目管理】|【Compile PCB Project 】,这时系统开始对项目进行编译,如果电路图连接出现问题,则系统会弹出【Messages 】对话框,根据【Messages 】对话框中提示的错误对原理图进行修改。。如果电路连接正确就不会出现【Messages 】对话框。

11.3.5

生成元器件报表

选择菜单中【报告】|【Bill of Materials 】,系统会弹出元器件报表。如图11-8所示元器件报表。点击可以生成预览元件报告,点击

可以导出元件报表,

点击

系统会用Excel 打开元件报表。

8

图11-8 元器件报表

11.3.6 生成网络文件

选择菜单中【设计】|【设计项目的网络表】|【Protel 】

,系统的工作面板中会出现

文件夹,点击,就会看到系统生成的网络表文件。如图11-9所

示网络表。

9

图11-9 网络表

11.4 PCB 图设计

11.4.1 规划电路板

选择【文件】|【创建】|【PCB 文件】,系统自动建立PCB1.PcbDoc ,选择【文件】|【保存】,然后保存为Serical.PcbDoc 文件。选择Keep-Out Layer ,然后画出电路板的边界。

11.4.2 导入网络表和元件

选择菜单中【设计】|【Import Changes From …】,系统会弹出【工程变化订单】对话框。如图11-10所示【工程变化订单】对话框。点击,系统将检查工程变化。点

系统将完成工程变化。完成工程变化后,点击

,结束【工程变

化订单】对话框。这时,元件就被导入到PCB 电路板上,如图11-11所示元件导入到PCB 板中。

1

图11-10 【工程变化订单】对话框

图11-11 元件导入到PCB 板中

11

11.4.3 自动布局

放置元件可以使用自动布局和手动布局。选择菜单中【工具】|【放置元件】|【自动布局】,可以对元件进行自动布局。 自动布局之后,可以对元件进行手动调整。调整之后的元件布局图如图11-12所示元件布局图。

图11-12 元件布局图

11.4.4 全局布线

布线的方法有两种,一种是自动布线,一种是手动交互式布线。这里我们使用手动交互式布线。根据元件焊盘之间的连接关系,手动进行连接。布线结果如图11-13所示串口通信电路布线结果。

1

2

图11-13 串口通信电路布线结果

11.4.5 DRC 检查和3D 效果图

选择菜单中【工具】|【设计规则检查】,系统弹出【设计规则检查器】,点击按钮

,系统对PCB 电路图进行DRC 检查。然后系统弹出DRC 检查报告。

如图11-14所示DRC 检查报告。

13

图11-14 DRC 检查报告

选择菜单中【查看】|【显示三维PCB 板】,系统将产生PCB 板的三维效果图。如图11-15和图11-16所示PCB 板的三维效果图。

1

4

图11-15 PCB 板顶层的三维效果图

图11-15 PCB 板底层的三维效果图

15

11.5 制造文件生成

选择菜单中【文件】|【创建】|【输出作业文件】,系统会弹出Job1.OutJob 文件。如图11-16所示Job1.OutJob 文件。选择其中的,然后选择菜单中【工具】|【选择执行】

,系统地工作面板中就会出现

,点击就会出现3个钻孔文件,分别为:Serial.DDR ,Serial.LDP ,Serial.TXT 。如图11-17所示3个钻孔文件。

图11-16 Job1.OutJob 文件

图11-17 3个钻孔文件

这3个钻孔文件就是所需要的制造文件。

串口通信实验报告全版.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键按下

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

常见串口接口电路设计集锦

常见串口接口电路设计集锦 六种常用串口接口电路1、并口接口(分立元件) 适用于Windows 95/98/Me 操作系统。这个电路与FMS 随软件提供的电路比多了一个200K 的电阻,这个主要是为了与JR 的摇控器连接,因为JR 的摇控器教练口好象是集电极开路设计的,需要加一只上拉电阻才能正常工作。 不过电路还是满简单的,用的元件也很少,很适合无线电水平不太高的朋友们 制作,只是不能用于Win2000/XP 上有点让人遗憾。 2、串口接口(分立元件)字串5 适用于Windows 95/98/Me 操作系统,电路也不是很复杂,当然元件比并口电路多了一些,而且串口的外壳比并口小很多,如何把这些元件都放到小 小的外壳里免不了要大家好好考虑一下了。当做体积小也是它的最大的优点, 而且不用占用电脑并口,因为现在还有一些打印机还是要用并口的。缺点同样 是不支持Win2000/XP。 3、串行PIC 接口(使用PIC12C508 单片机)字串9 适用于Windows 95/98/Me/2000/XP 操作系统。电路简单,只是用到MicroChip 公司的PIC12C508 型单片机,免不了要用到编程器向芯片里写程序了,这个东西一般朋友可能没有,不过大多卖单片机的地方都有编程器,你只 要拿张软盘把需要用的HEX 文件拷去让老板帮你写就可以了。这个接口最大 的优点就是支Win2000/XP 操作系统,还可以用PPJOY 这个软件来用摇控器虚拟游戏控制器玩电脑游戏。 4、25 针串行PIC 接口(使用PIC12C508 单片机) 适用于Windows 95/98/Me/2000/XP 操作系统。电路同9 针的接口基本一样,只不过是接25 针串口的,现在用的不是很多了。

C语言串口通信助手代码

该程序全部由C写成没有C++ 更没用MFC 完全是自娱自乐给需要的人一个参考 #include "stdafx.h" #include #include "resource.h" #include "MainDlg.h" #include #include #include HANDLE hComm;//用于获取串口打开函数的返回值(句柄或错误值)OVERLAPPED m_ov; COMSTAT comstat; DWORD m_dwCommEvents;

TCHAR cRecs[200],cSends[100]; //接收字符串发送字符串 char j=0,*cCom; //接收用统计数据大小变量端口选择 BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand); HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); } return FALSE; } /*系统初始化函数*/ BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { HWND hwndCombo1=GetDlgItem(hwnd,IDC_COMBO1); ComboBox_InsertString(hwndCombo1,-1,TEXT("COM1")); ComboBox_InsertString(hwndCombo1,-1,TEXT("COM2"));

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;

揭秘DSP电机控制串行通信系统电路设计

揭秘DSP电机控制串行通信系统电路设计 在电机控制系统中,客户端要通过上位机来设置电机的运行参数,而 被控电机也要将各种运行状态信息实时地传给远程控制端客户,串行通信由于 连线少,成本低,简单可靠,被广泛应用。本文利用SCI 串行通讯接口实现DSP 控制器与PC 机的通信连接;电机控制系统中还必须有数码显示驱动电路,以便于现场控制人员及时了解电机当前的转速等信息,因此利用SPI 同步串行口来实现DSP 与外围设备之间的通信就很有必要。分析了数字信号处理芯片TMS320LF2407ADSP 的串行外设接口SPI,及串行通信接口SCI 模块。在电机控制实验系统中,给出了由这2 个模块构成的串行通信应用实例。重点讲述了 相关的串行通信接口电路硬件设计高。 串行通信接口模块的硬件电路设计 电机的运行参数,如转向、转速及位置信号等由主机制定,通过RS232 串行通信传输到DSP,DSP 再将运行结果返回给主机的电机控制系统中,以实现远程客户端和被控电机之间的通讯。由于上位机(PC)一般都带有RS232 接口,所以我们利用上位机的串行口与下位机DSP 的异步串行口SCI 来进行RS232C 通信和数据交换,实现计算机对工业现场被控对象的检测和控制。TMS32OLF24O7A 的串行通信接口电路如该实验系统利用DSP 的SCI 串行通信接口电路实现了DSP 控制器与上位机的通讯连接,整个接口电路简单,可靠性高。DSP 控制器通过SCI 串行通信接口电路,将控制系统的实时运行状态上传给上位机供存储和分析,而上位机则通过SCI 串行通信接口电路将控制指令(例如起、停、正转、反转、运行速度等)发送给DSP 控制器,以实现对电机控制系统的实时控制。本试验系统的串行通信速率可变,波特率默认值为l 9200,从l200,2400,4800,9 600,到l9 200 可调。

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);

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

一、程序代码 #include//该头文件可到https://www.doczj.com/doc/7c14160971.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; }

串行通信实验报告材料

串行通信实验报告 班级姓名学号日期 一、实验目的: 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

单片机串口通讯实验报告

实验十单片机串行口与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内值取反

c语言串口通信范例

c语言串口通信范例 This manuscript was revised by the office on December 22, 2012

一个c语言的串口通信程序范例 标签:分类: 最近接触一个项目,用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);

实验四 UART串口通信实验报告

实验四UART串口通信 一、实验目的及要求 设计一个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_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity uart is port(clk : in std_logic; --系统时钟rst_n: in std_logic; --复位信号 rs232_rx: in std_logic; --RS232接收

基于单片机的串行通信接口的设计开题报告

专科毕业设计/论文 开题报告课题名称基于单片机的串行通信接口的设计 系别机电与自动化学院 专业班机电一体化技术1002班 姓名柯辉 评分 导师(签名) 华中科技大学武昌分校 20年月日

毕业设计(论文)开题报告撰写要求: 1.开题报告的主要内容 1)所选课题国内、外研究及发展状况 2)课题研究的目的和意义; 3)课题研究的主要内容、难点及关键技术; 4)研究方法及技术途径; 5)实施计划。 2.主要参考文献:不少于3篇。 3.开题报告的字数不少于1500字,格式按《华中科技大学武昌分校专科毕业设计(论文)撰写规范》的要求撰写。 4.开题报告单独装订,本附件为封

华中科技大学武昌分校专科学生毕业设计开题报告学生姓名柯辉学号20102821076专业班级机电一体化1002系别机电与自动化指导教师吴蕾职称工程师课题名称基于单片机的串行通信接口的设计 1课题国内、外研究及发展状况 1.1课题在国内研究发展状况 随着城市的不段发展和工业科技的不断进步,电子工业产品也越来越自动化和小型化,人们对信息流量的需求也在不断增长,传统并行通信接口技术成为进一步提高数据传输速率的瓶颈。过去主要用于光纤通信的串行通信接口技术与并行接口技术相比其设计简单、控制方便不仅简化了系统的连线,缩小了电路板的面积,节省了系统资源而且还具有扩展性好、编程方便,易于实现用户系统软硬件的模块化以及标准化,串行接口少,便于远距离传输等优点所以串行通信接口技术正在取代传统并行通信接口技术而成为高速接口技术的主流。而在串行通信接口技术中又以RS232和RS485两种串口应用的最为广泛。在国内一些高端知名的电子产品公司如联想、华为、海信等连年不断的对电脑、手机进行升级处理这些都离不开接口技术的快速发展,而人们对这类高端产品的依赖也促进了电子科技的进一步发展而串行通信接口技术正是电子科技的重中之重。有需求就有市场科技永远是人们生活中的一大主流,这就为串行通信接口的发展铺上了一条光明大道。 1.2课题在国外的研究发展状况 串行通信接口技术的发展越来越迅速蓬勃不仅仅表现在国内在国外发展同样迅猛由于国外政府对于IT行业的重视和照顾纷纷采取了一系列相关政策来促进串行通信技术发展使的串口技术成为了进入宽带化、网格化而且还具有了移动性、泛在性的可信网。例如美国的EIA、微软等协会、公司对串口技术的重视不断对串口技术进行升级改良。iphone、三星等国外智能手机的不断升级改良也离不开串行通信接口技术的进一步发展,所以人们想要生活的更好电子技术的研究是必不可少的而其中的串行通信技术也是重中之重。

单片机串口通信实验报告

信息工程学院实验报告 课程名称:单片机原理及接口 实验项目名称:串口通信实验实验时间: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构成接收线路。一台计算机得TxD、RxD线分别与另一台计算机得RxD、TxD线相连。 由于在串行通信过程中得并串转换、串并转换、线路检测、采样判决、组帧、 拆帧、发送与接收等操作需消耗CPU大量时间,以至CPU无法处理其它工 作,因而开发出专用于处理异步串行通信发送与接收工作得芯片UART(通用 异步串行通信接收发送器)。 CPU只需将要发送得一个字节数据交给UART,其它发送工作由UART自动完成,当UART将一帧数据发送完毕,会通知CPU 已发送完,可提交下一个字节。 UART自动监测线路状态并完成数据接收工作,当接收到一个字节数据后,UART会通知CPU来读取。采用UART 后,CPU得负担大大减轻了。

基于51单片机的双机串行通信课程设计 1000110061

基于AT89C51单片机的双机串行通信设计 姓名:杨应伟 学号:100110061 专业:机械设计制造及其制动化 班级:机电二班

前言 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域随着计算机技术的发展及工业自动化水平的提高, 在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式,而多机控制主要通过多个单片机之间的串行通信实现。串行通信作为单片机之间常用的通信方法之一, 由于其通信编程灵活、硬件简洁并遵循统一的标准, 因此其在工业控制领域得到了广泛的应用。 在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。 在通信过程中,使用通信协议进行通信。在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。 串行通信是单片机的一个重要应用,本次课程设计就是要利用单片机来完成一个系统,实现爽片单片机床航通信,通信的结果使用数码管进行显示,数码管采用查表方式显示,两个单片机之间采用RS-232进行双击通信。在通信过程中,使用通信协议进行通信。

串口通讯实验报告

网络编程与实践实验报告 实验内容:串口通信编程 学号:S201502189 姓名:职荣豪 日期:2015-9-28

一、实验要求 使用VS2010编写基于对话框的MFC应用程序,两个窗口分别使用两个串口,使得这两个窗口可以进行通信,包括数据的发送与接收。 二、实验原理 本实验使用Microsoft Communications Control控件,利用这个ActiveX控件,只需要编写少量代码即可轻松进行通信。 该控件相关的函数如下: put__CommPort:设置串口号 put_Settings:以字符串的形式设置波特率、奇偶校验位(n-无校验,e-偶校验,o-奇校验)、数据位数、停止位数 put_InputMode:设置接收数据的类型(0-文本类型,1-二进制类型) put_InputLen:设置从接收缓冲区读取的字节数,0表示全部读取 put_InBufferSize:设置接收缓冲区大小 put_OutBufferSize:设置发送缓冲区大小 put_RThreshold:设定当接收几个字符时触发OnComm事件,0表示不产生事件,1表示每接收一个字符就产生一个事件 put_SThreshold:设定在触发OnComm事件前,发送缓冲区内所允许的最少的字符数,0表示发送数据时不产生事件,1表示当发送缓冲区空时产生OnComm事件put_PortOpen:打开或关闭串口,传入参数为true时打开串口,传入参数为false时关闭串口 get_CommEvent:获得串口上刚发生的事件,事件值为2表示接收到数据 get_InBufferCount:获得缓冲区中的数据位数 get_Input:获取缓冲区数据,返回类型为VARIANT put_Output:发送数据 三、设计思路 需要添加一个Microsoft Communications Control控件,用于进行串口通信。 由于要求同一程序可运行两个窗口进行相互通信,需要两个窗口开启两个不同串口,故需要添加一个Edit Control控件用于输入串口号,并添加打开串口按钮,在点击该按钮时对串口控件的参数进行设置并开启串口。同时添加关闭串口按钮,点击后关闭串口并可以对串口号进行修改。 需要添加两个Edit Control 分别用于显示接收到的数据以及输入要发送的数据。 需要添加一个发送按钮,点击后发送输入的数据。 四、实验步骤 1.建立基于对话框的MFC应用程序 2.添加界面控件并设置ID与Caption

异步串行接口电路及通信系统设计设计报告

异步串行接口电路及通信系统设计 设计报告 2009级可编程逻辑课程名称: 实验题目:学生姓名: YC 开课学院: Bio开课时间: 2011课程设计可编程逻辑设计异步串行接口电路及通信系统设计、SXL、ZY、YLJ、WJ 学院至2012学年第二学期重庆大学本科学生课程设计指导教师评定成绩表学院年级学生姓名课程设计题目be学院2009级指导教师专业Zxm. Wxp. BME YC、SXL、ZY、YLJ、WJ 异步串行接口电路及通信系统设计指导教师评语课程设计成绩指导教师签名:年月日重庆大学本科学生课程设计任务书课程设计题目学院BE学院异步串行接口电路及通信系统设计专业BME 年级、班09 BME 01、02班

设计要求:设计一个能进行异步全双工串行通信的模块,该模块以固定的串行数据传送格式收发数据。1)每帧数据供10 位,其中1位启动位,8位数据位,1位停止位。2)波特率为:9600。3)收发误码率摘要摘要通用串口是远程通信接口,在数字系统使用很普遍,是一个很重要的部件。本论文使用VHDL语言描述硬件功能,并适当借助Verilog HDL 语言,利用在FPGA 芯片上的综合描述,采用模块化设计方法设计UART的各个模块。其中包括波特率发生器,程序控制器,UART数据接收器和UART数据发送器,采用的外部时钟为50MHZ,波特率为9600。在QuartusII 环境下进行设计、编译和仿真。最后的程序编译仿真结果及硬件测试结果表明系统设计完全正确。关键字:VHDL; Verilog HDL;UART; 帧格式; FPGA;异步通信I 摘要Abstract In this paper, the use of

RS485串行通信电路设计

RS485串行通信接口电路的总体设计 在电参数仪的设计中,数据采集由单片机AT89C52负责,上位PC机主要负责通信(包括与单片机之间的串行通信和数据的远程通信),以及数据处理等工作。在工作中,单片机需要定时向上位PC机传送大批量的采样数据。通常,主控PC机和由单片机构成的现场数据采集系统相距较远,近则几十米,远则上百米,并且数据传输通道环境比较恶劣,经常有大容量的电器(如电动机,电焊机等)启动或切断。为了保证下位机的数据能高速及时、安全地传送至上位PC机,单片机和PC机之间采用RS485协议的串行通信方式较为合理。 实际应用中,由于大多数普通PC机只有常用的RS232串行通信口,而不具备RS485通信接口。因此,为了实现RS485协议的串行通信,必须在PC机侧配置RS485/RS232转换器,或者购买适合PC机的RS485卡。这些附加设备的价格一般较贵,尤其是一些RS485卡具有自己独特的驱动程序,上位PC机的通信一般不能直接采用WINDOW95/98环境下有关串口的WIN32通信API函数,程序员还必须熟悉RS485卡的应用函数。为了避开采用RS485通信协议的上述问题,我们决定自制RS485/RS232转换器来实现单片机和PC机之间的通信。 单片机和PC机之间的RS485通信硬件接口电路的框图,如下图1所示。 从图1可看出,单片机的通信信号首先通过光隔,然后经过RS485接口芯片,将电平信号转换成电流环信号。经过长距离传输后,再通过另一个RS485接口芯片,将电流环信号转换成电平信号。 图1单片机与PC机之间的RS485通信硬件接口电路的框图(略) 该电平信号再经过光电隔离,最后由SR232接口芯片,将该电平信号转换成与PC机RS232端口相兼容的RS232电平。由于整个传输通道的两端均有光电隔离,故无论是PC机还是单片机都不会因数据传输线上可能遭受到的高压静电等的干扰而出现“死机”现象。 2接口电路的具体设计 2-1单片机侧RS485接口电路的设计 单片机侧RS485接口电路如图2所示。 AT89C52单片机的串行通信口P3 0(RXD)和P3 1(TXD)的电平符合TTL/CMOS标准(逻辑“0”的电平范围为0V~0.8V,逻辑“1”的电平为2 4V~VCC),它们首先通过光电隔离器件6N137隔离,以保护单片机不受传输通道的干扰影响,其中T01和?T02是为了增加光隔输入端的驱动能力。光隔6N137的左侧电源与单片机相同,右侧必须采用另一组独立的+5V电源,且两组电源不能供电。 图2单片机侧RS485接口电路

单片机实验报告串行口

单片机实验报告 实验名称:串行通信实验 姓名:魏冶 学号:090402105 班级:光电一班 实验时间:2011-11-29 南京理工大学紫金学院电光系

一、实验目的 1、理解单片机串行口的工作原理; 2、学习使用单片机的TXD、RXD口; 3、了解MAX232芯片的使用。 二、实验原理 MCS-51单片机内部集成有一个UART,用于全双工方式的串行通信,可以发送、接收数据。它有两个相互独立的接收、发送缓冲器,这两个缓冲器同名(SBUF),共用一个地址号(99H),发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写入。 要发送的字节数据直接写入发送缓冲器,SBUF=a;当UART接收到数据后,CPU从接收缓冲器中读取数据,a=SBUF;串行接口内部有两个移位寄存器,一个用于串行发送,一个用于串行接收。定时器T1作为波特率发生器,波特率发生器的溢出信号做接收或发送移位寄存器的移位时钟。TI和RI分别发送完数据和接收完数据的中断标志,用来向CPU发中断请求。 三、实验内容 1、学会DPFlash软件的操作与使用,以及内部内嵌的一个串口调试软件的使用。 2、用串口连接PC机和DP-51PROC单片机综合仿真实验仪。 3、编写一个程序,利用单片机的串行口发送0x55,波特率为9600。 程序设计流程图

4、程序下载运行后,可在PC机上的串口调试软件上(内嵌在DPFlash软件的串口调 试器,设置通信口为COM1口,波特率为9600,数据位8,停止位1)看到接收到“UUUUUU……”,出现这样的结果就基本达到要求。 (1)代码: #include void main() { long int i; SCON=0x40; PCON=0; TMOD=0x20; TH1=0xfd; TL1=0xfd; TI=1; TR1=1; star:for(i=0;i<5000;i++); SBUF=0x55; goto star; } (2)电路图; 5、在单片机接收到0x55时返回一个0x41,在PC机一端,以接收到0x41完成,波特率2400。

相关主题
文本预览
相关文档 最新文档