资源简介

51单片机万年历程序及proteus仿真,具有年月日和温湿度功能,采用LCD1602显示,经测试可完美运行

资源截图

代码片段和文件信息

#include
//#include“DS18B20_3.H“
#include 
#include 
#define uint unsigned int
#define uchar unsigned char
#define wd 1 //定义是否有温度功能  =0时无温度,=1时有温度


#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  ZDK=1NZK=1; //整点报时,闹钟开关控制位  =0时,关闭,=1时,开启
bit zdkg=0nzkg=0;
unsigned char temp_miao;
unsigned char bltime;  //背光亮的时间

//DS1302时钟芯片与C51之间的引脚连接定义
sbit IO=P1^1;
sbit SCLK=P1^0;
sbit RST=P1^2;


uchar amiaoshifenriyuenianweeksetntemp;
uint flag;
//flag用于读取头文件中的温度值,和显示温度值
bit c_moon;

uchar nz_shi=12nz_fen=0nz_miao=0setNZn;     //定义闹钟变量
uchar shangyimiaobsntemp_hour; //记录上一秒时间
uchar T_NL_NZ; //计数器
bit timeron=0; //闹钟启用标志位
bit baoshi=0; //整点报时标志位
bit  p_r=0;   //平年/润年  =0表示平年,=1表示润年
data uchar year_moonmonth_moonday_moonweek;



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代表的是累加器的地址。 
***************************************************************/



//********阳历转换阴历表************************************
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
                    0x5d0x520xBA    //1914
                    0x0B0x540x4e    //1915
                    0x0d0x6A0x43    //1916
                    0x290x6d0x37    //1917
                    0x090x5B0x4B    //1918
                    0x740x9B0xC1    //1919
                    0x040x970x54    //1920
                    0x0A0x4B0x48    //1921
                    0x5B0x250xBC    //1922
                    0x060xA50x50    //1923
                    0x060xd40x45    //1924
                    0x4A0xdA0xB8    //1925
                    0x020xB60x4d    //1926
                  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-27 13:00  protus仿真\
     文件      142939  2011-04-27 22:54  protus仿真\LCDShow.DSN
     文件        1221  2018-04-20 08:55  protus仿真\LCDShow.PWI
     文件      142947  2011-04-25 09:50  protus仿真\Last Loaded LCDShow.DBK
     文件       17574  2012-11-05 22:58  protus仿真\wnl.hex
     目录           0  2018-05-27 13:00  程序\
     文件        5115  2002-04-16 14:32  程序\STARTUP.A51
     文件       11666  2018-01-11 19:37  程序\STARTUP.LST
     文件         749  2018-01-11 19:37  程序\STARTUP.OBJ
     文件       55142  2018-01-11 19:37  程序\wnl
     文件       65304  2011-04-09 17:29  程序\wnl.LST
     文件       69543  2018-01-11 19:37  程序\wnl.M51
     文件        1097  2018-01-11 19:37  程序\wnl.Opt
     文件        2191  2018-01-11 19:37  程序\wnl.Uv2
     文件       17631  2018-01-11 19:37  程序\wnl.hex
     文件          68  2018-01-11 19:37  程序\wnl.lnp
     文件         997  2018-01-11 19:37  程序\wnl.plg
     文件        1080  2013-04-01 16:46  程序\wnl_Opt.Bak
     文件        2057  2013-04-01 16:46  程序\wnl_Uv2.Bak
     文件      105742  2018-01-11 19:37  程序\万年历程序lcd1602.LST
     文件       64484  2018-01-11 19:37  程序\万年历程序lcd1602.OBJ
     文件       48795  2012-03-24 15:49  程序\万年历程序lcd1602.c

评论

共有 条评论