博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
毕业回馈—89C51之GPIO使用
阅读量:4568 次
发布时间:2019-06-08

本文共 1412 字,大约阅读时间需要 4 分钟。

STC89C51系列单片机共有如下几类GPIO口:

(1)P0.0-P0.7:

对应DIP40封装的39-32号引脚:P0口既可以作为输入/输出GPIO口,也可以作为地址/数据复用总线使用。

a)P0口作为输入/输出IO口时,P0是一个8位准双向IO口,上电复位后处于开漏模式。且P0口内部无上拉电阻,在作为I/O使用时必须外接4.7K-10K的上拉电阻;

b)P0口作为地址/数据复用总线时,是低八位地址线【A0-A7】,数据线【D0-D7】,无需外接上拉电阻

(2)P1.0-P1.7:

对应DIP40封装的1-8号引脚:均可作为标准IO口,对于90系列的51内核的单片机其中P1.0,P1.1均有第二功能,P1.0可以作为定时器/计数器2(Timer2/Count2)的外部输入;P1.1可以作为定时器/计数器2(Timer2/Count2)的捕捉/重装方式的触发控制。

(3)P2.0-P2.7:

对应DIP40封装的21-28号引脚:内部含有上拉电阻,即可作为输入输出口,也可作为高8位地址总线使用(A8-A15);作为输入输出口时,P2口是一个准双向口

(4)P3.0-P3.7:

对应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常亮。

转载于:https://www.cnblogs.com/Mr-Wangblogs/p/8905751.html

你可能感兴趣的文章
Windows常用命令集
查看>>
luogu P2073 送花
查看>>
CPU占用率呈正弦实现,及实时输出进程和线程的CPU占用率
查看>>
java学习第八天
查看>>
判断是否有人在操作某张表,并获取…
查看>>
第四周仿真与计算作业
查看>>
.net中WebService的使用实例
查看>>
editplus的配色
查看>>
最近3年股息率最高排名
查看>>
ural 1091. Tmutarakan Exams 和 codeforces 295 B. Greg and Graph
查看>>
IO流(四)
查看>>
Java 序列化Serializable
查看>>
Spring在web请求中定义编码(org.springframework.web.filter.CharacterEncodingFilter)
查看>>
[数据库基础]——编码标准之结构
查看>>
c++模版函数
查看>>
android Fragments详解二:创建Fragment
查看>>
VMware Tools (ubuntu系统)安装详细过程与使用
查看>>
Oracle性能优化-读懂执行计划
查看>>
关于VC弹出选择文件夹对话框
查看>>
perl多线程理解
查看>>