打印

这个时钟显示例子程序怎么样

[复制链接]
1691|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaomifan|  楼主 | 2010-4-8 22:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>                             //宏定义
#define uchar unsigned char
#define uint unsigned int
sbit smg1=P2^0;                               //位定义
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit smg5=P2^4;
sbit smg6=P2^5;
sbit smg7=P2^6;
sbit smg8=P2^7;
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
sbit feng=P1^4;
code unsigned char table[]=                                      //查表0-9、-  共阳极
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
uchar a,miao,fen,shi,miao1,miao2,fen1,fen2,shi1,shi2;
void delay1(uint x)                                              //短延时
{
while(x--);
}
void init()                                                     //初始化
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
miao=0;
fen=00;
shi=00;
feng=0;
}   
void delay(uint z)                                               //长延时
{
uint x,y;
for(x=z;x>0;x++)
  for(y=110;y>0;y++);
}
void display()                                                   //显示子函数
{
P2=0;
smg8=1;
P0=table[miao1];
delay1(200);

P2=0;
smg7=1;
P0=table[miao2];
delay1(200);
P2=0;
smg6=1;
P0=table[10];
delay1(200);
P2=0;
smg5=1;
P0=table[fen1];
delay1(200);
P2=0;
smg4=1;
P0=table[fen2];
delay1(200);
P2=0;
smg3=1;
P0=table[10];
delay1(200);
P2=0;
smg2=1;
P0=table[shi1];
delay1(200);
P2=0;
smg1=1;
P0=table[shi2];
delay1(200);
}

void timer0() interrupt 1                                       //定时器中断0
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(a==20)
{
  a=0;
  miao++;
}
}
void keyscan()                                                   //键盘子程序
{
if(!key1)
{
  delay1(2000);
  if(!key1)
  {
   fen++;
   if(fen==60)
    fen=0;
   while(!key1)
   display();
  }
}
if(!key2)
{
  delay1(2000);
  if(!key2)
  {
   fen--;
   if(fen==255)
    fen=59;
   while(!key2)
   display();
  }
}
if(!key3)
{
  delay1(2000);
  if(!key3)
  {
   shi++;
   if(shi==24)
    shi=0;
   while(!key3)
   display();
  }
}
if(!key4)
{
  delay1(2000);
  if(!key4)
  {
   shi--;
   if(shi==255)
    shi=23;
   while(!key4)
   display();
  }
}
}
void main()                                                        //主函数
{
init();
while(1)
{
  if(miao==60)
  {
   miao=0;
   fen++;
   if(fen==60)
   {
    fen=0;
    shi++;
    feng=1;
    if(shi==24)
     shi=0;
    delay1(10000);
    feng=0;
   }
  }
  miao1=miao%10;
  miao2=miao/10;
  fen1=fen%10;
  fen2=fen/10;
  shi1=shi%10;
  shi2=shi/10;
  keyscan();
  display();
}
}
沙发
strang| | 2010-4-9 07:33 | 只看该作者
能实现功能就行,网上的例子很多的、

使用特权

评论回复
板凳
David_ming| | 2010-4-9 09:03 | 只看该作者
做钟的还真多

使用特权

评论回复
地板
麻辣鸭脖子| | 2010-4-9 13:14 | 只看该作者
还行

使用特权

评论回复
5
易达口香糖| | 2010-4-9 18:52 | 只看该作者
不错,冒失见过

使用特权

评论回复
6
易达口香糖| | 2010-4-9 18:52 | 只看该作者
这个自己写太麻烦了,都是自己改

使用特权

评论回复
7
lpydidi| | 2010-4-9 20:29 | 只看该作者
稍微有一点不那么清晰

使用特权

评论回复
8
zhjx0403| | 2010-4-22 22:15 | 只看该作者
问2楼,能提供一些学习例子的网站吗?
谢谢。。。。。

使用特权

评论回复
9
huamunv| | 2010-4-22 23:15 | 只看该作者
8# zhjx0403
那个看学习什么了,这时候就得发挥你超强的搜索功能了

使用特权

评论回复
10
suoma| | 2010-4-24 23:07 | 只看该作者
光sbit就用了十几个···

使用特权

评论回复
11
god_like| | 2010-4-25 21:26 | 只看该作者
感觉还行~~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

305

帖子

1

粉丝