仿真版本:Proteus8.6及以上版本
程序编译:Keil5 C51
编程语言:C语言
设计编号:【J08】
1. 简介
本文提出了一种基于51单片机的数码管电子万年历。此万年历在硬件方面主要采用AT89C51单片机作为主控核心,由DS1302时钟芯片提供时钟,DS12C887芯片显示温度、多位数码管液晶显示屏显示,同时电子万年历还具有时间校准、农历显示等功能。
2. 主要功能
a.通过多位数码管显示年月日、时分秒、农历、温度、星期等信息。
b.通过独立按键设置年月日、时分秒、农历。
c.通过DS12C887时钟芯片提供系统时钟。
d.通过DS18B20芯片提供实时温度。
3. 源程序(Keil5)
本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.c和.h文件新建工程即可。
#include "ds12c887.h"
#include "main.h"
#include "max7219.h"
#include "yinli.h"
//#include "nongli.h"
void display()
{
//bit c;
DS12C887_Gettime();
if(hide_year<6)
{
year_h=time_year/10;
year_l=time_year%10;
}
else
{
year_h=0x0f;
year_l=0x0f;
}
if(hide_month<6)
{
month_h=time_month/10;
if(month_h==0)
{
month_h=0x0f;
}
month_l=time_month%10;
}
else
{
month_h=0x0f;
month_l=0x0f;
}
if(hide_day<6)
{
day_h=time_day/10;
if(time_hour>24)
time_hour=time_hour%24;
if(time_hour==24)
time_hour=0;
hour_h=time_hour/10;
hour_l=time_hour%10;
}
else
{
hour_h=0x0f;
hour_l=0x0f;
}
if(hide_min<6)
{
if(min_h==0)
min_h=0x0f;
min_h=time_min/10;
min_l=time_min%10;
}
else
{
min_h=0x0f;
min_l=0x0f;
}
4. 仿真proteus8.6
本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。
时钟界面:
5. 设计报告
设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。
6. 资料清单
设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。
7. 资料获取链接
百度网盘下载链接:【J08】百度网盘下载链接
更多单片机仿真设计合集:单片机仿真设计合集