标题: 智能灯 触摸台灯制作资料 程序+原理图pcb 分享给大家 [打印本页]

作者: such808    时间: 2015-7-25 13:17
标题: 智能灯 触摸台灯制作资料 程序+原理图pcb 分享给大家
上传资料希望各位喜欢

程序预览:
  1. #include<reg52.h>
  2. fanhui();
  3. duanma[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共阳数字段码  0-9
  4. sbit g1=P2^1;sbit g2=P2^3;sbit g3=P2^5;sbit g4=P2^7;   //位选
  5. sbit key1=P1^1;sbit key2=P1^5;sbit key3=P1^7;//按键
  6. sbit spek=P1^0;        //蜂鸣器
  7. sbit powr=P2^0;        //继电器开关
  8. sbit chumo=P1^3;        //触摸选项
  9. char sum=0,s=59,min=0,h=0,add=0;
  10. void delay()
  11. {
  12. int a,b;
  13. for(a=10;a>0;a--)
  14. for(b=50;b>0;b--);
  15. }
  16. delay1()
  17. {
  18. int a,b;
  19. for(a=50;a>0;a--)
  20. for(b=300;b>0;b--);
  21. }
  22. /////////////////////////////////////////////////////
  23. ////////////////////时间处理函数/////////////////////
  24. /////////////////////////////////////////////////////
  25. jishi()
  26. {
  27. if(s<0)
  28.         {
  29.         s=59;min--;
  30.         }
  31. if(min<0)
  32.         {
  33.         min=59;
  34.         h--;
  35.         }
  36. if(h<0)
  37.         {
  38.         h=23;
  39.         }
  40. }
  41. /////////////////////////////////////////////////////
  42. ////////////////////显示函数/////////////////////////
  43. /////////////////////////////////////////////////////
  44. xianshi()//
  45. {
  46.         P0=duanma[h/10];////小时显示
  47.         g1=0;
  48.         delay();
  49.         g1=1;
  50.         P0=duanma[h%10];
  51.         g2=0;
  52.         delay();
  53.         g2=1;
  54.         if(add>25)
  55.         {
  56.         P0=duanma[min/10]+0x80;/////分显示
  57.         g3=0;
  58.         delay();
  59.         g3=1;
  60.         P0=duanma[min%10]+0x80;
  61.         g4=0;
  62.         delay();
  63.         g4=1;
  64.         }
  65.         else
  66.         {
  67.         P0=duanma[min/10];/////分显示
  68.         g3=0;
  69.         delay();
  70.         g3=1;
  71.         P0=duanma[min%10];
  72.         g4=0;
  73.         delay();
  74.         g4=1;
  75.         }       
  76. }
  77. //////////////////////////////////////////////////////
  78. ////////////////待机程序/////////////////////////////
  79. /////////////////////////////////////////////////////
  80. daiji()
  81.         {
  82.          powr=1;
  83.          g4=g3=g2=g1=1;
  84.          delay1();delay1();delay1();delay1();delay1();
  85.          while(1)
  86.         {
  87.                 delay1();delay1();
  88.                 if(chumo==1)
  89.                 {
  90.                 delay();
  91.                 if(chumo==1)
  92.                         {
  93.                         while(chumo==1);
  94.                         spek=0;
  95.                         delay1();
  96.                         spek=1;
  97.                         sum=0,s=59,min=0,h=0,add=0;//重新对初始变量赋值
  98.                         powr=0;
  99.                         break;
  100.                         }
  101.                 }
  102.         }
  103.         fanhui();//重头开始
  104.         }
  105. ////////////////////////////////////////////////////////
  106. //////////////////返回起始点//////////////////////////////
  107. /////////////////////////////////////////////////////
  108. fanhui()                //开始标号
  109. {
  110. while(1)                 //预备显示
  111.         {
  112.         g1=g2=g3=g4=0;        //显示三条横线(---)0xbf
  113.          P0=0xbf;
  114.         delay1();
  115.         delay1();
  116.         delay1();
  117.         delay1();
  118.         g1=g2=g3=g4=1;
  119.         delay1();
  120.         delay1();
  121.         delay1();
  122.         delay1();

  123.         if(key1==0)
  124.                 {
  125.                 spek=0;
  126.                 delay1();
  127.                 if(key1==0)
  128.                 while(key1==0);
  129.                 spek=1;
  130.                 break;
  131.                 }
  132.         if(chumo==1)        ///////检测有无关闭指令
  133.                 {
  134.                 delay1();delay1();delay1();delay1();
  135.                 if(chumo==1)
  136.                         {
  137.                         while(chumo==1);
  138.                         spek=0;
  139.                         delay1();
  140.                         spek=1;
  141.                         daiji();
  142.                         }
  143.                 }       
  144.         }
  145. }
  146. /////////////////////////////////////////////////////
  147. ////////////////////按键函数/////////////////////////
  148. /////////////////////////////////////////////////////
  149. anjian()
  150. {
  151.         if(chumo==1)
  152.                 {
  153.                 delay1();delay1();
  154.                 if(chumo==1)
  155.                         {
  156.                         while(chumo==1);
  157.                         spek=0;
  158.                         delay1();
  159.                         spek=1;
  160.                         daiji();
  161.                         }
  162.                 }
  163. if(key1==0)
  164.         {
  165.         delay1();
  166.         if(key1==0)
  167.                 {
  168.                 spek=0;
  169.                 delay1();
  170.                 spek=1;
  171.                  while(key1==0);
  172.                  while(1)
  173.                         {
  174.                         P0=duanma[h/10];////小时显示
  175.                         g1=0;
  176.                         delay();
  177.                         g1=1;
  178.                         P0=duanma[h%10];
  179.                         g2=0;
  180.                         delay();
  181.                         g2=1;
  182.                         P0=duanma[min/10]+0x80;/////分显示
  183.                         g3=0;
  184.                         delay();
  185.                         g3=1;
  186.                         P0=duanma[min%10]+0x80;
  187.                         g4=0;
  188.                         delay();
  189.                         g4=1;
  190.                         while(add>49)
  191.                                 {
  192.                         g1=g2=g3=g4=1;
  193.                                 }
  194.                           if(key2==0)  //时调整加、、、、、、、、、
  195.                                 {
  196.                                 delay1();
  197.                                 if(key2==0)
  198.                                         {
  199.                                         spek=0;
  200.                                         delay1();
  201.                                         spek=1;
  202.                                         if(h==24)
  203.                                                 {
  204.                                                 h=0;
  205.                                                 }
  206.                                         else
  207.                                                 h++;
  208.                                         }
  209.                                 }
  210.                           if(key3==0)  //分调整加、、、、、、、、、
  211.                                 {
  212.                                 delay1();
  213.                                 if(key3==0)
  214.                                         {
  215.                                         spek=0;
  216.                                         delay1();
  217.                                         spek=1;
  218.                                         if(min==60)
  219.                                                 {
  220.                                                 min=0;
  221.                                                 }
  222.                                                 else
  223.                                                 min++;
  224.                                         }
  225.                                 }
  226.                         if(key1==0)        //调试确定并退出调试状态
  227.                                 {
  228.                                 delay();
  229.                                 if(key1==0)
  230.                                         {
  231.                                         spek=0;
  232.                                         delay1();
  233.                                         spek=1;
  234.                                          while(key1==0);
  235.                                         break; //跳出本while语句,即本函数结束
  236.                                         }
  237.                                 }
  238.                         }
  239.                 }
  240.         }         
  241. }
  242. /////////////////////////////////////////////////////
  243. ////////////////////主函数///////////////////////////
  244. /////////////////////////////////////////////////////
  245. void main()
  246. {
  247. TMOD=0x01;
  248. TH0=(65535-20000)/255;
  249. TL0=(65535-20000)%255;
  250. EA=1;
  251. ET0=1;
  252. TR0=1;
  253. chumo=0;
  254. while(1)
  255.         {
  256.         if(chumo==1)
  257.                 {
  258.                 delay1();
  259.                 if(chumo==1)
  260.                 while(chumo==1);
  261.                 spek=0;
  262.                 delay1();
  263.                 spek=1;
  264.                 powr=0;
  265.                 break;
  266.                 }       
  267.         }
  268. fanhui(); //调用初始返回函数
  269. while(1)        //执行主程序
  270.         {
  271.          xianshi();
  272.          anjian();
  273.          if(h==0)
  274.                  {
  275.                  if(min==0)
  276.                          {
  277.                         if(add<25)
  278.                                 {
  279.                                 g4=g3=g2=g1=1;
  280.                                 delay1();
  281.                                 delay1();
  282.                                 delay1();
  283.                                 delay1();
  284.                                 }
  285.                                 if(s==0)
  286.                                         {
  287.                                         daiji();
  288.                                         }       
  289.                     }
  290.                  }
  291.         }
  292. }
  293. /////////////////////////////////////////////////////
  294. ////////////////////秒表定时中断服务函数/////////////
  295. /////////////////////////////////////////////////////
  296. dingshi()interrupt 1
  297. {
  298. TH0=(65535-20000)/255;
  299. TL0=(65535-20000)%255;
  300. add++;
  301. if(add==50)
  302.         {
  303.         add=0;
  304.         s--;
  305.         jishi();               
  306.         }       
  307. }
复制代码


触摸台灯.rar

3.16 MB, 下载次数: 339, 下载积分: 黑币 -5

智能灯


作者: 1176658950    时间: 2015-7-27 09:40
这是什么?下载浪费黑笔啊
作者: 王玉昆    时间: 2015-7-30 16:53
1176658950 发表于 2015-7-27 09:40
这是什么?下载浪费黑笔啊

感谢智能灯 触摸台灯制作资料分享给大家
作者: wcx6270    时间: 2015-9-15 18:49
看下同,是不是我想要的
作者: 用户2111157    时间: 2015-9-15 21:24
看看,应该不错的
作者: 小古月    时间: 2015-10-30 21:04
很好 值得看看
作者: mm494408445    时间: 2015-11-1 11:04
太棒了。。 值得研究研究
作者: stewart_leung    时间: 2015-11-3 23:17
怎么不上电实物图
作者: sxz538    时间: 2015-11-4 21:37
来试制作一个看看效果
作者: wangwo    时间: 2015-12-10 16:40
楼主发帖辛苦了,谢谢分享!!!!!!!!
作者: lyx651218    时间: 2015-12-23 22:11
赞,51hei有你更精彩
作者: sirrrrrrrrr    时间: 2016-6-1 09:01
好好好
作者: 东北那谁    时间: 2016-11-7 13:52
赞,51hei有你更精彩
作者: sax_yang    时间: 2016-11-7 16:51
怎么才能赚到黑币呢?
作者: jkmkmmk    时间: 2016-11-15 15:58
2333333333
作者: adfs55    时间: 2016-11-17 14:56
看看,应该不错的
作者: 杨菲    时间: 2016-12-8 22:24
很好。下次还会在来的
作者: aq1015    时间: 2017-1-9 12:02
非常棒
作者: 越快乐越堕落    时间: 2017-1-23 15:43
你这什么啊  说好的台灯啊  怎么看起来像是时钟
作者: 越快乐越堕落    时间: 2017-1-23 15:44
sax_yang 发表于 2016-11-7 16:51
怎么才能赚到黑币呢?

多分享资料 多评论 多登录
作者: lhpm641    时间: 2017-1-24 14:16
好像不错。有时间 做个试试
作者: 我是主角    时间: 2017-2-16 12:07
多分享资料 多评论 多登录
作者: guisun    时间: 2017-8-22 21:35
多分享资料
作者: raymondau    时间: 2017-8-23 23:05
不错,有空仿制一个
作者: faridzled    时间: 2017-8-24 20:17
thanks for sharing
作者: 洋洋看好来了    时间: 2017-9-30 17:26
好东西呀 可以自己DIY一个
作者: 帅帅帅的鸡    时间: 2017-10-3 15:36
来试制作一个看看效果
作者: 一群蠢猪    时间: 2017-10-14 16:40
可以,感谢分享
作者: 吕依依    时间: 2017-10-16 20:36
给力666666
作者: 电子FSY    时间: 2017-10-20 16:30
求原理图,谢谢
作者: binyv    时间: 2017-11-18 20:14
好资料,最近正好有需求,谢谢楼主
作者: diexue74110    时间: 2017-11-20 22:24
感谢分享
作者: GUOXUAN    时间: 2017-11-23 19:50
实在是不错!!
也有别的方案:专门的台灯触摸IC.用起来就比较简单.
各有所长!
作者: 馆长    时间: 2017-12-25 19:52
很好下载下来看看
作者: 都市郎    时间: 2018-3-8 16:18
浪费黑币,就是个按键开关程序加硬件触摸电路
作者: lsrly    时间: 2018-3-29 14:11
是非接触型吗?
作者: LIqwert    时间: 2021-5-6 22:16
有原理图吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1