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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4874|回復: 2
收起左側

定時器電子鐘,按鍵功能沒有作用,大蝦幫看一下

[復制鏈接]
ID:4302 發表于 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; 
}
回復

使用道具 舉報

ID:34181 發表于 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;
  }
 }
}
你把上面程序的兩部分交換下試試. 不過整個程序布局不是很好,顯得有些冗亂.

回復

使用道具 舉報

ID:34658 發表于 2012-2-21 21:19 | 顯示全部樓層
不錯 很好 經常來看看很好的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人一区二免费视频软件 | 在线成人免费av | 一级毛片大全免费播放 | 人人种亚洲 | 欧美激情在线精品一区二区三区 | 国产精品毛片一区二区在线看 | 色综合一区 | 日本成年免费网站 | 99成人在线视频 | 精品久久久久久久久久久久久久久久久 | 国产精品久久久久久久久久久久午夜片 | 成人免费大片黄在线播放 | 四虎成人精品永久免费av九九 | 国产精品国色综合久久 | 亚洲aⅴ| 干狠狠 | 国产最新精品视频 | 亚洲在线电影 | 久久精品99| 国产欧美日韩综合精品一 | 毛片一区 | 日韩欧美国产一区二区 | 国产精品女人久久久 | 久久精品一区二区三区四区 | 日本三级电影在线观看视频 | 国产精品久久久久久久久久久久 | 免费高潮视频95在线观看网站 | 亚洲男人的天堂网站 | 久久在视频 | 日韩欧美国产一区二区三区 | 久草网址| 日韩欧美国产一区二区三区 | 亚洲毛片在线观看 | 人人玩人人添人人澡欧美 | 久久高清免费视频 | 色播视频在线观看 | 毛片视频免费观看 | 亚洲三区在线观看 | 亚洲超碰在线观看 | 这里只有精品999 | av免费观看在线 |