‘壹’ 51单片机的引脚的四种模式分别是在什么情况下用什么模式
ALE(Address Lock Enable)功能是在访问外部存储器时,P0口做为地址/数据复用口,ALE信号用于锁存低8位地址。当ALE信号为高电平时,P0口上的信息为低8位地址,在ALE信号的下降沿时将P0口上的低8位地址送到地址锁存器锁存起来。在ALE为低电平期间P0口上的信息为指令或数据信息。在ALE为低电平期间P0口上的信息为指令或数据信息,以实现低位地址与数据的分离。;ALE是自动运行的
‘贰’ 单片机通信有三种,其中应用在对讲机是采用
首先弄懂串行通信和并行通信以及串口通信和并口通信的概念。
串行通行:它是一个概念,它是指数据一位一位地顺序传送,其特点就是通信线路
简单,只要一对传输线就可实现双向通信,适用于远距离通信,但传输速度慢。它
包括普通的串口通信,I2C,SPI,UART...
串口通信:是一种实际通信方式,但是我们可以几乎看成一样.
串行接口:简称串口,或串行通信接口,或串行通讯接口(通常指com口)。
并行通信:如果一组数据的各数据位在多条线上同时被传输,那么就是并行通信。
并口接口:就是一种接口,各数据位同时被传输,传输速度快,效率高,一边可用于MCU。
串行通信又可分为单工,半双工和全双工
单工:信息只能单向传送。
半双工:信息能双向传送但不能同时。
全双工:信息能同时双向传送。
串行通信还可分为同步通信和异步通信
同步通信(两根线):是把许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,
在每组信息(通常称为信息帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,
因为同步传输不允许有间隙。同步方式下,发送方除了发送数据,还要传输同步时钟信号,
信息传输的双方用同一个时钟信号确定传输过程中每1位的位置
异步通信(一根信号线,没有时钟线):是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间
间隔可以是任意的。当然,接收端必须时刻做好接收的准备。发送端可以在任意时刻开始发送字符,
因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够
正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。
同步通信与异步通信区别:
1.同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时
不要求接收端时钟和发送端时钟同步,发送端发送 完一个字节后,可经过任意长的时间间隔再发送下一个字节。
2.同步通信效率高;异步通信效率较低。
3.同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。
4.同步通信可用于点对多点;异步通信只适用于点对点。
单片机中的SPI、UART、I2C
1、SPI
SPI允许单片机和外围设备或者单片机之间高速同步数据传输,SPI可以有主机和从机模式之选,通信的主从机之间通过移位寄存器同时交换数据。目前自己用的以主机模式居多。SPI需要四线:SS,MISO,MOSI,SCK。
通信过程:在设置好SPI的工作模式:包括SCK频率(数据传输速率),工作速度,主从模式,以及数据接收发送对应的时钟极性。在主模式下,将SS拉低表示通信的开始,然后通过向SPI数据寄存器中写入一字节的数据后自动启动时钟SCK开始进行一次通信,通信完成后会产生相应的中断标志,标志一个字节数据的传送完成。通信完成后将SS脚拉高,表示通信过程已经结束。
注意SS引脚的设置:当设置为从机模式时,SS引脚应设置为输入,拉低的时候SPI才能起作用,拉高的话是消极的SPI模式;在主机模式下,SS引脚可以设置,一般应设置为输出,如果设置为输入的话应保持为高,否则将不能进行正常的主机模式操作。
2、USART
USART的操作比较简单,主要是设置波特率,数据格式,以及中断允许位等,值得至于的是其USART IN SPI MODE,在SPI模式下的USART的操作跟SPI操作差不多,主要是Clock的设置,然后发送数据还是通过USART的中断进行
3、I2C
I2C接口是简单强大的通信接口,只需要两根双向总线(时钟和数据线),SCL和SDA,即可实现一个主机和最多128个从机进行通信。模拟I2C接口的过程:启动I2C,一般是在SCL为高时将SDA拉低启动数据发送,SDA只有在SCL为低时才能拉高拉低有效,在SCL为高时拉高拉低SDA只是用于停止启动I2C通信
I2C总线是 内部总线 ,用来连接内部系统内的芯片。
串口通信是用来和系统外部的设别通信的。比如设备和设备之间通信。
SPI,UAR,I2C都是串行通信方式,并行通信方式一般用的少,因为只适合
短距离,一般用于MCU比较多,因为MCU它对数据的传输速度有要求,而且
与塔相连的芯片一般会比较近。
MCU 他的属性要比CPU(这里指单片机,其他地方应该也是) 强,它包括CPU的性能,
且还有CPU没有的性能。
‘叁’ 单片机串口通信原理
1.RS232接口
RS232-C接口连接器一般使用型号为DB-9的9芯插头座,只需3条接口线,即"发送数据"、"接收数据"和"信号地"即可传输数据,其9个引脚的定义如图11-3所示。
图11-3 RS232-C接口连接器定义
在RS232的规范中,电压值在+3V~+15V(一般使用+6V)称为"0"或"ON"。电压在-3V~-15V(一般使用-6V)称为"1"或"OFF";计算机上的RS232"高电位"约为9V,而"低电位"则约为-9V。
RS232为全双工工作模式,其信号的电压是参考地线而得到的,可以同时进行数据的传送和接收。在实际应用中采用RS232接口,信号的传输距离可以达到15m。不过RS232只具有单站功能,即一对一通信。
2.RS485接口
RS485采用正负两根信号线作为传输线路。两线间的电压差为+2V~6V表示逻辑"1":两线间的电压差为-2V~6V表示逻辑"0"。
RS485为半双工工作模式,其信号由正负两条线路信号准位相减而得,是差分输入方式,抗共模干扰能力强,即抗噪声干扰性好;实际应用中其传输距离可达1200米。RS485具有多站能力,即一对多的主从通信。
在串行通信中,数据通常是在两个站之间传送,按照数据在通信线路上的传送方向可分为3种基本的传送方式:单工、半双工和全双工,如图11-4所示。
(点击查看大图)图11-4 单工、半双工和全双工通信
单工通信使用一根导线,信号的传送方和接收方有明确的方向性。也就是说,通信只在一个方向上进行。
若使用同一根传输线既作为接收线路又作为发送线路,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式称为半双工。采用半双工方式时,通信系统每一端的发送器和接收器,通过收发开关分时转接到通信线上,进行方向的切换。
当数据的发送和接收,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传输。全双工方式无须进行方向的切换。
串行通信可分为两种类型,一种是同步通信,另一种是异步通信。采用同步通信时,将所有字符组成一个组,这样,字符可以一个接一个地传输,但是,在每组信息的开始要加上同步字符,在没有信息要传输时,填上空字符,因为同步传输不允许有空隙。采用异步通信时,两个字符之间的传输间隔是任意的,所以,每个字符的前后都要用一些数据位来作为分隔位。比较起来,在传输率相同时,同步通信方式下的信息有效率要比异步方式高,因为同步方式的非数据信息比例比较小。但是,从另一方面看,同步方式要求进行信息传输的双方必须用同一个时钟进行协调,正是这个时钟确定了同步串行传输过程中每一个信息位的位置。这样一来,如果采用同步方式,那么,在传输数据的同时,还必须传输时钟信号。而在异步方式下,接收方的时钟频率和发送方的时钟频率不必完全一样,而只要比较相近,即不超过一定的允许范围就行了。在数据传输中,较为广泛采用的是异步通信,异步通信的标准数据格式如图11-5所示。
(点击查看大图)图11-5 异步通信数据格式
从图11-5所列格式可以看出,异步通信的特点是一个字符一个字符地传输,并且每个字符的传送总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一次有一个起始位,紧接着是5~8个的数据位,再后为校验位,可以是奇检验,也可以是偶校验,也可不设置,最后是1比特,或1比特半,或2比特的停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平,这样就保证起始位开始处一定有一个下降沿,以此标识开始传送数据。
‘肆’ 51单片机串行通信工作方式的选择原则、即什么情况下选方式0方式1或方式2或方式3
这种问题很空泛,也只能空泛地回答你:根据需要选择。
首先你得明白这几种工作方式各自的特点。简单来说,模式0多用于实现与外部移位寄存器的接口;模式1、2、3多用于与外部设备的异步串行通信,其中模式1不带第8位、波特率可调;模式2带第8位、波特率固定;模式3带第8位、波特率可调。
‘伍’ 单片机的几种传输方式的总结
学习了51单片机以及STM32后总结下单片机与外设或者上位机通讯的几种传输方式
串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)
串行通信:指数据一位一位顺序传送
串行接口:简称串口(COM口)
并行通信:一组数据的各数据位在多线上同时被传输
并行接口:一种接口,各数据位同时被传输,传输速度快,效率高,一般用于MCU
串行通信分为:
单工:数据单项传送
半双工:数据能双向传送但不能同时
全双工:数据能同时双向传送
通用的、及支持同步也支持异步的接收、发送“模块”,在芯片内部,与SPI、I2C一起构成单片机的总线“枝干”,对于串口,串口通信指串口按位(bit)发送和接收字节,尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
串行通信技术标准EIA-232/485也就是以前所称的RS-232/485。
232是PC机与通信工业中应用最广泛的一种串行接口,RS232单端通信,传输距离可达15米,最高速率20Kbps。
RS485传输速率为10Mbps,最大传输距离1219米,,采用二线制时可实现真正的多点双向通信,而采
用四线连接时只能实现点对多点通信,无论四线还是二线连接方式总线上可接多达 32 个设备。
串行通信传输速率用于说明传输的快慢。在串行通信中,数据是按位进
行传送的,因此传输速率用每秒钟传送格式位的数目来表示,称之波特率
(band rate)。每秒传送一个格式位就是 1 波特。常用的波特率有:4800、
9600、19200、115200 波特。
串口三个脚:TX、RX、GND
IIC总线是一种两线式串行总线,支持多主控,其中任何能够进行发送和接收的设备都可以成为主总线,一个主控能够控制信号的传输和时钟频率,当然在任何时间点上只能有一个主控。IIC总线是由数据线SDA和时钟SCl构成的串行总线,可发送和接收数据,在CPU与被控IC之间,IC与IC之间进行双向传送,最高传送速率100Kbps,各种被控制电路均并联在这条总线上,每个设备模块都有唯一的地址,IIC总线上的每一个设备模块既是主控器或被控器,又是发送器或接收器,这取决于你要实现的功能是怎样的。
CPU发出的控制信号分为地址码和控制量两部分
IIC总线传输过程中有三种信号:起始信号,终止信号,应答信号。
起始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据;
终止信号:SCL 为低电平时,SDA 由低电平向高电平跳变,结束传送数据;
应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出
特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,
等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情
况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单
元出现故障。
SPI允许单片机和外围设备或者单片机之间高速同步数据传输,SPI可以有主机和从机模式之选,通信的主从机之间通过移位寄存器同时交换数据。目前自己用的以主机模式居多。SPI需要四线:SS,MISO,MOSI,SCK。
通信过程:在设置好SPI的工作模式:包括SCK频率(数据传输速率),工作速度,主从模式,以及数据接收发送对应的时钟极性。在主模式下,将SS拉低表示通信的开始,然后通过向SPI数据寄存器中写入一字节的数据后自动启动时钟SCK开始进行一次通信,通信完成后会产生相应的中断标志,标志一个字节数据的传送完成。通信完成后将SS脚拉高,表示通信过程已经结束。
注意SS引脚的设置:当设置为从机模式时,SS引脚应设置为输入,拉低的时候SPI才能起作用,拉高的话是消极的SPI模式;在主机模式下,SS引脚可以设置,一般应设置为输出,如果设置为输入的话应保持为高,否则将不能进行正常的主机模式操作。
单片机通讯方式
‘陆’ 51单片机串行通信模式1同步信号从哪个引脚输出
串行口定义为模式1时,是串行异步通信方式。TXD为数据发送端(不知道是不是你要的“输出”)8051单片机的引脚是11脚
‘柒’ 关于51单片机的串口方式0通讯
严格来说,51单片机的串口方式0,并不是用于串口通信的,只用于在RXD,TXD引脚上接有74LS164,串入/并出,或74LS165,并入串出。也就是只能与串行芯片配合使用的。
而真正用串口实现串行通信的是方式1。所以,你的程序要改成方式1。在方式1时,只有开中断允许标志位和接收到数据后,才会申请中断,单片机才会响应中断。
‘捌’ 单片机中串口的4种工作模式怎么设置
单片机内部有一个全双工的串行接口 。有两个独立的接收、发送缓冲器SBUF(属于特殊功能寄存器)可同时发送、接收数据。MCS-51单片机内部串行接口有4种工作模式。这4种模式分别是 :模式0、模式1、模式2、模式3。串口方式0是作为同步以为寄存器使用的,你用它可以模拟SPI 作为主机。其他三个是串口,只是每次通讯的数据位数或波特率不同而已。
‘玖’ 单片机IO口在作为输入引脚是,为什么要配置成(open drain)开漏模式
这个只是51早期的单片机。
关键是要设置成高阻抗。使端口读取模块有效。让引脚能够跟随外界电压的变化。
否则还是在输出状态下。一直是高或者低。外界信号完全改变不了这个引脚的状态。
又或者不是高阻,很低的阻抗使外界的信号根本驱动不了这个引脚使其电压翻转。一样达不到效果。
‘拾’ 单片机中各引脚的功能是什么
对于at89c51的单片机40引脚
网上找的!希望对你有用
VCC/GND:供电电源。
P0口:可以被定义为数据/地址的低八位,能够用于外部程序/数据存储器。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:标准输入输出I/O,P1口管脚写入1后,被内部上拉为高,可用作输入。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:既可用于标准输入输出I/O,也可用于外部程序存储器或数据存储器访问时的高八位地址。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:既可以作标准输入输出I/O,也可作为AT89C51的一些特殊功能口,
管脚 备选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出
正脉冲信号,此频率为振荡器频率的1/6。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA / VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序
存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程
序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。