新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機的秒,分,時可調(diào)時鐘的設(shè)計

基于單片機的秒,分,時可調(diào)時鐘的設(shè)計

作者: 時間:2013-01-23 來源:網(wǎng)絡(luò) 收藏
  今天主要做我喜歡的,這個學(xué)期才接觸到了,算是個微處理機,是把計算機的部分功能集成化了的。在生活中隨處可見:想廚房用的電磁爐內(nèi)就集成了的控制,客廳掛的數(shù)字萬年歷也是用單片機實現(xiàn)的!經(jīng)過了解后,我對此產(chǎn)生了極大的興趣。下面簡單展示一個我做的基于單片機的實驗,望在這方面有研究的一起分享學(xué)習(xí)哈!

  這個是用做的硬件設(shè)計,對單片機有興趣大概都用過吧!另外還有軟件程序,如果把這個硬件比作人的外觀和手腳(是的還可以控制步進電機伺服系統(tǒng)再用電機去控制一些操作的話就更像機器人了)。那么軟件程序就好比是人的大腦。下面我也把自己編的程序展示一下吧!望高手指點:是用C語言編的。

可調(diào)時鐘

  本程序要實現(xiàn)秒,分,時的精確計時,另外P1角也就是單片機的左邊還有三個按鈕可實現(xiàn)時、分、秒的調(diào)時。圖上沒有顯示!

  主要代碼:

  #include reg51.h>

  unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,};

  unsigned char disbitcode[]={0X00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};//經(jīng)38譯碼器片選數(shù)碼管

  unsigned char disbuf[8]={0,0,0,0,0,0,0,0};//八次循環(huán)逐個片選導(dǎo)通并顯示。

  sbit OE=P2^6;

  sbit LE=P2^7;

  sbit K1=P1^0;

  sbit K2=P1^1;

  sbit K3=P1^2;

  unsigned char second;

  unsigned char minite;

  unsigned char hour;

  unsigned int tcnt;

  void delay(unsigned int N)

  {

  while(N--);

  }

  void getbuff()

  {

  disbuf[0]=second%10;

  disbuf[1]=second/10;

  disbuf[2]=10;

  disbuf[3]=minite%10;

  disbuf[4]=minite/10;

  disbuf[5]=10;

  disbuf[6]=hour%10;

  disbuf[7]=hour/10;

  }

  void display()

  {

  unsigned char i=0;

  for(i=0;i8;i++)

  {

  LE=1;

  P3=disbitcode[i]; //經(jīng)38譯碼器依次片選

  P0=dispcode[disbuf[i]]; //將相應(yīng)值送入P0口

  OE=0;

  delay(500);

  }

  }

  void key()

  {

  if(K1==0)

  {

  delay(5000);

  if(K1==0)

  {

  second++;

  if(second==60)

電磁爐相關(guān)文章:電磁爐原理



上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉