1.P0~P4口:
四个并行口均可作为输入输出接口使用,但又有各自的特点。因PO口是数据线和低八位的地址线,因此不用它作输入/输出接口,而是用它传输数据和低八位的地址信息。
2.读取数据:
一般的读指令为读引脚状态,为保证可靠输入,需先输出高电平(复位后为高)
3.定时器
计数输入信号来自内部振荡信号,在每个机器周期内定时器的计数器做一次“+1”运算。因此定时器亦可视为计算机机器周期的计数器。
4.计数器
计数输入信号来自外部引脚T0(P3.4)、T1(P3.5)上的计数脉冲,外部每输入一个脉冲,计数器做一次“+1”运算。
定时器/计数器需写入计数初值,且规定其工作方式。
1.方式控制寄存器TMOD
2.控制寄存器TCON
五、定时器/计数器初始化编程
1.确定工作方式——对方式寄存器TMOD赋值。
2.预置定时或计数初值,直接将初值写入TL0、TH0或TL1、TH1中。
3.根据需要对中断允许寄存器有关位赋值,以开放或禁止定时器/计数器中断。
4.启动定时器/计数器,使TCON中的TR1或TR0置“1”,计数器即按确定的工作方式和初值开始计数或定时
GATE:门控信号
GATE=0,TRi=1时即可启动定时器工作 ;
GATE=1, TRi=1 INTi=1才可启动定时器工作。
C/T:定时器/计数器选择位
C/T=1,为计数器方式;
C/T=0,为定时器方式。
M1 M0 工作模式选择位
M1M0=00 工作方式0(13位方式)。
M1M0=01 工作方式1(16位方式)。
M1M0=10 工作方式2(8位自动再装入方式)。
M1M0=11 工作方式3(T0为2个8位方式)
六、计数初值的计算
设计数器最大计数值为M,选择不同的工作方式,最大计数值M不同。
方式0:M=213=8192
方式1:M=216=65536
方式2、3:M=28=256
置入计数初值X可计算如下:
① 计数方式时:
X=M-计数值(X即为计数值的补码)
例如:要计100个数,则计数初值X=M-100
② 定时方式时:
(M-X)×T=定时值
故,X=M-定时值/T
其中T为计数周期,是单片机时钟的12分频,即单片机机器周期。当晶振为6MHz时,T=2μs,当晶振为12MHz时,T=1μs。
七、串行口
MCS-51系列单片机有一个全双工的串行接口,可进行异步串行接收和串行发送,可编程选择四种工作方式,波特率可由用户设置。
通过引脚RXD(P3.0串行数据接收端)和引脚TXD(P3.1串行数据发送端)与外界进行通信。
八、特殊功能寄存器
数据缓冲器 SBUF
串行口控制寄存器 SCON
特殊功能寄存器 PCON
九波特率发生器
① 定时器T1作波特率发生器,改变计数初值就可以改变串行通信的速率,称为可变波特率。
② 以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为固定波特率
十、单片机如何接收数据
在接收方式下,串行数据通过RXD(P3.0)进入单片机。当接收控制器检测到接收端RXD的负跳变时,启动接收过程,则串行口按照程序设定的格式、以一定的频率(波特率)接收一帧数据,接收完毕,数据存入接收缓冲器SBUF中,并置RI为1。
在发送方式下,通过CPU执行 MOV SBUF, A指令启动发送过程,数据由TXD(P3.1)一位一位的发出,发送完最后一位,将TI置1。
方式0
方式0为同步移位寄存器输入/输出方式,可外接移位寄存器,以扩展I/O口,也可接同步输入/输出设备。
RXD作为移位寄存器的输入输出口,TXD提供移位时钟脉冲,频率为振荡器频率的1/12。移位数据的发送和接收以8位为一组,低位在前,高位在后。
串行口小结:
在串行通信编程中,如果是方式1和方式3,必须对定时计数器T1进行初始化以选择波特率。发送过程是先发送后检查TI;接收过程是先检查RI后接收。无论发送或接收前应先清状态TI或RI,无论是查询方式或中断方式,发送或接收后都不会自动清状态标志,必须用程序清零TI和RI。