串行接口1

合集下载

串行接口实验报告

串行接口实验报告

课程实验报告实验名称:串行接口专业班级:学号:姓名:同组人员:指导教师:报告日期:实验二1. 实验目的 (3)2. 实验内容 (3)3. 实验原理 (3)4. 程序代码 (6)5. 实验体会 (13)实验二1.实验目的1.熟悉串行接口芯片8251的工作原理2.掌握串行通讯接收/发送程序的设计方法2.实验内容通过对8251芯片的编程,使得实验台上的串行通讯接口(RS232)以查询方式实现信息在双机上的。

具体过程如下:1. 从A电脑键盘上输入一个字符,将其通过A试验箱的8251数据口发送出去,然后通过B试验箱的8251接收该字符,最后在B电脑的屏幕上显示出来。

2.从A试验箱上输入步进电机控制信息(开关信息),通过A试验箱的8251数据口发送到B试验箱的8251数据口,在B试验箱上接收到该信息之后,再用这个信息控制B试验箱上的步进电机的启动停止、转速和旋转方向。

3.实验原理1.8251控制字说明在准备发送数据和接收数据之前必须由CPU把一组控制字装入8251。

控制字分两种:方式指令和工作指令,先装入方式指令,后装入工作指令。

另外,在发送和接收数据时,要检查8251状态字,当状态字报告“发送准备好”/“接收准备好”时,才能进行数据的发送或接收。

2.8251方式指令(端口地址2B9H)3.8251工作指令(端口地址2B9H)4.8251状态字(端口地址2B9H)5.8253控制字(283H)6.8253计数初值(283H)计数初值=时钟频率/(波特率×波特率因子)本实验:脉冲源=1MHz波特率=1200波特率因=16计数初值= 1000000/1200*16=527.程序流程框图4.程序代码Fxc.asm;************************;;*8251串行通讯(自发自收)*;;************************;data segmentio8253a equ 280h ;8253计数0端口地址io8253b equ 283h ;8253控制端口地址io8251a equ 2b8h ;8251数据端口地址io8251b equ 2b9h ;8251控制端口地址mes1 db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd mes1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16h ;控制字为00010110Bout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251;xor al,al;mov cx,03 ;向8251控制端口送3个0;delay: call out1;loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz nextmov ah,0bhint 21htest al,0ffh ;检测是否有键盘输入jz nextmov dl,0ffh ;有键盘输入,读入字符mov ah,06hint 21hcmp al,27 ;若为ESC,结束jz exitmov dx,io8251a;inc alout dx,al ;发送; mov cx,40h;s51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz waiti ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waitiexit: mov ah,4ch ;退出int 21hout1 proc near ;向外发送一字节的子程序out dx,al;push cx;mov cx,40h;gg: loop gg ;延时; pop cxretout1 endpcode endsend startSend .asm;************************;;*8251串行通讯(自发自收)*;;************************;data segmentio8253a equ 280h ;8253计数0端口地址io8253b equ 283h ;8253控制端口地址io8251a equ 2b8h ;8251数据端口地址io8251b equ 2b9h ;8251控制端口地址buf3 byte 0mes1 db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd mes1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16h ;控制字为00010110Bout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251mov dx,28bh ;8255控制口初始化mov al,81h ;1000,0001out dx,al;xor al,al;mov cx,03 ;向8251控制端口送3个0;delay: call out1;loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz nextmov ah,0bhint 21htest al,0ffh ;检测是否有键盘输入jz next; mov dl,0ffh ;有键盘输入,读入字符;mov ah,06h; int 21hmov dx,28ahin al,dxcmp al,27 ;若为ESC,结束jz exitmov dx,io8251a;inc alout dx,al ;发送; mov cx,40h;s51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz waiti ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waitiexit: mov ah,4ch ;退出int 21hout1 proc near ;向外发送一字节的子程序out dx,al;push cx;mov cx,40h;gg: loop gg ;延时; pop cxretout1 endpcode endsend start步进电机:1.K0=0,逆时针转;K0=1,顺时针转2.K1=0,慢转;K1=1,快转data segmentbuf1 db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;LED显示buf2 byte 0 ;步进电机数据buf3 byte 0 ;保存开关数据buf4 byte 0 ;保存顺转数据buf5 byte 9 ;保存反转数据buf6 byte 0 ;开关机data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov buf2,00110011b ;步进电机数据mov dx,28bh ;8255控制口初始化mov al,81h ;1000,0001out dx,al;-----------------------------逆转控制----------------R0: mov dx,28ah ;读C口in al,dxmov buf3,al ;保存C口数据test al,04 ;jnz kai ;转反转test al,01 ;测试K0=1?jnz L0 ;转反转mov al,buf4 ;走马灯开始一步顺转cmp al,9jnz S1call change9_0S1: inc al ;数据加1mov buf4,almov bx,offset buf1xlatmov dx,289h ;B口输出out dx,al ;数据完成加1mov al,buf2 ;电机开始一步逆转ror al,1 ;数据左移mov buf2,almov dx,288h ;A口输出out dx,al ;电机完成一步逆转mov al,buf3 ;回复C口数据test al,02jnz R1 ;转快转call delay_s ;否则慢转jmp R0R1: call delay_q ;快转jmp R0;------------------------------顺转控制-----------------L0: mov al,buf5 ;走马灯开始一步顺转cmp al,0jnz S2T2: test al,03 ;测试K2=1?jnz T2call change0_9S2: dec al ;数据减1mov buf5,al ;mov bx,offset buf1xlatmov dx,289h ;B口输出out dx,al ;走马灯结束一步顺转mov al,buf2 ;电机开始一步顺转rol al,1 ;数据右移mov buf2,almov dx,288h ;A口输出out dx,al ;电机结束一步顺转mov al,buf3 ;回复C口数据test al,02jnz L1 ;转快转call delay_s ;否则慢转jmp R0T3: test al,03 ;测试K2=1?jnz T3L1: call delay_q ;快转jmp R0kai: mov dx,28ah ;读C口in al,dxmov buf3,al ;保存C口数据test al,04 ;jz L0 ;转反转jmp kaiexit: mov ah,4chint 21hdelay_s proc near ;长延时mov bx,20hlp1: mov cx,0ffffhlp2: loop lp2dec bxjnz lp1retdelay_s endpdelay_q proc near ;短延时mov bx,1lp11: mov cx,0ffffhlp22: loop lp22dec bxjnz lp11retdelay_q endpchange9_0 proc nearmov buf4,-1mov al,buf4retchange9_0 endpchange0_9 proc nearmov buf5,10mov al,buf5retchange0_9 endpcode endsend start5.实验体会这次实验需要用到两种芯片8253和8251,两种芯片的作用分别是8253提供串行通讯所需的特定频率的脉冲信号,8251提供输入输出控制,所以在实验的过程中需要熟悉这两种芯片的方式字等使用规范,在仔细阅读了书本以及书本的编程实例后,基本摘掉了程序的设计方法实验过程中,出现了程序编译通过了但是不能运行的情况,后来经过检查发现是程序没有设置好的原因,要设置为编译后运行状态,否知只编译不运行,经过这次实验,知道了8253和8251两种芯片的基本用法,对课本上的知识有了更深入的理解,收获不少。

串行通信接口及总线标准

串行通信接口及总线标准

RS-4
定义
RS-485是一种改进的串行 通信接口标准,由EIA制定。
特点
采用差分信号传输方式, 具有多站能力、高抗干扰 能力和长距离传输能力。
应用
广泛应用于工业自动化、 楼宇自动化和智能家居等 领域。
SPI
定义
应用
SPI是一种同步串行通信协议,由摩托 罗拉公司制定。
常用于微控制器和外围设备之间的通 信。
感谢观看
详细描述
在工业自动化控制系统中,各种设备如传感器、执行器、控制器等需要实时地进行数据交换和通信。 串行通信接口能够提供稳定、可靠的连接,使得设备间能够高效地传输数据,实现自动化控制和监测 。这有助于提高生产效率、降低成本、减少故障发生率。
智能家居系统
总结词
串行通信接口在智能家居系统中发挥关键作用,能够实现家庭设备的互联互通,提升家居生活的便利性和舒适度。
VS
详细描述
物联网设备间需要进行大量的数据交换和 通信,以实现设备的远程监控和管理。串 行通信接口能够提供高效、可靠的数据传 输服务,使得设备间能够稳定地进行通信 。这有助于促进物联网的发展和应用,提 高设备的可维护性和可管理性,降低运营 成本。
汽车电子系统
总结词
串行通信接口在汽车电子系统中具有重要价 值,能够实现汽车各系统间的信息共享和协 同工作,提高汽车的安全性和可靠性。
数据传输速率较慢。
03
02
特点
04
数据传输距离较远。
数据传输线少,成本低。
05
06
适用于不同设备之间的通信。
串行通信接口的重要性
01
02
03
04
实现设备之间的数据交换和通 信。
简化电路设计,降低成本。

串行数据通信的接口标准

串行数据通信的接口标准

串行数据通信的接口标准
串行数据通信的接口标准是用于规范串行数据通信的硬件和软件接口。

这些标准使得不同的设备能够以一致的方式进行数据传输和接收。

常见的串行数据通信接口标准包括RS-232、RS-485、RS-422、RS-423等。

RS-232是一种非常常见的串行通信接口标准,被广泛用于连接计算机和其他设备。

它使用9个引脚,其中包括5个用于数据传输,4个用于控制信号。

RS-232接口可以实现点对点的通信,但传输距离较短,通常在15米以内。

RS-485和RS-422接口标准是RS-232的改进版,它们使用差分信号传输方式,因此具有更远的传输距离和更好的抗干扰能力。

RS-485通常用于多点通信,可以实现多个设备之间的连接。

而RS-422则适用于一对一的通信。

RS-423接口标准与RS-422类似,但使用不同的电平标准。

它也适用于一对一的通信,但具有更高的数据传输速率。

这些串行数据通信接口标准都有各自的特点和适用范围,因此在选择使用哪种接口标准时,需要根据实际需求进行考虑。

com接口

com接口

COM接口COM接口是指Component Object Mode接口,是微软定义的标准接口。

串口叫做串行接口,现在的PC 机一般有两个串行口COM 1 和COM 2 。

串行口不同于并行口之处在于它的数据和控制信息是一位接一位地传送出去的。

虽然这样速度会慢一些,但传送距离较并行口更长,因此若要进行较长距离的通信时,应使用串行口。

通常COM 1 使用的是9 针D 形连接器,也称之为RS-232接口,而COM 2 有的使用的是老式的DB25 针连接器,也称之为RS-422接口,这种接口目前已经很少使用。

一般机箱有两个,新机箱有可能只有一个。

笔记本电脑有可能没有。

有很多工业仪器将它作为标准通信端口。

通信的内容与格式一般附在仪器的用户说明书中。

计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。

由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。

在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。

RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口。

它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。

它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。

(1)接口的信号内容实际上RS-232-C的25条引线中有许多是很少使用的,在计算机与终端通讯中一般只使用3-9条引线。

RS-232-C最常用的9条引线的信号内容见附表1所示(2)接口的电气特性在RS-232-C中任何一条信号线的电压均为负逻辑关系。

即:逻辑“1”,-5— -15V;逻辑“0” +5— +15V 。

串行口工作原理

串行口工作原理

串行口工作原理
串行口是一种用于数据传输的硬件接口,它可以将数据逐个比特地传输。

串行口工作的基本原理是将需要传输的数据按照一定的规则进行分割,并以连续的比特序列的形式进行传输。

在串行口的工作过程中,数据被分成一个个比特,然后按照事先约定好的规则,依次传输给接收端。

这个规则包括了每个比特的位宽、传输的顺序以及同步的方式等等。

通常情况下,串行口使用的是异步传输方式,也就是说,传输时不需要事先进行时钟同步,而是在数据的起始位置插入起始位和校验位来提供同步信息。

在串行口的数据传输过程中,发送端按照一定的时序将数据比特逐个发送给接收端。

接收端按照相同的时序依次接收每个比特,并通过解码、校验等操作恢复原始数据。

为了保证数据的准确性,通常还会在传输过程中加入差错检测和纠错机制,例如CRC校验等。

串行口的工作原理与并行口不同,串行口通过逐个比特的方式传输数据,相比之下,串行口在传输速率上可能会受到一定的限制。

但是串行口的传输距离相对较长,传输线路简单,而且可以灵活选择传输速率,因此在许多应用场景下得到了广泛的应用。

例如,在计算机、通信设备、工业自动化等领域中,串行口被广泛用于连接外部设备与主机进行数据交互。

串行接口通信测试方法标准

串行接口通信测试方法标准

串行接口通信测试方法标准串行接口通信测试是确保串行通信设备正常运行的重要步骤。

以下是一些常见的串行接口通信测试方法和标准:1. 物理层测试:•连通性测试:确保所有线缆正确连接,包括传输线、连接器等。

•电气参数测试:测试电压、电流和信号波形是否符合规范,如RS-232、RS-485等标准。

2. 数据链路层测试:•帧同步测试:确保接收端能够正确解析发送端发送的帧。

• CRC校验:测试帧中的CRC校验是否能够检测出错误。

3. 网络层测试:•地址分配测试:对于某些协议,确保设备能够正确地分配和识别地址。

•数据包传输测试:测试设备在网络层是否能够正确地传输数据。

4. 传输层测试:•流量控制测试:确保设备在数据传输时能够正确地进行流量控制。

•错误处理测试:模拟错误情况,测试设备在错误发生时的响应和恢复能力。

5. 应用层测试:•协议一致性测试:确保设备遵循所使用的通信协议的规范。

•功能测试:针对具体应用场景,测试设备是否能够正确地完成预期的功能。

6. 性能测试:•数据传输速率测试:测试设备在不同条件下的数据传输速率。

•延迟测试:测试数据从发送端到接收端的传输延迟。

7. 兼容性测试:•多设备测试:测试设备与其他厂商的设备之间是否能够正常通信。

•协议版本测试:确保设备支持的协议版本与其他设备兼容。

8. 安全性测试:•认证测试:确保只有经过授权的设备能够进行通信。

•加密测试:测试设备是否能够安全地传输数据,防止未经授权的访问。

9. 稳定性测试:•长时间运行测试:在一定时间范围内对设备进行测试,以确保其稳定性和可靠性。

10. 自动化测试:•使用自动化测试工具来执行上述测试,提高测试效率和一致性。

在进行串行接口通信测试时,具体的测试方法和标准会依赖于使用的串行通信协议和设备的规格要求。

确保测试计划覆盖所有关键方面,并记录测试结果以便进行问题追踪和改进。

51单片机-串行口ppt课件

51单片机-串行口ppt课件

为发送时CPU是主动的,不会产生重叠错误。
最新课件
21
8.2.2 80C51串行口的控制寄存器
SCON 是一个特殊功能寄存器,用以设定串行口的工 作方式、接收/发送控制以及设置状态标志:
SM0和SM1为工作方式选择位,可选择四种工作方式:
最新课件
22
●SM2,多机通信控制位,主要用于方式2和方式3。 当接收机的SM2=1时可以利用收到的RB8来控制是否 激活RI(RB8=0时不激活RI,收到的信息丢弃; RB8=1时收到的数据进入SBUF,并激活RI,进而在 中断服务中将数据从SBUF读走)。当SM2=0时,不 论收到的RB8为0和1,均可以使收到的数据进入 SBUF,并激活RI(即此时RB8不具有控制RI激活的 功能)。通过控制SM2,可以实现多机通信。
起 空始 闲位
一个字符帧 数据位
校停 验止 位位
空 下一字符 闲 起始位
LSB
MSB
异步通信的特点:不要求收发双方时钟的
严格一致,实现容易,设备开销较小,但 每个字符要附加2~3位用于起止位,各帧 之间还有间隔,因此传输效率不高。
最新课件
9
2、同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制, 使双方达到完全同步。此时,传输数据的位之间的距离均 为“位间隔”的整数倍,同时传送的字符间不留间隙,即 保持位同步关系,也保持字符同步关系。发送方对接收方 的同步可以通过两种方法实现。
波特率=2SMOD/32×T1的溢出率 = 2SMOD × fosc/[ 32 × 12×(2K-初值)]
最新课件
19
回目录 上页 下页
3、传输距离与传输速率的关系
串行接口或终端直接传送串行信息位流的

串行通信接口详细

串行通信接口详细

数据的发送和接收分别由两根可以在两个不同的站点同
时发送和接收的传输线进行传送,通信双方都能在同一时刻
进行发送和接收操作,选择的传送方式称为全双工制。
A站
B站
发送器
接收器
接收器
特点:①每一端都有发送器和接收器 ②有二条传送线
应用:交互式应用,远程监测控制
发送器
(三)信号的调制和解调(远程通讯)
计算机的通信是要求传送数字信号,而在进行远程数据通 信时,线路往往是借用现有的公用电话网,但是,电话网是为 音频模拟信号的设计的。一般为300~3400Hz,不适合于数据 信号。
4 5 6 20
2.远距离连接(>15m)
4 5 6 20
1)需用MODEM和专用电话线
2)需用2~9条信号线(在接口与MODEM之间)
计 算 机
接 口
2
TXD RXD RTS

┇ CTS DSR
制 解
SG 调
DCD 器


专用电话线
解 调

TXD
RXD 2
RTS

CTS DSR ┇
SG

DCD
采用MODEM时RS-232信号线的使用
RS-485标准只对接口的电气特性做出规定(只规 定了平衡驱动器和接收器的电特性),而不涉及 接插件、电缆或协议,在此基础上用户可以建立 自己的高层通信协议。
RS-485需要2个终接电阻,其阻值要求等于传输 电缆的特性阻抗。终接电阻接在传输总线的两端。 (大多数双绞线特性阻抗大约在100Ω至120Ω之 间)
3.RS-232C接口信号的定义。见书134表5.2 。 25线:数据线4条(2,3,14,16) 控制线11条(4,5,6,8,12,13,19,20,22,23) 定时信号线3条(15,17,24) 地线2条(1,7) 备用5条(9,10,11,18,25) 未定义
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

()双工方式 两个通信站都能同时发送与接收。 站A 站B
3.波特率
bits/秒(s)= n 波特 通信数据传输的速率 异步通信的波特率范围:50 9600波特 同步通信的波特率范围:几十 几百千波特 4.调制与解调 调制与解调的实质 10100111 1 0 1 0 0 1 1 1 10100111
串行通讯口BIOS功能(INT 14H)
AH
0
功能
初始化 串行通讯口
调用参数
AL=初始化参数
返回参数
AH=通讯口状态
DX=通讯口号(0,1) AL=调制解调器状态 AL=所写字符 DX=通讯口号 成功(AH7)=0 (AL)不变 失败(AH7)=1
1
向串行通 讯口写字符
(AH0-6)通讯口状态
2 从串行通 讯口读字符 DX=通讯口号 成功(AH7)=0 (AL)=字符 失败(AH7)=1 (AH0-6)通讯口状态 3 取通讯口状态 DX=通讯口号 AH=通讯口状态 AL=调制解调器状态
双同步
同步字 同步字 数据字 ••• 数据字 CRC1 CRC2
外同步
数据字 • • • 外同步信号 数据字 CRC1 CRC2
2.数据传送方向 (1)单工方式 数据的传送只能从两个通信站中的某一个站发出,另一站 只能接收。
站A
站B
(2)半双工方式 数据的传送可以从两个通信站中的某一个站发出,另一站 接收;但是,不能同时发送与接收。 站A 站B
例:要求0号通讯口的传输率为2400波特,字长为8位,1位终止
位,无奇偶校验。
MOV AH,0 MOV AL,0A3H MOV DX,0 INT 14H
波特率000=110波特 001=150波特 010=300波特 奇偶 00 无 01奇
字长:10=7位
11=8位
011=600波特
100=1200波特 101=2400波特
11偶
终止位
0:1位 1:2位
110=4800波特
111=9600波特
8251的引脚信号 SYNDET:同步检测信号,只用于同步方式 TXC、RXC: 8251没有内置的波特率发生器,必须由外部产生建 立波特率的时钟信号,TXC、RXC通常与8253连接
8251的命令字与初始化编程
模式寄存器的格式
8251的命令字与初始化编程 控制寄存器与状态寄存器的格式
CD RxD TxD DTR GND
1 2 3 4 5
6 7 8 9
DSR RIS CTS RI
DTR:CPU准备好接收数据,可由控制字中的DTR位置‘1’输出 。 DSR:调制解调器已经作好接收数据准备,由调制解调器给出读 入DSR位可知。该信号实际上是对DTR信号的回答。 RTS:请求发送信号。CPU准备好发送数据,由软件使控制字RTS 位置‘1’,输出RTS低电平有效信号。 CTS:准许发送信号。是对RTS信号的回答, 由调制解调器给出。
第九章
串行通信及接口电路
串行通信基本概念
8251芯片介绍
基本的通信方式有两种: 并行通信——数据的各位同时传送; 串行通信——数据一位一位顺序传送。
目的要求: 1.掌握串行通信接口的方式及特点; 2.掌握8251芯片的特点。 一.串行通信 1.异步与同步通信方式 (1)异步通信方式 以起始位/停止位表示第n个字符的开始与结束。
111 0 标 起 志 始 位 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 1 D0 D1 D2 D3 D4 D5 奇偶 停 D6 校验 止 七位数据 第1个字符(1帧数据) 位 位 0 0/1 0/1 0/1 起 D0 D1 D2 始 第2个字符 位 (1帧数据)
奇偶校验 奇校验——数据位与校验位“1”的个数之和为奇数 偶校验——数据位与校验位“1”的个数之和为偶数
MOV MOV OUT MOV MOV MOV OUT MOV
DX,209H AL,40H ;复位命令。 DX,AL AL,01001110B ;模式字 DX,AL AL,00110111B;控制字 DX,AL CX,256 ;发送256字节
接收程序
接收256字节,放在buf中
NEXT: MOV DX,209H IN AL,DX;状态字
8251的命令字与初始化编程
流程
8251编程示例
例:编写8251异步模式下的接收和发送程序,完成256个字 符的发送和接收,设端口地址:208H,209H,波特率因子 16,1起始位,1停止位,无奇偶校验,每字符8位。 发送程序 NEXT: MOV DX 209H IN AL,DX;状态字 AND AL,01H;TXRDY? JZ NEXT MOV AL,CL MOV DX,208H OUT DX,AL;发送 LOOP NEXT
站A MODEM MODEM 站B
调制电路举例(FSK,Frequency Shift Keying)
频率1
频率2
+
1 0 1001
数字信号
调制信号
5.标准RS—232C通信接口 (1)标准RS—232C通信接口连接器
引脚 1 2 3 4 5 6 7 8 9 符号 CD RxD TxD DTR GND DSR RTS CTS RI 方向 入 入 出 出 入 出 入 入 功 能 载波检测 接收数据 发送数据 数据终端就绪 信号地 数据设备就绪 请求发送 清除发送 振铃指示接通 DB—9D
控制寄存器
状态寄存器
8251的命令字与初始化编程 8251与CPU的数据交换
查询方式/中断方式 采用查询方式,在数据交换前应读取状态寄存器。 状态寄存器D0=1,CPU可以向8251数据端口写入 数据,完成串行数据的发送 状态寄存器D1=1,CPU可以从8251数据端口读出 数据,完成一帧数据的接收
;从存储器取发送数据 ;形成有效的奇偶标志的值 ;“1”个数为偶转发送 ; 奇偶标志位置1 ;发送数据
;从通信口接收数据 ;形成有效的奇偶标志的值 ;“1”个数为奇转错误处理 ;存储数据
(2)同步通信方式 以同步字符表示数据块的开始与结束。 同步通信的数据格式 单同步
同步字 数据字 ••• 数据字 CRC1 CRC2
8251的结构
模式寄存器:决定工作于同步或异步模式以及接收和发送的字符 格式 同步字符寄存器:存放同步模式下的同步字符
8251的引脚信号 C/D#: 该信号一般连至地址线A0,用于选择控制端口 /数据端口。数据输入输出寄存器合用一个端口,控 制寄存器与状态寄存器合用一个端口。 TxE:通知CPU发送移位寄存器空。此时,在状态寄 存器的TxE位置1。CPU可以查询TxE信号或状态寄 存器的TxE位 TxRDY:告诉CPU,8251已准备好发送,CPU可以为 其提供需要发送的字符 RxRDY:通知CPU,8251已从外部设备收到一个字符, 等待CPU读取。CPU可以查询该信号,或把该信号作 为中断请求信号。
PC1
PC2
PC1
单片机
(3)电平的规定 TxD,RxD 传号:-3V~ -25V 空号:+3V~ +25V 其他信号 OFF:-3V~ -25V ON:+3V~ +25V
二、可编程串行通信接口8251
通过编程,可以实现异步通讯协议或面向字符的同步通讯 协议,波特率:同步方式下:0-64Kbps;异步方式下:019.2Kbps。 同步方式下,每字符为5,6,7,8位,能自动检测同步字 符,自动添加奇偶校验。 异步方式下,每字符可为5,6,7,8位,自动增加起始位、 停止位和校验位。
发送端偶校验位的产生 ………… MOV DX,发送口地址 MOV AL,[数据地址] AND AL,AL JP TRANS OR AL,80H TRANS:OUT DX,AL ………… 接收端的偶校验 ………… MOV DX,接收口地址 IN AL,DX AND AL,AL JNP ERROR MOV [存数地址],AL …………
Data segment buf DB 256 dup(?) Data ends ┆ AND AL,02H; RXRDY? MOV DX,209H JZ NEXT MOV AL,40H;复位 MOV DX,208H OUT DX,AL IN AL,DX;接收1字符 MOV AL,0100,1110B;模式字 MOV buf[SI],AL OUT DX,AL INC SI MOV AL,0011,0111B;控制字 LOOP NEXT OUT DX,AL MOV CX,256 ;接收256字节 MOV SI,0
(2)两端口的连接
2 DB-9D 3 5 3 DB-25D 2 7
2 3 DB-9D 5
3 2 DB-25D 7
TXD RXD RTS CTS
RXD TXD CTS RTS
DSR
DTR GND
DTR
DSR GND
PC
TXD RXD RTS CTS DSR DTR GND
打印机
RXD TXD CTS RTS DTR DSR GND
相关文档
最新文档