仿真版本:Proteus8.6及以上版本
程序編譯:Keil5 C51
編程語言:C語言
設計編號:【J03】
1.? 簡介
? 本文提出了一種基于51單片機的LCD12864電子萬年歷。此萬年歷在硬件方面主要采用AT89C51單片機作為主控核心,由DS1302時鐘芯片提供時鐘,DS18B20芯片顯示溫度、LCD12864液晶顯示屏顯示,同時電子萬年歷還具有時間校準、鬧鐘提醒等功能。
2.? 主要功能
a.通過LCD12864顯示年月日、時分秒、溫度、星期、鬧鐘等信息。
b.通過獨立按鍵設置年月日、時分秒、鬧鐘。
c.通過DS1302時鐘芯片提供系統(tǒng)時鐘。
d.通過DS18B20芯片提供實時溫度。
e.通過蜂鳴器提示鬧鐘狀態(tài)。
3.? 源程序(Keil5)
本設計采用keil5 C51軟件(內附安裝包)實現(xiàn)程序設計。如需用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 ; //溫度變量
/************ 延時函數(shù) *****************/
void delay_uint(uint z)
{
while(z--);
}
/********************************************************************
* 名稱 : delay_1ms()
* 功能 : 延時1ms函數(shù)
* 輸入 : 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"
/******************顯示時間函數(shù)***************************/
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軟件(內附安裝包)實現(xiàn)仿真設計,如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導出的,所以請盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。
時鐘界面:
時鐘設置:
5.? 設計報告
設計報告主要包括硬件電路、軟件設計、仿真調試等等,僅供參考。
6.? 資料清單
設計資料主要包括C程序+仿真+設計報告+使用說明+元件清單+操作視頻等。
7.? 資料獲取鏈接
百度網盤下載鏈接:【J03】百度網盤下載鏈接
更多單片機仿真設計合集:單片機仿真設計合集