历史上的今天
今天是:2025年03月09日(星期日)
2018年03月09日 | 双机串行通信软件编程
2018-03-09 来源:eefocus
串行口的4种工作方式中的方式0是移位寄存器工作方式,主要用于扩展并行I/O用,并不用于串行通信。串行口的方式1~3是用于串行通信的,下面介绍串行口的方式1~3的双机串行通信软件编程。应当说明的是,下面介绍的双机串行通信的编程实际上与各种串行标准的硬件接口电路无关,因为采用不同的标准串行通信接口仅仅是由双机串行通信距离、传输速率以及抗干扰性能来决定的。
1.串行口方式1应用编程
例如:采用方式1进行双机串行通信,收、发双方均采用6 MHz晶振,波特率为2400 bit/s,一帧信息为10位,第0位为起始位,第1~8位为数据位,最后1位为停止位。发送方以78H、77H单元的内容为首地址,以76H、75H单元内容减1为末地址的数据块通过串行口发送给接收方。
发送方要发送的数据块的地址为2000H~201FH。发送时先发送地址帧,再发送数据帧;接收方在接收时使用一个标志位来区分接收的是地址还是数据,然后将其分别存放到指定的单元中。发送方可采用查询方式或中断方式发送数据,接收方可采用中断或查询方式接收。下面介绍收发双方均采用中断方式的串行发送、接收程序。
(1)甲机发送程序。
中断方式的发送程序如下:


(2)乙机接收程序。
中断方式的接收程序如下:


2.串行口方式2应用编程
方式2和方式1有两点不同之处。方式2接收/发送11位信息,第O位为起始位,第1~8位为数据位,第9位是程控位,该位可由用户置TB8决定,第10位是停止位1,这是方式1和方式2的一个不同点。另一个不同点是方式2的波特率变化范围比方式1小,方式2的波特率一振荡器频率/n。
当SMOD=O时,n=64。
当SMOD=1时,n=32。
鉴于方式2的使用和方式3基本一样(只是波特率不同,方式3的波特率要由定时器Tl的溢出率决定),所以方式2的具体编程应用,可参照下面介绍的方式3应用编程。
3.串行口方式3应用编程
例如:AT89S51单片机用串行通信方式3进行发送和接收的应用实例。发送方采用查询方式发送地址帧,采用中断或查询方式发送数据,接收方采用中断或查询方式接收数据。发送和接收双方均采用6 MHz的晶振,波特率为4800 bit/s。
发送方首先将存放在78H和77H单元中的地址发送给接收方,然后发送数据OOH~FFH,共256个数据。
(1)甲机发送程序。中断方式的发送程序如下:


(2)乙机接收程序。接收方把先接收到的数据送给数据指针,将其作为数据存放的首地址,然后将接下来接收到的数据存放到以先前接收的数据为首地址的单元中去。
采用中断方式的接收程序如下:


一般来说,定时器方式2用来确定波特率是比较理想的,它不需要用中断服务程序设置初值,且算出的波特率比较准确。在用户使用的波特率不是很低的情况下,建议使用定时器T1的方式2来确定波特率。
史海拾趣
|
跟许多人一样,我倾向于分三个阶段对发展中的市场和技术进行分析。首先是过去的趋势、成功和我们得到的教训;其次是我们现在面临的挑战;第三是,我是高度的乐观主义者,未来会发生各种可能性。 最近,在美国底特律举行的Telematics Update会上我有 ...… 查看全部问答> |
|
Embedded Software Development with C 中文版 Embedded Software Development with C 这本书有中文版的吗 请告知,谢谢… 查看全部问答> |
|
请教cadence画原理图时需要导入封装,我的主要芯片的封装都是自己通过向导做的 但是电容电阻这些封装应该不用自己做吧 我按照《cadence高速电路板设计与仿真》的介绍填上LED,但是生成网表后放置元件时报错 说找不到电容的封装 请问怎么解决这 ...… 查看全部问答> |
|
我在做一个PC上的电话通话软件,使用C# + MSCOMM控件 + AT指令,已经实现大部分功能,现在希望能够获得每次通话时长的信息。 问题是: 1. 我发现MSCOMM无法捕获对方开始接听电话的事件,即:我方拨号后,等待对方应答,对方一旦应答,如何捕捉这 ...… 查看全部问答> |
|
首先说一下的是我用的是MFC 在父窗口中创建一个子对话框,我发现子对话框的默认的CCommandBar会把父窗口的挡住 我现在想在子对话框中使用父窗口的CCommandBar 也就是说不让子对话框产生默认的CCommandBar,使用父窗口的CCommandBar 可以实现吗? … 查看全部问答> |
|
收到LPC1114样片及购买的EASYCORTEX-M3开发板 前几天收到了LPC1114的样片,要感谢SOSO。准备用此款芯片开发多功能电表,但是这个项目的时间比较靠后了。现在正在做一款手机测试电源,选择用LPC175X作为控制器,由于我从未用过过ARM,又申请不到开发板,为了尽快上手,所以让公司买了块EASYCORTE ...… 查看全部问答> |
|
创易电子从2008年3月份创店到现在两年半时间。很快就要到皇冠了。创易内部也将会进行一张革命性的变革,一页新的篇章即将揭开。 回首这两年半,创易有了很大的发展,从我一个人,到现在的六个人,营业额也在稳步增长。但是我始终感觉创易 ...… 查看全部问答> |




