找回密码
 立即注册
查看: 120|回复: 19

新手小白,做了个led的一键开关,调亮度的pwm

[复制链接]
  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    21

    主题

    206

    回帖

    458

    积分

    中级会员

    积分
    458
    发表于 2024-5-17 13:33:08 来自手机 | 显示全部楼层 |阅读模式
    最开始单片机和mos管分别供电,老是出问题,单片机不能在高档运行,低档正常没有问题。
    后面统一用 18650供电以后问题解决,但是发现除了高档,其他档位都有频闪
    有什么办法可以解决吗?
    Screenshot_2024-05-16-21-04-50-728_com.tencent.mm.jpg
    IMG_20240517_133203.jpg
    回复 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    18 小时前
  • 签到天数: 115 天

    [LV.6]常住居民II

    16

    主题

    480

    回帖

    647

    积分

    荣誉版主

    热心市民

    积分
    647
    发表于 2024-5-17 13:35:14 | 显示全部楼层
    有原理图和代码吗,发出来帮你看一下
    睁开眼睛做场梦~~~
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    21

    主题

    206

    回帖

    458

    积分

    中级会员

    积分
    458
     楼主| 发表于 2024-5-17 13:36:32 来自手机 | 显示全部楼层
    后期我的目标就是做一个手电驱动,可以实现电子开关调档
    另外一个程序是自锁开关,
    慢慢学吧
    全部用stc搞定
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    21

    主题

    206

    回帖

    458

    积分

    中级会员

    积分
    458
     楼主| 发表于 2024-5-17 13:38:05 来自手机 | 显示全部楼层
    晓飛飛 发表于 2024-5-17 13:35
    有原理图和代码吗,发出来帮你看一下

    晚点我回家了发出来,现在在上班。
    最近一段时间,一直是想着这个事情的,,自己动手做得东西是真的好有成就感
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    21

    主题

    206

    回帖

    458

    积分

    中级会员

    积分
    458
     楼主| 发表于 2024-5-17 18:15:14 | 显示全部楼层
    原理图,画的不好,第一次画。
    代码在下面
    截图202405171814458148.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    21

    主题

    206

    回帖

    458

    积分

    中级会员

    积分
    458
     楼主| 发表于 2024-5-17 18:16:01 | 显示全部楼层
    晓飛飛 发表于 2024-5-17 13:35
    有原理图和代码吗,发出来帮你看一下

    #include <STC8G.H>  
    #include "Delay.h"  
    #include "Key.h"  
    #include "Timer0.h"  
      
    sbit LED=P3^3;  
    unsigned char Counter, Compare;  
    unsigned char KeyNum, Speed;  
      
    void main()  
    {  
            LED=0;
        P3M0 = 0x08; P3M1 = 0x00;   
        P5M0 = 0x00; P5M1 = 0x00;   
        Timer0_Init();  // 初始化定时器 0 和其中断  
    //    Compare = 66;   // 设置初始占空比  
      
        while(1)  
        {  
            KeyNum = Key(); // 读取按键值  
      
            if(KeyNum == 1) // 假设 Key() 返回 1 表示某个特定按键被按下  
            {  
                Speed++;  
                Speed %= 8; // 限制 Speed 的值在 0 到 3 之间  
      
                switch(Speed)  
                {  
                    case 0: Compare = 0; break;  
                    case 1: Compare = 1; break;  
                    case 2: Compare = 10; break;  
                    case 3: Compare = 20; break;  
                    case 4: Compare = 30; break;  
                    case 5: Compare = 40; break;  
                    case 6: Compare = 80; break;  
                    case 7: Compare = 100; break;  
                }  
      
                // 去除不必要的 Delay 调用,因为按键检测和处理应该是即时的  
            }  
        }  
    }  
      
    void Timer0_Routine() interrupt 1 // 定时器 0 的中断服务程序  
    {  
        TL0 = 0xF4; // 设置定时初始值(根据定时器的配置和需要的频率来计算)  
        TH0 = 0xFF;  
      
        Counter++;  
        Counter = Counter % 100; // 确保 Counter 在 0 到 99 之间循环  
      
        if(Counter < Compare)  
        {  
            LED = 1; // LED 亮  
        }  
        else  
        {  
            LED = 0; // LED 灭  
        }  
    }
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    19 小时前
  • 签到天数: 97 天

    [LV.6]常住居民II

    12

    主题

    489

    回帖

    1450

    积分

    荣誉版主

    积分
    1450
    发表于 2024-5-17 23:23:30 | 显示全部楼层
    用硬件PWM吧,好多例子呢
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    21

    主题

    206

    回帖

    458

    积分

    中级会员

    积分
    458
     楼主| 发表于 2024-5-18 01:57:24 来自手机 | 显示全部楼层
    xiangzichen 发表于 2024-5-17 23:23
    用硬件PWM吧,好多例子呢

    还没学到呢
    现在主要是频闪想解决
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    19 小时前
  • 签到天数: 97 天

    [LV.6]常住居民II

    12

    主题

    489

    回帖

    1450

    积分

    荣誉版主

    积分
    1450
    发表于 2024-5-18 02:46:26 | 显示全部楼层
    你的代码倒是没啥问题,不过你说的高档是什么?频率吗?
    还有一点P33驱动mos管,改成推挽试试看,准双向会不会驱动能力较差.
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    29

    主题

    336

    回帖

    672

    积分

    高级会员

    积分
    672
    发表于 2024-5-18 05:43:38 | 显示全部楼层
    vb2002 发表于 2024-5-18 01:57
    还没学到呢
    现在主要是频闪想解决

    都是夜猫子呀
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-6-1 19:34 , Processed in 0.070682 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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