详解单片机串行通讯口的工作方式
1.数据缓冲器SBUF
发送SBUF和接收SBUF共用一个地址99H 。
1)发送SBUF存放待发送的8位数据,写入SBUF将同时启动发送。
发送指令:MOV SBUF,A
2)接收SBUF存放已接收成功的8位数据,供CPU读取。
读取串行口接收数据指令:MOV A,SBUF
2.串行口控制/状态寄存器SCON(98H)
SM0,SM1:选择串行口4种工作方式。
SM2:多机控制位,用于多机通讯。
REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收。
TB8发送的第9位数据位,可用作校验位和地址/数据标识位
RB8:接收的第9位数据位或停止位
TI:发送中断标志,发送一帧结束,TI=1,必须软件清零
RI:接收中断标志,接收一帧结束,RI=1,必须软件清零
3.节电控制寄存器PCON
SMOD(PCON.7):波特率加倍控制位。
SMOD=1,波特率加倍, SMOD=0,则不加倍。
串行接口的工作方式
SM0,SM1选择四种工作方式。
(1) 方式0:同步移位寄存器方式。用于扩展并行I/O接口。
1.一帧8位,无起始位和停止位。
2.RXD:数据输入/输出端。TXD:同步脉冲输出端,每个脉冲对应一个数据位。
3.波特率B = fosc/12 如: fosc=12MHz, B=1MHz,每位数据占1ms。
4.发送过程:写入SBUF,启动发送,一帧发送结束,TI=1。接收过程:REN=1且RI=0,启动接收,一帧接收完毕,RI=1。
(2) 方式1:8位数据异步通讯方式。
1.一帧10位:8位数据位,1个起始位(0),1个停止位(1)。
2.RXD:接收数据端。 TXD:发送数据端。
3.波特率:用T1作为波特率发生器,B=(2SMOD/32)×T1溢出率。
4.发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。接收:REN=1,允许接收。接收完一帧,若RI=0且停止位为1 (或SM2=0),将接收数据装入SBUF,停止位装入RB8,并使RI=1;否则丢弃接收数据,不置位RI。
(3) 方式2和方式3:9位数据异步通讯方式。
1.一帧为11位:9位数据位,1个起始位(0),1个停止位(1)。 第9位数据位在TB8/RB8中,常用作校验位和多机通讯标识位。
2.RXD:接收数据端,TXD:发送数据端。
3.波特率: 方式2:B=(2SMOD/64)×fosc 。
方式3:B=(2SMOD/32)×T1溢出率 。
4.发送:先装入TB8,写入SBUF并启动发送,发送结束,TI=1。接收:REN=1,允许接收。接收完一帧,若RI=0且第9位为1 (或SM2=0),将接收数据装入接收SBUF,第9位装入RB8,使RI=1;否则丢弃接收数据,不置位RI。
详解51系列单片机引脚及功能
51系列单片机有各种封装形式,这里以40引脚双列直插DIP形式的封装来进行介绍,如图1.1所示。其中正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
图1.1 8051双列直插式的引脚配置
有些新型的单片机在引脚数量以及功能上都略有区别,但都是基于51系列单片机内核。这里介绍的内容同样适用于新型的单片机。下面介绍51系列单片机的引脚功能,这些是学习单片机程序设计必须要了解和掌握的基础知识。
❑电源引脚:主要负责单片机的供电,有两根引脚。VCC(Pin40)为正电源端,接5.0V电压;GND(Pin20)为接地端。
❑外接晶振或外部振荡器引脚:主要负责为单片机的运行提供时钟振荡器,主要有两根引脚。其中,XTAL1(Pin19)为时钟XTAL1脚,片内振荡电路的输入端;XTAL2(Pin18)为时钟XTAL2脚,片内振荡电路的输出端。
8051单片机的时钟振荡器有两种工作方式。一种是片内时钟振荡方式,在18和19脚外接石英晶体和振荡电容,振荡电容的值一般取10~30pF。另外一种是外部时钟方式,由外部直接提供时钟源。
❑P0口:即P0.0~P0.7(Pin39~Pin32),输入输出脚,可用于8位并行I/O口或分时复用为地址和数据总线。
P0定义为I/O口时,为准双向I/O口,需外接上拉电阻,在程序中向该端口写入1后,成为高阻抗输入口。P0口作为输出口时,每个引脚可以负载8个TTL。在外扩存储器时,可定义为低8位地址/数据线。
❑P1口:即P1.0~P1.7(Pin1~Pin8),输入输出脚,8位准双向并行I/O口。P1口内部已经具有上拉电阻,为8位准双向I/O口,能负载4个TTL;在Flash编程和校验时,定义为低8位地址线。
❑P2口:即P2.0~P2.7(Pin21~Pin28),输入输出脚,8位准双向并行I/O口。P2口内部已经具有上拉电阻,为8位准双向I/O口,能负载4个TTL;当访问外部存储器时,定义为高8位地址线。
❑P3口:即P3.0~P3.7(Pin10~Pin17),输入输出脚,8位准双向并行I/O口。P3口内部已经具有上拉电阻,为8位准双向I/O口,能负载4个TTL。
P3口每个引脚都具有第二功能。引脚P3.0(RXD)和引脚P3.1(TXD)分别为串行数据的接收和发送端口,用于串行数据传输;引脚P3.2和引脚P3.3为外部中断请求,分别用于
和
的中断输入;引脚P3.4(T0)和引脚P3.5(T1),分别为定时器/计数器T0和T1的外部计数输入端;引脚P3.6(
)和引脚P3.7(
)用于读写单片机片外RAM存储器,分别是外部数据写选通信号和读选通信号。
❑RST(Pin9):单片机内部CPU的复位信号输入端。在单片机的振荡器启动后,该引脚置两个机器周期以上高电平,便可以实现复位。
❑
(Pin30):地址锁存使能端和编程脉冲输入端。
当访问外部程序存储器时,ALE引脚的负跳变将低8位地址打入锁存;而非访问内部程序存储器时,ALE引脚将有一个1/6振荡频率的正脉冲信号,该信号可以用于外部计数或时钟信号。当访问外部数据存储器(执行MOVX类指令)时,ALE引脚会跳过一个脉冲。另外,对8EH单元的特殊功能寄存器的D0位置1,可禁止ALE输出,只有在执行MOVX或MOVC类指令时,ALE才被激活,仍输出锁存有效。在执行片外程序代码时,该设定禁止ALE位无效。
❑
(Pin29):访问外部程序存储器的读选通信号。
当单片机访问外部程序存储器,读取指令码时,每个机器周期产生2次有效信号,即此脚输出2个负脉冲选通信号;在执行片内程序存储器以及读写外部数据时,不产生
脉冲信号。
❑
(Pin31):
为访问内部或外部程序存储器选择信号。
当8051 CPU访问外部程序存储器时,则
必须保持低电平;当
保持高电平时,则8051 CPU先从片内0000H单元开始,执行内部程序存储器程序;如果外部还有扩展程序存储器,则8051 CPU在执行完内部程序存储器程序后,自动转向执行外部程序存储器中的程序。
相关问答
51 单片机rxd 和 txd 引脚功能分别是?RXD是51单片机UART串口的数据接收引脚,TXD是串口的数据发送引脚。使用的时候应该注意RXD和TXD引脚的电路标识,最早的51单片机只有一个UART串口,引脚标识就是R...
PLC的RS485接口怎么和, 单片机 ,的( RXD , TXD )接口通讯。请简要说下,我需要对PLC做哪些设置?单片机的(RXD,TXD)接口是TTL电平的232,得用芯片max485PLC端肯定需要程序单片机的(RXD,TXD)接口是TTL电平的232,得用芯片max485PLC端肯定需要程序
【422串口中,RTS-, TXD -, TXD +, RXD +,GND, RXD -,RTS+;CTS+;CTS-...[最佳回答]我猜:这个接口是与RS232共用!通常422串口TXD-,TXD+,RXD+,GND,RXD-5线标准RS2329线RS-232C接口定义(DB9)引脚定义符号1载波检测...
485通讯tx和rx怎么接线?TX和RX是485模块的前端信号,需要接单片机的串口,通常接法是RX接单片机串口的TXD;TX接单片机串口的RXD,这种接法叫交叉连接,这是和485接口芯片的引序有关的,...
txp串口接口方式?一般的单片机串口应用只需3根信号线:3脚TXD(发送数据)、2脚RXD(接收数据)、5脚SG(信号地)。其中单片机的TXD对应连接PC机的RXD,单片机RXD连接PC的TXD。即...
单片机 是stc89c52,现在想通过串口( TXD 、 RXD 、GND)来烧录程序...用max232如图,软件就用STC-ISP。max232芯片104的电容一个9针串口(母头的)即可具体电路可参考stc89c52的pdf文件CH340T芯片不会烧的,因为它与单...
rx、tx和 rxd 、 txd 是一个意思吗?rx跟rxd,rxd跟txd是同一个意思。关于TXRX的理解:TX代表传送数据,RX是接收数据,即:Transmit和Receive的缩写。1、在INTTERFACE中,查看WAN网卡的...
...不可以直接把它的 TXD 和 RXD 接入 单片机 的 TXD 和 RXD 上用-ZOL问答可以直接接到单片机的TXD和RXD上使用,PL2302是USB转TTL(TTL是5V的信号,RS232是10V左右的信号)TTL信号可以直接单片机信号但RS232的信号要经过电平转换后才可以...
两个 单片机 做一个系统, 单片机 之间用什么方式通信最好啊!!-ZO...3、如果单片机之间通讯距离远的话,可以采用RS485通讯方式;如果单片机之间通讯距离近的话,两个单片机串口可以直接通讯。4、如果对通讯速度要求不高的话,也可以...
怎么实现两个 单片机 之间的串口通信?两个单片机之间串口通信,如果是用proteus仿真,最简单了,两个单片机的RXD,TXD交叉连接就行了。要是实物最好用RS232连接通信,距离可以达到几十米。再远点距离...