摩托日记 发表于 2026-5-29 11:44:37

【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);       
        }
}








Ai_Std_25 发表于 2026-5-29 14:07:00

多谢,赶紧下载下来,抽时间使用以下,{:baoquan:}{:baoquan:}{:baoquan:}

摩托日记 发表于 2026-5-29 14:45:43

Ai_Std_25 发表于 2026-5-29 14:07
多谢,赶紧下载下来,抽时间使用以下,

关注我今天就能把帖子更新完

Ai_Std_25 发表于 2026-5-29 15:27:11

摩托日记 发表于 2026-5-29 14:45
关注我今天就能把帖子更新完

那必须要关注滴{:OK:}
页: [1]
查看完整版本: 【AI8051U 超简单使用库】1:gpio配置操作