标题:
AT89C51单片机为核心的简单电子显示时钟设计资料
[打印本页]
作者:
jojojojo
时间:
2018-11-22 19:22
标题:
AT89C51单片机为核心的简单电子显示时钟设计资料
AT89C51单片机为核心的简单电子显示时钟,有原程序和电路图
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.jpg
(53.24 KB, 下载次数: 33)
下载附件
2018-11-23 03:10 上传
0.png
(11.22 KB, 下载次数: 32)
下载附件
2018-11-23 03:10 上传
单片机源程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]=" hh:mm:ss! ";
uchar code table1[]="WWW.BAIDU.COM";
sbit E=P3^4;
sbit RS=P3^5;
sbit dula=P2^6;
sbit wela=P2^7;
uchar num ,ssf;
int time=0;
unsigned char hh=12;
unsigned char mm=22;
unsigned char ss=33;
void delay(uint z)
{
while(z--);
}
void write_com(uchar com)
{
RS=0;
P0=com;
delay(5);
E=1;
delay(5);
E=0;
}
void write_data(uchar date)
{
RS=1;
P0=date;
delay(5);
E=1;
delay(5);
E=0;
}
void init()
{
dula=0;
wela=0;
E=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void Timer0Init(void)
{
TMOD &= 0xF0;
TMOD |= 0x01;
TL0 = 0x18;
TH0 = 0xFC;
TF0 = 0;
TR0 = 1;
EA=1;
ET0=1;
}
void main()
{
init();
Timer0Init();
write_com(0x80);
for(num=0;num<11;num++)
{
write_data(table[num]);
delay(5);
}
write_com(0x80);
while(1)
{
if(ssf==1)
{ ssf=0;
write_com(0x80+3);
write_data((hh/10)+'0');
write_data((hh%10)+'0');
write_com(0x80+6);
write_data((mm/10)+'0');
write_data((mm%10)+'0');
write_com(0x80+9);
write_data((ss/10)+'0');
write_data((ss%10)+'0');
}
}
}
time0() interrupt 1
{
TL0 = 0x18;
TH0 = 0xFC;
time++;
if(time==1000)
{ time=0; ssf=1;
ss++;
if(ss==60)
{ ss=0;
mm++;
if(mm==60)
{ mm=0;
hh++;
if(hh==24)
{ hh=0;
}
}
}
}
}
复制代码
所有资料51hei提供下载:
AT89C51单片机为核心的简单电子显示时钟.rar
(178.94 KB, 下载次数: 30)
2018-11-22 19:21 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
1184592402
时间:
2018-12-16 14:06
6666有帮助
作者:
河鱼
时间:
2021-4-26 21:00
请问如何进行时间的设置呢?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1