有两台8031单片机相距很近,直接将它们的串行口相连,1#机的TXD接2#机的RXD,2#机的TXD接1#机的RXD,二机的GND相连。二机的晶振频率均为11.0592MHZ,通信的波特率为4800bps。现将第一台8031单片机片内RAM40H~5FH单元内的数据,串行发送到第二台8031单片机片内RAM60H~7FH单元中。
发送与接收的参考程序如下:1#单片机发送程序:
ORG 1000H
TX:MOV TMOD , #02H
MOV TH1 , #0FAH
MOV TL1 , #0FAH
MOV SCON , #80H ;
设定工作方式2
MOV PCON, #00H ;
波特率为fosc/64
SETB TR0
MOV R0 , #40H;设发送数据的地址指针
MOV R2 , #20H;设发送数据长度
LOOP:MOV A , @R0;取发送数据送A
MOV C , PSW.0
MOV TB8 , C;奇偶位送TB8
MOV SBUF , A;启动发送
WAIT:JBC TI , LL1;判发送中断标志
SJMP WAIT
LL1:INC R0
DJNZ R2 , LOOP
RET
2#单片机接收程序:
ORG 1000H
RX:MOV TMOD , #02H
MOV TH1 , #0FAH
MOV TL1 , #0FAH
MOV SCON , #90H;设定工作方式2,并允许接收
MOV PCON , #00H
SETB TR0
MOV R0 , #60H
MOV R2 , #20H
LOOP: JBC RI , MM1;等待接收数据
SJMP LOOP
MM1: MOV A , SBUF;读入一帧数据
JB PSW.0 , PP1;判接收端奇偶
JB RB8 , ERROR ;判发送端奇偶
SJMP RIGHT
PP1:JNB RB8 , ERROR;接收出错
RIGHT: MOV @R0 , A;接收正确
INC R0
DJNZ R2 , LOOP
ERROR: SETB PSW.5;置出错标志
RET
关键字:8031单片机 串行口 数据交换
引用地址:
两台8031单片机通过串行口进行数据交换程序
推荐阅读最新更新时间:2024-03-16 15:40
基于DSP的实时红外热成像系统的数据交换及实时显示
摘要: 在以PC机和DSP数字信号处理板构成的实时红外热成像系统原理的基础上,阐述了主机通过PCI口与DSP实现数据交换及在Windows下实现实时图像显示的技术。由于通过PCI口数据交换速度快,在数据显示时采用直接写屏和翻页技术,系统可达到理想图像实时显示效果。
关键词: 红外图像 实时性 DSP
随着科学技术的高速发展,红外热像仪在军事、科研、工农业生产、医疗卫生等领域的应用越来越广泛。由于红外焦平面固有的非均匀性,在红外图像处理过程中,必须对每帧中的每个像元进行非均性校正处理,才能到较好的效果。因此红外图像实时处理的数据量很大,如256×256的一个红外焦平面面阵,像元数为64K,如果每个
[应用]
AD574与8031单片机及前置电路的一种实用接口电路
AD574是美国核拟器件公司Analog Devices) 生产的12 位逐次逼近型快速A/D 转换器。其转换35us,转换误差为土0.05%,是前我国应用广泛,价格适中的A/D转换器。其内部含三态电路,可直接与各种微处理器连接,且无须附加逻辑接口电路,便能与CMOS 及TTL 电平兼容。内部配置的高精度参考电压源和时钟电路,使它不需要任何外部电路和时钟信号,就能实现A/D转换功能,应用非常方便。 许多文献有关于AD574与8031单片机接口技术的介绍, 但其控制功能引线基本局限于单一的AD574与8031的连接。由于8031无内部程序存贮器, 其内部数据存贮器也有限, 因而8031构成的测控系统, 往往都需外扩存贮器
[单片机]
51单片机 第八节:串行口应用
第八节:串行口应用 一、 使用晶体频率为22.1184MHz的AT89C52单片机,串行口应用工作方式1,以9600bps的波特率向外发送数据,数据为十个数字 0 到 9 ,循环不断地发送。 解:数字字符为增量进二进制码, 0 对应0x30, 1 = 0 + 1 = 0x31,从 0 到 9 对应编码为0x30到0x39,记忆二进制编码较难,实际编程中用单引号括起对应字符表示引用该字符的二进制编码值,如 ? 表示引用?号的编码值。 在用11.0592MHz晶体时,9600bps的初始化分频初值为-6,现晶频加倍,如果其它条件不变,只有分频初始加倍为-12,才能得到9600bps;如果想得到2400bps(速率降4倍),分频初始自然
[单片机]
单片机串行口通信程序设计
单片机串行口通信程序设计硬件连接图 例:用8051单片机串行口外接CD4094扩展8位并行输出口,如图所示,8位并行口的各位都接一个发光二极管,要求发光管呈流水灯状态。 串行口方式0的数据传送可采用中断方式,也可采用查询方式,无论哪种方式,都要借助于TI或RI标志。串行发送时,能靠TI置位(发完一帧数据后)引起中断申请,在中断服务程序中发送下一帧数据,或者通过查询TI的状态,只要TI为0就继续查询,TI为1就结束查询,发送下一帧数据。在串行接收时,则由RI引起中断或对RI查询来确定何时接收下一帧数据。无论采用什么方式,在开始通信之前,都要先对控制寄存器SCON进行初始化。在方式0中将,将00H送SCON就能了。 ---
[单片机]
AVR单片机学习(七)异步串行口UART
串行通讯技术概述 异步串行通讯原理 UART与电脑的通讯 M16的USART 中断方式使用USART步骤 一、串行通讯技术概述 串行通讯的通俗定义: 一位发送一位(相对与并行,)当然通过 位同步 帧同步 串行通讯的分类 同步串行通讯 时钟线、数据线、通过时钟保持数据同步 SPI,IIC 属于同步串口通讯 异步串口通信 只有一根数据线,通过波特率保证数据同步(顾名思义没有时钟线只有数据线) UART 无线通信一般均为异步串行通信(相对于无形之中只能有一根天线) 波特率 每秒发送码元时间宽度为(1/9600)S 大概是在100个微妙左右 发送方按照
[单片机]
单片机基础(八):单片机串行口结构与工作方式及应用
单片机串行口结构 串行口结构如上图 发送时,SBUF中写入数据后,串行口通过发送控制器,将SBUF中的数据逐个逐位地通过串行输出口TXD引脚逐个发出,当一个字节发送结束后,触发TI中断位,通知单片机发送结束 接收时,先向REN引脚写1,外部引脚RXD会实时检测电平变化,当满足串行接收数据的条件时,会逐位接收数据并保存到SBUF,当一个字节接收结束后,触发RI中断位,通知单片机接收结束 串行口控制寄存器SCON SM0、SM1用于设定串行口工作方式 fosc :晶振频率 SM2:多机通信控制位 REN:允许接收控制位 TB8/RB:发送/接收的第9位数据 TI:发送中断标志位 RI:接收中断标志位
[单片机]
proteus与keil Cx51的单片机仿真(串行口单工通信2)
单片机U1和U2串行口均工作于方式3,其中U1作为接收机,U2作为发送机,波特率为9600,U1接收U2发送数据后,依次送P1、P0和P2口进行流水灯显示,编写程序,并用Proteus仿真。 电路图: U1程序: #include reg51.h //包含单片机寄存器的头文件 sbit p=PSW^0; unsigned char receive(void)//接收一个字节数据 { unsigned char dat; while(RI==0); RI=0;//只要接收中断标志位RI没有被置1,等待,直至接收完(RI1) ACC=SBUF;//将接收缓冲器中的数据存于dat if(RB8==P)//奇校验 {dat=ACC
[单片机]
21课:单片机串行口介绍
介绍:串行口是单片机与外界进行信息交换的工具。 8051单片机的通信方式有两种: 并行通信:数据的各位同时发送或接收。 串行通信:数据一位一位次序发送或接收。参看下图: 串行通信的方式: 异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下: 在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。用这种格式表示字符,则字符能一个接一个地传送。 在异步通信中,CPU与外设之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。原则上字符格式能由通信的双方自由制定,但从通用、方便的角
[单片机]