#include "user_config.h"
void GPIO_DeInit()
{
//设置所有IO为高阻输入模式,进行初始化
P0M0 = P1M0 = P2M0 = P3M0 = P4M0 = P5M0 = P6M0 = P7M0 = 0X00;
P0M1 = P1M1 = P2M1 = P3M1 = P4M1 = P5M1 = P6M1 = P7M1 = 0XFF;
P1 = P2 = P3 = P4 = P5 = P6 = P7 = 0X00;
}
void GPIO_Init(uint8_t PORT, uint8_t PIN, uint8_t MODE, uint8_t OUTPUT)
{
uint8_t pinMode0 = 0, pinMode1 = 0, pinValue = 0;
uint8_t PnM0 = 0X00, PnM1 = 0X00, Pn = 0X00;
pinMode0 = (MODE & 0x01) >> 0;
pinMode1 = (MODE & 0x02) >> 1;
pinValue = OUTPUT;
if (PIN == PIN_ALL)
{
PnM0 = pinMode0 == true ? 0xFF : 0x00;
PnM1 = pinMode1 == true ? 0xFF : 0x00;
Pn = pinValue == true ? 0xFF : 0x00;
}
else
{
switch (PORT)
{
case PORT0:
{
PnM0 = P0M0;
PnM1 = P0M1;
Pn = P0;
break;
}
case PORT1:
{
PnM0 = P1M0;
PnM1 = P1M1;
Pn = P1;
break;
}
case PORT2:
{
PnM0 = P2M0;
PnM1 = P2M1;
Pn = P2;
break;
}
case PORT3:
{
PnM0 = P3M0;
PnM1 = P3M1;
Pn = P3;
break;
}
case PORT4:
{
PnM0 = P4M0;
PnM1 = P4M1;
Pn = P4;
break;
}
case PORT5:
{
PnM0 = P5M0;
PnM1 = P5M1;
Pn = P5;
break;
}
case PORT6:
{
PnM0 = P6M0;
PnM1 = P6M1;
Pn = P6;
break;
}
case PORT7:
{
PnM0 = P7M0;
PnM1 = P7M1;
Pn = P7;
break;
}
}
PnM0 = PnM0 & (~(0x01 << PIN));
PnM0 = PnM0 | (pinMode0 << PIN);
PnM1 = PnM1 & (~(0x01 << PIN));
PnM1 = PnM1 | (pinMode1 << PIN);
Pn = Pn & (~(0x01 << PIN));
Pn = Pn | ((pinValue) << PIN);
}
switch (PORT)
{
case PORT0:
{
P0M0 = PnM0;
P0M1 = PnM1;
P0 = Pn;
break;
}
case PORT1:
{
P1M0 = PnM0;
P1M1 = PnM1;
P1 = Pn;
break;
}
case PORT2:
{
P2M0 = PnM0;
P2M1 = PnM1;
P2 = Pn;
break;
}
case PORT3:
{
P3M0 = PnM0;
P3M1 = PnM1;
P3 = Pn;
break;
}
case PORT4:
{
P4M0 = PnM0;
P4M1 = PnM1;
P4 = Pn;
break;
}
case PORT5:
{
P5M0 = PnM0;
P5M1 = PnM1;
P5 = Pn;
break;
}
case PORT6:
{
P6M0 = PnM0;
P6M1 = PnM1;
P6 = Pn;
break;
}
case PORT7:
{
P7M0 = PnM0;
P7M1 = PnM1;
P7 = Pn;
break;
}
}
}
STC8A8KGPIO库.zip
版权申诉
29 浏览量
2022-01-05
20:13:39
上传
评论
收藏 1KB ZIP 举报
帅哥的小迷弟
- 粉丝: 8
- 资源: 4
最新资源
- 卡方数据.sav
- Python实现基于Django框架的二手物品购物网站设计源码+数据库.zip
- 基于Python和Django的二手物品购物网站设计源码+数据库脚本.zip
- 【计算机毕业设计】基于h5的移动网赚项目小程序【源码+lw+部署文档+讲解】
- 【计算机毕业设计】基于ssm-vue的oa系统设计与实现【源码+lw+部署文档+讲解】
- 基于pytorch实现的YOLOV5+SORT的车辆行人目标识别及追踪系统源码.zip
- 【计算机毕业设计】基于servlet+jdbc的在线选房系统设计与实现【源码+lw+部署文档+讲解】
- 投身科技创新,勇担时代先锋.pptx
- 【计算机毕业设计】基于SSM的仿微博系统的设计与实现【源码+lw+部署文档+讲解】
- 使用 Web Components 实现,遵循 Material You 设计规范的 Web 前端组件库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈