8951单片机串口通信.
PC机与单片机AT89C51的串行通信

PC机与单片机AT89C51的串行通信摘要:在Windows95下使用串口API函数实现PC机与单片机AT89C51的串口通信,重点介绍计算机采用事件驱动I/O方式的函数编程及单片机串口中断发送、接收程序的实现。
关键词:Windows95单片机AT89C51RS-232接口RS-485接口串行通信在以单片机为基础的数据采集和实时控制系统中,通过计算机中的RS-232接口进行计算机与单片机之间的命令和数据传送,就可以利用计算机对生产现场进行监测和控制。
由于计算机上的RS-232所传送的距离不超过30m,所以,在远距离的数据传送和控制时,可以用MAX485的接口转换芯片将RS-232转换成RS-485协议进行远距离传送。
在发送和接收端都进行协议转换后,RS-485协议对数据传送来说是相对透明的,所以依然可以使用计算机中的RS-232进行远距离的数据传送和控制。
在最简单的RS-232直接传送通信系统中,只要发送和接收双方同时准备好,仅用信号发送端(TXD),信号接收端(RXD)和信号地(GND)3根线即可进行通信;若以应答方式进行数据通信,可使用请求发送(RTS)、清除发送(CTS)或数据终端准备(DTR)、数据装置准备(DSR)进行硬件握手。
在Windows95下,可以很方便地使用Win32通信API函数来实现这些硬件的握手以及数据的传送。
在89C51单片机系统中,分别从P3.0和P3.1引出串口线RXD和TXD通过专用的电平转换芯片转换成RS-232接口标准的电平,这样,二者之间就可以通过RS-232接口进行数字信号的传送。
单片机也可以以直接传送或应答握手的方式进行数据通信,但由于握手方式占用其他的端口,而单片机的端口数量有限,所以,计算机与单片机的通信常采用直接传送的方式,本文将重点介绍。
1Windows95下的通信编程Windows95通信体系提供了1个改进的串行应用程序接口SAPI用来进行交互式串行通信。
(单片机原理及应用)第8章AT89C51串行通信及其应用

目录
• at89c51简介 • at89c51串行通信原理 • at89c51串行通信应用实例 • at89c51串行通信编程 • at89c51串行通信常见问题及解决方案
01 at89c51简介
at89c51单片机简介
at89c51是一种基于CMOS技术 的8位微控制器,由Atmel公司
解决方案
针对信号干扰问题,可以采取增加信 号线屏蔽、优化电源滤波等措施;针 对通信协议不匹配问题,需要统一发 送和接收设备的通信协议;针对数据 校验不通过问题,可以在数据传输过 程中加入校验码,并在接收端进行校 验。
串行通信接口电路设计问题
总结词
接口电路设计不合理可能导致串行通信性能下降或通信失败。
波特率设置
波特率是数据传输的速率, 需要根据实际情况进行合理 设置,以保证数据传输的稳
定性和正确性。
数据校验
为了防止数据传输过程中出 现错误,需要进行数据校验 ,常用的校验方法有奇偶校
验和CRC校验等。
硬件流控制
当数据传输速率较高时,可 以采用硬件流控制来保证数 据传输的稳定性,常用的硬 件流控制方式有RTS/CTS流 控制和XON/XOFF流控制。
串行通信的基本概念
串行通信是一种数据传输方式,数据在单条线路上按顺序一位一位 地传输,具有线路简单、成本低等优点。
at89c51的串行通信接口
at89c51单片机内置一个全双工的串行通信接口,可以同时进行数 据的发送和接收。
串行通信协议
包括起始位、数据位、奇偶校验位和停止位等,用于规定数据的传 输格式和顺序。
一个6向量两级中断结构。
片内振荡器和时钟电路。
89C51串口通信的四种方式及特点

1、89C51串口通信的四种方式及特点通过设置SCON可以设置串行口的工作方式,相应设置位是SM0,SM1,共有四种方式方式0:为同步移位寄存器的输入输出方式,一般用于扩展I/O口,数据位为8位,无起始停止位方式1:波特率可调的异步通信方式,数据位为10位,1位起始位,8位数据位,1位停止位方式2:波特率固定的11位异步通信方式,数据位为11位,1位起始位,8位数据位,1位停止位,1位可编程的第9位,一般用于多机通讯。
方式3:与方式2功能相同,只是波特率可调。
2、51单片机的时钟周期,状态周期,机器周期如何定义的时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般有外部的振晶产生,发出一个脉冲的时间就是时钟周期,也就是1/12微秒。
通常也叫做系统时钟周期。
是计算机中最基本的、最小的时间单位。
在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
8051系列单片机的一个机器周期同6个S周期(状态周期)组成。
3、程序状态字寄存器PSW的格式及各位功能1. CY(Carry):CY表示加法运算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位则CY位置1,否则为0。
2. AC(Auxiliary Carry):与CY基本相同,不同的是AC表示的是低4位向高4位的进、借位。
3.F0:该位是用户自己管理的标志位,用户可以根据自己的需要来设定。
4. RS1、RS0:这两位用于选择当前工作寄存器区。
8051有8个8位寄存器R0~R7,它们在RAM中的地址可以根据用户需要来确定。
RS1 RS0:R0~R7的地址0 0:00H~07H 0 1:08H~0FH 1 0:10H~17H 1 1:18H~1FH5.OV:该位表示运算是否发生了溢出。
at89c51双机串口通信课程设计

课程设计报告书设计名称:计算机控制技术题目:AT89C51的串口通信学生姓名:XXX专业:计算机科学与技术班别:计科本XXX班学号:XXXXXXXX指导老师:XXX日期:2012 年 7月 12 日一、主要内容:本课程设计利用两片AT89C51实现双机串口通信;主机发送并显示 10 以下的随机数,从机显示该数的阶乘值,通过开关改变主机输出的数值。
设计电路并编写一个串行口方式1收发程序,实现两片AT89C51之间的通信,甲机将数据发送到乙机并显示出来,同样,乙机也可将数据发送到甲机显示出来。
二、硬件电路设计及描述1、方案选择及设计思想2、工作原理在串行通信中,数据是在两个站之间传送的。
按照数据传送方向,串行通信可分为三种制式。
1). 单工制式(Simplex)单工制式是指甲乙双方通信只能单向传送数据。
单工制式如图1所示。
发送器A接收器B图1 单工制式2). 半双工制式(Half duplex)半双工制式是指通信双方都具有发送器和接收器,双方既可发送也可接收,但接收和发送不能同时进行,即发送时就不能接收,接收时就不能发送。
半双工制式如图2所示。
发送接收发送接收A 端B端图2半双工制式单片机(主机)单片机(从机)显示发的数显示阶乘值3). 全双工制式(Full duplex)全双工制式是指通信双方均设有发送器和接收器,并且将信道划分为发送信道和接收信道,两端数据允许同时收发,因此通信效率比前两种高。
全双工制式如图3所示。
发送接收接收发送A 端B端图3 全双工制式AT89C51内部有一个可编程全双工串行通信接口。
该部件不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。
下面将对其内部结构、工作方式以及波特率进行介绍。
图4 AT89C51串行口结构框图串口通信方式1 1).方式1发送方式1输出时,数据由TXD 输出,一帧信息为10位,1位起始位0,8位数据位(先低位)和1位停止位1。
当执行一条数据写发送缓冲器SBUF 的指令,就启动发送。
89C51系列单片机串口通信的四种方式极其特点

89C51系列单片机串口通信的四种方式极其特点89C51系列单片机串口通信的四种方式极其特点80C51串行通信共有4种工作方式,由串行控制寄存器SCON中SM0SM1决定.方式0是同步移位寄存器方式,帧格式8位,波特率固定:fosc/12;方式1是8位异步通信方式,帧格式10位,波特率可变:T1溢出率/n(n=32或16);方式2是9位异步通信方式,帧格式样11位,波特率固定:fosc/n(n=64或32);方式3是9位异步通信方式,帧格式11位,波特率可变:T1溢出率/n(n=32或16);方式1,2,3的区别方要表现在帧格式及波特率两个方面.方式1与方式2帧格式相同波特率不同:方式1波特率可变与T1溢出率有关;方式2波特率固定.方式1与方式3波特率相同帧格式不同:方式1帧格式10位;方式3帧格式11位.方式1,2,3通信过程完全相同,均为异步通信方式.简述8051单片机串口通信的四种方式极其特点?方式0 移位寄存器作同步传输方式,波特率固定,方式1、2 异步通信,波特率可变,应用范围广方式3 应用于多机通信89C51单片机串口通信串行窗口,是看不见敲进去的字符的。
要想看见,须再用一个串行窗口。
简述MCS-51单片机串口通信的四种方式及其特点方式0 :这种工作方式比较特殊,与常见的微型计算机的串行口不同,它又叫同步移位寄存器输出方式。
在这种方式下,数据从RXD 端串行输出或输入,同步信号从 TXD 端输出,波特率固定不变,为振荡率的 1/12 。
该方式是以 8 位数据为一帧,没有起始位和停止位,先发送或接收最低位。
方式 2 :采用这种方式可接收或发送 11 位数据,以 11 位为一帧,比方式 1 增加了一个数据位,其余相同。
第 9 个数据即 D8 位具有特别的用途,可以通过软件搂控制它,再加特殊功能寄存器SCON 中的SM2 位的配合,可使 MCS-51 单片机串行口适用于多机通信。
方式 2 的波特率固定,只有两种选择,为振荡率的1/64 或1/32 ,可由PCON 的最高位选择。
电脑与AT89S51单片机串口通信的51端程序 LCD显示

电脑与AT89S51单片机串口通信的51端程序要求在电脑上运行串口调试助手软件,在发送框输入字符,点击发送后,在下位机51系列单片机上接受并送到液晶1602上显示,求下位机的编程,实现接收PC发来的数据并在让它在1602液晶上显示.#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit LCD_RS = P2^0;sbit LCD_RW = P2^1;sbit LCD_EN = P2^2;#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};uchar data RXDdata[ ] = {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20 };uchar temp,buf,m,count;bit playflag=0;uchar code cdis1[ ] = {" SERILA TRANFER "};uchar code cdis2[ ] = {" "};/**********************************************************延时子程序**********************************************************/void delay1(uint ms){uchar k;while(ms--){for(k = 0; k < 120; k++);}}/******************************************************************//*检查LCD忙状态*//*lcd_busy为1时,忙,等待。
AT89C51单片机与PC机串行通信的接口实现

AT89C51单片机与PC机串行通信的接口实现[摘要] 本文介绍了AT89C51单片机与PC机采用RS232C标准进行串行通信的接口实现。
在接口中采用MAX232作电平转换电路,简单的通信协议,PC 机用VB编程,AT89C51单片机采用中断收发方式。
文章给出了相应通信接口电路与程序。
[关键词] 通信协议RS232C 通信接口电路通信接口程序AT89C51是一种带4K字节可编程可擦除只读存储器(FLASH FPEROM)和128字节的存取数据存储器(RAM)的低电压,高性能CMOS8位微处理器。
采用了ATMEL公司的高密度、不容易丢失存储技术,与MCS-51系列的单片机兼容。
具有集成程度高、系统结构简单、价格低廉等优点被广泛应用到控制领域中。
但是在复杂的数据处理、良好的人机交互等方面不能满足需要,常采用PC 机与AT89C51单片机进行通信,AT89C51单片机(下位机)实时采集数据传送给PC机(上位机)处理,然后接收PC机处理的结果,并进行相应的控制的方式来弥补。
本文介绍单片机与PC机进行串行通信的一种接口实现。
一、接口电路的设计(一)接口逻辑电平的转换在PC机系统大都装有异步通信适配器,为标准的RS-232C接口。
RS-232C 为负逻辑,用+3V~+15V表示逻辑“0”, 用-3V~-15V表示逻辑“1”。
AT89C51单片机采用正逻辑TTL电平0和+5V.所以AT89C51与PC机通信时必须进行电平转换。
转换的方法有多种。
常采用MAXIM公司生产的专用的双向电平转换集成电路MAX232。
MAX232引脚排列与外围电路如图1所示。
图1MAX引脚及外围接口图(二)通信接口电路本文采用可靠性高的MAX232作电平转换芯片,选择其中一对发送器与接收器,PC机的串行口与MAX232的电平端口相连,MAX232的逻辑电平端口与单片机的串行口相连,接口电路如图2所示。
图2PC机与AT89C51通信接口图二、通信接口程序(一)通信协议PC机与AT89C51进行通信必须有一定的通信协议,本文采用简单的通信协议。
89C51串行口及串行通信技术

从本质上说,所有的串行接口电路都是以并行数据形式与
CPU连接,以串行数据形式与外部逻辑设备连接。它们的基 本功能是从外部逻辑设备接收串行数据,转换成并行数据后
传送给CPU,或从CPU接收并行数据,转换成串行数据后输
出到外部逻辑设备。
19
89C51具有一个全双工串行通信接口。
作用:
●作为UART使用。
也可以用作地址/数据帧的标识位,D8=1表示该帧信息传 送的是地址,D8=0表示传送的是数据。两帧信息之间可以
无间隔,也可以有间隔,且间隔时间可任意改变,间隔用
空闲位“1”来填充。
6
异步通信
图
异步通信数据格式
7
奇偶校验
是一种校验代码传输正确性的方法。根据被传
输的一组二进制代码的数位中“1”的个数是奇数或
0 1 1
1 0 1
1 2 3
9位UART,波特率可变(由T1或T2溢出率
决定)
28
(3)串行通信工作方式
方式0
方式0时,串行口为同步移位寄存器的输入输出方式。
主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚
输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送 和接收均为8位数据,低位在先,高位在后。波特率固定为
23
●SM2,多机通信控制位,主要用于方式2和方式3。当接收机
的SM2=1时可以利用收到的RB8来控制是否激活RI(RB8=0时不
激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并 激活RI,进而在中断服务中将数据从SBUF读走)。当SM2=0时,
不论收到的RB8为0和1,均可以使收到的数据进入SBUF,并激
从低位开始串行输出,数据的低位在右高位在左,在具体应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RX CLOCK
RXD
起始位
D0
位检测器采样时间
D1
D2
D3
D4
D5
D6
D7
停止位
SHIFT
RI
置REN为1时,接收方器式1接检收时测序 到RXD引脚输入电平发生 负跳变时,则说明起始位有效,将其移入输入移位寄 存器,并开始接收这一帧信息的其余位。
当RI=0,且SM2=0(或接收到的停止位为1)时,将
RCV2: DJNZ R7,RCV0 ; 判断是否已读入预定的字节数
…………
; 对读入数据进行处理
2019/5/10
36
例2 用两片8位串入并出移位寄存器74HC164扩展16 位输出接口。
T1 溢出率 = fosc /{12×[256 -(TH1)]}
T1方式2,TR1=1(以启动定时器)
2019/5/10
31
2019/5/10
32
串行口初始化具体步骤:
确定T1的工作方式(编程TMOD寄存器); 计算T1的初值,装载TH1、TL1; 启动T1(编程TCON中的TR1位); 确定串行口控制(编程SCON寄存器);
T X CLOCK
写入SBUF
SEND DAT A
S1 P 1
SHIFT T XD
起始位
D0
D1
D2
D3
D4
D5
D6
D7
T B8 停止位
TI ST OP BIT GEN
先把起始位0输出到方式2T发送X时序D,然后发送移位寄存器的 输出位(D0)。每一移位脉冲都使输出移位寄存器 的各位移动一位,并由TXD引脚输出。
RCV1: MOV SCON,#10H ; 设串行口方式0并启动接收
JNB RI,$
; 等待接收一帧数据
CLR RI
; 清除接收中断标志
MOV A,SBUF
; 取缓冲器数据
INC R0
CPL F0
JB F0,RCV2
; 判断是否接收完偶数帧, 接收完则重新并行置入
DEC R7
SJMP RCV1
; 否则再接收一帧
收到的9位数据的前8位装入SBUF,Title第9位(停止位)
进入RB8,并置RI=1,向CPU请求S中iBze 断Num。ber
Date: File:
16-Mar-2009
E:\教材参编\第七章图\ch7gzsx.ddb
4
5
Revision
Sheet of Drawn By :
6
2019/5/10
D0 D1 D2 D3 D4 D5 D6 D7
D0 D1 D2 D3 D4 D5 D6 D7
P3.0 89S51
数据输入
+5V
65 9 QH 16 VCC 8 GND
移位脉冲
P3.1 P1.0
4 3 14 13 12 11 SIN
74HC165(1)
CK
S/ L
2
1
65 9 QH +5V 16 VCC 8 GND
解调器把从通信线路上收到的模拟信号转 换成数字信号。
RS-232C
DCE DTE
2019/5/10
电话网
12
RS-232C
DCE DTE
串行通信的错误校验
奇偶校验 代码和校验 循环冗余校验
传输速率与传输距离 传输速率
比特率:每秒钟传输二进制代码的位数 波特率:每秒钟调制信号变化的次数,单位是:波特 (Baud)。
写入SBUF
S6 P 2
D
SEND
SHIFT
RXD(DAT A OUT )
D0
D1
D2
D3
D4
D5
D6
D7
T XD(SHIFT CLOCK) S3P1 S6P1
TI
2019/5/10
方式0发送时序
24
方式0接收
清除SCON中的RI位
RI RECEIVE
B
SHIFT
RXD(DAT A IN)
D0
D1
RI,接收中断标志位。
方式0时,串行接收第8位数据结束时 其它方式,串行接收停止位的中间时 硬件使RI置1,发中断申请。必须在中断服务程序中 用软件将其清0。
2019/5/10
20
2、电源功能寄存器PCON (87H)
PCON (87H) SMOD
SMOD, 波特率倍增位。 在方式1、2、3时,波特率与SMOD有关: SMOD=1时,波特率提高一倍。复位时, SMOD=0。
Fosc/64或fosc/32
11位UART
可变,由定时器 控制
其中fosc为晶振频率。
2019/5/10
23
7.2.1 工作方式0
方式0
同步移位寄存器的输入输出方式。用于扩展并行输入或
输出口。数据由RXD引脚输入或输出,移位脉冲由TXD引
脚输出。8位数据。波特率为fosc/12。
方式0发1送
2
3
27
7.2.3 工作方式2、3
方式2和方式3
11位数据的异步通信。
1帧共11位
起 空始 闲位
数据位9位
停 止空 位闲
D0
D7
RB8/TB8
LSB
MSB
起始位1位,数据9位,停止位1位 方式2的波特率固定为晶振频率的1/64或1/32 方式3的波特率由定时器T1的溢出率决定
2019/5/10
28
方式2和方式3发送
2019/5/10
21
7.2 串行口的工作方式
工作方式0 工作方式1 工作方式2 工作方式3
2019/5/10
22
串行口工作方式
SM0、SM1 工作方式
00
方式0
01
方式1
10
方式2
11
方式3
功能描述
波特率
8位同步移位寄 Fosc/12 存器
10位UART
可变,由定时器 控制
11位UART
2
3
4
10位数据的异步通信。帧格式如图所示。
D
起 空始 闲位
1帧共10位 数据位8位
停 止空 位闲
D0
D7
LSB
MSB
C
方式1发送
T X CLOCK
写入SBUF
SEND DAT A
S1 P 1
B
SHIFT
T XD
起始位
D0
D1
D2
D3
D4
D5
D6
D7
停止位
TI
2019/5/10
方式1发送时序 26
方式1接收
4 3 14 13 12 11 SIN
74HC165(2)
CK
S/ L
2
1
2019/5/10
35
MOV R7,#20
; 设置读入字节数
MOV R0,#50H
; 设片内RAM指针
SETB F0
; 设置读入字节奇偶数标志
RCV0: CLR P1.0
; 允许并行置入数据
SETB P1.0
; 允许串行移位
2019/5/10
13
波特率和比特率不总是相同的,但对于基带传输, 比特率和波特率是相同的。
传输距离与传输速率的关系 传输距离随传输速率的增加而减小。
2019/5/10
14
7.1 串行口UART
串行口的结构 串行口的控制
2019/5/10
15
7.1.1 串行口的结构
内
波
部
特
总
率
线
发
生
器
方式:
并行通信 串行通信
2019/5/10
3
并行通信:数据多位同时传送
8位同时传送 1
0
接
1
发
0
收 设
1
送
1 0
设
备
0
备
询问
应答
控制简单,传输速度快,传输线较多
2019/5/10
4
串行通信:数据字节一位一位在一条传输 线上逐个传送。
接
发
收
D0
D7
送
设 备
8位顺次传送
设 备
传输线少,可利用电话网,但传送控制复杂。
SBUF 发送(99H)
逻辑门电路
发送控制器
TI
串行口中断
≥1
RI
接收控制器
SBUF 接收(99H)
移位寄存器
串 行 口 控 制 寄 存 器 SCON
TXD(P3.1)
RXD(P3.0)
2个物理上独立的接收、发送缓冲器SBUF,占用同一地 址99H ;接收器是双缓冲结构 。
2019/5/10
16
7.1.2 串行口的控制
1、串行口控制寄存器SCON (98H)
设定工作方式、接收/发送控制以及设置状态标志 SCON (98H) SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0、SM1:工作方式设置位
2019/5/10
17
SM2,多机通信控制位。
主要用于方式2和方式3。对于接收机
SM2=0,收到RB8(0或1)既可使收到的数据进入SBUF,并 激活RI。
起 空始 闲位
一个字符帧 数据位
校停 验止 位位
空 下一字符 闲 起始位
LSB
2019/5/10
MSB
7
同步通信
发送方时钟与接收方时钟同步。既保持位同 步,也保持字符同步。同步方法:Βιβλιοθήκη 01101计 数据
计
算