新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 實用制作:基于單片機的數顯可調定時器

        實用制作:基于單片機的數顯可調定時器

        作者: 時間:2012-09-03 來源:網絡 收藏

        程序清單:

          #include AT89X51.H>

          #defi ne uchar unsigned char

          #defi ne uint unsigned int

          uchar bbit[]={0x04,0x02,0x01};

          uchar buffer[]={0,0,0};

          uchar hour=8,minute;//小時初始值為8,分鐘為00

          uint count;

          void delay(uchar ms)//毫秒級延時子程序

          {

          uchar j;

          for(;ms>0;ms--)

          for(j=0;j120;j++);

          }

          void tt0() interrupt 1 using 1//T0中斷子程序

          {

          TH0=(65535-50000)/256;

          TL0=(65535-50000)%256;

          if(count==1200) //50ms*1200=60s(秒)

          {

          count=0;

          if(hour==0minute==0)

          {

          P3_0=1; //繼電器動作

          while(1){P1_7=0;}//充電完成 燈由閃爍變常亮

          }

          if(minute==0)

          {

          minute=60; hour--;

          if(hour>=9)hour=9;

          }

          minute--;

          if(minute>=59)minute=59;

          }

          buffer[0]=minute%10;//秒的低位放入顯示緩沖區

          buffer[1]=minute/10;//秒的高位放入顯示緩沖區

          buffer[2]=hour; //小時放入顯示緩沖區

          count++;

          if(count%10==0)

          P1_7=!P1_7; //正在充電 充電指示燈每秒閃爍一次

          }

          void display()//數碼管顯示子程序

          {uchar i;

          for(i=2;i!=0xff;i--)

          {

          P0=buffer[i];

          P2=bbit[i];

          delay(10);

          P0=0XFF;

          }

          }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 普宁市| 巨野县| 融水| 淮安市| 漾濞| 叙永县| 阿拉尔市| 三门峡市| 嘉善县| 西充县| 临潭县| 宜兰县| 灯塔市| 汾西县| 福安市| 象山县| 嘉兴市| 扎赉特旗| 武安市| 宽甸| 林芝县| 张家界市| 永和县| 阿坝县| 泗阳县| 温宿县| 平阴县| 青河县| 建阳市| 台江县| 大丰市| 潮州市| 元朗区| 宁安市| 周至县| 临洮县| 乌拉特中旗| 赤水市| 温宿县| 宜君县| 周至县|