找回密码
 立即注册
查看: 298|回复: 2

AI8051U创新风格库函数学习打卡

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:26
  • 最近打卡:2025-06-16 09:23:07

24

主题

404

回帖

2665

积分

版主

积分
2665
QQ
发表于 2025-2-12 16:53:13 | 显示全部楼层 |阅读模式
打卡第一集  I/O口模式设置和传统的外部中断
截图202502121644331106.jpg


程序:

#include <AI8051U.H>
#include "set_int.h"
#include "set_io.h"
#include "intrins.h"

void Delay1ms(void)        //@40.000MHz
{
        unsigned long edata i;

        _nop_();
        _nop_();
        _nop_();
        i = 9998UL;
        while (i) i--;
}

void main(void)
{
        EAXFR = 1;
        CKCON = 0;
        WTST = 0;
        
        set_io_mode(pu_mode,Pin40,Pin00,Pin01,Pin02,Pin03,Pin_End);
        P40 = 0;
        //set_io_mode(pp_mode,Pin40,Pin00,Pin01,Pin_End);
        set_io_mode(hz_mode,Pin32,Pin33,Pin34,Pin35,Pin_End);
        set_io_mode(en_pur,Pin32,Pin33,Pin34,Pin35,Pin_End);
        Delay1ms();
        //set_io_mode(dis_pur,Pin32,Pin33,Pin_End);
        set_int_mode(falling_edge_mode,Int0,Int1,Int_End);
        //set_int_mode(rising_falling_edge_mode,Int0,Int1,Int_End);
        EA = 1;
        while(1)
        {
                if(get_int_state(INT0))
                {
                  P00 = ~P00;
                }
                if(get_int_state(INT1))
                {
                  P01 = ~P01;
                }
                P02 = P34;
                P03 = P35;
        }
}

IO.zip (76.33 KB, 下载次数: 10)
QQ:1463035472,微信:19952583954
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:26
  • 最近打卡:2025-06-16 09:23:07

24

主题

404

回帖

2665

积分

版主

积分
2665
QQ
发表于 2025-2-14 14:45:28 | 显示全部楼层
打卡第二集所有普通IO口都支持的外部中断

截图202502141443333077.jpg

#include <AI8051U.H>
#include "io_int.h"
#include "set_io.h"
#include "set_uart.h"

void main(void)
{
  EAXFR = 1;
  CKCON = 0;
  WTST = 0;
        
  set_io_mode(hz_mode,Pin32,Pin33,Pin36,Pin_End);
  
  set_io_mode(en_pur,Pin32,Pin33,Pin36,Pin_End);
  set_io_mode(pp_mode,Pin37,Pin_End);
  set_ioint_mode(falling_edge_mode,Pin32,Pin_End);       //设置P32为下降沿中断
  set_ioint_mode(rising_edge_mode,Pin33,Pin_End);       //设置P33为上升沿中断
  set_ioint_mode(en_int,Pin32,Pin33,Pin_End);
        
  set_uart_mode(Uart1,"115200bps",Use_Timer2,Base_8b,"64byte",Uart1_P36_7,Uart_End);

  EA = 1;
  while(1)
  {
        if(get_ioint_state(Pin32))
    {
                uart_printf(Uart1,"P32 Click\r\n");
        }
    if(get_ioint_state(Pin33))
    {
                uart_printf(Uart1,"P33 Click\r\n");
        }        
  }
}

所有IO都支持的外部中断.zip (138.66 KB, 下载次数: 12)
QQ:1463035472,微信:19952583954
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:26
  • 最近打卡:2025-06-16 09:23:07

24

主题

404

回帖

2665

积分

版主

积分
2665
QQ
发表于 2025-2-20 16:22:58 | 显示全部楼层
打卡第三集  24位定时器

截图202502201621258508.jpg

#include <AI8051U.H>
#include "set_io.h"
#include "set_timer.h"

void main()
{
        EAXFR = 1;
        CKCON = 0;
        WTST = 0;
       
        set_io_mode(pu_mode,Pin40,Pin00,Pin01,Pin02,Pin03,Pin04,Pin05,Pin_End);
        P40 = 0;
        //set_timer_fosc(11059200UL);
        set_timer_mode(Timer0,"0.5s",Timer_End);
        set_timer_mode(Timer1,"100000hz",En_OutClk,Dis_Int,Timer_End);
        set_timer_mode(Timer2,"200ms",Timer_End);
        set_timer_mode(Timer3,"10hz",Timer_End);
        set_timer_mode(Timer4,"2s",Timer_End);
        set_timer_mode(Timer11,"300ms",Timer_End);
        EA = 1;
       
       
        while(1)
        {
                if(get_timer_state(Timer0))
                {
                        P00 = ~P00;
                }
       
//            if(get_timer_state(Timer1))
//                {
//                        P01 = ~P01;
//                }
               
            if(get_timer_state(Timer2))
                {
                        P02 = ~P02;
                }
                if(get_timer_state(Timer3))
                {
                        P03 = ~P03;
                }
                if(get_timer_state(Timer4))
                {
                        P04 = ~P04;
                        set_timer_mode(Timer4,Dis_Int,Timer_End);
                }
                if(get_timer_state(Timer11))
                {
                        P05 = ~P05;
                }
        }
}


24位定时器.zip (102.46 KB, 下载次数: 10)
QQ:1463035472,微信:19952583954
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-18 00:24 , Processed in 0.137412 second(s), 60 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表