#include<reg51.h>
unsigned char miao=0,fen=0,shi=0;
unsigned char miao1=0,miao2=0;
unsigned char fen1=0,fen2=0;
unsigned char shi1=0,shi2=0;
void xiezhi();
#define THCO 0xee //5ms
#define THLO 0x00
code char ziku[]=
{
0xFF,0x87,0x33,0x7B,0x7B,0x33,0x87,0xFF,/*"0",0*/
0xFF,0x77,0x77,0x03,0x7F,0x7F,0xFF,0xFF,/*"1",1*/
0xFF,0x77,0x3B,0x3B,0x5B,0x6B,0x37,0xFF,/*"2",2*/
0xFF,0xB7,0x7B,0x6B,0x6B,0x6B,0x97,0xFF,/*"3",3*/
0xFF,0xDF,0xAF,0xB7,0x3B,0x03,0xFF,0xFF,/*"4",4*/
0xFF,0xA3,0x6B,0x6B,0x6B,0x6B,0x9B,0xFF,/*"5",5*/
0xFF,0x87,0x6B,0x6B,0x6B,0x6B,0x9F,0xFF,/*"6",6*/
0xFF,0xF3,0xFB,0x1B,0xEB,0xF3,0xFB,0xFF,/*"7",7*/
0xFF,0x97,0x6B,0x5B,0x5B,0x4B,0xB7,0xFF,/*"8",8*/
0xFF,0xE7,0x5B,0x5B,0x5B,0x17,0x87,0xFF,/*"9",9*/
0xFF,0xFF,0xFF,0x6F,0x6F,0xFF,0xFF,0xFF,/*":",10*/
0x00,
};
main(void)
{
IT0=1; //外部中断0连沿触发方式
EX0=1; //使能外部中断0
EA=1; //开部中断
P2=0xff;
P0=0xff;
TMOD=0x11;
TH0=THCO; //载入高8位初值
TL0=THLO; //载入低8位初值
EA=1; //打开总中断
ET0=1; //开定时器中断。若为0则表示关闭!
TR0=1; //打开定时器
while(1)
{
//////////计时程序//////////////////////////////
if(miao==60){fen++;miao=0;}
if(fen==60){ shi++;fen=0;}
if(shi==24){shi=0;}
/////////////////////////////////////////////
}
}
void timw0() interrupt 1
{
static unsigned char c=0;
TH0=THCO;
TL0=THLO;
c++;
if(c>200)
{
miao++;
c=0;
}
}
void int0() interrupt 0 //外部中断0程序入口 当霍尔检测到时,开始进入
{
xiezhi();
}
void xiezhi()
{
unsigned int i;
unsigned int k;
/////////////////////////////////////////////////////////////////
miao1=miao/10; //显示秒的第二位
miao2=miao%10; //显示秒的第一位
fen1=fen/10; //显示分的第二位
fen2=fen%10; //显示分的第二位
shi1=shi/10; //显示时的第二位
shi2=shi%10; //显示时的第二位
/////////////////////////时钟显示/////////////////////////////时分秒
for(i=shi1*8;i<=shi1*8+8;i++) //显示 时
{
P0=ziku[i];
for(k=25;k>0;k--);
P0=0xff;
for(k=25;k>0;k--);
}
for(i=shi2*8;i<=shi2*8+8;i++)
{
P0=ziku[i];
for(k=25;k>0;k--); //
P0=0xff;
for(k=25;k>0;k--); //可以不要
}
for(i=80;i<=87;i++) // 87 数组字模 取两点
{
P0=ziku[i];
for(k=25;k>0;k--);
P0=0xff;
for(k=25;k>0;k--);
}
/////////////////////////分钟显示///////////////////////////////
for(i=fen1*8;i<=fen1*8+8;i++)
{
P0=ziku[i];
for(k=25;k>0;k--);
P0=0xff;
for(k=25;k>0;k--);
}
for(i=fen2*8;i<=fen2*8+8;i++)
{
P0=ziku[i];
for(k=25;k>0;k--);
P0=0xff;
for(k=25;k>0;k--);
}
for(i=80;i<=87;i++)
{
P0=ziku[i];
for(k=25;k>0;k--);
P0=0xff;
for(k=25;k>0;k--);
}
//////////////////////////秒钟显示///////////////////////////////
for(i=miao1*8;i<=miao1*8+8;i++)
{
P0=ziku[i];
for(k=25;k>0;k--);
P0=0xff;
for(k=25;k>0;k--);
}
for(i=miao2*8;i<=miao2*8+8;i++)
{
P0=ziku[i];
for(k=25;k>0;k--);
P0=0xff;
for(k=25;k>0;k--);
}
}
单片机 旋转 LED 时钟
5星 · 超过95%的资源 需积分: 15 137 浏览量
2010-07-11
04:23:33
上传
评论 2
收藏 1KB RAR 举报
eagle200901
- 粉丝: 5
- 资源: 5
最新资源
- 基于ARM的指令调度和延迟分支
- 基于Vue和TypeScript的极简聊天应用设计源码 - HasChat
- 基于Vue2全家桶和Zcool数据的图片收集网站设计源码 - cool-picture
- 基于C和C++的二维绘制工具设计源码 - DrawPro
- Object.defineProperty 的 IE 补丁object-defineproperty-ie-master.zip
- 整卷预览.mhtml
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
- 基于Javascript的结婚请帖设计源码 - Invitation
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页