• 方案介紹
    • 1.? 簡(jiǎn)介
    • 2.? 主要功能
    • 3.? 源程序(Keil5)
    • 4.? 仿真proteus8.6
    • 5.? 設(shè)計(jì)報(bào)告
    • 6.? 資料清單
    • 7.? 資料獲取鏈接
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的12864萬(wàn)年歷設(shè)計(jì)(一)

04/15 08:48
390
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

單片機(jī)仿真設(shè)計(jì)合集資料獲取.pdf

共1個(gè)文件

資料清單:C程序+仿真+設(shè)計(jì)報(bào)告+使用說明+元件清單+操作視頻

仿真版本:Proteus8.6及以上版本

程序編譯:Keil5 C51

編程語(yǔ)言:C語(yǔ)言

設(shè)計(jì)編號(hào):【J02】

1.? 簡(jiǎn)介

? 本文提出了一種基于51單片機(jī)的LCD12864電子萬(wàn)年歷。此萬(wàn)年歷在硬件方面主要采用AT89C51單片機(jī)作為主控核心,由DS1302時(shí)鐘芯片提供時(shí)鐘,DS18B20芯片顯示溫度、LCD12864液晶顯示屏顯示,同時(shí)電子萬(wàn)年歷還具有時(shí)間校準(zhǔn)、鬧鐘提醒、整點(diǎn)報(bào)時(shí)等功能。

2.? 主要功能

a.通過LCD12864顯示年月日、時(shí)分秒、溫度、星期、鬧鐘等信息。

b.通過獨(dú)立按鍵設(shè)置年月日、時(shí)分秒、鬧鐘。

c.通過DS1302時(shí)鐘芯片提供系統(tǒng)時(shí)鐘。

d.通過DS18B20芯片提供實(shí)時(shí)溫度。

e.通過蜂鳴器提示鬧鐘狀態(tài)。

3.? 源程序(Keil5)

本設(shè)計(jì)采用keil5 C51軟件(內(nèi)附安裝包)實(shí)現(xiàn)程序設(shè)計(jì)。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。

#include "main.h"	 		//包含頭文件main.h
#include "LCD.h"			//包含頭文件LCD.h
#include "DS1302.h"			//包含頭文件DS1302.h
#include "word.h"			//包含頭文件word.h
#include "lunar_calendar.h" //包含頭文件lunar_calendar.h
#include "buzz.h"			//包含頭文件buzz.h

#include "eeprom52.h"
TIME time, tmp_time;        //時(shí)間變量
ALARM alarm;				//時(shí)間變量
char a_a;
bit Alarm_flag=0;			//時(shí)間變量
bit Clock_flag=0;			//時(shí)間變量
bit flag=0;					//時(shí)間變量

sbit DQ=P3^7;   //DS18B20 pin 溫度傳感器引腳

/******************把數(shù)據(jù)保存到單片機(jī)內(nèi)部eeprom中******************/
void write_eeprom()
{


	SectorErase(0x2c00);			  //清空
	SectorErase(0x2e00);
	byte_write(0x2c01,Alarm_flag);
   	byte_write(0x2c02,Clock_flag);
	byte_write(0x2c03,alarm.hour);
	byte_write(0x2c04,alarm.min);
  	   
	byte_write(0x2060,a_a);	

}

/******************把數(shù)據(jù)從單片機(jī)內(nèi)部eeprom中讀出來(lái)*****************/
void read_eeprom()
{
	Alarm_flag=	byte_read(0x2c01);
   	Clock_flag=byte_read(0x2c02);
	alarm.hour=byte_read(0x2c03);
	alarm.min=byte_read(0x2c04);

	a_a = byte_read(0x2060);

}

/**************開機(jī)自檢eeprom初始化*****************/
void init_eeprom() 
{
	a_a = byte_read(0x2060);
	if(a_a != 1)		//新的單片機(jī)初始單片機(jī)內(nèi)問eeprom
	{
	
		a_a = 1;
		write_eeprom();	   //保存數(shù)據(jù)
	}	
}


//-----------------18B20-----------------------
unsigned char L_18B20,H_18B20,zhengshu,shangwen,xiawen;  //溫度用變量
unsigned int fg=0,xiaoshu_a;							//溫度用變量
//-----------------18B20----------------------


void delay(uint16 n)//延時(shí)us級(jí)
{
	while (n--);
}
//************************************************************************/
// 函數(shù): LCD_Delay()
// 描述: 延時(shí)t ms函數(shù)
// 參數(shù): t 
// 返回: 無(wú)
// 備注: 11.0592MHZ       t=1延時(shí)時(shí)間約1ms
// 版本:  2015/01/01      First version
//************************************************************************/
void Delay_nms(unsigned int t)
{
	unsigned int i,j;
	for(i=0;i<t;i++)    	 //循環(huán)t次
	for(j=0;j<113;j++) 		//循環(huán)113次 每次約3us
	;
}
/////////////////////////////////////////////////
//-----------播放音樂----------------------------

/////////////////////////////////////////////////
/*------DS18B20------*/
void delay_18B20(unsigned int i)
{
	while(i--);
}
/*DS18B20的復(fù)位脈沖 主機(jī)通過拉低單總線至少480us以產(chǎn)生復(fù)位脈沖
  然后主機(jī)釋放單總線并進(jìn)入接收模式 此時(shí)單總線電平被拉高
  DS18B20檢測(cè)到上升沿后 延時(shí)15~60us,拉低總線60~240us產(chǎn)生應(yīng)答脈沖  */						
void Init_DS18B20(void) 
{
	 unsigned char x=0;
	 DQ = 1;          //DQ復(fù)位
	 delay_18B20(8);  //稍做延時(shí)
	 DQ = 0;          //單片機(jī)將DQ拉低
	 delay_18B20(80); //精確延時(shí) 大于 480us
	 DQ = 1;          //拉高總線
	 delay_18B20(14); //延時(shí)
	 x=DQ;            //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗
	 delay_18B20(20); //延時(shí)
}

4.? 仿真proteus8.6

? 本設(shè)計(jì)采用proteus8.6軟件(內(nèi)附安裝包)實(shí)現(xiàn)仿真設(shè)計(jì),如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請(qǐng)盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。

時(shí)鐘界面:

時(shí)鐘設(shè)置:

鬧鐘設(shè)置:

5.? 設(shè)計(jì)報(bào)告

設(shè)計(jì)報(bào)告主要包括硬件電路、軟件設(shè)計(jì)、仿真調(diào)試等等,僅供參考。

6.? 資料清單

設(shè)計(jì)資料主要包括C程序+仿真+設(shè)計(jì)報(bào)告+使用說明+元件清單+操作視頻等。

7.? 資料獲取鏈接

百度網(wǎng)盤下載鏈接:【J02】百度網(wǎng)盤下載鏈接

更多單片機(jī)仿真設(shè)計(jì)合集:單片機(jī)仿真設(shè)計(jì)合集

  • 單片機(jī)仿真設(shè)計(jì)合集資料獲取.pdf
    下載

相關(guān)推薦