实验三 串行通信
- 格式:doc
- 大小:583.50 KB
- 文档页数:8
串行通信的工作原理串行通信是一种在计算机或其他电子设备之间传输数据的方式,其工作原理是通过逐位地传输数据,从而实现数据的传输和通信。
串行通信与并行通信相比,具有传输速度较慢但传输距离较远、传输线数量较少的优势。
在串行通信中,数据以位的形式传输,即每次只传输一个位。
数据通过串行通信线路一个接一个地传输,按照一定的协议和规则进行传输。
串行通信的工作原理主要包括以下几个方面:1. 数据传输方式:串行通信通过一个传输线路逐位地传输数据,通常是通过串行通信线路传输数据。
数据在传输线路上传输时,会经过编码和调制处理,以确保数据传输的可靠性和准确性。
2. 数据传输速率:串行通信的数据传输速率通常以波特率(Baud rate)来衡量,波特率表示每秒传输的波特数,也可以理解为每秒传输的符号数。
波特率越高,数据传输速度越快。
3. 数据帧结构:在串行通信中,数据通常以数据帧的形式传输。
数据帧包括数据字段、校验字段、控制字段等,用于确保数据传输的正确性和完整性。
4. 数据传输协议:串行通信通常使用一定的数据传输协议,如UART(通用异步收发传输)协议、SPI(串行外设接口)协议、I2C(Inter-Integrated Circuit)协议等。
这些协议定义了数据传输的格式、时序、校验等规则,用于确保数据的可靠传输。
5. 数据传输方式:串行通信可以采用同步传输方式和异步传输方式。
同步传输方式需要发送方和接收方之间保持时钟同步,数据按照时钟信号进行传输;而异步传输方式则不需要时钟信号,数据的传输是根据数据帧的起始和停止位进行的。
总的来说,串行通信的工作原理是通过逐位传输数据,通过数据传输线路、数据传输方式、数据帧结构、数据传输协议等多个方面的配合,实现数据的传输和通信。
串行通信在计算机、通信、工业控制等领域广泛应用,是现代电子设备数据传输的重要方式。
串口基本信息用一台电脑实验串口自发自收,实验前要将串口(以9针为例)的发送引脚(2脚)和接受引脚(3脚)短接。
三线连接:适用于计算机之间尤其是PC机和单片机之间的数据通信。
其连接信号对为(TxD,RxD)、(RxD,TxD)、(SG,SG)。
即发送数据TxD端和接受数据RxD端交叉连接,信号地SG对应连接。
七线交叉连接:适用于同型号的计算机之间的连接,如PC机间的数据通信。
其连接信号对为:(TxD,RxD)、(RxD,TxD)、(SG,SG)、(RTS,CTS)、(CTS,RTS)、(DSR.DTR)、(DTR,DSR)。
其中,TxD、RxD、SG与前面信号的含义相同,RTS为请求发送,CTS为准许发送,DSR为数据装置准备好,DTR为数据终端准备好。
在本地连接的微机系统中,RTS、CTS、DTR、DSR用作硬件联络控制信号。
目前使用的串口连接线有DB9和DB25两种连接器,用户可以国家使用的具体机器选择相应的连接器。
一个串口通讯类在/network/serialport.shtml。
PC机的RS-232接口的电平标准是-12V标示“1”,和+12V表示“0”,有些单片机的信号电平时TTL 型,即大于2.4v表示“1”,小于0.5v表示“0”,因此采用RS-232总线进行异步通信是,发送端和接受端要有一个电平转换接口。
串口通讯方法的三种实现串口是计算机上一种非常通用的设备通信协议。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS一232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信(Serial Communication),是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。
串口通信方便易行,应用广泛。
在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。
单片机实验报告(三)实验名称:串行通信姓名:张昊学号: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. 错误检测和纠正:设计一定的机制以检测和纠正传输过程中可能产生的错误。
三、设计过程1. 系统框图设计在开始具体的电路设计之前,我们首先根据实习要求和设计目标绘制了系统框图。
框图包括了串行通信电路的各个模块和信号的流动路径,为后续的具体设计提供了清晰的方向。
2. 发送端设计发送端是整个串行通信电路的起点,它接收并行输入数据,并转换为串行形式进行传输。
在发送端的设计中,我们主要考虑了以下几个方面:- 并行-串行转换:使用移位寄存器将并行输入数据转换为串行形式;- 缓冲控制:为了提高数据传输的效率,引入缓冲区进行控制。
3. 接收端设计接收端是整个串行通信电路的终点,它接收串行数据并将其转换为并行形式。
在接收端的设计中,我们主要考虑了以下几个方面:- 串行-并行转换:使用移位寄存器将串行输入数据转换为并行形式;- 错误检测和纠正:使用校验码等机制检测错误,并进行相应的纠正处理。
4. 同步信号设计为了确保数据传输的准确性,发送端和接收端之间需要同步信号进行协调。
我们设计了一套同步机制,包括发送方同步信号和接收方同步信号的生成和传输,以确保数据的正确接收和处理。
四、实习总结通过本次实习,我们深入学习和应用了串行通信电路的设计原理和技巧。
在实习过程中,我们遇到了各种问题和挑战,但通过团队合作和不断的尝试,我们成功完成了串行通信电路的设计。
第1篇一、实验目的1. 理解串行通信的基本原理和方式。
2. 掌握串行通信接口电路的设计与调试方法。
3. 熟悉串行通信在实际应用中的使用。
二、实验原理串行通信是一种数据传输方式,它将数据一位一位地顺序传送,每位的持续时间远远大于数据信号的持续时间。
与并行通信相比,串行通信具有传输距离远、抗干扰能力强、成本低等优点。
串行通信方式主要有两种:同步串行通信和异步串行通信。
同步串行通信使用统一的时钟信号来同步发送和接收设备,而异步串行通信则使用起始位和停止位来同步。
三、实验器材1. 实验箱2. 串行通信模块3. 信号发生器4. 示波器5. 计算器四、实验步骤1. 连接电路根据实验要求,将串行通信模块、信号发生器、示波器等设备正确连接到实验箱上。
2. 设置参数根据实验要求,设置串行通信模块的波特率、数据位、停止位和校验位等参数。
3. 发送数据使用信号发生器生成要发送的数据信号,通过串行通信模块发送出去。
4. 接收数据通过示波器观察接收到的数据信号,分析其波形和参数。
5. 调试与优化根据观察到的波形和参数,对串行通信模块进行调试和优化,确保数据传输的准确性和可靠性。
五、实验结果与分析1. 发送数据波形观察到发送的数据信号波形符合要求,波特率、数据位、停止位和校验位等参数设置正确。
2. 接收数据波形观察到接收到的数据信号波形与发送端一致,说明数据传输过程中没有发生错误。
3. 调试与优化通过调整串行通信模块的参数,提高了数据传输的稳定性和抗干扰能力。
六、实验结论1. 通过本次实验,掌握了串行通信的基本原理和方式。
2. 熟悉了串行通信接口电路的设计与调试方法。
3. 了解了串行通信在实际应用中的重要性。
七、实验心得1. 串行通信在实际应用中具有广泛的应用前景,如工业控制、远程通信等。
2. 在设计和调试串行通信接口电路时,要充分考虑抗干扰能力和数据传输的稳定性。
3. 要熟练掌握串行通信模块的参数设置,以确保数据传输的准确性。
串行口实验实验报告实验报告:串行口实验一、实验目的:1. 掌握串行口通信原理;2. 熟悉使用串行口进行数据通信;3. 学习使用串行口进行数据的发送和接收。
二、实验仪器和材料:1. 串行口连线2. 上位机软件(如串口调试助手)3. PCB板三、实验原理:串行口通信是一种通过传送位来传送数据的通信方式。
通过串行口,计算机可以与其他设备进行数据交换。
串行通信需要发送方和接收方之间通过一条传输线连通,在一定的波特率下,发送方将数据转换为一系列位发送给接收方,接收方将接收到的位转换为相应的数据。
四、实验步骤:1. 将串行口连线正确连接好,一端连接到计算机的串行口,另一端连接到实验设备;2. 打开上位机软件,配置串行口参数,如波特率、数据位等;3. 在上位机软件中发送数据,观察实验设备上接收到的数据;4. 在实验设备中发送数据,观察上位机软件接收到的数据。
五、实验数据记录:在实验过程中,我们尝试了不同的波特率和数据位设置,并记录了每次的实验数据接收情况。
以下是其中一次实验的数据记录:- 实验参数:波特率9600bps,数据位8位,无校验位,停止位1位;- 发送数据:0x55;- 接收到的数据:0x55。
六、实验结果分析:根据实验数据,我们可以发现发送的数据0x55成功被接收到,说明串行口通信正常工作。
这说明我们正确配置了串行口参数,并且发送和接收的数据没有出现错误。
七、实验总结:通过本次实验,我们掌握了串行口通信的原理,学会了如何使用串行口进行数据通信。
实验结果表明,我们成功地发送和接收了数据。
在实际应用中,串行口通信在许多领域中都有广泛的应用,比如计算机与外设的连接、嵌入式系统的开发等。
掌握串行口通信技术对于我们的学习和工作都具有重要意义。
八、存在的问题和改进方向:在本次实验中,我们没有发现明显的问题。
但是,在实际应用中,串行口通信可能会面临一些问题,比如数据丢失、传输错误等。
我们可以进一步学习调试和排查这些问题,并学习如何处理和解决这些问题。
串行通信实验原理序串行通信技术是一种基本的数字通信技术,它已经广泛地应用于现代的数字通信系统中。
与并行通信相比,串行通信在处理速度高、传输距离远、信号线使用少等方面具有很大的优势,因此在现代计算机内部以及计算机与外部设备之间的通信中应用广泛。
串行通信实验是理解串行通信原理和掌握串行通信应用的基本途径之一。
本文将介绍串行通信实验的原理、步骤以及注意事项,希望能够对读者在学习串行通信方面起到一定的帮助。
一、实验原理1.串行通信的基本概念串行通信是一种数据传输的方式,数据信号按照一个比特一个比特地顺序传输,每个比特之间通过同步信号进行分隔。
与之相对应的是并行通信,其数据信号在多根信号线上并行传输。
串行通信具有传输距离远、传输速度快、线路简单等优点,因此被广泛应用于各种数字通信系统中。
2.串行通信的实现串行通信的实现需要用到一些重要的电路,包括移位寄存器、同步信号发生器等。
移位寄存器用于将数据按照顺序存入、读出,并进行位移操作;同步信号发生器则用于发生用于分隔数据的同步信号,使得发送方和接收方的时序保持一致。
三、实验步骤本实验以ASM51单片机为例,演示了串行通信的应用过程。
1.硬件连接将示波器的通道1连接到P1.0引脚上,通道2连接到P3.0引脚上,波形分别对应发送数据和接收数据。
2.编写程序编写程序,对串行通信的数据发送、接收、位移等进行设置和控制,具体实现过程如下:(1) 设置移位寄存器,将需要发送的数据从高位开始存入。
(2) 设置同步信号发生器,发生用于分隔数据的同步信号。
(3) 控制寄存器进行位移操作,将数据按照顺序读出并发送。
(4) 在接收方,需要通过串行口中断方式对接收到的数据进行判断和处理。
3.实验操作按照编写的程序对硬件进行操作,发送一些测试数据,观察示波器上的波形变化,以及数据是否正确接收和处理。
四、实验注意事项1.串行通信实验需要耐心和细心,对硬件和程序进行仔细的连接和设置。
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 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六、实验后的心得体会。
实验三串口调试直接返回数据一、实验目的:1、了解单片机串行口的结构、使用方法,学习串行口应用程序的编写方法。
2、熟悉单片机串行口接收和发送数据的实现方法。
3、熟悉单片机串行通信的格式规定。
4、掌握μVision环境中调试串行口应用程序的方法。
二、实验设备:51/AVR实验板、USB连接线、电脑软件:Keil μVision、串口调试助手v2.2、STC-ISP-V480三、实验原理:通信是人们传递信息的方式。
计算机通信是将计算机技术和通信技术相结合,完成计算机与外部设备或计算机与计算机之间的信息交换。
这种信息交换可以分为两大类:并行通信与串行通信。
并行通信通常是将数据字节的各位用多条数据线同时进行传送,如图所示:由图可见,并行通信除了数据线外还有通信联络控制线。
数据发送方在发送数据前,要询问数据接收方是否“准备就绪”。
数据接收方收到数据后,要向数据发送方回送数据已经接收到的“应答”信号。
并行通信的特点是:控制简单,传输速度快。
由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。
串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,串行通信时,数据发送设备先将数据代码由并行形式转换成串行形式,然后一位一位地放在传输线上进行传送。
数据接收设备将接收到的串行形式数据转换成并行形式进行存储或处理。
串行通信的特点是:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备。
但数据的传送控制比并行通信复杂。
异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。
为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。
为了实现异步传输字符的同步,采用的办法是使传送的每一个字符都以起始位“0”开始,以停止位“1”结束。
这样,传送的每一个字符都用起始位来进行收发双方的同步。
停止位和间隙作为时钟频率偏差的缓冲,即使双方时钟频率略有偏差,总的数据流也不会因偏差的积累而导致数据错位。
单片机双机串行实验报告实验报告:单片机双机串行通信实验一、实验目的本实验旨在通过单片机实现双机间的串行通信,包括数据的发送和接收,并利用这种通信方式完成一定的任务。
二、实验原理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)配置串口通信的波特率、数据位、校验位和停止位,并打开串口接收中断。
本科实验报告
实验名称:串行通信
课程名称:计算机原理与应用实验时间:2014/5/27任课教师:马永锋实验地点:10-102
实验教师:苏京霞
实验类型:■原理验证□综合设计□自主创新
学生姓名:姚晨
学号/班级:34/05111103组号:学院:信息与电子学院同组搭档:专业:信息工程成绩:
一、实验目的
1.了解串行通信的基本原理。
2.掌握串行接口芯片8251的工作原理和编程方法。
3.掌握串行接口芯片8250的工作原理和编程方法。
4.掌握对串行接口芯片的初始化编程;学会串行半双工和全双工的编程技巧。
二、实验内容及步骤
1. 利用PC机系统的串行通信接口实现与实验系统的双机通信,PC机的串行通信接口的
端口地址为3F8H,并画出三线连接,七线连接通信接口的连线图,接口为标准RS—232(25芯)插座。
2. 按图1连接好电路,其中8254计数器用于产生8251的发送和接收时钟,TXD和RXD
连在九针接口处。
串行通讯电路
3.连线:
CLK0/8254 接1M时钟
CLK/8251 接1M时钟(系统已经连接,不用学生连接)
GATE0/8254 接+5V
OUT0 /8254 接TX/RXCLK/8251
CS/8254 接Y0/IO地址
CS/8251 接Y7/IO地址
RXD/8251 接TXD/九针接口
TXD/8251 接RXD/九针接口
4. 8254计数器的计数初值=时钟频率/(波特率X波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特因子若选16,则计数器初值为52。
5. 设串行通信的波特率为1200、偶校验、数据位为7位、1位停止位,利用查询方式实现单工通信。
要求发送方将任一文件传送到收方,收方收到后将源程序写入磁盘。
分别编写收方和发方的通信程序。
6. 上述参数不变,用中断方式实现半双工通信,编写程序。
7. PC机寄存器的端口地址如下表所示:
线路控制寄存器第七位DLAB=0
线路控制寄存器第七位DLAB=1
三、编程提示
1、可以首先采用查询方式,实现单工PC机系统与实验系统的双机通信,之后再实现双工
方式通信;
2、再尝试实现利用中断方式,实现单工PC机系统与实验系统的双机通信,之后再实现双
工方式通信;
3、要求能实现字符和文件的传输;
4、程序流程图如图所示:
四、实验程序
1. 发送端程序:
;TRANSLATE FILES
stack segment para stack'stack'
db 256 dup(0)
stack ends
data segment
name0 db 64h
db 64h dup()
buff d w 64h dup()
data ends
code segment para public 'code'
start proc far
assume cs: code,ds:data,es:data
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
mov dx,3fbh ;3fb ctrl register
mov al,80h ;
out dx,al ;给线路控制寄存器DLAB位置1
mov dx,3f8h
mov al,60h ;写除数因子低位
out dx,al
inc dx ;写除数因子高位
mov al,00
out dx,al ;写除数因子寄存器,1200baud
mov dx,3fbh
mov al,00011011b ;0寻址识别位,0禁止间断,**,11偶校验,1位停止位,8位数据
out dx,al
inc dx ;设置调制解调器控制寄存器MCR
mov al,00001111b ;正常工作状态,引脚低电平
out dx,al
mov dx,3fdh ;线路状态寄存器
in al,dx
test al,20h ;判断是否显示好,发出数据jz fa
tr:
mov ah,01h
int 21h
mov dx,3f8h
out dx,al
push bx
int 10h
pop bx
push cx
mov cx,0fh
gg:
nop
nop
nop
loop gg ;循环延迟
pop cx
jmp tr
start endp
code ends
end start
2. 接收端程序:
;TRANSLATE FILES
stack segment para stack'stack'
db 256 dup(0)
stack ends
data segment
name0 db 64h
db 64h dup()
buff d w 64h dup()
data ends
code segment para public 'code'
start proc far
assume cs: code,ds:data,es:data
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
mov dx,3fbh ;3fb ctrl register
mov al,80h
out dx,al ;给线路控制寄存器DLAB位置1
mov dx,3f8h
mov al,60h ;写除数因子低位
out dx,al
inc dx ;写除数因子高位
mov al,00
out dx,al ;写除数因子寄存器,1200baud
mov dx,3fbh
mov al,00011011b ;0寻址识别位,0禁止间断,**,11偶校验,1位停止位,8位数据
out dx,al
inc dx ;设置调制解调器控制寄存器MCR
mov al,00001111b ;正常工作状态,引脚低电平
out dx,al
shoufa:
mov dx,3fdh ;读高位寄存器,判断是否接收好
in al,dx
test al,01h
jz shoufa
recv:
mov dx,3f8h ;读数据
in al,dx
push bx
m ov bx,0
mov ah,14 ;显示
int 10h
pop bx
mov cx,0fh
gg:
nop
nop
nop
loop gg ;循环延迟
pop cx
jmp shoufa
start endp
code e nds
end start
五、实验结果
将两台电脑通过九针接口相连,一端运行收端代码一端运行发端代码,发端发送的字符全都及时正确的在收端显示。
六、实验感想
本次实验最大的难度是对于8254的初始化编程以及控制字各位的含义理解不到位,导致一开始无从下手。
编程过程中遇到了许多问题,但是在参考了书本上的例题后基本上得到了解决。
程序最后运行的结果相对令人满意。
本来想做出一个双工的通信系统,但是由于知识的欠缺,没能够完成。