【AI8051U 超简单使用库】1:gpio配置操作
这是我最先写的ai8051的库函数,因为之前用惯了stm32单片机所以一开始使用ai8051的时候不习惯这款单片机的使用方法。于是我就把ai8051的gpio操作给封装起来了成为很像stm32标准库操作的函数。
这个是我封装的第一个库函数。希望大家多多关注后面我还会把ai8051u的其他外设的库函数给大家开源出来。敬请期待!
这是我目前所封装好了的ai8051u的例程。向大家保证只要用了我的库就能在使用ai8051的过程中完全不用考虑底层寄存器的问题。真正实现了面向对象编程!
好废话不多说我先介绍下gpio操作。
实验1:指定io引脚翻转
#include "config.h"
#include "AI8051U_GPIO.h"
#include "AI8051U_Delay.h"
#include "AI8051U_NVIC.h"
#include "AI8051U_Switch.h"
#include "OLED.h"
#include "GPIO.h"
void main(void)
{
WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXSFR(); //扩展SFR(XFR)访问使能
CKCON = 0;//提高访问XRAM速度
GPIO_Init(GPIO0, GPIO_Pin_6, GPIO_Mode_IPU);
GPIO_Init(GPIO3, GPIO_Pin_3, GPIO_Mode_Out_PP); //p34和p33设置为推挽输出
GPIO_Init(GPIO3, GPIO_Pin_4, GPIO_Mode_Out_PP);
//开启全局中断(51单片机必备,否则所有中断都不生效)
EA = 1;
while (1)
{
3 引脚翻转
GPIO_Toggle_Bits(GPIO3, GPIO_Pin_3);
GPIO_Toggle_Bits(GPIO3, GPIO_Pin_4);
delay_ms(100);
}}
实验2:读取外部引脚
void main(void)
{
WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXSFR(); //扩展SFR(XFR)访问使能
CKCON = 0;//提高访问XRAM速度
GPIO_Init(GPIO0, GPIO_Pin_6, GPIO_Mode_IPU);//设置为上拉输入(本质是准双向口加上上拉电阻,在悬空的时候该引脚为高电平)
GPIO_Init(GPIO3, GPIO_Pin_3, GPIO_Mode_Out_PP); //p34和p33设置为推挽输出
GPIO_Init(GPIO3, GPIO_Pin_4, GPIO_Mode_Out_PP);
//开启全局中断(51单片机必备,否则所有中断都不生效)
EA = 1;
while (1)
{
// 引脚输出和引脚输入实验
////2 引脚输入
if(GPIO_ReadInputDataBit(GPIO0,GPIO_Pin_6)==RESET)
{
delay_ms(10);// 消抖
while(GPIO_ReadInputDataBit(GPIO0,GPIO_Pin_6)==RESET);// 等待按键释放
// 翻转LED电平
GPIO_WriteBit (GPIO3, GPIO_Pin_3,!GPIO_ReadInputDataBit(GPIO3,GPIO_Pin_3));
}
}
}
当按下按键后p33引脚翻转电平
实验3:控制电平状态
void main(void)
{
WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXSFR(); //扩展SFR(XFR)访问使能
CKCON = 0;//提高访问XRAM速度
GPIO_Init(GPIO3, GPIO_Pin_3, GPIO_Mode_Out_PP); //p34和p33设置为推挽输出
//开启全局中断(51单片机必备,否则所有中断都不生效)
EA = 1;
while (1)
{
// 引脚输出和引脚输入实验
//1 引脚输出
delay_ms(100);
GPIO_SetBits(GPIO3, GPIO_Pin_3);
delay_ms(100);
GPIO_ResetBits(GPIO3, GPIO_Pin_3);
}
}
多谢,赶紧下载下来,抽时间使用以下,{:baoquan:}{:baoquan:}{:baoquan:} Ai_Std_25 发表于 2026-5-29 14:07
多谢,赶紧下载下来,抽时间使用以下,
关注我今天就能把帖子更新完 摩托日记 发表于 2026-5-29 14:45
关注我今天就能把帖子更新完
那必须要关注滴{:OK:}
页:
[1]