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

標題: 定時器電子鐘,按鍵功能沒有作用,大蝦幫看一下 [打印本頁]

作者: szwsu    時間: 2012-2-21 08:48
標題: 定時器電子鐘,按鍵功能沒有作用,大蝦幫看一下
/***************************************************************************
名稱:用定時器定時做時鐘
內容,自動從00-00-00開始,有按鍵功能
芯片型號:STC89C52RC
功能腳說明:P0為段選腳,P3為位選腳,所有引腳低電平有效.
程序員:玄溪
日期:2012.2.6
/***************************************************************************/
#include <reg52.h>
#define uchar unsigned char 
#define uint  unsigned int

uchar code du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit K1=P1^0;     //分+
sbit K2=P1^1;     //分-
sbit K3=P1^2;     //時+
sbit K4=P1^3;     //時-

uchar time;       //定義中斷時間次數
uchar second;      //定義秒
uchar minute;      //定義分
uchar hour;       //定義時
//===========延時函數============//
void delay()
{
 uchar j;
  for(j=0;j<200;j++);
}
//=========顯示秒函數=======//
void displaysecond(uchar s)    //帶返回值
{
 P3=0xbf;
 P0=du[s/10];
 delay();
 P3=0x7f;
 P0=du[s%10];
 delay();
 P3=0xff;
 if(K2==0)
 {
  s++;
  if(s==60)
  {
   s=0;
  }
 }
}
//========顯示分函數=============//
void displayminute(uchar m)
{
 P3=0xf7;
 P0=du[m/10];
 delay();
 P3=0xef;
 P0=du[m%10];
 delay();
 P3=0xdf;
 P0=0xbf;
 delay();
 P3=0xff;
 if(!K1)
 {
  delay();
  if(!K1)
  {
   TR0=0;
   m++;
   if(m==60)
   m=0;
  }
 }
 if(!K2)
 {
  delay();
  if(!K2)
  {
   TR0=0;
   m--;
   if(m==0)
   m=59;
  }
 }
 TR0=1;
}
//========顯示時函數==============//
void displayhour(uchar h)
{
 P3=0xfe;
 P0=du[h/10];
 delay();
 P3=0xfd;
 P0=du[h%10];
 delay();
 P3=0xfb;
 P0=0xbf;
 delay();
 P3=0xff;
 if(!K3)
 {
  delay();
  if(!K3)
  {
   TR0=0;
   h++;
   if(h==24)
   h=0;
  }
 }
 if(!K4)
 {
  TR0=0;
  delay();
  if(!K4)
  {
   h--;
   if(h==0)
   h=23;
  }
 }
 TR0=1;
}

//=============主函數============//
void main(void)
{
 TMOD=0x01;
 EA=1;
 ET0=1;
 TH0=(65536-46083)/256;     //賦初值
 TL0=(65536-46083)%256; 
 TR0=1;
 while(1)
 {
  displaysecond(second);
  delay();
  displayminute(minute);
  delay();
  displayhour(hour);
  delay();
 }
}
//=======定時器中斷子函數=================//
void inter0()interrupt 1
{
 time++;
 if(time==20)
 {
  time=0;
  second++;
 }
 if(second==60)
 {
  second =0;
  minute++;
 }
 if(minute==60)
 {
  minute=0;
  hour++;
 }
 if(hour==24)
 {
  hour=0;
 }
 TH0=(65536-46083)/256;     //賦初值
 TL0=(65536-46083)%256; 
}

作者: fancommand    時間: 2012-2-21 20:33

//=========顯示秒函數=======//
void displaysecond(uchar s)    //帶返回值
{
 P3=0xbf;
 P0=du[s/10];
 delay();
 P3=0x7f;
 P0=du[s%10];
 delay();
 P3=0xff;
 if(K2==0)
 {
  s++;
  if(s==60)
  {
   s=0;
  }
 }
}
你把上面程序的兩部分交換下試試. 不過整個程序布局不是很好,顯得有些冗亂.


作者: wtyycao    時間: 2012-2-21 21:19
不錯 很好 經常來看看很好的




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美日韩国产一区二区三区 | 久久亚洲精品国产精品紫薇 | www.成人久久 | av香蕉 | 91久久久精品国产一区二区蜜臀 | 91中文字幕在线 | 97超在线视频 | 久久区二区 | 最新国产精品精品视频 | 国产区一区二区三区 | 一区二区三区视频在线 | 久久在线看 | 色婷婷激情综合 | av黄色片在线观看 | 二区在线视频 | 欧美一区免费 | 日韩在线中文 | 亚洲在线一区二区 | 天天操综合网站 | 亚洲精品天堂 | 欧美午夜在线 | 农夫在线精品视频免费观看 | 成人欧美一区二区三区黑人孕妇 | 亚洲高清久久 | 精品国产欧美 | 免费看的av| 国产福利视频导航 | 高清视频一区二区三区 | 国产精品美女一区二区 | 日本三级电影在线免费观看 | 玖玖综合在线 | 日韩欧美三区 | 毛片综合 | 国产专区视频 | 三区在线观看 | 成人午夜免费视频 | 欧美一级片在线观看 | 成人免费毛片在线观看 | 亚洲精品久久久久久一区二区 | 国产乱码精品一品二品 | 91影院|