数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 169|回复: 11

[综合] 改放大镜的补光灯

[复制链接]
发表于 11 小时前 | 显示全部楼层 |阅读模式
本帖最后由 huakeha 于 2025-10-22 10:30 编辑

这个放大镜,按一下白光,再按一下紫光,再按一下关闭。太麻烦了,经常用的就是白色。可是用完后得切换到紫灯后再按一下才能关掉。有时候还忘记关,有时候按一下以为是关了,结果在紫色灯的模式把电耗完了。
拆开一看是个SOP的单片机,看了正负极脚位和手里的Padauk PFS122单片机一致.
准备改程序:如果白光工作超过5秒,单击就能关。如果工作超过3分钟,就自动关。





  1. void T16_int()

  2. {
  3.     DISGINT;
  4.         Reload_T16 = 32768 - 1600;
  5.         stt16 Reload_T16;
  6.         $ T16M IHRC,/1,bit15;
  7.         $ INTEGS BIT_R;
  8.         INTRQ.T16 = 0;
  9.         INTEN.T16 = 1;
  10.         ENGINT;


  11. }




  12. void cekkey2(){

  13.     if(!powon){powon=1;time_10ms=10;T16_int();moto_on=1;}

  14.    switch(keycnt){

  15.        
  16.                 case 0:led1=1;led2=0;break;
  17.                 case 1:led1=0;led2=1;break;       


  18.    }
  19.    
  20.    keycnt++;
  21.    if(keycnt>2){keycnt=0;powon=0;moto=0;moto_on=0;rgbsw=1;LED_EN=0;led_off();}
  22. }


  23. void        FPPA0 (void)
  24. {
  25.         .ADJUST_IC        SYSCLK=IHRC/4, IHRC=16MHz, VDD=3.7V,init_ram;
  26.        

  27.     .delay 1998

  28.     BOIS_int();

  29.     .delay 1998

  30.     offing=0;

  31.     rgbsw=0;LED_EN=1;
  32.    


  33.         .delay 19980*100
  34.     led_off();
  35.     rgbsw=1;LED_EN=0;
  36.   
  37.         T16_int();
  38.         key_cnt=0;


  39.         while (1)
  40.         {
  41.             wdreset;
  42.                  
  43.         keycode = read_key();

  44.         if(keycode == 1) {cekkey2();}
  45.        

  46.         if(!moto_on)Power_down();//关机

  47.       
  48.    }
  49. }






  50. void        Interrupt (void)
  51. {
  52.         pushaf;

  53.         if (Intrq.T16)
  54.         {        //        T16 Trig
  55.                 //        User can add code
  56.                 stt16 reload_T16;                //设定计数器初始值reload_T16 //100us
  57.       
  58.        
  59.                 time_100ms++;

  60.    
  61.              if(time_100ms > 50000)                //50000 是5秒  //5秒后把按键设置到最大档
  62.              {


  63.                         time_100ms=0;
  64.                         keycnt=2;
  65.                         fives++;
  66.                  
  67.                  }
  68.                 if(fives>35) //3分钟后自动关闭
  69.                 {

  70.                         moto_on=0;
  71.                        
  72.                 }

  73.           
  74.                 Intrq.T16        =        0;
  75.         }

  76.         popaf;
  77. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 1家元 +18 收起 理由
geek云中漫步 + 18 原創內容

查看全部打赏

发表于 9 小时前 | 显示全部楼层
改的真不错,这种放大镜一般用不到验钞紫外灯,我是直接改成点按工作,按下点亮松手关闭。
回复 支持 反对

使用道具 举报

发表于 7 小时前 | 显示全部楼层
可以改的确是方便
回复 支持 反对

使用道具 举报

发表于 7 小时前 | 显示全部楼层
怎么写程序进去?先拆下芯片再写,然后再焊上去吗?
回复 支持 反对

使用道具 举报

发表于 7 小时前 | 显示全部楼层
也可以把紫外灯拆下来换成白灯
回复 支持 反对

使用道具 举报

发表于 7 小时前 | 显示全部楼层
xianglang 发表于 2025-10-22 13:44
怎么写程序进去?先拆下芯片再写,然后再焊上去吗?

楼主是高手,我也好奇这个
回复 支持 反对

使用道具 举报

发表于 7 小时前 | 显示全部楼层
自己动手改的比较实 用
回复 支持 反对

使用道具 举报

 楼主| 发表于 7 小时前 | 显示全部楼层
wqwq212 发表于 2025-10-22 13:43
可以改的确是方便

他原本的芯片是磨掉丝印的不知是什么型号。我是直接换了别的芯片的。用烧录器烧写。
回复 支持 反对

使用道具 举报

 楼主| 发表于 7 小时前 | 显示全部楼层
yb400 发表于 2025-10-22 14:11
楼主是高手,我也好奇这个

只是受不了他这种设计有点不合理,改了才没那么别扭。
回复 支持 反对

使用道具 举报

发表于 5 小时前 | 显示全部楼层
这是个高手
回复 支持 反对

使用道具 举报

发表于 5 小时前 | 显示全部楼层
紫外 好像用来鉴别古董的
回复 支持 反对

使用道具 举报

发表于 2 小时前 | 显示全部楼层
紫外灯可以固话UV胶之类吧,应该有用
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-10-22 21:39 , Processed in 0.109200 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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