一.GPIO的简介   

STC8H共有P0~P7八组端口,每组端口都有8个引脚,习惯于将GPIO的端口定义成GPIO_PX(X = 0,1,2...),将引脚定义成GPIO_Pin_X(X = 0,1,2...),GPIO可用来作输入或者输出模式实现与外部的通信、控制及数据采集的功能。

· GPIO作输出模式时,可以驱动步进电机,蜂鸣器,模拟I2C通信时序等

· GPIO作输入模式时,可以采集红外对管,灰度传感器的信号,读取按键输入等

二.GPIO的工作模式

传统的8051单片机GPIO的工作模式为弱上拉模式,STC8H系列作为高性能51单片机可以配置四种GPIO工作模式,分别为:

上拉准双向口意味着内部带上拉电阻(弱上拉,高电平只能输出一点几伏),浮空输入则引脚悬空电平不确定,推挽输出可以输出稳定的高低电平,开漏输出则需要在外部接一个上拉电阻。左图为推挽输出电路图,右图为开漏输出原理图(集电极一端什么都不接)。

和STM32单片机的八种GPIO工作模式对比:

 三.GPIO的主要寄存器

1.端口数据寄存器(控制GPIO输出高低电平)x

2.端口模式配置寄存器(PxM0, PxM1)

PnM1和PnM0寄存器八位分别控制8个引脚,n只是代表端口号,x才代表引脚号,在软件模拟I2C时序时栽过坑(I2C引脚想设置成开漏输出,但没有写到对应的引脚上)

此外,还有一些关于GPIO的注意事项:

 四.GPIO的软件操作:

1. 通过异或操作来实现GPIO的电平翻转

2.控制GPIO的流程

设置GPIO模式  >>  写高低电平

STC8H复盘计划第1步:GPIO相关推荐

  1. 计划得一步一步实施,题库首先是第一步!

    大家好,我是雄雄,好久没见了哈,欢迎关注公众号:雄雄的小课堂. 今天上午没有讲课,听写以及把假期作业整理了下,部分学生的假期作业偷工减料,也都让让让他们挨个补上了. 上午将对班级后期的整个计划大致的介 ...

  2. Python数据科学家学习计划分几步?

    Python数据科学家学习计划分几步?起步开始学习旅程之前,要清楚为什么使用Python?Python如何发挥作用?首先我们需要一份关于数据分析方面的Python学习路径,适合新手入门学习. Pyth ...

  3. 2022年5月3日-4日 复盘计划

    每日醒言 适者生存,不适者淘汰. 这个社会笑贫不笑娼,走快一步不会被人看不起,相反,走慢一步就会被人踩. 工作总结 工作内容 五一假期,不涉及工作 不足&反思 反思了过去的工作,最不足的是需求 ...

  4. 2022年4月28日 复盘计划

    昨天下班之后,owner给我打电话说我所负责的模块,上了环境之后,既报400又报500,没法用~让我明天早点看,10点之前完成bug修复,否则算任务完不成,回退版本~~~吓得我很慌,一晚上睡不着&qu ...

  5. 2022年4月25日 复盘计划

    休息了三天,今天重新上班. 工作上,主要做了以下的事情: 把上周提交的代码,解决review意见.说到这点,还是想吐槽一下,之前的方案是owner和前端定下来的,直接在前端硬编码拼接再传值给后端.没想 ...

  6. 2022年4月27日 复盘计划

    4.27实在太累,放到了草稿箱,没有及时更新,现在补上 工作方面 重新把bug改完了,这时候,测试的才拉我和owner对需求---好吧~ 把昨天的设计方案实现了: 举个例子, 平台有:P,W 平台下有 ...

  7. 2022年5月7日-8日 复盘计划

    每日醒言 尊敬是自己用实力换来的,实力有多大,就能受到多大的尊敬. 这个世界,不存在强者对弱者的由衷的尊敬! 众生相,看看西安与上海,就知道社会是多么的公平的. 即使外面如何惊涛骇浪,自己也要做到风平 ...

  8. 2022年5月5日-6日 复盘计划

    每日醒言 遵守规则只是针对普通人来说的! 社会本来就是不公平的,讲公平与规则,只是强者对弱者的可怜与施舍罢了! 工作总结 工作内容 这两天,把agent服务的业务看了一遍,UT覆盖率达到了27%.ag ...

  9. 2022年5月9日-10日 复盘计划

    这几天没更新博客,可能是因为要出项了,所以吃睡不着.曾经试图让自己做到即使外界如何惊涛拍岸的情况下内心保持风平浪静,却不料当前自己是那么的烦躁! 每日醒言 这个社会就是这样的现实,如果你是老板,那么你 ...

最新文章

  1. 中科院自动化所余山:对大脑的未知,并不阻碍借鉴大脑,成就智能
  2. Switcher ---Vista Areo 工具
  3. 记MAVEN技巧 用maven坐标从公司nexus私有库上获取所在存储位置
  4. 如何做自己的服务监控?spring boot 1.x服务监控揭秘
  5. 运行pyspider时出现 : ImportError: cannot import name ‘ContextVar‘
  6. 在AWS S3的连接过程中发生java.lang.BootstrapMethodError: call site initialization exception
  7. 解决启动flanneld失败的方法
  8. 电源大师课笔记 2.8
  9. Typora自动生成标题编号(包含从二级标题开始的)
  10. 如何修改hosts文件
  11. LoadRunner压力测试:测试报告
  12. EM310指令集及使用
  13. html编写在线打字通,HTML5代码打字练习、HTML5案例 - 02
  14. PHP 之建行龙支付 - 被扫查单(商家扫码客户二维码),查询订单是否付款成功
  15. 计算机网络安全期末考试华南理工,华南理工软件学院2015期末考试-计算机网络B卷.doc...
  16. Android项目120项
  17. 稿费一般多少钱一千字_编写教材的稿费一般是多少
  18. 优雅的99乘法表以及format使用
  19. wifi图标突然消失断网
  20. Ubuntu 18.04安装显卡驱动

热门文章

  1. linux实验vim心得,Linux-vim教程(学习心得体会)
  2. 获取指定时区的天数,小时数
  3. Java教职员工工资管理系统(Java课设)
  4. 一种亮红色染料AF 594 NHS Ester|295348-87-7|AF 594 Succinimidyl Ester
  5. 致那些奋斗的青春岁月(下)
  6. ApolloVision视觉之旅(1):机器视觉敏捷开发与快速应用平台
  7. 安装和配置WINS 服务器
  8. 使用二倍均值法模拟抢红包
  9. 盘点 小游戏开发引擎
  10. 阿里云rds MySQL实例服务器连接问题解决