<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于8051和Proteus的數字時(shí)鐘 程序的編寫(xiě)和仿真

基于8051和Proteus的數字時(shí)鐘 程序的編寫(xiě)和仿真

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

  本程序功能及特點(diǎn):通過(guò)芯片及數碼管實(shí)現數字時(shí)鐘,并可以通過(guò)如下圖中的兩個(gè)按鍵對時(shí)鐘進(jìn)行調節,其中 “PAUSE”按鍵的作用是暫停/啟動(dòng)時(shí)鐘并選擇要修改的時(shí)間參數“時(shí)”,“分”,“秒”,被選擇參數例如下圖中從左到右依次為“時(shí),分,秒”,當小時(shí)被選中并被修改時(shí)會(huì )有最下面兩點(diǎn)的點(diǎn)亮以作為提示,“CHANGE”按鍵用來(lái)對被選中的參數進(jìn)行修改,只能進(jìn)行加法修改,超過(guò)參數的上限會(huì )自動(dòng)歸零,

本文引用地址:http://dyxdggzs.com/article/201610/311531.htm

  注:本程序僅供本人日后學(xué)習參考使用,不足之處請見(jiàn)諒,

  

 

  #include

  sbit dualock=P2^0;

  sbit weilock=P2^1;

  unsigned char code duacode[]={0x3f,0x06,0x5b,0x4f,

  0x66,0x6d,0x7d,0x07,

  0x7f,0x6f,0x77,0x7c,

  0x39,0x5e,0x79,0x71};

  unsigned char aa=0,hour=0,mint=0,sec=0,bb=0,*choose;

  void display(unsigned char,unsigned char,unsigned char);

  void delay();

  void init();

  void main()

  {

  init();

  while(1)

  {

  display(hour,mint,sec);

  }

  }

  void init() //初始化

  {

  EA=1; ET0=1;

  EX0=1;IT0=1;

  EX1=1;IT1=1;

  TMOD=0x01;

  TH0=(65535-50000)/256;

  TL0=(65535-50000)%256;

  TR0=1;

  }

  void display(unsigned char hour,unsigned char mint,unsigned char sec) //顯示函數

  {

  weilock=1;

  P0=~(1<<0);

  weilock=0;

  dualock=1;

  P0=(bb==1)?duacode[sec%10]|0x80:duacode[sec%10];

  dualock=0;

  delay();

  weilock=1;

  P0=~(1<<1);

  weilock=0;

  dualock=1;

  P0=(bb==1)?duacode[sec/10]|0x80:duacode[sec/10];

  dualock=0;

  delay();

  weilock=1;

  P0=~(1<<2);

  weilock=0;

  dualock=1;

  P0=(bb==2)?duacode[mint%10]|0x80:duacode[mint%10];

  dualock=0;

  delay();

  weilock=1;

  P0=~(1<<3);

  weilock=0;

  dualock=1;

  P0=(bb==2)?duacode[mint/10]|0x80:duacode[mint/10];

  dualock=0;

  delay();

  weilock=1;

  P0=~(1<<4);

  weilock=0;

  dualock=1;

  P0=(bb==3)?duacode[hour%10]|0x80:duacode[hour%10];

  dualock=0;

  delay();

  weilock=1;

  P0=~(1<<5);

  weilock=0;

  dualock=1;

  P0=(bb==3)?duacode[hour/10]|0x80:duacode[hour/10];

  dualock=0;

  delay();

  }

  void delay()

  {

  unsigned char i=30;

  while(i--);

  }

  void ext0() interrupt 0 //外部中斷0 選中被修改參數

  {

  TR0=0; bb++;

  switch(bb)

  {

  case 1: choose=&sec; break;

  case 2: choose=&mint;break;

  case 3: choose=&hour;break;

  case 4: TR0=1;bb=0; break;

  }

  }

  void timer0() interrupt 1

  {

  TH0=(65535-50000)/256;

  TL0=(65535-50000)%256;

  if(++aa==20) {aa=0;sec++;}

  if(sec==60) {sec=0;mint++;}

  if(mint==60) {mint=0;hour++;}

  }

  void ext1() interrupt 2 // 外部中斷2 對被選中參數進(jìn)行修改

  {

  *choose+=1;

  if(sec==60) sec=0;

  if(mint==60) mint=0;

  if(hour==24) hour=0;

  }



關(guān)鍵詞: 8051 Proteus

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>