第九章 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 串行通信的数据通路形式(二) 串行通信基本通信方式按照串行数据的同步方式,串行通信可分为异步通信方式和同步通信方式。
单⽚机AT89S52中⽂资料单⽚机AT89S52中⽂资料AT89S521主要性能l 与MCS-51单⽚机产品兼容l 8K字节在系统可编程Flash存储器l 1000次擦写周期l 全静态操作:0Hz~33MHzl 三级加密程序存储器l 32个可编程I/O⼝线l 三个16位定时器/计数器l ⼋个中断源l 全双⼯UART串⾏通道l 低功耗空闲和掉电模式l 掉电后中断可唤醒l 看门狗定时器l 双数据指针l 掉电标识符功能特性描述AT89S52是⼀种低功耗、⾼性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
使⽤Atmel 公司⾼密度⾮易失性存储器技术制造,与⼯业80C51 产品指令和引脚完全兼容。
⽚上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯⽚上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌⼊式控制应⽤系统提供⾼灵活、超有效的解决⽅案。
AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O ⼝线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,⼀个6向量2级中断结构,全双⼯串⾏⼝,⽚内晶振及时钟电路。
另外,AT89S52 可降⾄0Hz 静态逻辑操作,⽀持2种软件可选择节电模式。
空闲模式下,CPU停⽌⼯作,允许RAM、定时器/计数器、串⼝、中断继续⼯作。
掉电保护⽅式下,RAM内容被保存,振荡器被冻结,单⽚机⼀切⼯作停⽌,直到下⼀个中断或硬件复位为⽌。
R8 位微控制器8K 字节在系统可编程FlashAT89S52Rev. 1919-07/01AT89S522 引脚结构AT89S523 ⽅框图引脚功能描述AT89S524 VCC : 电源GND: 地P0 ⼝:P0⼝是⼀个8位漏极开路的双向I/O⼝。
作为输出⼝,每位能驱动8个TTL逻辑电平。
对P0端⼝写“1”时,引脚⽤作⾼阻抗输⼊。
当访问外部程序和数据存储器时,P0⼝也被作为低8位地址/数据复⽤。
引言单片机与PC机串行通信,又称为下位机与上位机的串行通信。
采用这种通信方式,可以解决工况条件差对工作人员带来的危害,又可以实现实时在线远距离集中监控,对工作现场分散的单片机采用控制平台管理,既可以改善工作条件,又可以提高工作效率。
本文针对串行通信的电路设计和程序设计做出了具体的阐述。
1 电路设计通信接口标准有RS232、RS423A、RS422A、RS485等,常用的接口标准有RS232和RS485。
RS232在微机串行通信接口中广泛采用,在加装了调制解调器(modem)的情况下,这种通信可以通过电话线传输数据,并且可以传输几千公里远的距离,如果没有modem可以传输十几米远。
本课题采用的是RS-232直连无modem方式和DB-9连接器,单片机采用AT89S52,使单片机的串行输入端(RXD)和串行输出端(TXD)与PC机的COM口相连接。
RS232是用正负电压来表示逻辑状态,与TTL高低电平表示逻辑状态的规定不同。
因此,为了能够同计算机接口相连或TTL器件相连,必须在RS232与TTL之间进行电平和逻辑关系的变换。
实现这种变换的方法可以用单立元件,也可以用集成芯片,本文采用MAX232来完成TTL- EIA(美国电子工业联合会)双向电平转换。
MAX232内部有电压倍增电路和转换电路,仅需+5 V电源便可工作,使用十分方便,其与AT89S52连接时可以采用最简单的方式连接(见图1),MAX232的T1 IN引脚与89S52的串行输入口线P3.1TXD相连,R1 OUT引脚与89S52的串行输入口线P3.0RXD相连,MAX232的T1 OUT、R1 IN分别于与RS232的2、3引脚相连。
MAX232泵电源引脚必须接0.1μf 电容,如图中的C26、C27、C28、C29。
因为电路中采用了电平转换芯片,只需把单片机所用到的连接器和PC机串口所用的连接器的2、3、5管脚对应连接起来,2、3管脚不需交叉连接(如图2所示);如果是PC机之间或同一个PC机的两个COM口相连,则两个连接器的2、3管脚需交叉相连。
AT89S52单片机简介AT89S52是由Atmel公司推出的高性能、低功耗8位单片机。
它基于MCS-51指令集架构,具有丰富的外设资源和强大的处理能力。
AT89S52单片机可以广泛应用于工业控制、仪器仪表、通信、家电等领域。
主要特性•8051核心,8位CPU•8KB的闪存程序存储器,存储容量大•256字节的RAM,处理能力强•3个定时器/计数器,可用于定时和脉冲宽度测量•2个串行通信接口,方便与其他设备通信•32个IO口,方便连接外部设备•4个中断源,能快速响应外部事件•器件供电电压范围广,3V至5.5V•低功耗设计,满足节能要求引脚布局AT89S52单片机有40个引脚,主要包括通用IO口、定时器/计数器引脚、中断引脚和串行通信引脚等。
以下是AT89S52单片机引脚布局:引脚编号引脚名称功能描述1P1.0数字IO口2P1.1数字IO口3P1.2数字IO口4P1.3数字IO口5P1.4数字IO口6P1.5数字IO口7P1.6数字IO口8P1.7数字IO口9RST复位引脚,用于系统复位10EA扩展内存ROM的控制引脚11VCC正电源引脚12P3.0数字IO口13P3.1数字IO口14P3.2数字IO口15P3.3数字IO口16P3.4数字IO口17P3.5数字IO口18P3.6数字IO口19P3.7数字IO口20GND地线引脚21XTAL1外部晶振接入口22XTAL2外部晶振接出口23P0.0数字IO口24P0.1数字IO口25P0.2数字IO口26P0.3数字IO口27P0.4数字IO口28P0.5数字IO口29P0.6数字IO口30P0.7数字IO口31VCC正电源引脚32RST复位引脚,用于系统复位33ALE地址锁存使能引脚34PSEN外部程序存储器读使能引脚35P2.7数字IO口36P2.6数字IO口37P2.5数字IO口38P2.4数字IO引脚39P2.3数字IO引脚40P2.2数字IO引脚AT89S52的编程AT89S52单片机通过“编程器”将目标程序写入其闪存程序存储器中。
单⽚机AT89S52介绍AT89S52简介AT89S52是⼀个8位单⽚机,⽚内ROM全部采⽤FLASH ROM技术,与MCS-51系列完全兼容,它能以3V的超低电压⼯作,晶振时钟最⾼可达24MHz。
AT89S52是标准的40引脚双列直插式集成电路芯⽚,有4个⼋位的并⾏双向I/O端⼝,分别记作P0、P1、P2、P3。
第31引脚需要接⾼电位使单⽚机选⽤内部程序存储器;第9引脚是复位引脚,要接⼀个上电⼿动复位电路;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS,通常在VCC和VSS引脚之间接µF⾼频滤波电容。
第18、19脚之间接上⼀个12MHz的晶振为单⽚机提供时钟信号。
AT89S52单⽚机说明如下:此芯⽚是⼀种⾼性能低功耗的采⽤CMOS⼯艺制造的8位微控制器,它提供下列标准特征:8K字节的程序存储器,256字节的RAM,32条I/O线,2个16位定时器/计数器, ⼀个5中断源两个优先级的中断结构,⼀个双⼯的串⾏⼝, ⽚上震荡器和时钟电路。
引脚说明:·V:电源电压CC·GND:地·P0⼝:P0⼝是⼀组8位漏极开路型双向I/O⼝,作为输出⼝⽤时,每个引脚能驱动8个TTL逻辑门电路。
当对0端⼝写⼊1时,可以作为⾼阻抗输⼊端使⽤。
当P0⼝访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复⽤的形式。
在这种模式下,P0⼝具有内部上拉电阻。
在EPROM编程时,P0⼝接收指令字节,同时输出指令字节在程序校验时。
程序校验时需要外接上拉电阻。
·P1⼝:P1⼝是⼀带有内部上拉电阻的8位双向I/O⼝。
P1⼝的输出缓冲时,它们被内部的上拉电阻1⼝写P1逻辑门电路。
当对TTL个4能接受或输出拉升为⾼电平,此时可以作为输⼊端使⽤。
当作为输⼊端使⽤时,P1⼝因为内部存在上拉电阻,所以当外部被拉低时会输出⼀个低电流(I)。
IL·P2⼝:P2是⼀带有内部上拉电阻的8位双向的I/O端⼝。