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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4770|回復: 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; 
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久一区二区三区 | 国产一级片免费看 | 成人午夜电影在线观看 | 黄频视频 | 成在线人视频免费视频 | 色综合久 | 亚洲v区| 亚洲久在线 | 国产精品视频一二三区 | 日韩久久精品 | 国产高清一区二区三区 | 天天操操操操操 | 亚洲精选久久 | 中文字幕亚洲精品 | 成人妇女免费播放久久久 | 欧美成人a∨高清免费观看 91伊人 | 九九九色 | 日韩亚洲一区二区 | 中文字幕一区二区三区精彩视频 | 色性av| 免费人成在线观看网站 | 日本a视频 | 亚洲视频一区在线播放 | 97超在线视频 | 亚洲久久 | 日韩欧美一区二区三区免费看 | 美女爽到呻吟久久久久 | 久久国产精品久久 | 九九热精品视频 | 男人的天堂avav | 亚洲一区欧美 | 久久久精品一区二区三区 | 国产日韩一区二区三免费高清 | 九色网址 | 精品国产乱码久久久久久影片 | 国产在线aa | 中文字幕国产 | 欧美性久久 | 日本涩涩网 | 老牛影视av一区二区在线观看 | 91亚洲国产成人久久精品网站 |