资源简介
基于proteus和51单片机的数字电子时钟,里面包含了proteus的文件,电子时钟的c语言程序,原理图,还有相关的资料。
代码片段和文件信息
#include
sbit ksec=P1^1;
sbit kmin=P1^2;
sbit khour=P1^3;
sbit pkey=P1^0;
unsigned char secshi=0secge=0minshi=0minge=0hourshi=0hourge=0;
unsigned int num=0sec=0min=0hour=0;
unsigned char code table[10]={
0x40
0x79
0x24
0x30
0x19
0x12
0x02
0x58
0x00
0x10};
void delay(unsigned int);
void keyscan();
void display();
void init(void)
{
TMOD=0x01; //定时器0工作在方式1
TH0=(65536-50000)/256; //定时50ms定时器0高8位初值
TL0=(65536-50000)%256; //定时50ms定时器0低8位初值
EA=1;
ET0=1;//开启中断允许寄存器
TR0=1;//使TR0置位,启动定时器定时器便开始计数 ,计数溢出时,自动进入中断服务程序
}
void main()
{
init();
while(1)
{display();//调用显示函数
keyscan();//键盘扫描程序
}
}
void delay(unsigned int z)
{
unsigned int xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}//延时函数
//时钟设置子程序
void time0() interrupt 1
{num++;//计数加1
TH0=(65536-50000)/256; //重装初值
TL0=(65536-50000)%256;
}
// LED显示程序
void display()
{if(num==20)
{num=0;
sec++;//如果num=20则一秒时间到,秒加1
if(sec==60)
{sec=0;
min++;//如果sec=60则一分钟时间到,分加1
if(min==60)
{min=0;
hour++;//如果min=60则一小时时间到,小时加1
if(hour==24)
{hour=0;
min=0;
sec=0;//到了23点59分59秒时候 最后归零
}
}
}
}
secge=sec%10;//秒求余
secshi=sec/10;//秒求模
minge=min%10;//分求余
minshi=min/10;//分求模
hourge=hour%10;//小时求余
hourshi=hour/10;//小时求模
P3=0x80; //OXFE是什么?位选?选中10000000,最后一位,秒?
P2=table[secge]; //段选
delay(4);
P3=0x40; //01000000,选中秒的第十位
P2=table[secshi];
delay(4);
P3=0x20; //00100000,选中分的个位
P2=table[minge];
delay(4);
P3=0x10; //00010000 选中分的十位
P2=table[minshi];
delay(4);
P3=0x08; //00001000,选中小时的个位
P2=table[hourge];
delay(4);
P3=0x04;//00000111 ,选中小时的十位
P2=table[hourshi];
delay(4);
}
// 按键控制子程序
void keyscan()
{if(ksec==0)
{delay(5);
if(ksec==0)
{sec++;
if(sec>=60)
sec=0;
}
while(!ksec);
}
if(kmin==0)
{delay(5);
if(kmin==0)
{min++;
if(min>=60)
min=0;
}
while(!kmin);
}
if(khour==0)
{delay(5);
if(khour==0)
{hour++;
if(hour>=60)
hour=0;
}
while(!khour) ;
if(pkey==0)
{delay(5);
if(pkey==0)
{ while(!pkey);
TR0=~TR0;
EA=~EA;
ET0=~ET0;
num=0;
}
while(!pkey);
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 111689 2010-05-29 17:38 电子数字时钟\51单片机的数码管动态显示技术.pdf
文件 23040 2010-05-27 19:56 电子数字时钟\8位7段数码管字符.doc
文件 9814 2010-05-28 22:41 电子数字时钟\hb-3.asm
文件 1179 2010-05-28 22:41 电子数字时钟\hb-6.hex
文件 113958 2010-05-29 18:21 电子数字时钟\Last Loaded try.DBK
文件 5115 2009-06-26 06:38 电子数字时钟\STARTUP.A51
文件 11665 2010-05-29 22:38 电子数字时钟\STARTUP.LST
文件 749 2010-05-29 22:38 电子数字时钟\STARTUP.OBJ
文件 6779 2010-05-29 22:38 电子数字时钟\try
文件 2845 2010-05-29 22:38 电子数字时钟\try.c
文件 113958 2010-05-29 22:26 电子数字时钟\try.DSN
文件 2143 2010-05-29 22:38 电子数字时钟\try.hex
文件 39 2010-05-29 22:38 电子数字时钟\try.lnp
文件 6308 2010-05-29 22:38 电子数字时钟\try.LST
文件 10294 2010-05-29 22:38 电子数字时钟\try.M51
文件 7356 2010-05-29 22:38 电子数字时钟\try.OBJ
文件 1056 2010-05-29 22:40 电子数字时钟\try.Opt
文件 572 2010-05-29 22:40 电子数字时钟\try.plg
文件 742 2010-06-01 08:41 电子数字时钟\try.PWI
文件 2654 2010-05-29 10:46 电子数字时钟\try.txt
文件 2128 2010-05-29 11:02 电子数字时钟\try.Uv2
文件 124778 2010-05-28 22:48 电子数字时钟\try3.DSN
文件 1062 2010-05-29 22:11 电子数字时钟\try_Opt.Bak
文件 2124 2010-05-29 11:01 电子数字时钟\try_Uv2.Bak
文件 368946 2010-05-28 15:05 电子数字时钟\单片机电子时钟系统的设计与仿真.pdf
文件 878080 2010-05-28 15:01 电子数字时钟\基于AT89C51芯片制作的数字时钟.doc
文件 266752 2010-05-28 15:21 电子数字时钟\基于单片机的数字钟.ppt
文件 2080256 2010-05-28 15:25 电子数字时钟\基于单片机的电子数字钟毕业设计.doc
目录 0 2010-06-01 08:41 电子数字时钟
----------- --------- ---------- ----- ----
............此处省略2个文件信息
- 上一篇:轴承表面质量缺陷识别与统计系统
- 下一篇:C语言核心技术英文版
评论
共有 条评论