久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 基于AT89C51的時鐘程序 [打印本頁]

作者: youji    時間: 2009-7-14 10:26
標題: 基于AT89C51的時鐘程序
只是一個簡單的小程序。 時鐘.txt (1.2 KB, 下載次數: 47)

作者: 呂    時間: 2009-7-15 00:48

小弟也曬曬自己的時鐘程序。。。。。。。。。。。。。。。。。

//////////////////////////////////
//工程名稱;外部秒基準,電子鐘表//
//單片機型號:AT98S51           //
//時鐘頻率?12M?                 //
//制作時間;2009-7-13            //
//制作者;呂貝貝                 //
//////////////////////////////////////////////////////////////////////////////////////
#include <reg51.h>
char TAB[10]={0X11,0Xbd,0X23,0X25,0X8d,0x45,0x41,0x3d,0x01,0x05};//數碼管0-9編碼
char disp[4]={0,0,0,0};//四位數碼管初始化都為零
unsigned char scan;//位數掃描寄存器
unsigned char s=0;//秒寄存器
unsigned char f=0;//分寄存器
unsigned char h=0;//時寄存器
unsigned char f1=0;//分個位寄存器
unsigned char f2=0;//分十位寄存器
unsigned char h1=0;//時個位寄存器
unsigned char h2=0;//時十位寄存器
sbit fj=P3^7;//分位加1引腳
sbit hj=P3^6;//時位加1引腳
sbit zd=P3^3;//中斷1引腳
void disp1m(int);//定義延時函數
void ff(unsigned char);//定義分位分裂函數
void fh(unsigned char);//定義時位分裂函數
////////////////////////////////////////////////////////////////////////////////////////
main()
{
  IE=0X85;//準許INT0中斷,準許int1中斷
  IP=0x04;//設定INT1具有最高優(yōu)先級
  TCON=0X05;//INT0設置負邊緣觸發(fā),int1設置負邊緣觸發(fā)。
  while(1)
       { 
      char i,j;
      scan=1;
   for(i=3;i>=0;i--)
      {
     j=disp;
      P1=TAB[j];
      P2=scan;
      disp1m(4);
      scan<<=1;
   }
  disp[0]=h2;//顯示時十位
  disp[1]=h1;//顯示時個位
  disp[2]=f2;//顯示分十位
  disp[3]=f1;//顯示分個位
    }
}
//////////////////////////////////////////////////////////////////////////////////////////
void my_int0(void)interrupt 0//外部中斷0,P3.2,秒脈沖輸入短,下降邊緣觸發(fā)
{
 s++;//秒寄存器加1
 if(s==60)//秒數是否到六十
   {
     s=0;//秒數清零
  f++;//分數寄存器加1
  if(f==60)//分是否到60
    {
      f=0;//分數清零
   h++;//時寄存器加1
   if(h==24)//時是否到24
      {
    h=0;
   }
    }
  
   }
   ff(f);//調用分位分裂函數
   fh(h);//調用時位分裂函數
   P3=255;
}
///////////////////////////////////////////////////////////////////////////////////////////
void my_int1(void)interrupt 2//外部中斷1,P3.3。時間調整輸入端下降邊緣觸發(fā)
{
  disp1m(10);//延時消除抖動
  if(zd==0)//再次判斷中斷腳位是否在低電平
    {
      if(hj==0)//判斷是時要修改
   {
        if(h==24){h=0;}else{h++;};//時加1
   }
   else if(fj==0)//判斷是分要修改
   {
        if(f==60){f=0;}else{f++;}//分加1
   }
   else {}//都不是,退出中斷,
   
    }
 P3=255;//P3腳位全部拉高,以便等待下一個中斷

}
//////////////////////////////////////////////////////////////////////////////////////////////
void ff(unsigned char y)//分位分裂函數
{
 f1=y%10;
 f2=y/10;
}
//--------------------------------------
void fh(unsigned char y)//時位分裂函數
{
 h1=y%10;
 h2=y/10;
}
////////////////////////////////////////////////////////////////////////////////////////////////
void disp1m(x)//延時函數
{
   int i,j;
   for(i=0;i<x;i++)
      for (j=1;j<=150;j++);
}

 


作者: lxy004    時間: 2009-7-15 11:22
可以用嗎??

作者: lxy004    時間: 2009-7-15 11:23
不過還不錯咯
 有注釋
  不知道能用不??

作者: pcwxl    時間: 2009-7-15 15:49
看下 謝謝
作者: 勞資素小琴    時間: 2017-12-19 13:02
上面那個是仿真嗎




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 一区二区成人 | 麻豆va | 国产视频福利在线观看 | 亚洲日本一区二区三区四区 | 亚洲视频在线播放 | 综合亚洲视频 | 国产黄色麻豆视频 | 国产成人精品综合 | 天堂av中文 | 超碰在线久| 日本午夜网站 | 成人日韩精品 | 日韩av免费看 | 国产精品女人久久久 | 午夜在线小视频 | 国产精品精品视频一区二区三区 | www.色综合 | 国产在线精品一区二区 | 欧美一级片免费看 | 国产91丝袜在线播放 | 国产乱码精品一区二三赶尸艳谈 | 久久99精品久久久久久 | 国产激情精品视频 | jizjizjiz中国护士18 | 日本免费小视频 | 91国产在线视频在线 | 国产精品精品视频一区二区三区 | 91视频在线观看 | 亚洲二区视频 | 国产精品视频999 | 日本一二三区在线观看 | 黄色一级大片在线免费看产 | 久久亚洲一区 | 国产成人精品一区二区三区视频 | 午夜久久久 | 91视视频在线观看入口直接观看 | 欧美色综合一区二区三区 | 国产 日韩 欧美 在线 | 欧美一区二区三区视频 | 欧美日韩亚洲一区 | a级免费观看视频 |