資源簡介
本設計由數據顯示模塊、溫度采集模塊、時間處理模塊和調整設置模塊四個模塊組成。系統以AT89S52單片機為控制器,以串行時鐘日歷芯片DS1302記錄日歷和時間,它可以對年、月、日、時、分、秒進行計時,還具有閏年補償等多種功能。
附件為C代碼。
附件為C代碼。

代碼片段和文件信息
#include
//#include“DS18B20_3.H“
#include?
#include?
#define?uint?unsigned?int
#define?uchar?unsigned?char
#define?wd?1 //定義是否有溫度功能??=0時無溫度,=1時有溫度
#include?“eeprom52.h“
#define?yh?0x80?//LCD第一行的初始位置因為LCD1602字符地址首位D7恒定為1(100000000=80)
#define?er?0x80+0x40?//LCD第二行初始位置(因為第二行第一個字符位置地址是0x40)
//液晶屏的與C51之間的引腳連接定義(顯示數據線接C51的P0口)
sbit?en=P2^7;
sbit?rw=P2^6;???//如果硬件上rw接地,就不用寫這句和后面的rw=0了
sbit?rs=P2^5;
//校時按鍵與C51的引腳連接定義
sbit?set=P3^0;?? //設置鍵
sbit?add=P3^1;?? //加鍵
sbit?dec=P3^2;?? //減鍵
sbit?seeNL_NZ=P3^3; //查看農歷/鬧鐘
sbit?DQ=P3^7; //
sbit?buzzer=P2^0; //蜂鳴器,通過三極管8550驅動,端口低電平響
sbit?led=P2^4;? //LCD背光開關
bit??led1=1;
bit?NZ_sdgb=1;
unsigned?char?temp_miao;
unsigned?char?bltime;??//背光亮的時間
//DS1302時鐘芯片與C51之間的引腳連接定義
sbit?IO=P1^1;
sbit?SCLK=P1^0;
sbit?RST=P1^2;
char?amiaoshifenriyueweeksetn;
int?tempnian;
uint?flag;
//flag用于讀取頭文件中的溫度值,和顯示溫度值
bit?c_moon;
char?nz_shinz_fensetNZn;???? //定義鬧鐘變量
uchar?shangyimiaobsntemp_hour; //記錄上一秒時間
uchar?T_NL_NZ; //計數器
bit?timerOn=0; //鬧鐘啟用標志位
bit?baoshi=0; //整點報時標志位
bit??p_r=0; ? //平年/潤年??=0表示平年,=1表示潤年
data?uchar?year_moonmonth_moonday_moon;
sbit?ACC0=ACC^0;
sbit?ACC7=ACC^7;
/************************************************************
ACC累加器=A
ACC.0=E0H?
ACC.0就是ACC的第0位。Acc可以位尋址。
累加器ACC是一個8位的存儲單元,是用來放數據的。但是,這個存儲單元有其特殊的地位,
是單片機中一個非常關鍵的單元,很多運算都要通過ACC來進行。以后在學習指令時,
常用A來表示累加器。但有一些地方例外,比如在PUSH指令中,就必須用ACC這樣的名字。
一般的說法,A代表了累加器中的內容、而ACC代表的是累加器的地址。?
***************************************************************/
/******************把數據保存到單片機內部eeprom中******************/
void?write_eeprom()
{
SectorErase(0x2000);
byte_write(0x2000?nz_shi);
byte_write(0x2001?nz_fen);
byte_write(0x2002?timerOn);
byte_write(0x2060?a_a);
}
/******************把數據從單片機內部eeprom中讀出來*****************/
void?read_eeprom()
{
nz_shi???=?byte_read(0x2000);
nz_fen?=?byte_read(0x2001);
timerOn?=?byte_read(0x2002);
a_a??????=?byte_read(0x2060);
}
/**************開機自檢eeprom初始化*****************/
void?init_eeprom()?
{
read_eeprom(); //先讀
if(a_a?!=?1) //新的單片機初始單片機內問eeprom
{
nz_shi???=?12;
nz_fen?=?30;
timerOn=0;
a_a?=?1;
write_eeprom(); ???//保存數據
}
}
//********陽歷轉換陰歷表************************************
code?uchar?year_code[597]={
????????????????????0x040xAe0x53????//1901?0
????????????????????0x0A0x570x48????//1902?3
????????????????????0x550x260xBd????//1903?6
????????????????????0x0d0x260x50????//1904?9
????????????????????0x0d0x950x44????//1905?12
????????????????????0x460xAA0xB9????//1906?15
????????????????????0x050x6A0x4d????//1907?18
????????????????????0x090xAd0x42????//1908?21
????????????????????0x240xAe0xB6????//1909
????????????????????0x040xAe0x4A????//1910
????????????????????0x6A0x4d0xBe????//1911
????????????????????0x0A0x4d0x52????//1912
????????????????????0x0d0x250x46????//1913
??????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2020-03-25?12:56??1-程序\
?????文件????????5115??2002-04-16?14:32??1-程序\STARTUP.A51
?????文件???????11666??2017-10-19?22:40??1-程序\STARTUP.LST
?????文件?????????749??2017-10-19?22:40??1-程序\STARTUP.OBJ
?????文件????????3058??2017-07-07?16:45??1-程序\eeprom52.h
?????文件???????58895??2017-10-19?22:40??1-程序\wnl
?????文件???????65304??2011-04-09?17:29??1-程序\wnl.LST
?????文件???????71932??2017-10-19?22:40??1-程序\wnl.M51
?????文件????????2147??2013-09-23?21:28??1-程序\wnl.Uv2.bak
?????文件???????18775??2017-10-19?22:40??1-程序\wnl.hex
?????文件??????????68??2017-10-19?22:40??1-程序\wnl.lnp
?????文件????????1083??2014-07-06?18:00??1-程序\wnl.opt.bak
?????文件?????????172??2017-11-13?15:00??1-程序\wnl.plg
?????文件???????58998??2017-11-13?15:00??1-程序\wnl.uvopt
?????文件???????13387??2014-07-06?18:16??1-程序\wnl.uvproj
?????文件????????1083??2014-05-26?23:19??1-程序\wnl_Opt.Bak
?????文件????????1709??2013-01-27?16:10??1-程序\wnl_Uv2.Bak
?????文件???????58994??2017-11-12?15:56??1-程序\wnl_uvopt.bak
?????文件?????????188??2016-04-29?00:18??1-程序\ykc.plg
?????文件???????54375??2016-04-29?00:18??1-程序\ykc.uvopt
?????文件???????54375??2016-04-29?00:18??1-程序\ykc_uvopt.bak
?????文件???????????0??2016-04-29?00:17??1-程序\ykc_uvproj.bak
?????文件??????100075??2017-10-19?22:40??1-程序\萬年歷程序lcd1602.LST
?????文件???????68791??2017-10-19?22:40??1-程序\萬年歷程序lcd1602.OBJ
?????文件???????47915??2017-10-17?14:35??1-程序\萬年歷程序lcd1602.c
評論
共有 條評論