女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > 電源 > 數(shù)字電源
[導讀]本方案介紹的電子鐘,電路可稱得上極簡,它僅使用單片的20引腳單片機完成電子鐘的全部功能,而筆者見到的其它設計方案均采用二片以上的多片IC實現(xiàn)。

 電路見圖1.

 

  一片20引腳的單片機AT89C2051電子鐘主體,其顯示數(shù)據(jù)從P1口分時輸出,P3.0~3.3則輸出對應的位選通信號。由于LED數(shù)碼管點亮時耗電較大,故使用了四只PNP型晶體管VT1~VT4進行放大。本來筆者還有一種更簡的設計方案(見圖2),可省去VT1~VT4及R1~R4八個元件,但這種設計由于單片機輸出口的灌入電流有限(約20mA),數(shù)碼管亮度較暗而不向讀者介紹,除非你采用了高亮度的發(fā)光數(shù)碼管。

  P3.4、P3.5、3.7外接了三個輕觸式按鍵,這里我們分別命名為:模式設定鍵set(P3.4)、時調整鍵hour(P3.5)、分調整鍵min(P3.7)。C1、R13組成上電復位電路。VT5及蜂鳴器Bz為鬧時訊響電路。三端穩(wěn)壓器7805輸出的5V電壓供整個系統(tǒng)工作。此電子鐘可與任何9~20V/100mA的交直流電源適配器配合工作,適應性強。

  電子鐘功能

  1.走時:通過模式設定鍵set選擇為走時,U1、U2顯示小時,U3、U4顯示分。U2的小數(shù)點為秒點,每秒閃爍一次。

  2.走時調整:通過模式設定鍵set選擇為走時調整,按下hour鍵對U1、U2的走時“時”顯示進行調整(每0.2秒遞加1)。按下min鍵對U3、U4的走時“分”顯示進行調整(每0.2秒遞加1)。

  3.鬧時調整:通過模式設定鍵set選擇為鬧時調整,按下hour鍵對U1、U2的鬧時“時”顯示進行調整(每0.2秒遞加1)。按下min鍵對U3、U4的鬧時“分”顯示進行調整(每0.2秒遞加1)。

  4.鬧時啟/停設定:通過模式設定鍵set選擇為鬧時啟/停設定,按下min鍵U3的小數(shù)點點亮,鬧時功能啟動;按下hour鍵U3的小數(shù)點熄滅,鬧時功能關停。

  由于電路設計得極其簡單,因此豐富的功能只能由軟件完成,這里軟件設計成為了關鍵。下面介紹軟件設計要點。

  圖3為主程序狀態(tài)流程。

  運行時建立的主要狀態(tài)標志如下:

  flag-掉電標志。掉電后,flag內為一隨機數(shù);重新設定時間后flag內寫入標志數(shù)55H.

  set-工作模式設定標志。

  hour-走時“時”單元。

  min-走時“分”單元。

  sec-走時“秒”單元。

  dEDA-走時5mS計數(shù)單元

  t_hour-鬧時“時”單元。

  t_min-鬧時“分”單元。

  d_05s-0.5秒位標志。每秒鐘的前0.5秒置1,后0.5秒置0,以使秒點閃爍。

  o_f-鬧時啟/停位標志。鬧時啟動置1,鬧時關停置0.

  另外將定時器T0設定為5mS的定時中斷。這里晶振頻率為12MHz,因此5mS的初值為-5000,但實際上程序還要作其它運算,使得時間偏長,經(jīng)調整為-4800后試驗剛好。計時單元deda每次中斷均加1.走時函數(shù)判斷deda>=200時即令秒單元sec加1.同理秒單元sec滿60后令分單元min加1.分單元min滿60后令時單元hour加1.時單元hour滿24后清0.

  上電后,首先進行初始化,對各狀態(tài)標志、輸入輸出口及定時器T0進行初始化工作,以適應后面程序的要求。

  隨后程序判斷有無set鍵按下,如按下,則set鍵值從0起加1.set鍵值只能從0加到3,然后又回到0.

  接下來,根據(jù)鍵值進行散轉。若set=0,運行走時程序;若set=1,進入調整鬧時時間程序;若set=2,進入調整走時時間程序;若set=3,顯示已調好的鬧時時間,同時進入啟/停鬧時程序。

  散轉完后,進行判斷掉電標志flag是否等于55H.若不等,說明剛開機上電或運行過程中掉過電,這時四個數(shù)碼管以1Hz的頻率閃爍四個8字,提示時間不準;若相等,說明未掉電,RAM區(qū)內容未變化,時間準確。

  再下來程序又轉回到初始化之后進行循環(huán)運行。

  由于使用了四只數(shù)碼管密集排列,因此只能采用雙面印刷板設計,圖4、5分別為正面(元件面)、反面的印板圖。尺寸3000milx4000mil(7.62cmx10.16cm)。圖6為計算機輸出的三維仿真印制板。

  元件選用

  為了走時準確,晶振X最好選用溫漂小的。四個數(shù)碼管U1~U4可選用發(fā)綠光的,這樣光澤較柔和。蜂鳴器Bz要購買繞線型的電動式蜂鳴器(市場上有一種加電壓即工作的蜂鳴器這里不適用),因驅動信號為脈沖信號。其它元件一般無特殊要求。

  使用方法

  上電后,四個LED數(shù)碼管閃爍四個8字。

  按一下set鍵,閃爍現(xiàn)象消失(此時set=1),U1的小數(shù)點亮,說明此刻可以調整鬧時時間。按下hour鍵,U1、U2作加法;按下min鍵,U3、U4作加法。這些調整好的數(shù)據(jù)被同時送入RAM區(qū)的鬧時記憶“時”單元t_hour和鬧時記憶“分”單元t_min.

  再按一下set鍵,set=2,U2的小數(shù)點亮,此刻可以調整走時時間。按下hour鍵,U1、U2作加法;按下min鍵,U3、U4作加法。這些調整好的數(shù)據(jù)也被同步送入RAM區(qū)的“時”記憶單元hour和“分”記憶單元min.

  再按一下set鍵,set=3,顯示剛才調整的鬧時時間,此刻可以選擇啟動/關停鬧時。按下min鍵,o_f位標志置1,U3的小數(shù)點亮,鬧時啟動;按下hour鍵,o_f位標志置0,U3的小數(shù)點滅,鬧時關閉。

  若再按一下set鍵,set=0,電路進入走時狀態(tài),U1、U2顯示小時,U3、U4顯示分。U2的小數(shù)點作秒點閃爍。

  在鬧時啟動的情況下,走時到達設定鬧時,則蜂鳴器Bz鳴響一分鐘進行提醒。

  附:用C51編寫的源程序清單(已由實驗板運行通過)

  #include                        /*包含器件配置文件*/

  #define uchar unsigned char

  #define uint unsigned int

  char DATA_7SEG[10]={0xC0,0xF9,0xA4,0xB0,0x99,

  0x92,0x82,0xF8,0x80,0x90,};/*0~9的數(shù)碼管段碼*/

  uchar hour=0,min=0,sec=0;                /*時、分、秒單元清零*/

  uchar deda=0;                                  /*5mS計數(shù)單元清零*/

  uchar t_hour=0,t_min=0;                   /*鬧時時、分單元清零*/

  bit d_05s=0;                             /*0.5秒標志*/

  bit o_f=0;                                         /*鬧時啟/停標志*/

  uchar set=0;                                      /*模式設定標志*/

  uchar m=0;

  uchar flag=0;                                     /*RAM掉電標志*/

  void delay(uint k);                              /*延時子函數(shù)*/

  void conv();                                       /*走時單元轉換*/

  void p_out();                                      /*判別鬧時到否子函數(shù)*/

  void dirve();                                       /*走時時間輸出驅動子函數(shù)*/

  void t_dirve();                                    /*鬧時時間輸出驅動子函數(shù)*/

  /*鬧時啟/停子函數(shù)*/

  void time1_of()

  {uchar m;

  if(P3_7==0)delay(1);

  if(P3_7==0)o_f=1;

  for(m=0;m<30;m++)

  {

  t_dirve();

  P1=DATA_7SEG[t_min/10];P3=0xfd;delay(1);

  if(P3_1==0){if(o_f==1)P1_7=0;}else P1_7=1;

  delay(1);

  }

  if(P3_5==0)delay(1);

  if(P3_5==0)    o_f=0;

  for(m=0;m<30;m++)

  {

  t_dirve();

  P1=DATA_7SEG[t_min/10];P3=0xfd;delay(1);

  if(P3_1==0){if(o_f==1)P1_7=0;else P1_7=1;}

  delay(1);

  }

  }

  /*走時函數(shù)*/

  void time()

  {

  conv();                                              /*走時單元轉換*/

  dirve();                                              /*走時時間輸出驅動子函數(shù)*/

  p_out();                                             /*判別鬧時到否子函數(shù)*/[!--empirenews.page--]

  }

  /*定時器T0  5mS初始化*/

  void init_timer()

  {

  TMOD=0x01;

  TH0=-(4800/256);

  TL0=-(4800%256);

  IE=0x82;

  TR0=1;

  }

  /*掃描按鍵子函數(shù)*/

  void sCAN_key()

  {

  delay(1);

  if(P3_4==0)set++;

  if(set>=4)set=0;

  if(set==1)flag=0x55;

  F0:if(P3_4==0)goto F0;                      /*按鍵未釋放,在此等候*/

  }

  /*延時子函數(shù)*/

  void delay(uint k)

  {

  uint i,j;

  for(i=0;i

  for(j=0;j<121;j++)

  {;}}

  }

  /*5mS定時中斷服務子函數(shù)*/

  void zd(void) interrupt 1

  {

  TH0=-(4800/256);

  TL0=-(4800%256);

  deda++;

  }

  /*調整走時時間*/

  void time_adj()

  {uchar m;

  if(P3_5==0)delay(1);

  if(P3_5==0)hour++;

  if(hour==24)hour=0;

  for(m=0;m<30;m++)

  {

  dirve();

  if(P3_2==0)P1_7=0;

  else P1_7=1;

  delay(1);

  }

  if(P3_7==0)delay(1);

  if(P3_7==0)min++;

  if(min==60)min=0;

  for(m=0;m<30;m++)

  dirve();

  if(P3_2==0)P1_7=0;

  else P1_7=1;

  delay(1);

  }

  }

  /*調整鬧時時間*/

  void time1_adj()

  {uchar m;

  if(P3_5==0)delay(1);

  if(P3_5==0)t_hour++;

  if(t_hour==24)t_hour=0;

  for(m=0;m<30;m++)

  {

  t_dirve();

  }

  if(P3_7==0)delay(1);

  if(P3_7==0)t_min++;

  if(t_min==60)t_min=0;

  for(m=0;m<30;m++)

  {

  t_dirve();

  }

  }

  /*時、分、秒單元及走時單元轉換*/

  void conv()

  {

  if(deda<=100)d_05s=0;

  else d_05s=1;

  if(deda>=200){sec++;deda=0;}

  if(sec==60){min++;sec=0;}

  if(min==60){hour++;min=0;}

  if(hour==24){hour=0;}

  }

  /*走時時間輸出驅動子函數(shù)*/

  void dirve()

  {

  P1=DATA_7SEG[hour/10];P3=0xf7;delay(1);

  P1=DATA_7SEG[hour%10];P3=0xfb;delay(1);

  if(d_05s==1){if(P3_2==0)P1_7=0;else P1_7=1;}

  delay(1);

  P1=DATA_7SEG[min/10];P3=0xfd;delay(1);

  if(o_f==1){if(P3_1==0)P1_7=0;else P1_7=1;delay(1);}

  P1=DATA_7SEG[min%10];P3=0xfe;delay(1);

  }

  /*鬧時時間輸出驅動子函數(shù)*/

  void t_dirve()

  {

  P1=DATA_7SEG[t_hour/10];P3=0xf7;delay(1);

  if(P3_3==0)P1_7=0;else P1_7=1;

  delay(1);

  P1=DATA_7SEG[t_hour%10];P3=0xfb;delay(1);

  P1=DATA_7SEG[t_min/10];P3=0xfd;delay(1);

  P1=DATA_7SEG[t_min%10];P3=0xfe;delay(1);

  }

  /*判別鬧時到否子函數(shù)*/

  void p_out()

  {

  if(o_f==1){

  if(t_hour==hour){if(t_min==min)

  if(P3_0==0){P1_7=0;delay(1);}

  else P1_7=1;

  }

  }

  }

  /*主函數(shù)*/

  void main()

  {

  init_timer();                       /*定時器T0初始化*/

  while(1)                                     /*無限循環(huán)*/

  {

  if(P3_4==0)scan_key();               /*有按鍵,調用

  鍵掃描子函數(shù)*/

  switch(set)                                        /*根據(jù)set鍵值散轉*/

  {

  case 0:time();break;                                   /*走時時間程序*/

  case 1:time1_adj();break;                     /*鬧時時間調整*/

  case 2:time_adj();break;                      /*走時時間調整*/

  case 3:time1_of();break;                      /*啟/停鬧時*/

  default:break;                                     /*其它退出*/

  }

  if(flag!=0x55)                             /*判斷掉電標志*/

  {for(m=0;m<100;m++)               /*點亮四個8字400mS*/

  {

  P1=0x80;P3=0xf7;delay(1);

  P1=0x80;P3=0xfb;delay(1);

  P1=0x80;P3=0xfd;delay(1);

  P1=0x80;P3=0xfe;delay(1);

  }

  P1=0xff;P3=0xff;delay(400); /*熄滅四個8字400mS*/

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉