#include <reg51.h>
#include "1602.h"
#include "ds18b20.h"
#include "iic.h"
#include <string.h>
sbit s1=P3^7;
sbit s2=P3^6;
sbit s3=P3^5;
sbit s4=P3^4;
sbit buzz=P3^3;
sfr AUXR=0x8e;
sfr P3M1=0XBE;
sfr P3M0=0XB2;
unsignedchartemp,num,week,keyflag,pwmflag,mode1=1,mode2=0;
unsigned charsaveshi,savefen,savemiao,blinkflag,setcount,blinks,blinkf,blinkm;
unsigned char alarmfalg,clcflag;
unsigned char clcs=00,clcf=00,clcm=10;
unsigned char tab1[]={" 2018-05-29 Mon"};
unsigned char tab2[]={" 23:59:55 00C05"};
unsigned char tab3[]={"Mon"};
unsigned char tab4[]={" "};
void Delay500us() //@12.000MHz
{
unsignedchar i, j;
i= 6;
j= 211;
do
{
while(--j);
}while (--i);
}
voidTimer0Init(void) //0.1ms
{
AUXR|= 0x80;
TMOD&= 0xF0;
TL0= 0x50;
TH0= 0xFB;
TF0= 0;
TR0= 1;
EA=1;
ET0=1;
}
voidclosesmg()
{
P2|=0XE0;
P1=0x00;
P2&=0x1f;
}
voidwrite_temp(unsigned char add,unsigned char dat)
{
write_com(0x80+0X40+add);
write_date(0x30+dat/10);
write_date(0x30+dat%10);
}
voidwrite_year(unsigned char add,unsigned char dat)
{
write_com(0x80+add);
write_date(0x30+dat/10);
write_date(0x30+dat%10);
}
void write_fms(unsigned char add,unsignedchar dat)
{
write_com(0x80+0x40+add);
write_date(0x30+dat/10);
write_date(0x30+dat%10);
}
void time_init()
{
ds1307_write(0x06,0x18);
ds1307_write(0x05,0x05);
ds1307_write(0x04,0x31);
ds1307_write(0x03,0x04);
ds1307_write(0x02,0x23);
ds1307_write(0x01,0x59);
ds1307_write(0x00,0x55);
}
void key()
{
if(keyflag==1)
{
if(mode1==1)
{
if(s1==0)
{
mode1=0;
mode2=1;
setcount=0;
}
if(s4==0)
基于STC15W408AS的电子钟LCD显示(带闹钟功能)
最新推荐文章于 2022-07-11 09:30:18 发布
该博客详细介绍了如何使用STC15W408AS微控制器设计一个带有LCD显示和闹钟功能的电子钟。通过电路图和可能的代码实现,阐述了电子钟的工作原理以及闹钟功能的设置方法。
摘要由CSDN通过智能技术生成