仿真版本:Proteus8.6及以上版本
程序编译:Keil5 C51
编程语言:C语言
设计编号:【J03】
1. 简介
本文提出了一种基于51单片机的LCD12864电子万年历。此万年历在硬件方面主要采用AT89C51单片机作为主控核心,由DS1302时钟芯片提供时钟,DS18B20芯片显示温度、LCD12864液晶显示屏显示,同时电子万年历还具有时间校准、闹钟提醒等功能。
2. 主要功能
a.通过LCD12864显示年月日、时分秒、温度、星期、闹钟等信息。
b.通过独立按键设置年月日、时分秒、闹钟。
c.通过DS1302时钟芯片提供系统时钟。
d.通过DS18B20芯片提供实时温度。
e.通过蜂鸣器提示闹钟状态。
3. 源程序(Keil5)
本设计采用keil5 C51软件(内附安装包)实现程序设计。如需用keil4打开程序,可自行通过.c和.h文件新建工程即可。
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
#include "value.h"
#include "nongli.h"
uchar n_nian,n_yue,n_ri;
bit flag_200ms = 1;
uchar menu_1;
uchar flag_clock_en; //闹钟标志位
uchar flag_clock_kai; //闹钟开标志位
uchar flag_c_en;
bit flag_100ms;
sbit beep=P2^7; //蜂鸣器IO口
sbit dq=P3^2; //18b20 IO口的定义
uint temperature ; //温度变量
/************ 延时函数 *****************/
void delay_uint(uint z)
{
while(z--);
}
/********************************************************************
* 名称 : delay_1ms()
* 功能 : 延时1ms函数
* 输入 : q
* 输出 : 无
***********************************************************************/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<115;j++);
}
uchar dis_lcd[10];
#include "lcd12864bu.h"
/******************显示时间函数***************************/
void dis_shijian() //显示时间
{
write_shu16(3*2,1*8,shi,0);
write_shuzi(1,3*2,3*8,fuhao[1],0);
write_shu16(3*2,4*8,fen,0);
write_shuzi(1,3*2,6*8,fuhao[1],0);
write_shu16(3*2,7*8,miao,0);
write_shu16(1*2,6*8,nian,0);
write_shu16(1*2,10*8,yue,0);
write_shu16(1*2,14*8,ri,0);
write_shu16(2*2,4*8,n_yue,0);
write_shuzi(1,2*2,6*8,fuhao[0],0);
write_shu16(2*2,7*8,n_ri,0);
if(week==0)
{
write_yhanzi(1,4,7*16,xingqi[0]);
}
if(week==1)
{
write_yhanzi(1,4,7*16,xingqi[1]);
}
if(week==2)
{
write_yhanzi(1,4,7*16,xingqi[2]);
}
if(week==3)
{
write_yhanzi(1,4,7*16,xingqi[3]);
}
if(week==4)
{
write_yhanzi(1,4,7*16,xingqi[4]);
}
if(week==5)
{
write_yhanzi(1,4,7*16,xingqi[5]);
}
if(week==6)
{
write_yhanzi(1,4,7*16,xingqi[6]);
}
if(week==7)
{
week=0;
write_yhanzi(1,4,7*16,xingqi[0]);
}
write_shu18b20(3*2,10*8,temperature,0);
write_shuzi(1,3*2,12*8,dian,0);
}
4. 仿真proteus8.6
本设计采用proteus8.6软件(内附安装包)实现仿真设计,如下图所示。proteus软件一般存在高低版本兼容问题,该仿真是通过proteus8.6导出的,所以请尽量使用proteus8.6打开文件,低于proteus8.6的版本不能够正常使用,高于proteus8.6的版本除了proteus8.8/8.9理论上可以正常使用。
时钟界面:
时钟设置:
5. 设计报告
设计报告主要包括硬件电路、软件设计、仿真调试等等,仅供参考。
6. 资料清单
设计资料主要包括C程序+仿真+设计报告+使用说明+元件清单+操作视频等。
7. 资料获取链接
百度网盘下载链接:【J03】百度网盘下载链接
更多单片机仿真设计合集:单片机仿真设计合集