国产精品乱码一区-性开放网站-少妇又紧又爽视频-西西大胆午夜人体视频-国产极品一区-欧美成人tv-四虎av在线-国产无遮挡无码视频免费软件-中文字幕亚洲乱码熟女一区二区-日产精品一区二区三区在线观看-亚洲国产亚综合在线区-五月婷婷综合色-亚洲日本视频在线观看-97精品人人妻人人-久久久久久一区二区三区四区别墅-www.免费av-波多野结衣绝顶大高潮-日本在线a一区视频高清视频-强美女免费网站在线视频-亚洲永久免费

機械社區

標題: DIY定時自動打鈴器 [打印本頁]

作者: 1五湖四海1    時間: 2011-11-20 18:46
標題: DIY定時自動打鈴器
DIY定時自動打鈴器
  我廠為了搞好軍事化管理,在每個廠房安裝了電鈴。按廠規定的休息時間打鈴提示。安裝這套裝置需要一個定時自動控制電鈴開啟的裝置。廠子安排我負責完成這套裝置。我接下任務打算自行設計一套定時打鈴器,我的設計方案得到廠領導批準后,我給自己立下軍令狀一周之內完成。
  在20111120日制作完成了定時自動打鈴器,我利用單片機技術計時產生秒信號首先完成了數字電子鐘,在此基礎上加入了繼電器并通過軟件實現了定時控制繼電器。最后加入了鍵盤可以調整走時時間和設置多個定時時間。做到這里遇到一個問題,我是采用市電220v變壓整流給單片機板供電的,如果突然停電就會丟失走時時鐘和設置數據,所以一定要保證供電連續性。我想了一個辦法如果停電時采用備用電池供電,停電時它們切換供電在切換過程中加入了10000uf的大電容解決了在切換過程中斷電現象。
  在整個制作過程中遇到了許多問題,我需要面對問題去解決遇到的難題。我個人認為這是一個鍛煉自己解決問題的好機會。制作中有苦有樂,我將制作方法拿出來和大家一起分享。
下面是我的小型實驗室
(, 下載次數: 169) (, 下載次數: 166)
制作過程:20111115日,我走進我的小角落小型實驗室,找出了51單片機開發板,打開電腦開始寫程序,忙了一天寫好了單片機數字電子鐘。這套裝置的核心就是電子鐘,所以首先要制作出數字電子鐘。然后在數字鐘程序基礎上加入了幾條語句就可以按編寫的時間控制繼電器閉合觸點了,很簡單吧!通過計算機設定調整時間設置定時時間可不行,下一步要加入鍵盤,通過鍵盤調整走時時間和設置定時時間。圖上面的三個按鈕分別為設置鍵,小時調整鍵,分鐘調整鍵。第二天完成了鍵盤調整函數模塊程序編寫,可以在一天中多了時間段控制電鈴響起。一步一步的調試改進完成了自動打鈴器,在喜悅中新問題來了,打鈴器工作了一天后出現了走時誤差,經過9個小時就會出現60秒的誤差。我開始嘗試了各種方法解決誤差問題,采用自動調整法比較有效果,實驗測出產生1秒誤差所需用的時間,然后通過程序每過一段時間就將秒變量自動加1或是減1來清除誤差。在電源供電方面考慮實際情況需用改進。單片機正常工作必須保證電能連續性。如果一旦停電數據將會丟失,所以要加入備用電池當停電時自動切換到電池供電。我將繼電器接到變壓器輸出端,如果市電有電時繼電器得電工作,停電時繼電器失電,通過繼電器常開常閉觸點控制市電和電池切換,在供應電源輸出端加入10000uf大電容起到市電和電池切換瞬間斷電現象。電源電路中加入了一只光耦輸出端送往單片機它起到判斷何種方式供電,如果電池供電單片機板上面的數碼管關閉以節省電能。
  下面有電源部分電路原理圖,單片機部分電路原理圖,實物圖和單片機c51程序。
(, 下載次數: 161) (, 下載次數: 168)
(, 下載次數: 168) (, 下載次數: 125)
(, 下載次數: 164) (, 下載次數: 164)


作者: 1五湖四海1    時間: 2011-11-20 18:48
下面是自動打鈴器c程序
#include<reg51.h>
#define shum P1  //數碼
#define saom P2 //數碼掃描
#define uchar unsigned char
#define uint unsigned int
char DATA_7SEG[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90,};
uchar hour=0,min=0,sec=0,tauto=0;                  //時 分 秒
uchar x=8,y=0,g=11,f=55,o=16,p=30;                             //x是定時1小時設定值 y是定時1分設定值
uchar deda=0;
uchar code xsjsbb[60];
bit d_05s=0;
uchar set=0;
/*-----------------------走時函數--------------------------*/
void init_timer()
{
  TMOD=0x01;
  TH0=(65536-5000)/256;
  TL0=(65536-5000)%256;
  IE=0x82;
  TR0=1;
}
/*-----------------------5ms定時中斷服務函數--------------------------*/
void T0_srv(void) interrupt 1
{
  TH0=(65536-5000)/256;
  TL0=(65536-5000)%256;
  deda++ ;
}
/*----------------------時,分,秒單元及走時單元轉換-------------------------*/
void conv()
{
if(deda<=100)d_05s=0;
else d_05s=1;
if(deda>=200){sec++;deda=0;}
if(sec==60){min++;tauto++;sec=0;}
if(tauto==9){sec=sec+1;tauto=0;}                       //自動調時沒過9分鐘(tauto=9)秒變量sec自增1
if(min==60){hour++;min=0;}
if(hour==24){hour=0;}
}
void display()                //數碼管模塊
{char e,scan;
if(deda<=100)P3_4=0; else P3_4=1;
if(hour==x)a=1; else a=0;                     //定時設定值x,y g,f o,p
if(min==y)b=1; else b=0;
if(sec==2)c=1; else c=0;
if(a&b&c) P0_3=0; else P0_3=1;
if(hour==g)la=1; else la=0;
if(min==f)lb=1; else lb=0;
if(sec==2)lc=1; else lc=0;
if(la&lb&lc) P0_3=0; else P0_3=1;
if(hour==o)ia=1; else ia=0;
if(min==p)ib=1; else ib=0;
if(sec==2)ic=1; else ic=0;
if(ia&ib&ic) P0_3=0; else P0_3=1;
disp[3]=hour/10;
disp[2]=hour%10;
disp[1]=min/10;
disp[0]=min%10;
P1=0xff;
scan=0xef;
for(e=0;e<4;e++)
{
shum=0xff;
saom=scan;
if(P3_6==0)
  {
    if(d_05s==1)
    {if(e==2)P1_7=0;else P1_7=1;}
  }
  else {if(e==2) P1_7=1;}
if(P3_6==0)  
            P1=DATA_7SEG[disp[e]];
else       P1=0xff;
delay(4);
scan>>=1;
}
}
/*-------------------調整走時時間函數部分------------------------*/
void set_time()
{uchar m;
if(P3_1==0)delay(1);
if(P3_1==0)hour++;
F1:if(P3_1==0)goto F1;
if(hour==24)hour=0;
for(m=0;m<30;m++)
  {
   display();
  if(d_05s==1)P2_7=0;
  else P2_7=1;
   delay(1);
  }
if(P3_0==0)delay(1);
if(P3_0==0)min++;
F2:if(P3_0==0)goto F2;
if(min==60)min=0;
for(m=0;m<30;m++)
  {
   display();
   if(d_05s==1)P2_7=0;
   else P2_7=1;
   delay(1);
  }
}
}

作者: 1五湖四海1    時間: 2011-11-20 18:49
1五湖四海1 發表于 2011-11-20 18:48
下面是自動打鈴器c程序
#include#define shum P1  //數碼#define saom P2 //數碼掃描#define uchar unsign ...

void set_t1()
{
uchar m;
if(P3_1==0)delay(1);
if(P3_1==0)x++;
F1:if(P3_1==0)goto F1;
if(x==24)x=0;
if(P3_0==0)delay(1);
if(P3_0==0)y++;
F2:if(P3_0==0)goto F2;
if(y==60)y=0;
for(m=0;m<30;m++)
  {
     char e,scan;
     tdisp[4]=1;
     tdisp[3]=x/10;
     tdisp[2]=x%10;
     tdisp[1]=y/10;
     tdisp[0]=y%10;
     P1=0xff;
     scan=0xef;
     for(e=0;e<5;e++)
     {
     shum=0xff;
     saom=scan;
   
     P1=DATA_7SEG[tdisp[e]];
     delay(4);
     scan>>=1;
     }
   delay(1);
  }
}
void set_t2()
{
uchar m;
if(P3_1==0)delay(1);
if(P3_1==0)g++;
F1:if(P3_1==0)goto F1;
if(g==24)g=0;
if(P3_0==0)delay(1);
if(P3_0==0)f++;
F2:if(P3_0==0)goto F2;
if(f==60)f=0;
for(m=0;m<30;m++)
  {
     char e,scan;
     tdisp[4]=2;
     tdisp[3]=g/10;
     tdisp[2]=g%10;
     tdisp[1]=f/10;
     tdisp[0]=f%10;
     P1=0xff;
     scan=0xef;
     for(e=0;e<5;e++)
     {
     shum=0xff;
     saom=scan;
   
     P1=DATA_7SEG[tdisp[e]];
     delay(4);
     scan>>=1;
     }
   delay(1);
  }
}
void set_t3()
{
uchar m;
if(P3_1==0)delay(1);
if(P3_1==0)o++;
F1:if(P3_1==0)goto F1;
if(o==24)o=0;
if(P3_0==0)delay(1);
if(P3_0==0)p++;
F2:if(P3_0==0)goto F2;
if(p==60)p=0;
for(m=0;m<30;m++)
  {
     char e,scan;
     tdisp[4]=3;
     tdisp[3]=o/10;
     tdisp[2]=o%10;
     tdisp[1]=p/10;
     tdisp[0]=p%10;
     P1=0xff;
     scan=0xef;
     for(e=0;e<5;e++)
     {
     shum=0xff;
     saom=scan;
   
     P1=DATA_7SEG[tdisp[e]];
     delay(4);
     scan>>=1;
     }
   delay(1);
  }
}
/*-------------------按鍵掃描及延時等函數部分-------------------------*/
/*--------走時時間程序函數--------*/
void time()
{
  conv();
  display();
}
/*--------掃描按鍵函數--------*/
void scan_key()
{
delay(1);
if(P3_2==0)set++;
if(set>=5)set=0;
if(set==1)flag=0x55;
F0:if(P3_2==0)goto F0;
}
/*--------延時函數-------------*/
void delay(uint k)
{
uint i,j;
for(i=0;j<k;i++)
  {
   for(j=0;j<121;j++);
  }
}
/*-----------------主函數-------------------------------------*/
void main()
{
init_timer();
while(1)
{if(P3_2==0)scan_key();
switch(set)
{
  case 0:time(); break;
  case 1:set_time();break;
  case 2:set_t1();break;
  case 3:set_t2();break;
  case 4:set_t3();break;
  default:break;
}
}

作者: 往事隨風LEO    時間: 2011-11-20 19:38
{:soso_e126:}  打鈴器還要自制?。。?!浪費時間,直接買一個,都是現成的,而且很便宜!
作者: 華山一道    時間: 2011-11-20 20:02
嚴重不懂為啥要自己做,廉價的現成東西不用?
作者: 水無香    時間: 2011-11-20 21:49
精神可嘉,認真鉆研,工作本身也是一種生活,有時候不以金錢論罷
作者: 山寨版    時間: 2011-11-20 21:53
樓主贊一個。。。。。。。。。。

作者: 我在飛    時間: 2011-11-20 22:45
其實對于定時打鈴的辦法很多。比如管理體系健全的企業一般各個車間和部門都會安裝廣播系統的。利用這個系統,在辦公電腦上裝個定時播放音樂的軟件,定時播放鈴聲即可。且電腦的時鐘是可以聯網校準的。更不怕斷電產生時鐘混亂?;揪褪橇阃度?。
作者: 1五湖四海1    時間: 2011-11-20 22:51
華山一道 發表于 2011-11-20 20:02
嚴重不懂為啥要自己做,廉價的現成東西不用?

我喜歡電子制作,將擅長的單片機技術應用到單位多好了,而且在制作過程中會遇到問題從中會學到很多東西。
作者: 904842999    時間: 2011-11-20 23:04
有時間自己做也好啊,我可還不會做
作者: syw開門造車    時間: 2011-11-21 01:46
1五湖四海1 友好!
.
學習是需要有載體的!就這樣一個小項目接著一個小項目的走下去,路肯定是對的.。
在你的身上,好象看到了我幾十年前的影子。
別小看這些不起眼的小項目!每當你“被迫”接受一項硬性任務時,就“逼迫你強制性的學習”一大堆與該項目有關的技能。
這種“被迫”、“強制”的學習機會非常難得,其會有效的解決你學習中的惰性!
當一個項目完成后,你就會發現,你又多了一項或幾項解決問題的能力。
當你做過的小項目多起來以后,積累也就多了起來,你就有能力將這些技能串聯起來,就能迎接大項目的挑戰。
.
不信你看下面的鏈接,當別人還在為一個問題苦苦想辦法的時候,你卻能輕而一舉的信手拈來。
.
syw    11-11-21  01:47
.

哪位大俠會三個月后 PLC自動鎖?。?催款用)
http://bbs.cmiw.cn/forum.php?mod=viewthread&tid=237251&extra=page%3D1&page=2


.

.


作者: 1五湖四海1    時間: 2011-11-21 18:12
我在飛 發表于 2011-11-20 22:45
其實對于定時打鈴的辦法很多。比如管理體系健全的企業一般各個車間和部門都會安裝廣播系統的。利用這個系統 ...

我在飛 你好:
  的確實現定時打鈴的方法很多,這種方法是好但不適合我廠,我廠缺少辦公電腦無法安裝定時軟件購買的打鈴器缺少個性化功能不如自制一個打鈴器,而且在制作中積累了一些經驗有了不少收獲。

作者: 1五湖四海1    時間: 2011-11-21 18:25
syw開門造車 發表于 2011-11-21 01:46
1五湖四海1 友好!
.
學習是需要有載體的!就這樣一個小項目接著一個小項目的走下去,路肯定是對的.。

syw開門造車 你好:
  謝謝孫老師您對我制作小項目的支持,確實我每做成功一個小項目都會掌握與項目相關的技能。這次制作中遇到了走時誤差問題9個小時就出現60秒的誤差,我嘗試著各種方法去解決,最后利用自動調整法清除了走時誤差。類似的例子還有很多,我從中積累了不少經驗。

作者: happqiwei    時間: 2011-11-23 15:08
謝謝分享,值得學習{:soso_e179:}
作者: 702082362    時間: 2012-1-5 10:32
樓主可以嘗試加上專業的時鐘芯片來提高精度,況且價格不貴??吹綐侵髯雷由系摹峨娮又谱鳌防病?hr noshade size="2" width="100%" color="#808080"> 作者: ahuangrun2008    時間: 2012-1-5 11:07
不錯,單片機學了都忘關了
作者: fg1234pl    時間: 2012-1-5 22:04
你表現非常好{:soso_e179:}{:soso_e181:}
作者: tianqilq    時間: 2012-1-6 22:18
路過………………蹭點積分
作者: tt255302    時間: 2012-1-7 10:03
51  很親切啊  不過有點浪費
作者: guoqingxiang    時間: 2012-1-7 10:15
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 正達環保    時間: 2012-1-9 17:40
原來一個自動打鈴也這么麻煩呀
作者: 虎王    時間: 2012-3-31 09:58
精神可嘉,認真鉆研,工作本身也是一種生活,有時候不以金錢論罷

作者: changkongceyi    時間: 2012-3-31 13:58
樓主的動手能力真強,羨慕不已...
作者: 何林1008    時間: 2012-3-31 14:11
不錯,精神可嘉                     
作者: eddyzhang    時間: 2012-3-31 14:46
既然要軍事化管理,干脆有人到點了在車間門口吹號算了
作者: hanshoubao    時間: 2012-3-31 15:32
自己動手!豐衣足食!精神可嘉!
作者: 梁lhcqq    時間: 2012-4-22 13:11
不錯,可惜我不會,我以前工廠就直接用時控開關來控制電鈴。。。簡單,實用,
作者: 雷厲V風行    時間: 2012-5-7 20:15
1五湖四海1 發表于 2011-11-20 22:51
我喜歡電子制作,將擅長的單片機技術應用到單位多好了,而且在制作過程中會遇到問題從中會學到很多東西。

支持樓主 好樣的{:soso_e100:}

作者: czjwpby    時間: 2014-6-18 09:52
如果不需要太準時,而且是固定時間的話,凸輪行不行?
作者: PoiSonLink    時間: 2014-6-18 14:25
單片機寫程序需要這么麻煩嗎?
作者: fyx161200    時間: 2015-4-17 09:50
太牛了,如何編程那些代碼?

作者: 1五湖四海1    時間: 2015-4-18 10:25
用keill開發環境編寫51程序代碼,編譯后用燒寫器下載到單片機中運行。
作者: 一杯熱茶足以    時間: 2015-5-29 18:47
在實踐中學習,贊一個
作者: artisan2014    時間: 2015-8-11 09:18
904842999 發表于 2011-11-20 23:04
有時間自己做也好啊,我可還不會做

精神可嘉,現在會用的人很多,會動手制作的人太少了
作者: jslyg5555    時間: 2015-8-19 16:32
加油,幾十塊錢東西?;敲炊鄷r間。干點別的
作者: 自動化小生103    時間: 2015-8-22 12:02

作者: 1心you    時間: 2017-3-25 10:46
70塊錢都不用,買個定時開關,14組時間設置。按照你這個套路,完全可以滿足,沒有必要自己搞嘛,不過,值得學習!
作者: 小李報到    時間: 2017-3-27 08:13
鉆研精神很好,可用來練手,提升設計水平
作者: 只有快樂    時間: 2017-4-4 14:21
太牛了,膜拜!我想給魚缸做一個自動定時的東西可惜沒有樓主這么強大能力!東西自己做雖然費力不比買的便宜,但是擁有這個打鈴期,樓主經歷的是從無到有的“創造”,其中的快樂遠非一個“購得”的成就感可比。
作者: 只有快樂    時間: 2017-4-26 20:36
厲害了,我的神
作者: 1五湖四海1    時間: 2017-4-29 23:36
只有快樂 發表于 2017-4-26 20:36
厲害了,我的神

謝謝你的夸獎,這是興趣的力量





歡迎光臨 機械社區 (http://www.whclglass.com.cn/) Powered by Discuz! X3.5