c51用c语言写PO口复用6,毕业回馈—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常亮。
c51用c语言写PO口复用6,毕业回馈—89C51之GPIO使用(示例代码)相关推荐
- java socket 重连复用_Java Socket编程基础及深入讲解(示例代码)
Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程.Socket用在哪呢,主要用在进程间,网络间通信.本篇比较长,特别做了个目录: 一.Socket通信基 ...
- ios c语言调用oc方法,ios开发之OC基础-类和对象(示例代码)
本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再 ...
- 在html中怎么写背景色渐变,CSS 实现背景色渐变和文字颜色渐变(示例代码)
1. 背景色渐变 A . linear-gradient:用线性渐变创建图像. 语法: = linear-gradient([ [ | to ] ,]? [, ]+) 下述值用来表示渐变的方向,可 ...
- html中全选按钮代码怎么写,html中的javascript 全选/取消全选操作示例代码
复制代码代码如下: 无标题文档 function selectAllDels() { var allCheckBoxs = document.getElementsByName("preDe ...
- android镊 姩瀹夎 apk,用java写的jodconverter借用openoffice来转换office成pdf的示例代码...
下载安装java sdk7安装完成即可.不用设置环境 安装openoffice到d:/program files/open....目录中 创建目录 g:/sys/qidizi/desktop/java ...
- c语言fmod英文全称,C语言fmod()函数:对浮点数取模(求余)(示例代码)
头文件:#include fmod() 用来对浮点数进行取模(求余),其原型为: double fmod (double x); 设返回值为 ret,那么 x = n * y + ret,其中 n 是 ...
- c语言strsep,C/C++ 字符串分割: strtok 与 strsep 函数说明(示例代码)
函数原型: char *strtok(char *s, const char *delim); char *strsep(char **s, const char *delim); 功能:strtok ...
- c51中断优先级c语言,51单片机中断优先级设置,中断优先级如何设置
Q1:请教高人C51单片机C语言中的中断优先级怎么设置? C51中设置中断优先级,需要对中断寄存器IP进行配置.具体值需要根据用户需要的优先级顺序进行确定,具体的设置方法就是直接写如下C语言语句: I ...
- 【牛客刷题】上手用C语言写一个三子棋小游戏超详解哦(电脑优化)
作者:[南航科院小张 南航科院小张的博客 专栏:从c语言的入门到进阶 学习知识不只是要懂,还要会用:想要找到好的工作,这里给大家介绍一件可以斩获诸多大厂offer的利器–牛客网 点击免费注册和我一起开 ...
- 瑞萨单片机CAN口复用唤醒
瑞萨单片机CAN口复用唤醒 瑞萨单片机睡眠模式 CAN总线唤醒的原理 外部GPIO口唤醒步骤 注意事项 目前笔者在公司实习接触到了瑞萨单片机 经过了一个月的踩坑已经对瑞萨单片机的开发有了一定的了解,现 ...
最新文章
- NYOJ 837 Wythoff Game
- Git协作流程(转)
- 经常用everything对硬盘有伤害吗?
- 专家读《Windows 内核情景分析》这本书
- form表单的get和post传值问题
- Microsoft visual FoxPro使用教程--添加csv文件数据到dbf文件中
- [教程]黑莓终极中文混刷教程 终身受用
- 论文排版一步搞定之公式——(公式居中,编号居右)
- 停下来想一想:你为什么会离开游戏行业?
- 技术人员在客户现场工作注意事项
- [SDN]使用mininet搭建单臂路由的VLAN网络
- 重装系统后开机黑屏显示cannot load file怎么办
- MTK开发之—添加aw21024 i2c设备驱动
- 网络通讯学习(1)---TCP通讯
- 卡通渲染——眼睛面部
- (H-ADCP)声学多普勒剖面流量计
- 论文阅读笔记:Low-Rank Tensor Graph Learning for Multi-view Subspace Clustering(LRTG)
- Eclipse中拷贝粘贴偶尔失效的解决方法
- java 下载加速_Java实现大文件下载,提速30倍!想学?我教你啊!
- 用java的io做一个代码计数器_Java中的程序计数器是什么
热门文章
- wine 运行QQ的问题
- android imagebutton 设置边框,Android ImageButton没有边框但仍然有点击指示
- 用 SIR 模型拟合疫情感染情况
- https://www.bejson.com/devtools/properties2yaml/
- The Environment class in C#
- 力软敏捷开发框架源码7.0.6旗舰版 JNPF开发平台3.3.3 3.4.1企业版/旗舰版框架
- 智慧档案馆之区级档案库房温湿度智能化监控系统案例(一)
- TwinCAT与台达伺服驱动器连接调试控制电机正反转
- [娱乐]华为HWT文件手动修改字体名称
- Linux 环境下maven安装配置