仿真版本:Proteus8.6及以上版本
程序編譯:Keil5 C51
編程語(yǔ)言:C語(yǔ)言
設(shè)計(jì)編號(hào):【J08】
1.? 簡(jiǎn)介
? 本文提出了一種基于51單片機(jī)的數(shù)碼管電子萬(wàn)年歷。此萬(wàn)年歷在硬件方面主要采用AT89C51單片機(jī)作為主控核心,由DS1302時(shí)鐘芯片提供時(shí)鐘,DS12C887芯片顯示溫度、多位數(shù)碼管液晶顯示屏顯示,同時(shí)電子萬(wàn)年歷還具有時(shí)間校準(zhǔn)、農(nóng)歷顯示等功能。
2.? 主要功能
a.通過(guò)多位數(shù)碼管顯示年月日、時(shí)分秒、農(nóng)歷、溫度、星期等信息。
b.通過(guò)獨(dú)立按鍵設(shè)置年月日、時(shí)分秒、農(nóng)歷。
c.通過(guò)DS12C887時(shí)鐘芯片提供系統(tǒng)時(shí)鐘。
d.通過(guò)DS18B20芯片提供實(shí)時(shí)溫度。
3.? 源程序(Keil5)
本設(shè)計(jì)采用keil5 C51軟件(內(nèi)附安裝包)實(shí)現(xiàn)程序設(shè)計(jì)。如需用keil4打開(kāi)程序,可自行通過(guò).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
? 本設(shè)計(jì)采用proteus8.6軟件(內(nèi)附安裝包)實(shí)現(xiàn)仿真設(shè)計(jì),如下圖所示。proteus軟件一般存在高低版本兼容問(wèn)題,該仿真是通過(guò)proteus8.6導(dǎo)出的,所以請(qǐng)盡量使用proteus8.6打開(kāi)文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。
時(shí)鐘界面:
5.? 設(shè)計(jì)報(bào)告
設(shè)計(jì)報(bào)告主要包括硬件電路、軟件設(shè)計(jì)、仿真調(diào)試等等,僅供參考。
6.? 資料清單
設(shè)計(jì)資料主要包括C程序+仿真+設(shè)計(jì)報(bào)告+使用說(shuō)明+元件清單+操作視頻等。
7.? 資料獲取鏈接
百度網(wǎng)盤(pán)下載鏈接:【J08】百度網(wǎng)盤(pán)下載鏈接
更多單片機(jī)仿真設(shè)計(jì)合集:單片機(jī)仿真設(shè)計(jì)合集