第九章 AT89s52单片机串行通信
- 格式:ppt
- 大小:576.00 KB
- 文档页数:45
基于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;}} */。
基于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 允许程序存储器在系统可编程,亦适于常规编程器。
单片机与电脑之间的串口通讯(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 单片机的串行接口单片机在当今的电子世界中,单片机扮演着至关重要的角色,就像一个智能的小大脑,控制着各种设备的运行。
而 AT89S52 单片机作为其中的一员,其串行接口更是有着独特的魅力和重要的应用价值。
首先,咱们来聊聊什么是串行接口。
简单来说,串行接口就是一种在单片机和外部设备之间进行数据传输的通道。
它不像并行接口那样同时传输多位数据,而是一位一位地按顺序传输。
这就好比是在一条狭窄的小路上,一个人一个人依次通过,而不是一群人一下子涌过去。
AT89S52 单片机的串行接口有两种工作模式,一种是同步模式,另一种是异步模式。
在同步模式下,数据的发送和接收是与一个时钟信号同步进行的。
这个时钟信号就像是一个指挥棒,指挥着数据传输的节奏,确保数据的准确性和稳定性。
而异步模式则不需要时钟信号来同步,它通过起始位、数据位、奇偶校验位和停止位这些特定的位组合来实现数据的传输。
咱们来具体说一说异步模式。
当 AT89S52 单片机要发送数据时,它会先发送一个起始位,这个起始位就像是一个信号,告诉接收方“我要开始发送数据啦”。
然后,单片机按照事先设定好的位数,依次发送数据位。
为了检验数据在传输过程中有没有出错,还会加上奇偶校验位。
最后,再发送一个停止位,表示这一组数据发送结束。
接收方呢,就根据这些约定好的规则来接收和解读数据。
串行接口在 AT89S52 单片机中的应用那可真是广泛。
比如说,在与计算机进行通信时,通过串行接口,单片机可以将采集到的数据发送给计算机,让计算机进行进一步的处理和分析。
在远程控制方面,单片机可以通过串行接口接收来自远程终端的指令,从而实现对设备的远程控制。
还有在多机通信中,多个单片机可以通过串行接口组成一个网络,相互之间交换数据和协调工作。
要使用 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机之间的通信。
项目一单片机点对点通信第一部分项目要求利用AT89S52实现单片机点对点通信。
要求将存放在甲机的数据存储器20H—27H单元中数据,首先在甲机上显示,然后发送到PC机,进而再发送到乙机,以实现单片机与PC机和单片机与单片机之间的通信。
第二部分 相关知识一、 串行通信基本知识(一) 串行通信基本概念串行通信的特点是:数据是按位的顺序进行传送,最少只需一根传输线即可完成,成本低但速度慢。
计算机与外界的数据传送大多数是串行的,其传送的距离可以从几米到几千公里。
并行通信的特点是:各数据位同时传送,传送速度快、效率高。
但并行数据传送有多少数据位,就需多少根数据线,因此传送成本高。
串行数据通信共有以下几种数据通路形式。
1.单工(Simplex)形式单工形式的数据传送是单向的。
通信双方中一方固定为发送端,另一方则固定为接1收端。
单工形式的串行通信,只需要一条数据线。
如图5.1(a)所示。
例如计算机与打印机之间的串行通信就是单工形式,因为只能是计算机向打印机传送数据,而不可能有相反方向的数据传送。
2.半双工(Half-duplex)形式半双工形式的数据传送也是双向的。
但任何时刻只能由其中的一方发送数据,另一方接收数据。
因此半双工形式既可以使用一条数据线,也可以使用两条数据线。
如图5.1(b)所示。
3.全双工(Full-duplex)形式全双工形式的数据传送是双向的,且可以同时发送和接收数据,因此全双工形式的串行通信需要两条数据线。
如图5.1 (c)所示。
图5.1 串行通信的数据通路形式(二) 串行通信基本通信方式按照串行数据的同步方式,串行通信可分为异步通信方式和同步通信方式。