毕业回馈—89C51之GPIO使用
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常亮。
毕业回馈—89C51之GPIO使用的更多相关文章
- 毕业回馈-89C51之GPIO使用(流水灯)
今天分享一个89c51制作的8位流水灯案例.使用Proteus仿真. 同上一遍文章不同.上一篇文章中对于GPIO操作主要是位操作,即sbit led1=P0^0;其中P0^0代表p0.0这个引脚,然后 ...
- 毕业回馈-89c51之定时器/计数器(Timer/Count)
今天分享的是89c51系列单片机的内部资源定时器/计数器,在所有的嵌入式系统中都包含这两个内部功能. 首先先了解几个定时器/计数器相关的概念: •时钟周期:时钟周期 T 是时序中最小的时间单位,具体计 ...
- 毕业回馈-89C51之数码管的使用
7段码的数码管由7个LED等共同组成,根据公共端的不同有共阴和共阳之分.现在很多数码管在7段码的基础上加了一个.即dp,其内部结构如下图所示: 公共端为LED灯的阴极,所以为共阴极接法: 公共端为阳极 ...
- 毕业回馈--89C51keil工程的创建
声明:毕业回馈类博客均为大学毕业前夕同同学共享内容.为了给大学做一个总结,报答母校的栽培,才发起这样一个活动. ******************************************** ...
- 毕业回馈-89c52之最小系统
今天分享一个51单片机最小系统的电路板设计(原理图+PCB) 技术手册上面对于51单片机最小系统作如下要求: 下载电路主要有以下几种: 采用RS-232转换器下载:(R1OUT-P3.0;T1IN-P ...
- SmartSchool CC校友录V8(毕业入世版)
SmartSchool CC校友录V8(毕业入世版) 使用说明 CC校友录V8(毕业入世版) 主要面向毕业后在某城市工作的校友,给大家构建一个充分交流的平台,“人脉”积累是本软件的功能特色,为此淡化了 ...
- 从遇见到信任 | Apache Dubbo 的毕业之旅
所谓信任,就是多一次机会. 2018年2月16日,Apache Dubbo 加入 Apache 基金会孵化器. ... 2019年5月16日,Apache 软件基金会董事会决议通过了 Apache D ...
- 就这么漂来漂去---一个毕业三个月的java程序员的裸辞风波
注:这并不是一篇技术文章,而是记录了我这几个月经历的入职,裸辞,找工作的心路历程,简单介绍一个博主的情况,我是16年毕业生,校招进了一家北京的公司,java开发,和很多年轻人一样,干了一段时间,我发现 ...
- [转]: stm328种GPIO模式
[原创]:这段时间开始研究stm32,今天撸着一段代码一直追,追到了GPIO口模式的枚举类型这里,遂去网上查看这8种模式到底是什么,网上一查,看到了一个答案被很多博主转载或者原创,那我也就不重复废话了 ...
随机推荐
- CentOS6系统优化
[root@xuliangwei ~]# cat /etc/redhat-release //系统环境CentOS6.6 CentOS release 6.6 (Final) [root@xulian ...
- VB.NET条码机打印设置纸张大小的方法
Imports System.Drawing.PrintingImports System.Runtime.InteropServices Public Class Page <Runti ...
- Cloudera Manger CDH 安装文档
简介: Cloudera Manager 是 Cloudera 公司推出的 Hadoop 集群管理工具,通过该管理工具可以方便的部署.配置.监控集群. Cloudera 公司自己发布的 Hadoop ...
- iscroll源码学习(1)
iscroll是移端端开发的两大利器之一(另一个是fastclick),为了将它整合的avalon,需要对它认真学习一番.下面是我的笔记. 第一天看的是它的工具类util.js //用于做函数节流 v ...
- [ML]熵、KL散度、信息增益、互信息-学习笔记
[ML]熵.KL散度.信息增益.互信息-学习笔记 https://segmentfault.com/a/1190000000641079
- EmEditor的正则表达式
前提是 "使用正则表达式"的复选框打上勾. 1 查找<>之间的字符串: ".*?"2 查找双引号之间的字符串: ".*?" ...
- 自定义对象实现copy,遵守协议<NSCopying, NSMutableCopying>
自定义对象实现copy,步骤 1.需要遵守NSCopying协议 2.实现协议中的- (id)copyWithZone:(NSZone *)zone 3.在- (id)copyWithZone:(NS ...
- 链接ftp,把文件或图片上传到ftp指定的文件夹中
/******************************************************************** * * * Filename : .java * Auth ...
- Python MySQLdb连接报2003错误原因
经测试,本地连接使用:localhost会报2003错误. 解决办法: 使用:127.0.0.1代替:localhost.
- ajax数据流传参