第九章 AT89s52单片机串行通信
基于AT89S52的串口通信

基于AT89S52的串口通信本程序可实现PC机通过串口调试助手发送数据到单片机上,单片机就把收到的数据再发回PC机//以下程序基于AT89S52单片机,11.0592M晶振,//不能用12M,用12M数据会出乱,//以下程序已可以实现单片机与PC机的串口通信#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar date;uchar ch;bit flag;bit serflag;void init0()//初始化函数{TMOD=0x20;//方式2--8位自动重装TH1=0xfd;TL1=0xfd;//设波特率为9600TR1=1;//启动T1定时器REN=1;//启动串行接收数据SM0=0;SM1=1;//SM0,SM1设置串行口为工作方式1,10位异步收发器//PCON=0x00;//SM2=1;EA=1;//开总中断ES=1;//开串口中断// TR1=1;// REN=1;}void main(){init0();while(1){if(flag==1){ES=0;flag=0;SBUF=date;//发送数据while(!TI);//发送数据完毕才跳出死循环ES=1;TI=0;}}}void ser() interrupt 4{if(RI)//一定要加该判断句,不然串口调试助手那里会一直收到数据{RI=0;date=SBUF;//提取数据flag=1;}}/*//以下方法也可实现串口通信void main(){TMOD=0x20;//指定定时器1 工作在方式2SCON=0x50;//串行口工作方式1,10位异步收发,由定时器控制,串行口接收 PCON=0x00;//SMOD=0;TH1=TL1=0xfd;//Baud:9600 fosc=24MHzEA=1;ES=1;TR1=1;while(1);}void serial() interrupt 4//串口接收中断函数{while(!RI);if(RI){RI=0;ch=SBUF;serflag=1;}if(serflag==1){SBUF=ch;while(TI==0);TI=0;serflag=0;}} */。
基于AT89S52高性能单片机串行通信电路的设计

基于AT 89S 52高性能单片机串行通信电路的设计淮安广播电视大学电子工程系 陈京培[摘 要]随着单片机技术的发展,传统的依赖于仿真机的单片机实验成本高且效率低,已不适应现代科技开发需求。
串行通信是目前单片机应用中经常要用到的功能,本设计目的就是在传统实验板的基础上,利用功能强大的A T 89S52型单片机和编程软件Visual C++设计了一种新型单片机串口通信电路。
实验结果表明,该方案接口简单、使用方便、稳定可靠。
[关键词]新型串行通信 A T 89S52 硬件接口 程序设计 1、串行通信原理计算机与外界信息间的交换称为通信。
随着计算机应用技术和微机网络技术的发展,计算机与其外部设备之间的数据传输越发显得重要。
而串行通讯技术是实现这一功能的有效途径,它具有经济方便、数据传输可靠、适用于远距离通讯的特点,在工业监控、数据采集、检测等系统中有着广泛的应用[1]。
在异步通讯中,数据是一帧一帧传送的,在帧格式中,一个字符由4部分组成:起始位、数据位、奇偶校验位和停止位,见下图1。
首先是一个起始位“0”,然后是5~8位数据(规定低位在前,高位在后),接下来是奇偶校验位(可省略),最后是停止位“1”。
起始位“0”信号只占用1位,用来通知接收设备一个待接收的字符开始到来。
线路在不传送字符时应保持为“1”。
接收端不断检测线路的状态,若连续为“1”以后又检测到一个“0”,就知道发来一个新字符,应马上准备接收[2]。
2、A T 89S52单片机特点简介A T 89S 52单片机是AT M EL 公司新近推出的高档、增强型产品。
它是一个低功耗、高性能CM OS 8位微控制器,片内含通用8位中央处理器和ISP Flash 存储单元,8k By tes ISP (In -system pro gr ammable)的可反复擦写1000次的F lash 只读程序存储器,片上Flash 允许程序存储器在系统可编程,亦适于常规编程器。
AT89S52与电脑之间的串口通讯

单片机与电脑之间的串口通讯(1)功能:单片机按一下P3.2,发送字母A给电脑,并用串口调试软件助手辅助,在电脑上显示A;按一下P3.3发送a给电脑,当单片机不发送时,电脑发送数字时,单片机的P1口LED能够显示结果(如发送12H,显示0001 0010,0:显示,1:熄灭)。
采用4800波特率,11.0592晶振。
1.要实现单片机与电脑之间的通讯,要用电平转换,本实验用MAX232。
这是为什么呢?答:因为电脑的数据传输采用的是RS-232C标准规定的(EIA)电平,即数字“1”在传输线上的电平是-3V~ -15V,传输数字0时电平是+3v~+15v;而单片机采用的是TTL电平,当单片机与PC机进行通讯时,由于电平不匹配,导致数据不能正确传输。
这样就存在TTL与PC机电平转换问题,这里用MAX232电平转换芯片。
本实验MAX232与RS-232C电路图:图(1)所有电容10uf全部换成1uf,精力有限,采用网上的电路,只是单片机芯片和电容不同,其他全相同。
注意:RS232引脚不要搞错了,我上次搞错了一个引脚,结果显示乱码。
单片机与MAX232的电路:图(2)图(1)和图(2)就构成了本实验的一个完整电路图(由于Protues 仿真时外围的晶振等不划都能与划了一样,所以一些部分省略了。
注意单片机仿真时晶振选择11.0592Mhz,程序如下:ORG 0000HLJMP MAINORG 50HMAIN:MOV SP,#5FHMOV SCON,#50HMOV TMOD,#20H ;波特率4800 MOV TH1,#250MOV TL1,#250ANL PCON,#7FHSETB TR1J0:JB P3.2,NEXT1LCALL DELAY10MSJB P3.2,J0JNB P3.2,$MOV A,#41HMOV SBUF,AJNB TI,$CLR TISJMP J0NEXT1:JB P3.3,NEXT2LCALL DELAY10MSJB P3.3,NEXT1JNB P3.3,$MOV A,#61HMOV SBUF,AJNB TI,$CLR TILJMP J0NEXT2:JNB RI,J0CLR RIMOV P1,#0FFHMOV A,SBUFMOV P1,ALJMP J0DELAY10MS:MOV R1,#19LOOP:MOV R2,#250DJNZ R2,$DJNZ R1,LOOPRETEND用Protues仿真效果如下:注明:由于Protues仿真软件中串口端口(注意:双击该图标将该波特率4800)只能显示字符,不能显示16进制,所以用Protues仿真发送数据时,只能发送该字符所对应的ASCII值,”A”对应65(41h),小a对应97(61h).按下P3.2显示A,按下P3.3显示a上面是仿真效果,现在来看看实物图效果。
第九章 AT89s52单片机串行通信

第九章 AT89S52单片机串行通信
16
9.3.1 串行口的控制
1.串行数据缓冲器SBUF 2.串行口控制寄存器SCON 3.电源控制寄存器PCON
第九章 AT89S52单片机串行通信
17
2.串行口控制寄存器SCON
31
(1)用T1产生波特率
模式1和模式3的波特率= SMOD 2 × T1溢出速率/32 T1设置为8位自动重装载的模式2 时,波特 f OSC 2 SMOD 率为:
32 × 12 × (256 - TH1)
模式1和模式3的波特率=T2的溢出速率/16
第九章 AT89S52单片机串行通信
32
(2)用T2产生波特率
38
JNB TI, DL2 CLR TI INC R0 DJNZ R7, DL1 CLR P3.5 LOOP: AJMP LOOP TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H DB 92H, 82H, 0F8H, 80H, 90H, 88H DB 83H, 0C6H, 0A2H, 86H, 84H
第九章 AT89S52单片机串行通信
40
解:(1)功能分析: (2)波特率的计算 串行口工作在模式1,定时器T1工作在模式 2作波特率发生器。波特率计算公式为: SMOD f OSC 波特率= 2 × (256 -TH1 )
32 12
f OSC - 设SMOD=0,则TH1= 256 32 × 12 × 1200
第九章 AT89S52单片机串行通信
27
9.3.4 波特率的确定
串行口的四种工作模式对应着不同波特 率。由于输入的移位时钟来源不同,因 此,各种模式的波特率计算公式也不相 同。
AT89S52单片机的串行接口 - 单片机

AT89S52单片机的串行接口 - 单片机AT89S52 单片机的串行接口单片机在当今的电子世界中,单片机扮演着至关重要的角色,就像一个智能的小大脑,控制着各种设备的运行。
而 AT89S52 单片机作为其中的一员,其串行接口更是有着独特的魅力和重要的应用价值。
首先,咱们来聊聊什么是串行接口。
简单来说,串行接口就是一种在单片机和外部设备之间进行数据传输的通道。
它不像并行接口那样同时传输多位数据,而是一位一位地按顺序传输。
这就好比是在一条狭窄的小路上,一个人一个人依次通过,而不是一群人一下子涌过去。
AT89S52 单片机的串行接口有两种工作模式,一种是同步模式,另一种是异步模式。
在同步模式下,数据的发送和接收是与一个时钟信号同步进行的。
这个时钟信号就像是一个指挥棒,指挥着数据传输的节奏,确保数据的准确性和稳定性。
而异步模式则不需要时钟信号来同步,它通过起始位、数据位、奇偶校验位和停止位这些特定的位组合来实现数据的传输。
咱们来具体说一说异步模式。
当 AT89S52 单片机要发送数据时,它会先发送一个起始位,这个起始位就像是一个信号,告诉接收方“我要开始发送数据啦”。
然后,单片机按照事先设定好的位数,依次发送数据位。
为了检验数据在传输过程中有没有出错,还会加上奇偶校验位。
最后,再发送一个停止位,表示这一组数据发送结束。
接收方呢,就根据这些约定好的规则来接收和解读数据。
串行接口在 AT89S52 单片机中的应用那可真是广泛。
比如说,在与计算机进行通信时,通过串行接口,单片机可以将采集到的数据发送给计算机,让计算机进行进一步的处理和分析。
在远程控制方面,单片机可以通过串行接口接收来自远程终端的指令,从而实现对设备的远程控制。
还有在多机通信中,多个单片机可以通过串行接口组成一个网络,相互之间交换数据和协调工作。
要使用 AT89S52 单片机的串行接口,还需要对相关的寄存器进行设置。
比如说,控制寄存器用来选择工作模式、设置波特率等。
最新单片机--第9章-AT89S52单片机串行通信精品课件

工作模式 模式0 模式1 模式2
模式3
说明 同步移位寄存器
波特率 fosc/12
8位UART
由定时器控制
9位UART
fosc/32或 fosc/64
9位UART
由定时器控制
第二十一页,共49页。
3.电源(diànyuán)控制寄存器 PCON
不能
位寻址
波特率加倍位。在 模式1、2、3时,波
特率和 2SMO成D 正
RCAP2H FFH
用波特率
RCAP2L
波特率
f o/sMc Hz
F3H
56800
11.059
RCAP2H FFH
RCAP2L FAH
FFH
E6H
38400
11.059
FFH
F7H
FFH
CCH
19200
11.059
FFH
EEH
FFH
98H
9600
11.059
FFH
DCH
FFH
30H
4800
11.059
1 0 0/1 0/1 … 0/1 0/1 1 1 1
低位
高位
起辑数制波奇校始(停择位空据l特验偶u1止位ó闲组或校、位率位j—位í无验1成——).—05——校位电,、———验——每2平低每数表位位—传个秒位示据。根送字钟先该位据字传符字传通紧符送开符送信之跟二始传双间进着送传方的制起结送的逻位始束通的的辑。位信标个1停电协传志数止平议送,位,,。起为可表始由逻选示位5辑择没~采1奇有电8用检进个平验逻行二,、传可进偶送选 如9600bit/s
第七页,共49页。
9.1.2 串行通信(tōng xìn)的通信
单片机原理及应用之AT89S52

单片机原理及应用之AT89S52AT89S52是一款由Atmel公司生产的8位单片机,采用CMOS工艺制造,并且内部集成了丰富的功能模块和外设接口。
它具有较高的性能和良好的稳定性,广泛应用于各种电子设备中。
AT89S52单片机的基本原理是通过控制器对内部资源进行配置和控制,从而实现各种功能。
它的主要构成部分包括中央处理器(CPU),存储器(RAM和ROM),输入/输出接口(IO),定时/计数器(Timer/Counter)和串行通信接口等。
首先,AT89S52单片机的CPU是其心脏部件,它采用基于8051内核的结构,具有8位数据总线和16位地址总线。
CPU负责执行程序指令,以及对数据进行运算和处理。
其次,AT89S52内部集成了包括RAM、ROM和EEPROM等多种存储器。
其中,RAM用于临时存储数据和程序,ROM用于存储程序代码,EEPROM可用于存储非易失性数据。
AT89S52还具有强大的输入/输出接口,用于与外部设备进行通信。
它具有多个I/O引脚,可以用于连接传感器、显示器、键盘等外部设备,并通过程序控制实现数据的输入和输出。
除此之外,AT89S52还内置了多个定时/计数器模块,用于生成精确的时间延迟和计算时间。
这些定时/计数器可以用于测量时间、产生脉冲信号、控制外设设备等。
此外,AT89S52还支持多种串行通信接口,如UART、SPI和I2C等。
这些接口可以与其他设备进行数据传输和通信,实现单片机与外部设备的数据交互。
AT89S52单片机应用广泛。
它既可以作为独立的控制芯片,也可以作为其他数字电路和模拟电路的核心控制部分。
在家电、电子仪器、工业自动化和电子玩具等领域,AT89S52都有着重要的应用。
具体来说,AT89S52可以用于控制家电设备,如洗衣机、空调、微波炉等。
它通过连接传感器和执行器,实现对温度、光照强度等参数的检测和控制。
此外,AT89S52还可以用于仪器设备的控制。
例如,可以将其用作控制面板上的核心处理器,实现对仪器设备的各种参数监测和控制。
AT89S52与PC机间的串口通信模式设计

!& T C + # 1 ! -’ !T C _ O JJ 1 ( O O # 1 !!YQ1 ! -’ !!!& +J# %d iT S A! 3 & + # %2 d iT S A _ O3 J 1 ( , #% !!& +J# % 2 2 d iT S A! 3 . + #% % !. +J# %-’ _ O JD
#"串口通信任务的介绍
5 考虑到完成这样一个任务" 微控制器响应 7 T ? 内" 每 $## R ‘ 机发送来的命令帧"在 0 R 采集多 路电压信号并将它们的值 打 包 为 数 据 帧 发 送 到 7 5 . )%-;" "在 5语 $ 硬件选择 ;$ 系列微控制器 E Z + P编程" 7 5软件使用 9 -5 ( 9 9控 言环境下用 6 ’环境下进行编写$ 件 "在 >
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
42
ORG 0000H AJMP START ORG 0100H START: MOV SCON, #80H #80H; MOV PCON, #80H MOV R0, #30H MOV R7, #20H
第九章 AT89S52单片机串行通信
43
LOOP: MOV A, @R0 MOV C, P MOV TB8, C MOV SBUF ,A WAIT: JBC TI, NEXT SJMP WAIT NEXT: INC R0 DJNZ R7, LOOP HERE: AJMP HERE
第九章 AT89S52单片机串行通信
35
9.4 串行通信应用举例
9.4.1 串行口模式0的应用 9.4.2 串行口模式1的应用 9.4.3 串行口模式2和模式3的应用
第九章 AT89S52单片机串行通信
36
9.4.1 串行口模式0的应用
例9.1:AT89S52的串行接口外接74LSl64移位寄存 器,每接一片74LS164可扩展一个8位并行输出口, 用以连接一个LED作静态显示器或作键盘中8根列 线使用。图9.4.1为串行口扩展两位LED显示器的实 用电路。
第九章 AT89S52单片机串行通信
2
9.1.1 串行通信的实现
1.串并转换和并串转换 2.设备同步 3.通信协议 (1)起始位(2)数据位(3)奇偶校验位 (或可编程第9位)(4)停止位(5)波特 率
第九章 AT89S52单片机串行通信
3
9.1.2 串行通信的通信方式
1.同步通信 2.异步通信
第九章 AT89S52单片机串行通信
44
谢谢!
第九章 AT89S52单片机串行通信
45
第九章 AT89S52单片机串行通信
12
9.2.3 RS232C接口的典型应用
第九章 AT89S52单片机串行通信
13
单片机和PC机采用1488和1489通信 连线图
第九章 AT89S52单片机串行通信
14
单片机和PC机采用MAX232通信 连线图
第九章 AT89S52单片机串行通信
15
9.3 AT89S52串行通信接口
16 16 16 16 12 12 12 12 12 11.059 11.059 11.059 11.059 11.059 11.059 6
2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2
EFH DDH BBH 75H F3H E6H CCH 98H FEEBH FDH FAH F2H E8H D0H A0H F3H
SMOD
C/ T
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
模式
重装值
4800 2400 1200 600 4800 2400 1200 600 300 56800 19200 9600 4800 2400 1200 600
第九章 AT89S52单片机串行通信
4
1.同步通信
同步通信的基本特征是发送和接收时钟保 持严格同步。 分为面向字符型和面向位(比特)型两种。 面向字符型的数据格式又有单同步、双同 步、外同步之分:
第九章 AT89S52单片机串行通信
5
面向位型:
第九章 AT89S52单片机串行通信
6
2.异步通信
波特率
fosc /
MHz 16 16 16 16 12 12 12 12 12 11.059 11.059 11.059 11.059 11.059 11.059 11.059
T1 SMOD 波特率
T1
f osc /
MHz
C/ T
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
模式
重装值
11
第九章 AT89S52单片机串行通信
9.2.2 RS232C接口的具体规定
1.电气性能规定 (1) 在TXD和RXD线上,RS232C采用负逻辑。 逻辑正(即数字“1”)=-3V~-15V 逻辑负(即数字“0”)=+3V~+15V 0 =+3V +15V (2) 在联络控制信号线上(如RTS、CTS、DSR、 DTR、RI、DCD等) ON(接通状态)=+3V~+15V OFF(断开状态)=-3V~-15V 2.传输距离
第九章 AT89S52单片机串行通信
27
9.3.4 波特率的确定
串行口的四种工作模式对应着不同波特 率。由于输入的移位时钟来源不同,因 此,各种模式的波特率计算公式也不相 同。
第九章 AT89S52单片机串行通信
28
1.模式0的波特率
f osc
模式0的波特率=
/12
第九章 AT89S52单片机串行通信
第九章 AT89S52单89S52单片机串行通信
23
. 模 式
2 1
第九章 AT89S52单片机串行通信
24
第九章 AT89S52单片机串行通信
25
. 模 式 和 模 式
3 2 3
第九章 AT89S52单片机串行通信
26
9.3.3 多机通信
1.多机通信原理 2.多机通信应用举例
模式1和模式3的波特率=T2的溢出速率/16 模式1和模式3的波特率=
f OSC 2 × 16 × [65536 (RCAP2H, RCAP2L)]
模式1和模式3的波特率=
外部时钟频率 16 × [65536 RCAP2H, RCAP2L)] (
第九章 AT89S52单片机串行通信
33
表9.3.1 由T1产生的常用波特率值
9.3.1 9.3.2 9.3.3 9.3.4 串行口的控制 串行口的工作模式 多机通信 波特率的确定
第九章 AT89S52单片机串行通信
16
9.3.1 串行口的控制
1.串行数据缓冲器SBUF 2.串行口控制寄存器SCON 3.电源控制寄存器PCON
第九章 AT89S52单片机串行通信
17
2.串行口控制寄存器SCON
第九章 AT89S52单片机串行通信
40
解:(1)功能分析: (2)波特率的计算 串行口工作在模式1,定时器T1工作在模式 2作波特率发生器。波特率计算公式为: SMOD f OSC 波特率= 2 × (256 -TH1 )
32 12
f OSC - 设SMOD=0,则TH1= 256 32 × 12 × 1200
fosc /MHz
11.059 11.059 11.059 11.059 11.059 11.059 11.059 11.059 11.059 6 6 6 6 6 6
RCAP2H FFH FFH FFH FFH FFH FFH FEH FDH FBH FFH FFH FFH FEH FDH F9H
RCAP2L FAH F7H EEH DCH B8H 70H E0H C0H 80H D9H B2H 64H C8H 8FH 57H
=256-24=232=0E8H
第九章 AT89S52单片机串行通信
41
9.4.3 串行口模式2和模式3的应用
例9.3编写串行发送程序,被发送的数据 存储在内部RAM的30H~4FH单元中,要 求每个数据要加上奇偶检验。 解:(1)功能分析: (2)采用查询方式程序清单如下:
第九章 AT89S52单片机串行通信
DL2:
第九章 AT89S52单片机串行通信
39
9.4.2 串行口模式1的应用
例9.2:设有两个单片机应用系统相距很 近,将它们的串行口直接相连,以实现 全双工的双机通信。设甲机发送乙机接 收,待发送的数据是标准的ASCII码,存 储在内部RAM单元20H~3FH中,要求在 最高位上加奇校验位后由串行口发送出 去,发送的波特率为1200b/s, f osc =11.059MHz。
第九章 AT89S52单片机串行通信
7
9.1.3 串行通信的传输方式
1.单工通信 2.半双工通信 3.全双工通信
第九章 AT89S52单片机串行通信
8
9.2 RS232C标准总线及通信设计
9.2.1 RS232C接口的引脚描述 9.2.2 RS232C接口的具体规定 9.2.3 RS232C接口的典型应用
第九章 AT89S52单片机串行通信
9
9.2.1 RS232C接口的引脚描述
第九章 AT89S52单片机串行通信
10
9针连接器和25针连接器间的对应关系
引脚描述 DCD RXD TXD DTR GND DSR RTS CTS RI 9针连接器 1 2 3 4 5 6 7 8 9 25针连接器 8 3 2 20 7 6 4 5 22
38
JNB TI, DL2 CLR TI INC R0 DJNZ R7, DL1 CLR P3.5 LOOP: AJMP LOOP TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H DB 92H, 82H, 0F8H, 80H, 90H, 88H DB 83H, 0C6H, 0A2H, 86H, 84H
第九章 AT89S52单片机串行通信
37
(2)程序清单:
ORG DISP: 8100H SETB P1.2 MOV R7, #02H MOV R0, #61H MOV SCON, #00H DL1: MOV A, @R0 ADD A, #0EH MOVC A, @A+PC MOV SBUF, A
第九章 AT89S52单片机串行通信
RCAP2H FFH FFH FFH FFH FFH FEH FCH F9H EEH FFH FFH FFH FEH FDH FBH
RCAP2L F3H E6H CCH 98H 30H 5FH BFH 7DH 3FH D9H B2H 64H C8H 8FH 1EH