×
嵌入式 > 嵌入式开发 > 详情

51单片机在片设备与中断(1)

发布时间:2020-09-01 发布时间:
|
并行端口要点
  1. MCS-51单片机内部有4个8位的并行I/O口P0、P1、P2、P3。其中P3口、P2口、P1口为准双向口,P0口为双向的三态数据线口。各端口均由端口锁存器、输出驱动器、输入缓冲器等构成。各端口除可进行字节的输入/输出外,每个位口线还可单独用作输入/输出,实际应用非常方便。
  2. 对并行I/O口的“读—修改—写”类指令(例如CPL P0.0、ANL P1,#0FH等)实际是读出对应的端口锁存器的内容,执行修改后再写回到端口锁存器中。之所以是“读锁存器”而不是“读引脚”,是为了避免因引脚外部电路的原因而使引脚的状态发生改变而造成误读。
  3. P0口是一个三态双向I/O口,在需要进行外部ROM、RAM等扩展时,采用分时复用的方式,通过地址锁存器后作为地址总线的低8位和8位数据总线;在不需要进行外部ROM、RAM等扩展时,作为通用的I/O口使用。P0在用作通用输出口时必须外接上拉电阻,用作输入口时,则必须先把锁存器写入1。P0口的输出级具有驱动8个LSTTL负载的能力。

  4. 当不需要在单片机芯片外部扩展程序存储器,只需扩展256字节的片外RAM时,访问片外RAM就可以利用“MOVX A,@Ri”,“MOVX @Ri,A”类指令来实现。这时只用到了地址线的低8位,P2口不受该类指令的影响,仍可以作为通用I/O口使用。

  5. P3口相应的端口线处于第二功能,应满足的条件是:

    串行I/O口处于运行状态(RXD,TXD)。

    外部中断已经打开(INT0、INT1)。

    定时/计数器处于外部计数状态(T0、T1)。

    执行读/写外部RAM的指令(RD、WR)。

定时/计数器4种工作方式的特点

  1. 方式0是13位计数器,最大计数值213=8192,计数范围比方式1小,计算定时初值比较麻烦,容易出错,与方式1比较无任何优点(设计初衷是为了兼容更早的48系列单片机)。
  2. 方式1是16位计数器,最大计数值为216=65536,计数范围大,适用于定时范围较大的应用场合。
  3. 方式2是8位计数器,最大计数值是28=256,缺点是计数范围小,优点是定时初值可自动恢复,适用于需要重复定时,而定时范围还不大的应用场合。
  4. 方式3是8位计数器,仅适用于T0,T1无方式3。T0方式3时,被拆成两个独立的8位计数器TH0、TL0:TL0使用T0原有的控制寄存器组成一个8位的定时/计数器;TH0借用T1的TF1、TR1,只能对机内机器周期脉冲计数,组成另一个8位定时器。T0方式3时T1方式2作串行口波特率发生器。

定时器初值的计算

定时时间的计算公式为:

T=(M-TC)×T0(或TC=M-T/T0)

其中 T:定时器的定时时间,即设计任务要求的定时时间;

T0:计数器计数脉冲的周期,即单片机系统主频周期的12倍;

M:计数器在相应工作方式下的计数模值;

TC:定时器需要预置的初值。

若设初值TC=0,则定时器定时时间为最大。当单片机系统主频为12MHz时,各种工作方式下定时器的最大定时时间为:

工作方式0Tmax=2^13×1us=8.192ms

工作方式1Tmax=2^16×1us=65.536ms

工作方式2和3:Tmax=2^8×1us=0.256ms



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Diodes 推出单闸逻辑设备.助力ADAS 等车用产品应用