基于单片机多功能数字时钟仿真设计-学习笔记

1.1设计方案构思

本方案以AT89C52单片机作为主控核心,与DS12887芯片,及LM016L液晶显示器构成主控制模块,在主控制模块上接有4个按键和一个扬声器。由于在刚接通电源或者时钟走时出现误差是,则需要进行实间的校准,使用者可以按设定的4个按键的功能进行时间校准和停止闹钟闹铃。

1.2任务与要求

    1.    设计一个数字钟,要求准确计时,以数字形式显示时、分的时间。

2.    小时的计时要求12进制(要另加电路指示上午还是下午)或24进制,分要求为60进制。

3.    具有时间校正功能。

#include<reg52.h>
#include"ds12cr887.h"
#include"1602.h"
#define uint unsigned int
#define uchar unsigned char

sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
sbit key4=P3^7;
sbit speaker=P2^3;

uchar code t3[]={" alarm setting: "};
uchar code t4[]={"Now is the time!"};
uchar code t5[]={"Get up quickly! "};
uchar key1num,key4num,flag;

char shi,fen,miao,nian,yue,ri,day,amiao,afen,ashi;

void writetime(uchar add,uchar time)//将时间用1602液晶显示的函数
{
 uchar si,ge;
 si=time/10;
 ge=time%10;
 writelcd_cmd(0xc0+add);
 writelcd_dat(0x30+si);
 writelcd_dat(0x30+ge);
}

void writedate(uchar add,uchar date)//将日期用1602液晶显示的函数
{
 uchar si,ge;
 si=date/10;
 ge=date%10;
 writelcd_cmd(0x80+add);
 writelcd_dat(0x30+si);
 writelcd_dat(0x30+ge);

 

posted @ 2021-03-11 14:08  MCU创新DIY  阅读(418)  评论(0)    收藏  举报