STC89C51系列单片机共有以下几类GPIO口:安全
(1)P0.0-P0.7: 函数
对应DIP40封装的39-32号引脚:P0口既能够做为输入/输出GPIO口,也能够做为地址/数据复用总线使用。url
a)P0口做为输入/输出IO口时,P0是一个8位准双向IO口,上电复位后处于开漏模式。且P0口内部无上拉电阻,在做为I/O使用时必须外接4.7K-10K的上拉电阻;.net
b)P0口做为地址/数据复用总线时,是低八位地址线【A0-A7】,数据线【D0-D7】,无需外接上拉电阻3d
(2)P1.0-P1.7:blog
对应DIP40封装的1-8号引脚:都可做为标准IO口,对于90系列的51内核的单片机其中P1.0,P1.1均有第二功能,P1.0能够做为定时器/计数器2(Timer2/Count2)的外部输入;P1.1能够做为定时器/计数器2(Timer2/Count2)的捕捉/重装方式的触发控制。get
(3)P2.0-P2.7:it
对应DIP40封装的21-28号引脚:内部含有上拉电阻,便可做为输入输出口,也可做为高8位地址总线使用(A8-A15);做为输入输出口时,P2口是一个准双向口io
(4)P3.0-P3.7:class
对应DIP40封装的10-17号引脚:都可做为标准IO口使用。此外均具有第二功能;
P3.0—RXD:串行数据接收端
P3.1—TXD:串行数据发送端
P3.2—INTO:外部中断0,降低沿中断或者低电平中断(低电平有效)
P3.3—INT1:外部中断1,降低沿中断或者低电平中断(低电平有效)
P3.4—T0:定时器/计数器0的外部输入
P3.5—T1:定时器/计数器1的外部输入
P3.6—WR:外部数据存储器写脉冲(低电平有效)
P3.7—RD:外部数据存储器读脉冲(低电平有效)
GPIO模式简介:
51单片机IO口均具有准双向口/弱上拉,和开漏输出模式;P1,P2,P3上电复位后是准双向口/弱上拉,P0口上电复位后是开漏输出。
其中5V单片机P0口的灌电流最大为12mA,其余IO口的灌电流最大为6mA;
3V单片机的P0口的灌电流最大为8mA,其余IO口的灌电流最大为4mA;
准双向口读外部状态前,要先锁存为‘1’,才能够读取到外部状态;
当端口锁存器为0时,开漏输出关闭全部的上拉晶体管;看成为一个逻辑输出时,这种配置方式必须外部上拉。通常经过电阻外接到VCC,若是外部有上拉电阻,开漏的IO口还能够读取外部状态。
实验—LED亮灭与闪烁
LED工做原理:当其阳极和阴极之间有大于0.7V的正向压降,LED导通,而后变亮;
与单片机的链接以下图:
限流电阻的计算公式以下图:
LED(light-emitting diode),即发光二极管,俗称LED小灯,普通的贴片发光二极管。这种二极管一般的正向导通电压是 1.8V到2.2V 之间,工做电流通常在 1mA~20mA 之间。
因此,在工程上为了安全起见,通常选择200-3k的电阻
引脚定义:
IO口初始化以下:
主函数以下:
经过以上程序即可以实现点亮LED灯;
下面实现LED灯的闪烁:
闪烁的原理是在亮灭切换中间加入必定的延时函数,咱们对LED灯点亮程序作以下修改:
delay()函数定义以下:
自此就能够实现LED1闪烁,LED2常亮。