欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7736|回復(fù): 5
收起左側(cè)

單片機(jī)數(shù)顯可編程延時(shí)接通或延時(shí)斷開(kāi)模塊原理圖與源程序

  [復(fù)制鏈接]
ID:280979 發(fā)表于 2018-2-8 00:28 | 顯示全部樓層 |閱讀模式
【簡(jiǎn)要說(shuō)明】
此工業(yè)級(jí)板的作用是,模塊供電后,數(shù)碼管顯示設(shè)定時(shí)間,倒計(jì)時(shí)開(kāi)始,當(dāng)數(shù)碼管倒計(jì)時(shí)到0時(shí),繼電器接通或者斷開(kāi),此模塊有三種工作模式,客戶可以根據(jù)自己的需要進(jìn)行選型。
三種工作形式分別是:
1、延時(shí)接通型:即,模塊通電后,繼電器保持通電前狀態(tài),當(dāng)延時(shí)時(shí)間到達(dá)數(shù)碼管設(shè)定時(shí)間值時(shí),繼電器吸合,并一直保持吸合狀態(tài),直到斷開(kāi)供電電源為止。
2、延時(shí)斷開(kāi)型:即,模塊通電后,繼電器立即吸合并保持吸合狀態(tài),當(dāng)延時(shí)時(shí)間達(dá)到數(shù)碼管設(shè)定值時(shí),繼電器斷開(kāi),并保持?jǐn)嚅_(kāi)狀態(tài),直到,模塊斷電在從新供電才重復(fù)工作。
3、連續(xù)通斷型:即,模塊通電后,繼電器根據(jù)數(shù)碼管設(shè)定時(shí)間,延時(shí)接通,然后再根據(jù)數(shù)碼管設(shè)定時(shí)間,延時(shí)斷開(kāi),一直連續(xù)循環(huán)下去。直到模塊斷開(kāi)電源才停止工作。
【簡(jiǎn)要說(shuō)明】
一、板子尺寸:長(zhǎng)72mmX32mmX18mm
二、主要器件:?jiǎn)纹瑱C(jī)、數(shù)碼管、繼電器
三、工作電壓:有5V12V兩種可供選擇
四、板子功耗:小于150mA
五、特點(diǎn):
         1、具有繼電器輸出信號(hào)指示功能。
         2供電即可工作無(wú)需外部觸發(fā)。
         3三種工作模式,滿足各種模式。
         4如果您會(huì)單片機(jī),可以根據(jù)自己需要,任意編程,我們可提供參考程序和相關(guān)資料。
         5、兩個(gè)按鍵任意調(diào)節(jié)延時(shí)時(shí)間。
         6、最高響應(yīng)次數(shù) 每秒通斷一次。
         7、可以和72MM卡槽板配合安裝在DIN導(dǎo)軌上
         8、繼電器觸點(diǎn)干接點(diǎn)輸出,可以控制交流或者直流250V以內(nèi)任何負(fù)載。     9、端子采用螺旋壓接端子           
         10、工作溫度-40度至 +70度
         11、工作濕度 10%  ~ 80%RH
         12、四周有4個(gè)固定安裝孔
         13、具有電磁抗干擾能力
         14、板子穩(wěn)定工作可靠

數(shù)顯可編程延時(shí)接通或延時(shí)斷開(kāi)模塊的電路原理圖:
0.jpg

pcb圖:
0.png

元件清單:
0.png

實(shí)物圖與接線圖等資料:

應(yīng)用舉例延時(shí)斷開(kāi).JPG 應(yīng)用舉例延時(shí)接通.JPG

延時(shí)斷開(kāi)再延時(shí)接通循環(huán)_通秒斷分單片機(jī)源程序如下:
  1. #include <reg52.h>
  2. #include "intrins.h"
  3. #define uchar unsigned char//宏定義無(wú)符號(hào)字符型
  4. #define uint unsigned int  //宏定義無(wú)符號(hào)整型
  5. uchar T0RH = 0;  //T0重載值的高字節(jié)
  6. uchar T0RL = 0;  //T0重載值的低字節(jié)
  7. uchar i = 0;


  8. uchar j1 = 0;           //百位時(shí)間調(diào)節(jié)                        斷開(kāi)時(shí)間調(diào)節(jié)
  9. uchar j2 = 0;           //十位時(shí)間調(diào)節(jié)
  10. uchar j3 = 9;           //個(gè)位時(shí)間調(diào)節(jié)
  11. uchar x1 = 0;
  12. uchar x2 = 0;
  13. uint  x3 = 0;
  14. uint  x4 = 0;
  15. uchar x5 = 0;
  16. uint js = 0;
  17. uint js1 = 0;

  18. uchar code duan [] ={0,1,2,3,4,5,6,7,8,9};
  19. bit d1 = 1;
  20. bit d2 = 1;
  21. bit d3 = 1;
  22. sfr AUXR = 0x8e;
  23. sfr P5 = 0xc8;
  24. sfr P5M0 = 0xc9;
  25. sfr P5M1 = 0XCA;
  26. sfr P3M0 = 0xb2;
  27. sfr P3M1 = 0Xb1;
  28. sfr P1M0 = 0x92;
  29. sfr P1M1 = 0X91;

  30. /*掉電存儲(chǔ)*/
  31. sfr  IAP_DATA     =   0xC2;            //IAP數(shù)據(jù)寄存器
  32. sfr  IAP_ADDRH    =   0xC3;            //IAP地址寄存器高字節(jié)
  33. sfr  IAP_ADDRL    =   0xC4;            //IAP地址寄存器低字節(jié)
  34. sfr  IAP_CMD      =   0xC5;            //IAP命令寄存器
  35. sfr  IAP_TRIG     =   0xC6;            //IAP命令觸發(fā)寄存器
  36. sfr  IAP_CONTR    =   0xC7;            //IAP控制寄存器

  37. #define        CMD_IDLE     0                //空閑模式
  38. #define CMD_READ     1                //IAP字節(jié)讀命令
  39. #define        CMD_PROGRAM  2                 //IAP字節(jié)編程命令
  40. #define        CMD_ERASE    3                 //IAP扇區(qū)擦除命令
  41. #define ENABLE_IAP   0x82             //if SYSCLK<20MHz
  42. #define IAP_ADDRESS  0x0400                          //測(cè)試地址
  43. /***************************************/

  44. sbit out = P5^4;//out
  45. sbit pa = P1^0;        //a
  46. sbit pb = P3^2;        //b
  47. sbit pc = P3^7;        //c
  48. sbit pd = P1^3;        //d
  49. sbit pe = P1^2;        //e
  50. sbit pf = P1^4;        //f
  51. sbit pg = P3^3;        //g
  52. sbit p1 = P1^1;        //1
  53. sbit p2 = P3^6;        //2
  54. sbit p3 = P5^5;        //3
  55. sbit in1 =   P3^0;  
  56. sbit in2 =   P3^1;  

  57.                //按鍵函數(shù)聲明
  58. /***************************************/
  59. void ConfigTimer0(uint ms)
  60. {
  61.     unsigned long tmp;  //臨時(shí)變量
  62.    
  63.     tmp = 11059200 / 12;      //定時(shí)器計(jì)數(shù)頻率
  64.     tmp = (tmp * ms) / 1000;  //計(jì)算所需的計(jì)數(shù)值
  65.     tmp = 65536 - tmp;        //計(jì)算定時(shí)器重載值
  66.     tmp = tmp + 33;           //補(bǔ)償中斷響應(yīng)延時(shí)造成的誤差
  67.     T0RH = (uchar)(tmp>>8);  //定時(shí)器重載值拆分為高低字節(jié)
  68.     T0RL = (uchar)tmp;
  69.         AUXR &= 0x7f;
  70.         TMOD  = 0x00;
  71.     TH0 = T0RH;     //加載T0重載值
  72.     TL0 = T0RL;
  73.     ET0 = 1;        //使能T0中斷
  74.     TR0 = 1;        //啟動(dòng)T0
  75. }
  76. /*掉電存儲(chǔ)*/
  77. void Delay(uchar n)
  78. {
  79.      uint x;
  80.      while (n--)
  81.      {
  82.           x = 0;
  83.           while (++x);
  84.      }
  85. }
  86. /*----------------------------

  87. 關(guān)閉IAP

  88. ----------------------------*/

  89. void IapIdle()

  90. {
  91.      IAP_CONTR  = 0;                     //關(guān)閉IAP功能
  92.      IAP_CMD  = 0;                       //清除命令寄存器
  93.      IAP_TRIG  = 0;                     //清除觸發(fā)寄存器
  94.      IAP_ADDRH  = 0x80;                  //將地址設(shè)置到非IAP區(qū)域
  95.      IAP_ADDRL  = 0;
  96. }
  97. /*----------------------------

  98. 從ISP/IAP/EEPROM區(qū)域讀取一字節(jié)

  99. ----------------------------*/

  100. uchar IapReadByte(uint addr)

  101. {
  102.      uchar dat;                          //數(shù)據(jù)緩沖區(qū)
  103.      IAP_CONTR = ENABLE_IAP;           //使能IAP
  104.      IAP_CMD = CMD_READ;               //設(shè)置IAP命令
  105.      IAP_ADDRL = addr;                 //設(shè)置IAP低地址
  106.      IAP_ADDRH = addr >> 8;            //設(shè)置IAP高地址
  107.      IAP_TRIG = 0x5a;                   //寫觸發(fā)命令(0x5a
  108.      IAP_TRIG = 0xa5;                   //寫觸發(fā)命令(0xa5
  109.      _nop_();                           //等待ISP/IAP/EEPROM操作完
  110.      dat = IAP_DATA;                    //讀ISP/IAP/EEPROM數(shù)據(jù)
  111.      IapIdle();                         //關(guān)閉IAP功能
  112.      return dat;                        //返回
  113. }
  114. /*----------------------------

  115. 寫一字節(jié)數(shù)據(jù)到ISP/IAP/EEPROM區(qū)域

  116. ----------------------------*/

  117. void IapProgramByte(uint addr, uchar dat)

  118. {
  119.      IAP_CONTR = ENABLE_IAP;           //使能IAP
  120.      IAP_CMD = CMD_PROGRAM;            //設(shè)置IAP命令
  121.      IAP_ADDRL = addr;                 //設(shè)置IAP低地址
  122.      IAP_ADDRH = addr >> 8;            //設(shè)置IAP高地址
  123.      IAP_DATA = dat;                    //寫ISP/IAP/EEPROM數(shù)據(jù)
  124.      IAP_TRIG = 0x5a;                   //寫觸發(fā)命令(0x5a
  125.      IAP_TRIG = 0xa5;                   //寫觸發(fā)命令(0xa5
  126.      _nop_();                           //等待ISP/IAP/EEPROM操作完
  127.      IapIdle();
  128. }
  129. /*----------------------------

  130. 扇區(qū)擦除

  131. ----------------------------*/

  132. void IapEraseSector(uint addr)
  133. {
  134.      IAP_CONTR = ENABLE_IAP;           //使能IAP
  135.      IAP_CMD = CMD_ERASE;              //設(shè)置IAP命令
  136.      IAP_ADDRL = addr;                 //設(shè)置IAP低地址
  137.      IAP_ADDRH = addr >> 8;           //設(shè)置IAP高地址
  138.      IAP_TRIG = 0x5a;                   //寫觸發(fā)命令(0x5a
  139.      IAP_TRIG = 0xa5;                   //寫觸發(fā)命令(0xa5
  140.      _nop_();                           //等待ISP/IAP/EEPROM操作完
  141.      IapIdle();
  142. }
  143. /************************************************/

  144. void s0()
  145. {
  146.    pa = 1;
  147.    pb = 1;
  148.    pc = 1;
  149.    pd = 1;
  150.    pe = 1;
  151.    pf = 1;
  152.    pg = 0;
  153. }
  154. void s1()
  155. {
  156.    pb = 1;
  157.    pc = 1;
  158.    pa = 0;
  159.    pg = 0;
  160.    pd = 0;
  161.    pe = 0;
  162.    pf = 0;
  163. }
  164. void s2()
  165. {
  166.    pa = 1;
  167.    pb = 1;
  168.    pg = 1;
  169.    pe = 1;
  170.    pd = 1;
  171.    pf = 0;
  172.    pc = 0;
  173. }
  174. void s3()
  175. {
  176.    pa = 1;
  177.    pb = 1;
  178.    pg = 1;
  179.    pc = 1;
  180.    pd = 1;
  181.    pf = 0;
  182.    pe = 0;
  183. }
  184. void s4()
  185. {
  186.    pb = 1;
  187.    pg = 1;
  188.    pc = 1;  
  189.    pf = 1;
  190.    pa = 0;
  191.    pd = 0;
  192.    pe = 0;

  193. }
  194. void s5()
  195. {
  196.    pa = 1;
  197.    pg = 1;
  198.    pc = 1;
  199.    pd = 1;
  200.    pf = 1;
  201.    pe = 0;
  202.    pb = 0;
  203. }
  204. void s6()
  205. {
  206.    pa = 1;
  207.    pg = 1;
  208.    pc = 1;
  209.    pd = 1;
  210.    pf = 1;
  211.    pe = 1;
  212.    pb = 0;
  213. }
  214. void s7()
  215. {
  216.    pa = 1;
  217.    pb = 1;
  218.    pc = 1;
  219.    pf = 0;
  220.    pe = 0;
  221.    pd = 0;
  222.    pg = 0;
  223. }
  224. void s8()
  225. {
  226.    pa = 1;
  227.    pb = 1;
  228.    pg = 1;
  229.    pc = 1;
  230.    pd = 1;
  231.    pf = 1;
  232.    pe = 1;
  233. }
  234. void s9()
  235. {
  236.    pa = 1;
  237.    pb = 1;
  238.    pg = 1;
  239.    pc = 1;
  240.    pd = 1;
  241.    pf = 1;
  242.    pe = 0;
  243. }
  244. void s10()
  245. {
  246.    pa = 0;
  247.    pb = 0;
  248.    pc = 0;
  249.    pf = 0;
  250.    pe = 0;
  251.    pd = 0;
  252.    pg = 0;
  253. }

  254. void key()
  255. {
  256.         static uchar saomiaozhi[] = {1,1,1,1};
  257.         saomiaozhi[0] = (saomiaozhi[0]<<1) | in1;
  258.         saomiaozhi[1] = (saomiaozhi[1]<<1) | in2;
  259.         if(saomiaozhi[0] == 0x00)
  260.         {
  261.                 d1 = 0;
  262.         }
  263.         if(saomiaozhi[0] == 0xff)
  264.         {
  265.                 d1 = 1;
  266.         }
  267.         if(saomiaozhi[1] == 0x00)
  268.         {
  269.                 d2 = 0;
  270.                 d3 = 0;
  271.         }
  272.         if(saomiaozhi[1] == 0xff)
  273.         {
  274.                 d2 = 1;
  275.                 d3 = 1;
  276.         }
  277. }
  278. void xuaze(uchar j)
  279. {
  280.         if(j == 0)
  281.         {
  282.            s0();
  283.         }
  284.         else if(j == 1)
  285.         {
  286.        
  287.                 s1();
  288.         }
  289.         else if(j == 2)
  290.         {
  291.        
  292.                 s2();
  293.         }
  294.         else if(j == 3)
  295.         {
  296.        
  297.                 s3();
  298.         }
  299.         else if(j == 4)
  300.         {
  301.        
  302.                 s4();
  303.         }
  304.         else if(j == 5)
  305.         {
  306.        
  307.                 s5();
  308.         }
  309.         else if(j == 6)
  310.         {
  311.        
  312.                 s6();
  313.         }
  314.         else if(j == 7)
  315.         {
  316.        
  317.                 s7();
  318.         }
  319.         else if(j == 8)
  320.         {
  321.        
  322.                 s8();
  323.         }
  324.         else if(j == 9)
  325.         {
  326.                 s9();
  327.         }
  328. }
  329. /*數(shù)碼管顯示函數(shù),調(diào)用在主函數(shù)中*/
  330. void xianshi1(uint sec)
  331. {
  332.                j3 = duan [sec%10];
  333.                    j2 = duan [sec/10%10];
  334.                    j1 = duan [sec/100%10];
  335. }
  336. /*數(shù)碼管掃描函數(shù),放到中斷中,中斷時(shí)間要是1ms*/
  337. void  ssmg()
  338. {
  339.            s10();
  340.    switch (i)
  341.    {
  342.              case 0: p1 = 0;p2 = 1;p3 = 1; i++; s10(); xuaze(j1);     break;
  343.           case 1: p1 = 1;p2 = 0;p3 = 1; i++; s10(); xuaze(j2);     break;
  344.           case 2: p1 = 1;p2 = 1;p3 = 0; i=0; s10(); xuaze(j3);     break;
  345.           default: break;
  346.    }
  347. }

  348. void QL()
  349. {
  350.                                  if(js<=1)js=1;
  351.                      if(js1<=1)js1=1;
  352. }
  353. void tm0_isr() interrupt 1 using 1
  354. {
  355.           TH0 = T0RH;  //重新加載重載值
  356.       TL0 = T0RL;
  357.           ssmg();
  358.           key();
  359.           if(x2 == 1)
  360.           {
  361.                     x3++;
  362.                   if(x3>=4000)
  363.                   {
  364.                           x3 = 0;
  365.                             x1++;
  366.                           if(x1>1)
  367.                           {
  368.                                    x1 = 0;
  369.                           }
  370.                   }
  371.           }
  372.           if((x1 == 0)&&(x5 == 0))
  373.           {  
  374.                   x4++;
  375.                   if(x4>=1000)
  376.                   {          
  377.                    x4 = 0;
  378.                             js--;
  379.                           if(js==0)
  380.                           {
  381.                                  js = 0;
  382.                                  x4 = 0;
  383.                                    x1 = 1;
  384.                                  out = 1;
  385.                                  js = IapReadByte(2)*256+IapReadByte(1);
  386.                                  QL();
  387.                           }
  388.                   }
  389.           }

  390.           if((x1 == 1)&&(x5 == 0))
  391.           {
  392.                    x4++;
  393.                  if(x4>=60000)
  394.                  {
  395.                         x4 = 0;
  396.                         js1--;
  397.                         if(js1==0)
  398.                           {
  399.                                  js1 = 0;
  400.                                    x1 = 0;
  401.                                  out = 0;
  402.                                  js1 = IapReadByte(4)*256+IapReadByte(3);
  403.                                  QL();
  404.                           }
  405.                  }
  406.           }
  407. }                 
  408. void cun()
  409. {                                         if(js<=1) js=1;
  410.                      if(js1<=1) js1=1;
  411.                                          IapEraseSector(0);
  412.                                          IapProgramByte(1, js);
  413.                                      IapProgramByte(2, js>>8);
  414.                                          IapProgramByte(3, js1);
  415.                                      IapProgramByte(4, js1>>8);
  416. }

  417. void main()
  418. {


  419.         bit q1 = 1;
  420.     bit q2 = 1;
  421.         EA = 1;
  422.         ConfigTimer0(1);

  423.          P3M0 = 0xcc;
  424.          P3M1 = 0X00;
  425.          P1M0 = 0x1f;
  426.          P1M1 = 0X00;
  427.          out = 0;

  428.           js = IapReadByte(2)*256+IapReadByte(1);
  429.           js1 = IapReadByte(4)*256+IapReadByte(3);
  430.       QL();
  431.          
  432.           /***************************************/
  433.         while(1)
  434.         {


  435.          /************************************************************************************************/  
  436.              if(d1 != q1)
  437.                   {
  438.                           q1 = d1;
  439.                         if(d1 == 0)
  440.                         {
  441.                                  x5 = 1;
  442.                                 if(x1 == 0)
  443.                                 {
  444.                                             js = (js+1)%999;
  445.                      cun();
  446.                                   
  447.                                 }
  448.                                 if(x1 == 1)
  449.                                 {
  450.                                             js1 = (js1+1)%999;
  451.                      cun();
  452.                                 }
  453.                                   
  454.                                
  455.                         }
  456.                   }
  457.                 if(d2 != q2)
  458.                   {
  459.                           q2 = d2;
  460.                         if(d2 == 0)
  461.                         {
  462.                                     x5 = 1;
  463.                            if(x1 == 0)
  464.                                 {
  465.                                    if(js > 0)
  466.                                    {
  467.                                             js--;
  468.                                          if(js==0) js=1;
  469.                                          cun();
  470.                                    }
  471.                                 }
  472.                                 if(x1 == 1)
  473. ……………………

  474. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
還包含以下單片機(jī)例程:
001、延時(shí)接通循環(huán)_通斷均為秒
002、延時(shí)斷開(kāi)再延時(shí)接通循環(huán)_分
003、延時(shí)斷開(kāi)再延時(shí)接通循環(huán)_秒
004、延時(shí)斷開(kāi)_分
005、延時(shí)斷開(kāi)_秒
007、延時(shí)接通循環(huán)_通分?jǐn)嗝?br /> 延時(shí)接通_分
延時(shí)接通_秒
延時(shí)接通循環(huán)_通斷均為分
延時(shí)斷開(kāi)_前兩位分后一位秒



DSC_0093.JPG
DSC_0094.JPG
標(biāo)示圖.JPG
接線圖.JPG
輸入輸出同電壓接線圖應(yīng)用舉例延時(shí)接通.JPG
0.png

GYJ-0055_數(shù)顯可編程延時(shí)模塊產(chǎn)品循環(huán)通斷調(diào)節(jié)說(shuō)明.doc

594.04 KB, 下載次數(shù): 22, 下載積分: 黑幣 -5

數(shù)顯可編程延時(shí)模塊設(shè)計(jì)資料包含例程原理圖及PCB圖.doc

1.75 MB, 下載次數(shù): 21, 下載積分: 黑幣 -5

數(shù)顯可編程延時(shí)模塊設(shè)計(jì)資料包含例程原理圖及PCB圖.pdf

799.11 KB, 下載次數(shù): 21, 下載積分: 黑幣 -5

最新整理配套例程.rar

1.6 MB, 下載次數(shù): 38, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

ID:95509 發(fā)表于 2018-2-8 09:58 | 顯示全部樓層
謝謝樓主分享!
回復(fù)

使用道具 舉報(bào)

ID:269211 發(fā)表于 2018-2-8 15:05 | 顯示全部樓層
謝謝樓主分享!
回復(fù)

使用道具 舉報(bào)

ID:336666 發(fā)表于 2018-5-24 11:35 | 顯示全部樓層

謝謝樓主分享!這段時(shí)間在找這種類型的資料
回復(fù)

使用道具 舉報(bào)

ID:149318 發(fā)表于 2018-7-7 21:23 | 顯示全部樓層
謝謝樓主分享!
回復(fù)

使用道具 舉報(bào)

ID:272609 發(fā)表于 2018-9-16 06:55 | 顯示全部樓層
謝謝樓主的分享,正是我想找的資料
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表