新聞中心

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

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

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

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

可調(diào)時(shí)鐘

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

  主要代碼:

  #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)逐個(gè)片選導(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)文章:電磁爐原理



上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉