Ⅰ 单片机中的位寻址谁能详细的给讲解一下啊
在单片机中集成有一位处理器,而不同的CPU有属于自己不同的指令,所以在单片机中有部分专门的位处理指令,其中部分位处理指令采用的寻址方式就为位寻址方式.
而所谓的位寻址和一般的存储单元寻址本质上是一样的,只不过它的每个单元只能存储一个二进制位,每个位单元有一个位地址,要访问某个位单元,必须先找到该单元的位地址,找它的方式就叫位寻址方式了.
比如在MCS51单片机里,它把内部RAM区的20H~2FH的16个字节作为位寻址区,每个字节8位,共有128个位单元,从20H字节单元的最低位开始位编址,而一般的起始地址都是从0开始,所以位地址为00~7FH.具体指令如MOVC,04H中的源操作数
为位寻址方式,访问的是字节单元20H的D4位也就是20H.4
Ⅱ 51单片机串口是什么工作方式
51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。
串口可以有底下四种工作方式
1、方式0
串行接口的工作方式0为移位寄存器I/O方式。在串行口外接移位寄存器以扩展I/O接口,也可以外接串行同步I/O的设备。
(1)方式0输出
串行口以方式0发送时,数据以RXD端串行输出,TXD端输出同步信号。当一个数据写入串行口发送缓冲器以后,就启动串行口发送器以振荡频率的十二分之一的波特率,将数据从RXD端串行输出。
(2)方式0输入
当串行口定义为方式0并置位REN后,便启动串行口以方式0接收数据,此时RXD端为数据输入端,TXD端为同步脉冲信号输出端。接收器以振荡率的十二分之一的波特率接收RXD端输入的数据信息。但接收器接收到8位数据时,置1中断标志RI。
2、方式1
串行接口定义为工作方式1时,则被控制为8位的异步通讯接口,传送一帧信息为10位,其中1位为起始位,8位数据位(先低位后高位),1位停止位。
(1)方式1输出
串行接口以方式1发送时,数据由TXD端输出。CPU执行一条数据写入发送缓冲
器SBUF的指令(例如,MOVSBUF,A),数据字节写入SBUF后,便启动串行口发送器发送,发送完一帧信息,置1放送中断标志TI。
(2)方式1输入
串行口以方式1接收时,数据从RXD端输入。在REN置1以后,就允许接收器接收。接收器以所建立的波特率的16倍分频计数器,以便实现时间同步。计数器的16个状态把一位的时间等分成16份,在每位时间的第7、8和9个计数状态,位检测器采样RXD的值,接收的值是3次采样中取至少二次相同的值,以排除噪声的干扰。如果在起始接收的值不是0,则起始位无效,复位接收电路。在检测到另一个1到0的跳变时,再重新启动接收器。如果接收到值为0,起始位有效,则开始接收本帧的其余信息。当RI=0并且接收到的停止位为1(或SM2=0)时,停止位进入RB8,接收到的8位数据进入接收缓冲器SBUF,置位RI中断标志。接着接收便搜索另一帧信息的起始位。
3、方式2和方式3
串行接口工作方式2和方式3时,则被定义为9位的异步通信接口。传送一帧信息为11位,其中1位起始位,8位数据位(从低位至高位),1位是附加的可程控为1或0的第9位数据,1位停止位。
方式2和方式3的差别仅仅在于波特率不一样,方式2的波特率是固定的,波特率为2SMOD/64(振荡频率);方式3的波特率是可变的,波特率=2SMOD/32(T1的溢出率)。
方式2和方式3在发送和接收时唯一的区别就是波特率不同。
(1)方式2和方式3发送
方式2或方式3发送时,数据由TXD端输出,发出一帧信息为11位,附加的第9位数据是SCON中的TB8,CPU执行一条数据写入发送缓冲器SBUF的指令,就启动发送器发送,发送完一帧信息,置“1”TI中断标志。
(2)方式2和方式3接收
串行口被定义为方式2或方式3接收时,数据从RXD端输入,置REN=1以后,开始接收过程。当检测到RXD端从高到低的负跳变时,确认起始位有效,开始接收本帧的其余信息。在接收完一帧信息后,在RI=0、SM2=0时,或接收到第9位数据为“1”时,8位数据装入接收缓冲器,第9位数据装入SCON中RB8,并置RI=1。若不满足上述的两个条件,接收到的信息将会丢失,也不置位RI
Ⅲ 51单片机串行通信起始位和停止位的电平状态
异步串行数据的一般格式是:起始位+数据位+停止位,起始位值为0,是一位时间的低电平;停止位值为1,是高电平。
Ⅳ 要设置51系列单片机串口工作于所需工作方式,应是对哪个专用寄存器进行操作
控制51单片机串行口的控制寄存器共有两个:特殊功能寄存器SCON和PCON。下面对这两个寄存器各个位的功能予以详细介绍。
1.串行口控制寄存器SCON
串行口控制寄存器SCON的格式如表4.4:
SM0、SM1:串行口4种工作方式的选择位。
SM2:允许方式2和3的多机通讯控制位。在方式2或3中,如果SM2置为l,则接收到的第9位数据(RB8)为0时不激活RI。在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。在方式0时,SM2必须清0。
REN:允许串行接收位。由软件置1或清0。REN=l允许接收,REN=O则禁止接收。
TB8:是工作在方式2和3时,要发送的第9位数据。需要时由软件置1或清0。在许多的通讯协议中该位是奇偶校验垃。在多机通讯中用来表示是地址帧或是数据帧,TB8=1为地址帧,TB8=0为数据帧。
RB8:当工作在方式2和3时,为接收到的第9位数据。在多机通讯中为地址帧或数据帧的标识位。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。
D7 D6 D5 D4 D3 D2 D1 D0
SM0 SM1 SM2 REN TB8 RB8 TI RI
T1:发送中断标志位,在方式O串行发送第8位数据结束时由硬件置1,或在其它方式串行发送停止位的开始时置1。TI=1时,申请中断,CPU响应中断后,发送下一帧数据。TI必须由软件清0。 表4.4 串行口控制寄存器SCON的格式
RI:接收中断标志位,在方式O串行接收到第8位数据结束时,由硬件置1。在其它方式中,串行接收到停止位的中间点时置1。RI=1时申请中断,要求CPU取走数据。但在方式1中,SM2=1时,若未收到有效的停止位,不会对RI置1。RI必须由软件清0。
SCON的所有位都能由软件清0。
2.特殊功能寄存器PCON
特殊功能寄存器PCON没有位寻址功能。PCON的格式如表4.5:
表4.5 特殊功能寄存器PCON的格式
D7 D6 D5 D4 D3 D2 D1 D0
SMON × × × × × × ×
SMOD:波特率系数选择位。
3.串行口工作方式
方式0:8位移位寄存器输入/输出方式。在扩展I/O端口外接移位寄存器时常用,其波特率固定为Fosc/12, Fosc为时钟频率;
方式1:10位异步通信方式。其中1个起始位,8个数据位和一个停止位,其波特率计算公式为:波特率=2的SMOD次方/32*(定时器T1的溢出率);
方式2,3:11位异步通信方式,其中一个起始位,8个数据位,1个附加的第9位和1个停止位,方式2和方式3仅只有波特率不同,方式2的波特率=2的SMOD次方/64*Fosc,方式3的波特率=2的SMOD次方/32*(定时器T1的溢出率)。
此次系统串行口工作方式是:01。
SM0、SM1两位为01时,串行口以方式1上作,方式1时串行口被控制为波特率可变的8位异步通讯接口。方式1的波特彩由下式确定:
方式l波特率=2的(SMOD-5)次方*定时器1的溢出率
式中SMOD为PCON寄存器的最高位的值(0或1)。
因为串行口用于连接打印机,所以这里只介绍串行口输出情况。
串行口以方式1输出时,数据位由TXD端输出,发送—帧信息为10位,1位起始位0,8位数据位(先低位)和1位停止位1,CPU执行一条数据写发送缓冲器SBUF的指令,就启动发送。当发送完数据位,置“1”中断标志TI。
Ⅳ 51单片机的串口接收一帧数据有几位
发送的位数跟工作方式有关。51单片机的发送和接受,只有10位和11位两种。
先说单片机串口的工作方式:
单片机串口的工作方式共4种,方式0--方式3.
方式0:用移位脉冲。RXD做输入/输出,TXD进行移位。收发的数据为八位。
方式1:传送一帧信息为10位,即1位起始位(0),8位数据位(低位在先)和1位停止位(1)。数据位由TXD发送,由RXD接收
方式1:一帧信息也是10位;即 1位起始位,8位数据位(先低位),1位停止位。在起始位到达移位寄存器的最左位时,它使控制电路进行最后一次移位。
方式2和方式3:发送(通过TXD)和接收(通过RXD)一帧信息都是 11位: 1位起始位(0), 8位数据位(低位在先),1位可编程位(即第9位数据)和1位停止位(1)。
可见:不论单片机串口接收还是发送一帧数据是多少位,实际有效位数据位都是8位,其余位是为了奇偶校验、做起始位或终止位用的。
以前所述有误,特修正。
Ⅵ 51单片机串行通信起始位和停止位的电平状态
异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1 位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。
起始位是一个值为0的位,所以51单片机,起始位是一位时间的低电平;停止位是值为1的位,所以对于51单片机,停止位是高电平。