单片机电子钟c程序
[11-21 22:50:19] 来源:http://www.88dzw.com 电子小制作 阅读:8829次
文章摘要://**单片机SST89E58RD 8位共阳数码管 12M晶振**// //***P0段选,P2位选***// #include "at89x52.h" #define uchar unsigned char #define uint unsigned int uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff}; uchar n; uchar hh,mm,ss; uchar nhh,nmm,nss; uint year; uchar day,mon,week; ucha
单片机电子钟c程序,标签:小制作,电子样本制作,http://www.88dzw.com//**单片机SST89E58RD 8位共阳数码管 12M晶振**//
//*******P0段选,P2位选*******//
#include "at89x52.h"
#define uchar unsigned char
#define uint unsigned int
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
uchar n;
uchar hh,mm,ss;
uchar nhh,nmm,nss;
uint year;
uchar day,mon,week;
uchar hhs,hhg,mms,mmg,sss,ssg;
uchar days,dayg,mons,mong;
uchar nhhs,nhhg,nmms,nmmg,nsss,nssg;
uchar set1=1,set2=1;
sbit fm=P3^2;
sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;
uchar table1[]={31,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年
uchar table2[]={31,31,28,31,30,31,30,31,31,30,31,30,31}; //非闰年
void jishi();
void baoshi();
void alarm();
void set_time();
void set_alarm();
void set_mdw();
void key_change();
void key_set();
void delay(int m) //延时程序,延时m*0.5ms
{
uint i;
uint j;
for (i=0;i<m;i++)
{
for(j=0;j<500;j++){}
}
}
void timer0() interrupt 1
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb1;
n++;
jishi();
}
main()
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb1;
TR0=1;
EA=1;
ET0=1;
hh=12;mm=00;ss=00;
nhh=7;nmm=30;nss=0;
year=2008;mon=12;day=1;week=1;
while(1)
{
hhs=hh/10%10;//时分秒
hhg=hh%10;
mms=mm/10%10;
mmg=mm%10;
sss=ss/10%10;
ssg=ss%10;
nhhs=nhh/10%10;//闹钟
nhhg=nhh%10;
nmms=nmm/10%10;
nmmg=nmm%10;
nsss=nss/10%10;
nssg=nss%10;
days=day/10%10;//月日
dayg=day%10;
mons=mon/10%10;
mong=mon%10;
key_change(); //k1按键扫描
key_set(); //k2按键扫描
set_time(); //设置时间
set_mdw(); //设置月日星期
set_alarm(); //设置闹钟
if(set1==1) //正常走时显示
{
P0=tab[hhs];P2_7=0;delay(1);P2_7=1;//时十位
P0=tab[hhg];P2_5=0;delay(1);P2_5=1;//时个位
P0=tab[10];P2_3=0;delay(1);P2_3=1;//"-"
P0=tab[mms];P2_1=0;delay(1);P2_1=1;//分十位
P0=tab[mmg];P2_6=0;delay(1);P2_6=1;//分个位
P0=tab[10];P2_4=0;delay(1);P2_4=1;//"-"
P0=tab[sss];P2_2=0;delay(1);P2_2=1;//秒十位
P0=tab[ssg];P2_0=0;delay(1);P2_0=1;//秒个位
}
if(set1==2) //设置时间
{
P0=tab[hhs];P2_7=0;delay(1);P2_7=1;//时十位
P0=tab[hhg];P2_5=0;delay(1);P2_5=1;//时个位
P0=tab[10];P2_3=0;delay(1);P2_3=1;//"-"
P0=tab[mms];P2_1=0;delay(1);P2_1=1;//分十位
P0=tab[mmg];P2_6=0;delay(1);P2_6=1;//分个位
P0=tab[10];P2_4=0;delay(1);P2_4=1;//"-"
P0=tab[sss];P2_2=0;delay(1);P2_2=1;//秒十位
P0=tab[ssg];P2_0=0;delay(1);P2_0=1;//秒个位
}
if(set1==3) //正常显示月日-星期
{
P0=tab[mons];P2_7=0;delay(1);P2_7=1;//时十位
P0=tab[mong];P2_5=0;delay(1);P2_5=1;//时个位
P0=tab[10];P2_3=0;delay(1);P2_3=1;//"-"
P0=tab[days];P2_1=0;delay(1);P2_1=1;//分十位
P0=tab[dayg];P2_6=0;delay(1);P2_6=1;//分个位
P0=tab[11];P2_4=0;delay(1);P2_4=1;//"-"
P0=tab[11];P2_2=0;delay(1);P2_2=1;//秒十位
P0=tab[week];P2_0=0;delay(1);P2_0=1;//秒个位
}
if(set1==4) //设置月日-星期
{
P0=tab[mons];P2_7=0;delay(1);P2_7=1;//时十位
P0=tab[mong];P2_5=0;delay(1);P2_5=1;//时个位
P0=tab[10];P2_3=0;delay(1);P2_3=1;//"-"
- 上一篇:电子灭虫灯电路图
《单片机电子钟c程序》相关文章
- › 基于PSD系列芯片的单片机电路设计
- › 单片机电话单机测试仪的研制
- › ICL7135的串行采集方式在单片机电压表中的应用
- › 一种基于单片机电压采样的功率因数在线检测
- › 8031单片机电烘箱温度自动控制器的设计
- › 单片机电子钟c程序
- 在百度中搜索相关文章:单片机电子钟c程序
- 在谷歌中搜索相关文章:单片机电子钟c程序
- 在soso中搜索相关文章:单片机电子钟c程序
- 在搜狗中搜索相关文章:单片机电子钟c程序
编辑推荐
- · 电鱼器原理与制作方法
- · PCB抄板流程
- · 双面板制作流程及镀金、喷锡和FPC板流程图解
- · 热转印纸制作电路板流程
- · 三管调频无线话筒的制作
- · 浅谈调频发射机的制作及调试
- · 用LM386制作半双工对讲机
- · 如何自制环形变压器
- · 电子灭虫灯电路
- · 自制最简单的收音机