wuzhengmin 发表于 2026-2-28 10:47:16

ULN2003D驱动能量很强,输入和输出是反相高阻态,想要得到高电平就加上拉电阻,是放大…..驱动电机用的

高阻态不接上啦,就相当于断开

看看软件配置

wuzhengmin 发表于 2026-2-28 11:01:54

我的板子这样设置:

P1.5强推挽输出,设能下拉电阻保证低电平 起个别名BEEP

P1.5高电平,ULN2003D就是低电平,P1.5低电平,ULN2003D就是高阻态

我们下拉输出P1.5低电平,ULN2003D就是高阻态,相当于断开,P1.5高电平,ULN2003D就是低电平,电流通过BEEP发声音

wuzhengmin 发表于 2026-2-28 11:03:25

我这里为了烧录方便,用了USB-CDC:

wuzhengmin 发表于 2026-2-28 11:05:04

保存,单击代码生产:

wuzhengmin 发表于 2026-2-28 11:36:46

我们开新目录APP
APP下开Beep

wuzhengmin 发表于 2026-2-28 11:37:27

增加路径:

wuzhengmin 发表于 2026-2-28 12:13:03

添加个自己写的函数:

#include"beep.h"

void BEEP_Alarm(u16 times,u16 us)
{
        while (times--)
        BEEP=!BEEP;
        delay_us (us); //
}

#ifndef __beep_H
#define __beep_H

#include "config.h"

//#include <AI8051U.H> //解释P15是    sbit    P15 = P1^5;
//#define BEEP P15,
//因为我在AiCube 里定义了,这里就不用了
//#define BEEPP15

void BEEP_Alarm(u16 times,u16 us);


#endif

wuzhengmin 发表于 2026-2-28 13:49:12

////////////////////////////////////////
// 项目主函数
// 入口参数: 无
// 函数返回: 无
////////////////////////////////////////
void main(void)
{
    //<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
    // 在此添加用户主函数初始化代码
                u16 i=600;
    //<<AICUBE_USER_MAIN_INITIAL_END>>

    SYS_Init();

    //<<AICUBE_USER_MAIN_CODE_BEGIN>>
        // 在此添加主函数中运行一次的用户代码
    //<<AICUBE_USER_MAIN_CODE_END>>

    while (1)
    {
      USBLIB_OUT_Done();            //查询方式处理USB接收的数据

      //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
      // 在此添加主函数中用户主循环代码
                        while(i>0)
                        {
                                BEEP_Alarm(500,1000); //500是次数,1000是us,就是1ms的延时
                                i--;
                        }
      //<<AICUBE_USER_MAIN_LOOP_END>>
    }
}

编译连接下载,不过,我的BEEP好小声音........反正是响啦!

wuzhengmin 发表于 2026-2-28 14:00:06

接着学习7.1-数码管显示实验-简介

wuzhengmin 发表于 2026-2-28 14:10:17

1.2.1 74HC245芯片简介

芯片驱动能力弱,8*8=64个LED,靠芯片就带不动
页: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17
查看完整版本: 学习休眠唤醒遇到的问题:1无法开启休眠 2舍弃一下功能后能进入休眠但无法唤醒