找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16044|回复: 36
收起左侧

智能灯 触摸台灯制作资料 程序+原理图pcb 分享给大家

  [复制链接]
ID:76165 发表于 2015-7-25 13:17 | 显示全部楼层 |阅读模式
上传资料希望各位喜欢 QQ截图20151104010641.png pcb.jpg 电源.jpg 自制光耦1.jpg 自制光耦2.jpg

程序预览:
  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, 下载次数: 338, 下载积分: 黑币 -5

智能灯

评分

参与人数 4黑币 +70 收起 理由
CHUJIANZ + 5 很给力!
bluecandle + 5 共享资料的黑币奖励!
waerdeng + 10 共享资料的黑币奖励!
admin + 50 共享资料的积分奖励!

查看全部评分

回复

使用道具 举报

ID:79481 发表于 2015-7-27 09:40 | 显示全部楼层
这是什么?下载浪费黑笔啊
回复

使用道具 举报

ID:63041 发表于 2015-7-30 16:53 来自手机 | 显示全部楼层
1176658950 发表于 2015-7-27 09:40
这是什么?下载浪费黑笔啊

感谢智能灯 触摸台灯制作资料分享给大家
回复

使用道具 举报

ID:89591 发表于 2015-9-15 18:49 | 显示全部楼层
看下同,是不是我想要的
回复

使用道具 举报

ID:88707 发表于 2015-9-15 21:24 | 显示全部楼层
看看,应该不错的
回复

使用道具 举报

ID:94113 发表于 2015-10-30 21:04 | 显示全部楼层
很好 值得看看
回复

使用道具 举报

ID:94279 发表于 2015-11-1 11:04 | 显示全部楼层
太棒了。。 值得研究研究
回复

使用道具 举报

ID:87991 发表于 2015-11-3 23:17 | 显示全部楼层
怎么不上电实物图
回复

使用道具 举报

ID:85941 发表于 2015-11-4 21:37 | 显示全部楼层
来试制作一个看看效果
回复

使用道具 举报

ID:85606 发表于 2015-12-10 16:40 | 显示全部楼层
楼主发帖辛苦了,谢谢分享!!!!!!!!
回复

使用道具 举报

ID:99694 发表于 2015-12-23 22:11 | 显示全部楼层
赞,51hei有你更精彩
回复

使用道具 举报

ID:124390 发表于 2016-6-1 09:01 | 显示全部楼层
好好好
回复

使用道具 举报

ID:136460 发表于 2016-11-7 13:52 | 显示全部楼层
赞,51hei有你更精彩
回复

使用道具 举报

ID:146651 发表于 2016-11-7 16:51 | 显示全部楼层
怎么才能赚到黑币呢?
回复

使用道具 举报

ID:148054 发表于 2016-11-15 15:58 | 显示全部楼层
2333333333
回复

使用道具 举报

ID:148472 发表于 2016-11-17 14:56 | 显示全部楼层
看看,应该不错的
回复

使用道具 举报

ID:152224 发表于 2016-12-8 22:24 | 显示全部楼层
很好。下次还会在来的
回复

使用道具 举报

ID:160920 发表于 2017-1-9 12:02 | 显示全部楼层
非常棒
回复

使用道具 举报

ID:99130 发表于 2017-1-23 15:43 | 显示全部楼层
你这什么啊  说好的台灯啊  怎么看起来像是时钟
回复

使用道具 举报

ID:99130 发表于 2017-1-23 15:44 | 显示全部楼层
sax_yang 发表于 2016-11-7 16:51
怎么才能赚到黑币呢?

多分享资料 多评论 多登录
回复

使用道具 举报

ID:104797 发表于 2017-1-24 14:16 | 显示全部楼层
好像不错。有时间 做个试试
回复

使用道具 举报

ID:67722 发表于 2017-2-16 12:07 | 显示全部楼层
多分享资料 多评论 多登录
回复

使用道具 举报

ID:228866 发表于 2017-8-22 21:35 | 显示全部楼层
多分享资料
回复

使用道具 举报

ID:102702 发表于 2017-8-23 23:05 | 显示全部楼层
不错,有空仿制一个
回复

使用道具 举报

ID:89286 发表于 2017-8-24 20:17 | 显示全部楼层
thanks for sharing
回复

使用道具 举报

ID:136641 发表于 2017-9-30 17:26 | 显示全部楼层
好东西呀 可以自己DIY一个
回复

使用道具 举报

ID:237130 发表于 2017-10-3 15:36 | 显示全部楼层
来试制作一个看看效果
回复

使用道具 举报

ID:239416 发表于 2017-10-14 16:40 来自手机 | 显示全部楼层
可以,感谢分享
回复

使用道具 举报

ID:240038 发表于 2017-10-16 20:36 | 显示全部楼层
给力666666
回复

使用道具 举报

ID:241152 发表于 2017-10-20 16:30 | 显示全部楼层
求原理图,谢谢
回复

使用道具 举报

ID:167884 发表于 2017-11-18 20:14 | 显示全部楼层
好资料,最近正好有需求,谢谢楼主
回复

使用道具 举报

ID:249062 发表于 2017-11-20 22:24 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:249545 发表于 2017-11-23 19:50 | 显示全部楼层
实在是不错!!
也有别的方案:专门的台灯触摸IC.用起来就比较简单.
各有所长!
回复

使用道具 举报

ID:161497 发表于 2017-12-25 19:52 | 显示全部楼层
很好下载下来看看
回复

使用道具 举报

ID:272625 发表于 2018-3-8 16:18 | 显示全部楼层
浪费黑币,就是个按键开关程序加硬件触摸电路
回复

使用道具 举报

ID:90566 发表于 2018-3-29 14:11 来自手机 | 显示全部楼层
是非接触型吗?
回复

使用道具 举报

ID:916642 发表于 2021-5-6 22:16 | 显示全部楼层
有原理图吗
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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