最好的电子音响科技diy制作网站

haoDIY_音响电子电脑科技DIY小制作发明

当前位置: 主页 > 最新DIY >

魔改UT33D万用表--锂电供电+自动休眠+摇晃唤醒+背光控制(2)

时间:2017-07-22 22:02来源:数码之家 作者:在线2545889167 点击:
下载的时候这样勾选,时钟选最低的,能多低选多低,对精度没有要求 代码。。。注释够详细了吧 复制代码 #include STC15F2K60S2.H stc15w201s #include intrins.h sbit power_ctrl=P5^4; sbit hold_ctrl=P5^5; sbit

下载的时候这样勾选,时钟选最低的,能多低选多低,对精度没有要求
魔改UT33D万用表--锂电供电+自动休眠+摇晃唤醒+背光控制

代码。。。注释够详细了吧
复制代码
  1. #include <STC15F2K60S2.H>
  2. stc15w201s
  3.  
  4. #include "intrins.h"
  5. sbit power_ctrl=P5^4;
  6. sbit hold_ctrl=P5^5;
  7. sbit key1=P3^3;//震动开关
  8. sbit key2=P3^2;//按键(点动背光键)短按hold,长按开启背光
  9. sbit led_ctrl=P3^1;//背光
  10. //一个时间基数约为125ms//
  11. #define power_on_time 2400 //5min
  12. #define system_on_time 14400 //30min
  13. #define light_on_time 40 //5s
  14. unsigned long int power_on=power_on_time;//开机时间
  15. unsigned long int system_on=system_on_time;//系统待机时间
  16. unsigned int light_key_hold_time=0;//灯按键的保持时间
  17. unsigned long int light_time=0;//亮灯时间
  18.  
  19. void Delay_ms(unsigned int time)        //@6.000MHz
  20. {
  21.     unsigned char i, j;
  22.     while(time--)
  23.     {
  24.         i = 6;
  25.         j = 211;
  26.         do
  27.         {
  28.             while (--j);
  29.         } while (--i);
  30.     }
  31. }
  32.  
  33.  
  34. void main()
  35. {
  36.     CLK_DIV=CLK_DIV|0x07;//128分频
  37.     led_ctrl=0;
  38.     P3M1|=0x02;
  39.     P3M0&=0xfd;//高阻
  40.     hold_ctrl=0;        
  41.  
  42.     Delay_ms(10);
  43.  
  44.     //WKTCL = 49;                       //488us*(49+1) = 24.4ms    
  45.     //WKTCH = 0x80; //开掉电定时器  
  46.     
  47.     
  48.     INT_CLKO |= 0x40;//开中断4
  49.     EA = 1;    
  50.     EX1 = 1;//开中断1,震动开关
  51.     IT1 = 1;//仅下降沿
  52.     
  53.     EX0 = 1;//开中断0,点动开关
  54.     IT0 = 1;//仅下降沿
  55.     
  56.     while(1)
  57.     {
  58.         if(light_key_hold_time)
  59.         {    
  60.             WKTCL = 0x09;     //488us*(9+1) = 4.8ms    
  61.             WKTCH = 0x80; //开掉电定时器  每隔4.8ms检测一次按键。检测之间掉电休眠
  62.             light_key_hold_time++;
  63.             if(light_key_hold_time==65535)light_key_hold_time=101; (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
相关文章
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容