目录
51单片机
IO功能
P0.0~P0.7
双向8位三态IO,做“地址/数据总线”(地址总线低8位)时为分时复用口,可在内部没有ROM(如8031)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为‘地址//数据’总线使用。
做GPIO的时,没有内部上拉,为开漏输出。需要外接上拉电阻。
P1.0~P1.7
8位准双向IO,内部上拉,做输入时需要先向该端口写入1。
P2.0~P2.7
8位准双向IO,内部上拉,可做地址总线使用(高8位)
P3.1~P3.7
8位准双向I,双功能复用端口
IO标号 | 复用功能 |
---|---|
P3.0 | RxD(串口1数据接收端) |
P3.1 | TxD(串口1数据发送端) |
P3.2 | INT0(外部中断0,下降沿或低电平中断) |
P3.3 | INT1(外部中断1,下降沿或低电平中断) |
P3.4 | T0(定时器/计数器中断0的外部输入) |
P3.5 | T1(定时器/计数器中断1的外部输入) |
P3.6 | WR(外部储存器的写脉冲) |
P3.7 | RD(外部储存器的读脉冲) |
中断系统
5个中断,可分为两个外部中断INT0、INT1,内部中断包括两个片内定时器中断TF0,TF1,一个串行口中断。其中INT0、INT1,定时器中断是由控制寄存器TCON控制,而串行口中断由串口控制寄存器SCON控制。
1、中断屏蔽寄存器IE
对中断系统所有中断 以及某个中断源的开放和屏蔽。
名称 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
IE | EA | - | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
EA:CPU中断开放标志,EA=1,打开中断使能;EA=0,关闭中断使能
ET2:定时器/计数器T2溢出中断允许位,ET2=1,打开T2中断;ET2=0,关闭T2中断
ES:串口中断允许位。ES=1,打开串口中断,ES=0关闭串口中断
ET1:同ET2
EX1:外部中断1允许位。EX=1,打开外部中断1,EX=0,关闭外部中断
ET0:同ET1
EX0:同EX1
2、中断优先级寄存器IP
名称 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
IP | - | - | PT2 | PS | PT1 | PX1 | PT0 | PX0 |
IP中的某位如果为1,则该位所对应的中断定义为高优先级中断;反之,IP中的某位如果为0,则该为所对应的中断定义为低优先级中断。如果只设置IP,那么中断优先级就只有两级。下图中的中断的查询次号即为中断号,这个中断号在编程时非常重要,当中断来临时,只有中断号正确才能进入中断。
中断源 | 相同优先级内查询次序 |
---|---|
INT0 | 0 |
Timer0 | 1 |
INT1 | 2 |
Timer1 | 3 |
UART | 4 |
Timer3 | 5 |
INT2 | 6 |
INT3 | 7 |
3、中断请求标志TCON
名称 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
TCON | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
-
TCON低四位用于控制外部中断
IE1:外部中断1跳变中断请求标志,当检测到INT1发生1到0的跳变时,由硬件置位;当主机响应中断,转向中断服务程序时,由硬件清零。
IT1:外部中断1触发方式控制位,由软件置位或清零来选择外部中断1的跳变/电平触发中断请求。IT1=0时,外部中断1为电平触发方式,当INT1输入低电平时,置位IE1。采用电平触发方式时,外部中断源必须保持低电平有效,直到该中断被CPU响应,同时在该中断服务程序执行完之前,外部中断源必须被清除,否则将产生另一次中断。IT1=1 时, 外部中断 1 为边沿触发方式,在对 INT1 的相邻两次采样中,如果一个周期中为高电平,接 下来的周期为低电平,则置位 IE1,表示外部中断 1 正在向 CPU 申请中断。直到该中断被 CPU 响应时,才被硬件清零
IE0:同IE1
IT0:同IT1
-
TCON高四位用于控制定时/计数器的启动和中断申请。
TF1:T1 溢出中断请求标志位。T1 计数溢出时由硬件自动置 TF1 为 1。CPU 响应中断后 TF1 由硬件自动清 0。T1 工作时,CPU 可随时查询 TF1 的 状态。所以,TF1 可用作查询测试的标志。TF1 也可以用软件置 1 或清 0,同硬 件置 1 或清 0 的效果一样。
TR1:T1 运行控制位。TR1 置 1 时,T1 开始工作;TR1 置 0 时, T1 停止工作。TR1 由软件置 1 或清 0。所以,用软件可控制定时/计数器的启动与停止。
TF0:同TF1
TR0:同TR1
定时器对片内时钟计数,计数器对外部脉冲计数
4、工作方式寄存器TMOD
名称 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
TMOD | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |
-
GATE: 门控位, GATE=0 时,用于控制定时器的启动是否受外部中断源信号 的影响。只要用软件使 TCON 中的 TR0 或 TR1 为 1,就可以启动定时/计数器工作; GATA=1 时,要用软件使 TR0 或 TR1 为 1,同时外部中断引脚 INT0/1 也为高电时,才能启动定时/计数器工作。即此时定时器的启动条件,加上了 INT0/1 引脚 为高电平这一条件。
-
C/T :定时/计数模式选择位。C/T =0 为定时模式;C/T =1 为计数模式
-
M1M0:工作方式设置位。定时/计数器有四种工作方式
M1M0 工作方式 说明 00 方式0 13位定时/计数器 01 方式1 16位定时/计数器 10 方式2 8位自动重装定时/定时计数器 11 方式3 T0分成两个独立的8位定时/计数器;T1此方式停止计数