久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3617|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

STC單片機可編程觸發(fā)控制模塊源碼與資料 數(shù)碼管顯示計數(shù) 倒計時功能

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:280979 發(fā)表于 2018-2-24 13:53 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
電路原理圖:

【簡要說明】
此工業(yè)級板的作用是,模塊供電后,數(shù)碼管顯示設(shè)定時間,倒計時開始,當(dāng)數(shù)碼管倒計時到0時,繼電器接通或者斷開,此模塊有三種工作模式,客戶可以根據(jù)自己的需要進行選型。

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




0~999秒可調(diào)-觸發(fā)延時斷開 - 延時閉合帶計數(shù)STC12C2052AD
  1. /********************************************************************
  2.                             匯誠科技

  3. 實現(xiàn)功能:測試程序
  4. 使用芯片:STC12C2052AD
  5. 晶振:11.0592MHZ
  6. 波特率:9600
  7. 編譯環(huán)境:Keil
  8. 【聲明】此程序僅用于學(xué)習(xí)與參考,引用請注明版權(quán)和作者信息!     
  9. /********************************************************************
  10. ********************************************************************/
  11. //#include<reg52.h>
  12. #include<STC12C2052AD.h>                 //庫文件
  13. #include<intrins.h>
  14. #define uchar unsigned char //宏定義字符型變量
  15. #define uint  unsigned int        //宏定義整型變量

  16. /*聲明 SFR 相關(guān) 與 的 IAP*/
  17. sfr IAP_DATA = 0xE2;
  18. sfr IAP_ADDRH = 0xE3;
  19. sfr IAP_ADDRL = 0xE4;
  20. sfr IAP_CMD = 0xE5;
  21. sfr IAP_TRIG = 0xE6;
  22. sfr IAP_CONTR = 0xE7;


  23. /********************************************************************
  24.                              IO口定義
  25. ********************************************************************/
  26. uchar s1=0;
  27. bit  write=0;
  28. uint txian,dxian;
  29. uchar txian1,txian2,txian3;
  30. uchar dxian1,dxian2,dxian3;
  31. uchar T0RH=0,T0RL=0;
  32. uint ms=0;
  33. uchar A1,A2,A3;
  34. uchar B1,B2,B3;
  35. uchar C1,C2,C3;
  36. uchar D1,D2,D3;
  37. bit bz1=0;
  38. sbit P10=P1^0;//數(shù)碼管段
  39. sbit P11=P1^1;//數(shù)碼管段
  40. sbit P12=P1^2;//數(shù)碼管段
  41. sbit P13=P1^3;//數(shù)碼管段
  42. sbit P14=P1^4;//數(shù)碼管段
  43. sbit P15=P1^5;//數(shù)碼管段
  44. sbit P16=P1^6;//數(shù)碼管段

  45. sbit P17=P3^4;//信號輸入

  46. sbit P30=P3^0;//按鍵輸入
  47. sbit P31=P3^1;//按鍵輸入
  48. sbit P32=P3^2;//數(shù)碼管位
  49. sbit P33=P3^3;//數(shù)碼管位

  50. sbit P35=P3^5;//數(shù)碼管位
  51. sbit P37=P3^7; //繼電器輸出
  52. bit ts=1;
  53. uchar sj=0;
  54. bit dsbz=0;
  55. uchar jishu=0;
  56. bit sjsn=0;
  57. /********************************************************************
  58.                             定義 ISP/IAP/EEPROM 命令
  59. *********************************************************************/
  60. #define CMD_IDLE 0
  61. #define CMD_READ 1
  62. #define CMD_PROGRAM 2
  63. #define CMD_ERASE 3

  64. #define ENABLE_IAP 0x83//SYSCLK<12MH
  65. #define IAP_ADDRESS 0x0000        //存儲地址


  66. /********************************************************************
  67. 禁用 ISP/IAP/EEPROM functionmake 單片機 在 一 安全 狀態(tài)
  68. *********************************************************************/
  69. void IapIdle()
  70. {
  71.     IAP_CONTR = 0;           //
  72.         IAP_CMD = 0;           //
  73.         IAP_TRIG = 0;           //
  74.         IAP_ADDRH = 0x80;  //
  75.         IAP_ADDRL = 0;           //
  76. }

  77. /********************************************************************
  78.                              讀數(shù)據(jù)
  79. *********************************************************************/

  80. uchar IapReadByte(uint addr)
  81. {
  82.    uchar dat;
  83.    IAP_CONTR = ENABLE_IAP;
  84.    IAP_CMD = CMD_READ;
  85.    IAP_ADDRL = addr;
  86.    IAP_ADDRH = addr >> 8;
  87.    IAP_TRIG = 0x46;
  88.    IAP_TRIG = 0xb9;
  89.    _nop_();
  90.    dat = IAP_DATA;
  91.    IapIdle();
  92.    return dat;
  93. }
  94. /********************************************************************
  95.                                寫數(shù)據(jù)
  96. *********************************************************************/

  97. void IapProgramByte(uint addr, uchar dat)
  98. {
  99.    IAP_CONTR = ENABLE_IAP;
  100.    IAP_CMD = CMD_PROGRAM;
  101.    IAP_ADDRL = addr;
  102.    IAP_ADDRH = addr >> 8;
  103.    IAP_DATA = dat;
  104.    IAP_TRIG = 0x46;
  105.    IAP_TRIG = 0xb9;
  106.    _nop_();
  107.    IapIdle();
  108. }
  109. /********************************************************************
  110.                                擦除數(shù)據(jù)
  111. *********************************************************************/

  112. void IapEraseSector(uint addr)
  113. {
  114.    IAP_CONTR = ENABLE_IAP;
  115.    IAP_CMD = CMD_ERASE;
  116.    IAP_ADDRL = addr;
  117.    IAP_ADDRH = addr >> 8;
  118.    IAP_TRIG = 0x46;
  119.    IAP_TRIG = 0xb9;
  120.    _nop_();
  121.    IapIdle();
  122. }

  123. /********************************************************************
  124.                             初始定義
  125. *********************************************************************/
  126. code uchar seg7code[10]={0x7B,0x09,0x75,0x5D,0x0F,0x5E,0x7E,0x49,0x7F,0x5F}; //顯示段碼 數(shù)碼管字跟

  127. /********************************************************************
  128.                             延時函數(shù)
  129. *********************************************************************/
  130. void delay(uchar t)
  131. {
  132.   uchar i,j;
  133.    for(i=0;i<t;i++)
  134.    {
  135.             for(j=130;j>0;j--);
  136.          { ;
  137.          }
  138.    }
  139. }
  140. /********************************************************************
  141.                             顯示函數(shù) 接通時間
  142. *********************************************************************/        
  143. //void tong(uchar tdate) //顯示函數(shù)
  144. void tong() //顯示函數(shù)
  145. {

  146.           C1=txian/100;
  147.           C2=txian%100/10;
  148.             C3=txian%10;
  149.       P32=1;P33=1;P35=1;
  150.       P1=seg7code[C1];
  151.           P32=0;P33=1;P35=1;
  152.           delay(80);
  153.           P32=1;P33=1;P35=1;  
  154.       P1=seg7code[C2];
  155.           P32=1;P33=0;P35=1;
  156.           delay(80);
  157.           P32=1;P33=1;P35=1;  
  158.              P1=seg7code[C3];
  159.           P32=1;P33=1;P35=0;
  160.           delay(80);

  161. }
  162.                   
  163. void key()
  164. {

  165.    if(P30==0)
  166.    {
  167.    delay(80);
  168.    if(P30==0)
  169.    {
  170.    s1++;
  171.    if(s1>=5){s1=0;}
  172.    while(!P30);
  173.    }
  174. }}


  175. //定時器0初始化
  176. void t0_init(unsigned char ms0)           //ms0最大71
  177. {
  178.         /***********************************************
  179.         一個機器周期=12*時鐘周期。
  180.         11059200為時鐘周期,一共為11059200/12=921600,就是每秒為921600Hz,
  181.     八位定時器 最大計時     0.2777778ms
  182.         十六位定時器最大計時          71.111111ms
  183.         11.0592MHz除12為921600Hz,就是一秒921600次機器周期,10ms=9216次機器周期。
  184.   65536-9216=56320(dc00)
  185.   TH0=0xdc,TL0=0x00
  186.         ***********************************************/
  187.          long tmp;  //臨時變量
  188.      tmp = 11059200 / 12;
  189.          tmp = (tmp * ms0) / 1000;
  190.          tmp = 65536 - tmp;
  191.          tmp = tmp + 3;
  192.          T0RH = (unsigned char)(tmp>>8);
  193.          T0RL = (unsigned char)tmp;                                          
  194.      TMOD &=0XF0;
  195.          TMOD |=0X01;  //方式一  一共四種方式   GATE0 C/T0  M0_1  M0_0         C/T0選擇時鐘計數(shù)還是外部計數(shù)  方式0是十三位定時器 ,方式1是十六位定時器,方式2是八位自動 方式4是兩個八位
  196.          TH0=T0RH;
  197.          TL0=T0RL;
  198.          ET0=1;   //使能T0中斷
  199.          EA=1;
  200.          TR0=1;
  201. }
  202. /********************************************************************
  203.                                主函數(shù)
  204. *********************************************************************/
  205. void main()

  206. {   

  207.     unsigned char flag=1,flag2=0;;
  208.         txian1 = IapReadByte(0x01);                //讀取0x01中的數(shù)據(jù)  并附給ca
  209.         txian2 = IapReadByte(0x02);                //讀取0x01中的數(shù)據(jù)  并附給ca
  210.         txian3 = IapReadByte(0x03);                //讀取0x01中的數(shù)據(jù)  并附給ca

  211.         t0_init(10);
  212.         P1M0=0X00;P1M1=0Xff;
  213.         txian=txian1*100+txian2*10+txian3;
  214.         P37=1;
  215.         while(1)
  216.         {

  217.     key();
  218.         if((P17==0)&&(bz1==0)){delay(80);if(P17==0){ts=0;bz1=1;ms=0;P37=0;sjsn=1;dsbz=0;}}
  219.         if((P17==1)&&(bz1==1)){bz1=0;dsbz=0;jishu=0;}
  220.         }                 
  221. }
  222. void t0(void) interrupt 1 using 0 //定時中斷服務(wù)函數(shù)
  223. {
  224.           TH0=T0RH;
  225.         TL0=T0RL;
  226.         ms++;
  227.    
  228.                  switch (s1){
  229.                   case 0: tong();break;
  230.                      case 1:ts=1;P1=seg7code[A1]; P32=0;P33=1;P35=1;  if(P31==0){A1++;if(A1>9)A1=0;while(!P31);}break;
  231.                   case 2:     P1=seg7code[A2]; P32=1;P33=0;P35=1;  if(P31==0){A2++;if(A2>9)A2=0;while(!P31);}break;
  232.                      case 3:     P1=seg7code[A3]; P32=1;P33=1;P35=0;  if(P31==0){A3++;if(A3>9)A3=0;while(!P31);}break;
  233.                   case 4:     txian1=A1;txian2=A2;txian3=A3;txian=txian1*100+txian2*10+txian3;write=1;break;
  234.                   default: break;
  235.                 }

  236.         if(ms==40)  //ms=40是1秒
  237.         {
  238.         ms=0;
  239. if(write==1)
  240.   {                                                                                                                                                                                                                                         
  241.    write=0;
  242. IapEraseSector(0);
  243. IapProgramByte(0x01,txian1);
  244. IapProgramByte(0x02,txian2);
  245. IapProgramByte(0x03,txian3);

  246.   }

  247. if((dsbz==1)&&(jishu<5)){sj++;if(sj==20){bz1=0;sj=0;dsbz=0;jishu++;}}
  248. if((sjsn==1)&&(dsbz==0)){txian--;}
  249.          if(txian==0)
  250.          {
  251.            P37=1;
  252.        sjsn=0;
  253.            dsbz=1;
  254.            txian=txian1*100+txian2*10+txian3;
  255.          }

  256.         }

  257. }
復(fù)制代碼




全部資料51hei下載地址:
配套程序.rar (2.92 MB, 下載次數(shù): 60)
GYJ-0072_帶觸發(fā)端的延時模塊原理圖.pdf (352.25 KB, 下載次數(shù): 32)
GYJ-0072_帶觸發(fā)端的延時模塊.pdf (352.25 KB, 下載次數(shù): 30)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:601796 發(fā)表于 2019-8-24 01:11 | 只看該作者
看看,謝謝了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产最新精品视频 | 欧美日韩在线免费观看 | 福利成人| 日韩二三区 | 国产一区二区三区四区 | 日韩在线日韩 | 欧美激情视频一区二区三区免费 | 免费看爱爱视频 | 日韩福利片| 91久久| 在线观看国产 | 国产日韩一区二区 | 欧美亚洲免费 | 黄色综合 | 亚洲成人免费网址 | 毛片视频观看 | 国产精品成人一区二区 | 国产一区二区欧美 | av影音资源| 久久免费视频网 | 日韩在线精品 | 日本午夜视频 | 久久久蜜桃一区二区人 | 成人在线免费电影 | 午夜伦4480yy私人影院 | 四虎影音| 99精品久久久久久 | 中文天堂在线一区 | 亚洲欧洲综合av | 国产乱码精品一品二品 | 亚洲精品自在在线观看 | 中文字幕日韩欧美 | 欧美三级视频在线观看 | 久久99精品久久久久久琪琪 | 日韩1区| 91日日 | 午夜激情免费 | 99tv | 久久草在线视频 | 久久精彩| 免费av一区二区三区 |