【STC8】GPIO模式

目录

前言

I/O口模式

使用步骤

总结

前言

IO口模式切换,本文的目的,简单的整合IO口模式切换的代码,到用到时能快速用上。材料就一块STC8A8K64D4核心板。

I/O口模式

I/O口四大模式简略介绍:

准双向口:(传统8051端口模式,弱上拉)灌电流可达20mA,拉电流为270~150uA(存在制造误差)
推挽输出:(强上拉输出,可达20mA,要加限流电阻)
高阻输入:(电不能流入也不能流出)
开漏输出:(Open-Drain) ,内部上拉电阻断开正在联网识别并翻译.开漏模式既可读外部状态也可对外输出(高电平或低电平)。  如要正确读外部状态或需要对外输出高电平,需外加上拉电阻,否则读不到外部状态,也对外输不出高电平。

需要注意的是STC8A8K64D4上电后除了P30,P31是准双向口外其余的默认是高阻输入。STC8A8K64S4A12是上电后全是准双向口。

整个芯片的工作电流推荐不要超过70mA,即从Vcc流入的电流建议不要超过70mA,从Gnd流出电流建议不要超过70mA,整体流入/流出电流建议都不要超过70mA。 

想要更详细的可以去参考官方的文档。

使用步骤

我只写了单个IO口模式切换,整组IO模式切换。就放单个IO口模式切换的代码出来就行了,如有有用到,可在自行下载源文件。

//单个IO口模式切换
//参数io:		范围:1~XX(具体看有多少pin脚)	作用:单个IO口号
//参数mod:		范围:0~3					作用:模式	0:准双向口	1:推挽输出	2:高阻输入	3:开漏输出
//例如:P20要切换成推挽输出就是	GPIO_Mod(20,1);		P30要切换成开漏输出就是	GPIO_Mod(30,3);
void GPIO_Mod(unsigned char io,mod)
{
	char ioa=io%10;
	char moda=mod%2;
	char modb=mod/2;
	switch(io/10)
	{
		case 0:
			P0M0=P0M0&((0x00|moda)<

总结

GPIO库模式切换库文件

链接:https://pan.baidu.com/s/1MhEvKRtSboGt0AyVX19v3g?pwd=1234 
提取码:1234

你可能感兴趣的:(STC8模块,c语言,单片机,51单片机)