历史上的今天
返回首页

历史上的今天

今天是:2024年08月27日(星期二)

正在发生

2020年08月27日 | lcd1602万年历(时钟)+温度 带闹钟

2020-08-27 来源:51hei

喜欢的朋友拿去吧,大神请绕道,喜欢动手的朋友进
实物图:
1.jpg?imageView2/2/w/550 2.jpg?imageView2/2/w/550 3.jpg?imageView2/2/w/550

仿真图:
0.png?imageView2/2/w/550

单片机源程序如下:

#include  //QQ1137035271

#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^6;

sbit rw=P2^5;   //如果硬件上rw接地,就不用写这句和后面的rw=0了

sbit rs=P2^4;



//校时按键与C51的引脚连接定义


sbit menu=P3^0;                //菜单键

sbit set=P3^1;          //设置键

sbit add=P3^2;          //加键

sbit dec=P3^3;          //减键

sbit ensure=P3^4;        //确认键


sbit DQ=P2^0;                //

sbit buzzer=P1^4;        //蜂鸣器,通过三极管8550驱动,端口低电平响


sbit led=P2^4;                 //LCD背光开关

bit  led1=1;


unsigned char temp_miao;

unsigned char bltime;  //背光亮的时间


//DS1302时钟芯片与C51之间的引脚连接定义

sbit IO=P1^1;

sbit SCLK=P1^2;

sbit RST=P1^0;



uchar a,miao,shi,fen,ri,yue,nian,week,setn,temp;

uint flag;

//flag用于读取头文件中的温度值,和显示温度值

bit c_moon;


uchar nz_shi=12,nz_fen=0,nz_miao=0,setNZn;            //定义闹钟变量

uchar shangyimiao,bsn,temp_hour;                        //记录上一秒时间

uchar T_NL_NZ=0;                                                        //计数器

bit timerOn=0;                                                        //闹钟启用标志位

bit baoshi=0;                                                        //整点报时标志位

bit  p_r=0;                                                                 //平年/润年  =0表示平年,=1表示润年

data uchar year_moon,month_moon,day_moon,week;




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

***************************************************************/




//********阳历转换阴历表************************************

/*

公历年对应的农历数据,每年三字节,

格式第一字节BIT7-4 位表示闰月月份,值为0 为无闰月,BIT3-0 对应农历第1-4 月的大小

第二字节BIT7-0 对应农历第5-12 月大小,第三字节BIT7 表示农历第13 个月大小

月份对应的位为1 表示本农历月大(30 天),为0 表示小(29 天)

第三字节BIT6-5 表示春节的公历月份,BIT4-0 表示春节的公历日期

*/

code uchar year_code[597]={

                    0x04,0xAe,0x53,    //1901 0

                    0x0A,0x57,0x48,    //1902 3

                    0x55,0x26,0xBd,    //1903 6

                    0x0d,0x26,0x50,    //1904 9

                    0x0d,0x95,0x44,    //1905 12

                    0x46,0xAA,0xB9,    //1906 15

                    0x05,0x6A,0x4d,    //1907 18

                    0x09,0xAd,0x42,    //1908 21

                    0x24,0xAe,0xB6,    //1909

                    0x04,0xAe,0x4A,    //1910

                    0x6A,0x4d,0xBe,    //1911

                    0x0A,0x4d,0x52,    //1912

                    0x0d,0x25,0x46,    //1913

                    0x5d,0x52,0xBA,    //1914

                    0x0B,0x54,0x4e,    //1915

                    0x0d,0x6A,0x43,    //1916

                    0x29,0x6d,0x37,    //1917

                    0x09,0x5B,0x4B,    //1918

                    0x74,0x9B,0xC1,    //1919

                    0x04,0x97,0x54,    //1920

                    0x0A,0x4B,0x48,    //1921

                    0x5B,0x25,0xBC,    //1922

                    0x06,0xA5,0x50,    //1923

                    0x06,0xd4,0x45,    //1924

                    0x4A,0xdA,0xB8,    //1925

                    0x02,0xB6,0x4d,    //1926

                    0x09,0x57,0x42,    //1927

                    0x24,0x97,0xB7,    //1928

                    0x04,0x97,0x4A,    //1929

                    0x66,0x4B,0x3e,    //1930

                    0x0d,0x4A,0x51,    //1931

                    0x0e,0xA5,0x46,    //1932

                    0x56,0xd4,0xBA,    //1933

                    0x05,0xAd,0x4e,    //1934

                    0x02,0xB6,0x44,    //1935

                    0x39,0x37,0x38,    //1936

                    0x09,0x2e,0x4B,    //1937

                    0x7C,0x96,0xBf,    //1938

                    0x0C,0x95,0x53,    //1939

                    0x0d,0x4A,0x48,    //1940

                    0x6d,0xA5,0x3B,    //1941

                    0x0B,0x55,0x4f,    //1942

                    0x05,0x6A,0x45,    //1943

                    0x4A,0xAd,0xB9,    //1944

                    0x02,0x5d,0x4d,    //1945

                    0x09,0x2d,0x42,    //1946

                    0x2C,0x95,0xB6,    //1947

                    0x0A,0x95,0x4A,    //1948

                    0x7B,0x4A,0xBd,    //1949

                    0x06,0xCA,0x51,    //1950

                    0x0B,0x55,0x46,    //1951

                    0x55,0x5A,0xBB,    //1952

                    0x04,0xdA,0x4e,    //1953

                    0x0A,0x5B,0x43,    //1954

                    0x35,0x2B,0xB8,    //1955

                    0x05,0x2B,0x4C,    //1956

                    0x8A,0x95,0x3f,    //1957

                    0x0e,0x95,0x52,    //1958

                    0x06,0xAA,0x48,    //1959

                    0x7A,0xd5,0x3C,    //1960

                    0x0A,0xB5,0x4f,    //1961

                    0x04,0xB6,0x45,    //1962

                    0x4A,0x57,0x39,    //1963

                    0x0A,0x57,0x4d,    //1964

                    0x05,0x26,0x42,    //1965

推荐阅读

史海拾趣

Caliber公司的发展小趣事

随着电子行业的全球化趋势日益明显,Caliber公司积极实施国际化战略,拓展海外市场。公司通过与国外知名企业的合作,引进先进的技术和管理经验,不断提升自身的竞争力。同时,Caliber还积极参加国际电子展会和论坛,加强与国际同行的交流与合作。这些举措不仅为公司带来了更多的商业机会,也提升了Caliber在国际上的知名度和影响力。

思博科技(Cybermax)公司的发展小趣事

随着市场竞争的加剧,思博科技意识到只有不断创新才能在市场中立足。于是,公司加大了研发投入,不断推出具有创新性的产品。其中,一款名为“MaxPower”的高效能电源芯片在市场上引起了广泛关注。这款芯片不仅性能卓越,而且具有极高的能效比,为客户节省了大量能源成本。这一创新产品的成功推出,使思博科技在行业中树立了良好的口碑。

ACCUTEK公司的发展小趣事

随着技术的不断进步,ACCUTEK公司意识到要想在竞争激烈的电子行业中脱颖而出,必须不断进行技术创新和产品升级。公司加大了对研发的投入,引进了一批高素质的研发人才,并与多所高校和研究机构建立了合作关系。经过数年的努力,公司成功开发出了多款具有自主知识产权的高精度数控设备,这些产品在市场上获得了广泛好评,为公司的发展奠定了坚实基础。

Aleph America Corporation公司的发展小趣事

在发展过程中,ACCUTEK公司始终注重品牌建设和品质提升。公司投入大量资源用于品牌推广和市场宣传,提高了品牌知名度和美誉度。同时,公司还建立了严格的质量管理体系和售后服务体系,确保每一台出厂的设备都能达到客户的要求和期望。这些举措有效地提升了公司的市场竞争力,赢得了更多客户的信任和支持。

DINTEK公司的发展小趣事

在发展过程中,ACCUTEK公司始终注重品牌建设和品质提升。公司投入大量资源用于品牌推广和市场宣传,提高了品牌知名度和美誉度。同时,公司还建立了严格的质量管理体系和售后服务体系,确保每一台出厂的设备都能达到客户的要求和期望。这些举措有效地提升了公司的市场竞争力,赢得了更多客户的信任和支持。

Harris公司的发展小趣事

Hammond公司的故事始于1916年,当时它仅仅是一个位于加拿大安大略省圭尔夫的后院车间。1917年,OS Hammond and Son正式成立,并在接下来的几年里开始制造电子管收音机、电池充电器等电子产品。这一时期,Hammond逐步积累了技术和市场经验,为后续的快速发展奠定了基础。随着广播和通讯行业的兴起,Hammond敏锐地捕捉到了市场机遇,开始专注于为这些行业提供关键组件。

问答坊 | AI 解惑

单片机

针对at89s52的一些简要介绍…

查看全部问答>

请教 一个很easy的问题:三极管的选用主要看哪些参数

我知道的三极管 可以用在 开关电路,电压电流放大,功率放大, 几种电路中对三极管的选用都有什么要求,详细一点吧…

查看全部问答>

MAX+PLUSII语言VHDL

关于MAX+PLUSII的一个文章给大家看看…

查看全部问答>

大赛的题目你选择好了。。。(大家一起来讨论)

本帖最后由 paulhyde 于 2014-9-15 08:58 编辑 看着这几个题目。。。还不确定选哪个。。。(还是高职高专的好做)  …

查看全部问答>

榨干你的示波器——连载3(转帖)

以下转自 越测越开心 的博客,其原文地址如下: http://forum.eet-cn.com/BLOG_ARTICLE_2965.HTM 本系列博文由我们的老用户H3C北京公司常羽飞特别供稿 (4)——我的地盘我做主示波器这个玩意儿,虽说有明确的资产所有人,不过流动性实在太大 ...…

查看全部问答>

盲人的福音:用舌头看世界

盲人在美国研制的生活设备BrainPort帮助下,可以读书,辨别物体形状和独立行走,这可能彻底改变盲人的生活。 该设备将图形转换为脉冲电流并发送到使用者的舌头上从而引起刺痛感。不同强度的痛感可以被翻译成不同的信息,从而使失明者能够感知周围 ...…

查看全部问答>

WDK+DDKWizard+vs2008环境,都设置好了却总是生成win7的sys,怎么回事

如题。ddkbuild.bat,cmd,拷到了winddk目录下,加了wxpbase环境变量,vc目录选好了。 用ddkwizard建一个driver,选winxp的驱动,生成工程。原封不动的编译,只能得到win7的驱动。 ddkwizard连win7都不支持,怎么会出现这种情况?! 高手帮忙看一 ...…

查看全部问答>

WinCE上栈空间如何调大一些? (应用程序需要大一些的栈空间)

WinCE上栈空间如何调大一些? (应用程序需要大一些的栈空间)…

查看全部问答>

运气巨好!从收废品的师傅手中拿到了一块10.4寸的液晶屏

型号是NL6448AC33-18K 想试试能不能用,不知道谁有PDF手册?…

查看全部问答>

iar ew430的一个问题

我用ew430时,第一次,建了一个workspace 和 project.但下一次却打不开,提示是不存在.我用的是4k的试用版.请问各位大侠,这是什么原因? …

查看全部问答>