在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 時(shí)間可調(diào)的定時(shí)鬧鐘C51程序

      時(shí)間可調(diào)的定時(shí)鬧鐘C51程序

      作者: 時(shí)間:2012-10-31 來(lái)源:網(wǎng)絡(luò) 收藏

      /*
      程序效果:時(shí)鐘,包括,定時(shí)到了鬧鐘響,用蜂鳴器,本程序已經(jīng)調(diào)試通過(guò)
      您可從http://www.51hei.com/ziliao/file/naozhong.rar下載本程序的代碼.
      喇叭接在p2.0上.端口均可自行更改.
      */
      #includereg52.h> //頭文件
      #includeintrins.h>
      #define uchar unsigned char//宏定義
      #define uint unsigned int
      sbit key1=P3^5; //位聲明
      sbit key2=P3^6;
      sbit key3=P3^7;
      sbit fmq=P2^0;
      uchar code table[]={0x3f,0x06,0x5b,//數(shù)碼管顯示的數(shù)值
      0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
      0xbf,0x86,0xdb,//帶小數(shù)點(diǎn)的數(shù)值
      0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
      void jia(); //函數(shù)聲明
      void jian();
      uchar table_1[6]; //定義數(shù)組,數(shù)組內(nèi)含有6個(gè)數(shù)值
      uchar table_2[6];
      uchar shi=23,fen=59,miao=50; //顯示初始值
      uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3;//定義全局變量
      uchar flag,flag1,cnt,count;//定義全局變量
      void delay(uchar i) //延時(shí)函數(shù),用于動(dòng)態(tài)掃描數(shù)碼管
      {
      uchar x,y;
      for(x=i;x>0;x--)
      for(y=110;y>0;y--);
      }
      void init() //初始化函數(shù)
      {
      TMOD=0X01; //工作方式1
      TH0=(65536-50000)/256; //定時(shí)時(shí)間為:50ms
      TL0=(65536-50000)%256;
      ET0=1; //打開(kāi)定時(shí)器
      EA=1; //開(kāi)總中斷
      TR0=1; //啟動(dòng)定時(shí)器
      }
      void display() //顯示子函數(shù),用于顯示時(shí)間數(shù)值
      {
      uchar i,j;
      table_1[0]=miao%10; //分離秒的各位與十位
      table_1[1]=miao/10;
      table_1[2]=fen%10+11; //分離分的各位與十位
      table_1[3]=fen/10;
      table_1[4]=shi%10+11; //分離時(shí)的各位與十位
      table_1[5]=shi/10;
      j=0x7f; //從秒到時(shí)的掃描
      for(i=0;i6;i++)
      {
      P2=j;
      P0=table[table_1[i]];//顯示數(shù)值
      delay(10);
      j=_cror_(j,1);//循環(huán)右移
      }
      }
      void display_1() //顯示子函數(shù),用于顯示定時(shí)時(shí)間
      {
      uchar i,j;
      table_2[0]=miao2%10; //以下含義同上
      table_2[1]=miao2/10;
      table_2[2]=fen2%10+11;
      table_2[3]=fen2/10;
      table_2[4]=shi2%10+11;
      table_2[5]=shi2/10;
      j=0x7f;
      for(i=0;i6;i++)
      {
      P2=j;
      P0=table[table_2[i]];
      delay(10);
      j=_cror_(j,1);
      }
      }
      void shijian() //時(shí)間子函數(shù)
      {
      if(flag>=20) //判斷是否到一秒
      {
      flag=0; //到了,則標(biāo)志位清零
      miao++; //秒加1
      if(miao>=60) //判斷秒是否到60s
      {
      miao=0;//到了,則清零
      fen++; //分加1
      if(fen>=59) //以下含義同上
      {
      fen=0;
      shi++;
      if(shi>23)
      shi=0;
      }
      }
      }
      }
      void key_scan() //鍵盤(pán)掃描子函數(shù)
      {
      uchar i; //定義局部變量
      if(key1==0)
      {
      while(!key1) //防止掉顯
      {
      if(cnt==0||cnt==1||cnt==2||cnt==3||cnt==4||cnt==8)
      {
      display();
      }
      if(cnt==5||cnt==6||cnt==7)
      {
      display_1();
      }
      }
      cnt++; //記下按鍵key1按下的次數(shù)
      if(cnt==1) //第一次按下,停止計(jì)數(shù)
      TR0=0;
      if(cnt==2) //第二次按下
      {
      miao1=miao; //保存秒的數(shù)值
      miao=99;//顯示99,表示可以調(diào)節(jié)秒的數(shù)值了
      for(i=0;i100;i++)
      display(); //顯示99
      miao=miao1; //恢復(fù)前一刻秒的數(shù)值
      }
      if(cnt==3) //以下含義同上
      {
      fen1=fen;
      fen=99;
      for(i=0;i100;i++)
      display();
      fen=fen1;
      }
      if(cnt==4)
      {
      shi1=shi;
      shi=99;
      for(i=0;i100;i++)
      display();
      shi=shi1;
      }
      if(cnt==5)
      {
      miao1=miao2;
      miao2=88;
      for(i=0;i100;i++)
      display_1();
      miao2=miao1;
      }
      if(cnt==6)
      {
      fen1=fen2;
      fen2=88;
      for(i=0;i100;i++)
      display_1();
      fen2=fen1;
      }
      if(cnt==7)
      {
      shi1=shi2;
      shi2=88;
      for(i=0;i100;i++)
      display_1();
      shi2=shi1;
      }
      if(cnt==8) //第八次按下
      {
      TR0=1; //開(kāi)始計(jì)數(shù)
      cnt=0; //按下次數(shù)清零
      }
      }
      if(key2==0) //判斷key2是否按下
      {
      while(!key2) //防止掉顯
      {
      if(cnt==0||cnt==1||cnt==2||cnt==3||cnt==4||cnt==8)
      {
      display();
      }
      if(cnt==5||cnt==6||cnt==7)
      {
      display_1();
      }
      }
      jia();//調(diào)用加1的子函數(shù)
      }
      if(key3==0) //判斷key3是否按下
      {
      while(!key3) //防止掉顯
      {
      if(cnt==0||cnt==1||cnt==2||cnt==3||cnt==4||cnt==8)
      {
      display();
      }
      if(cnt==5||cnt==6||cnt==7)
      {
      display_1();
      }
      }
      jian(); //調(diào)用減1子函數(shù)
      }
      }


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

      評(píng)論


      相關(guān)推薦

      技術(shù)專(zhuān)區(qū)

      關(guān)閉