历史上的今天
返回首页

历史上的今天

今天是:2025年02月06日(星期四)

正在发生

2020年02月06日 | DS12887+lcd1602万年历仿真原理图+程序

2020-02-06 来源:51hei

下面是仿真原理图:

51单片机驱动DS12887时钟芯片,采用lcd1602液晶屏来显示万年历

源程序如下:

#include

#define uchar unsigned char

#define uint unsigned int

sbit dula=P2^6;

sbit wela=P2^7;

sbit rs=P3^5;

sbit lcden=P3^4;

sbit s1=P3^0;

sbit s2=P3^1;

sbit s3=P3^2;

sbit rd=P3^7;

sbit s4=P3^3;

sbit dsds=P1^7;

sbit dsrw=P1^6;

sbit dsas=P1^5;

sbit dscs=P1^4;

sbit dsirq=P3^3;

uchar count,shi,fen,miao,s1num,week=0,i,day=1,yue=1,year1=0,year2,year3,year4;

uchar code table1[]=" 0000-01-01 MON";         //初始显示

uchar code table2[]="    00:00:00";                 

uchar code table3[7][3]={"MON","TUE","WED","THU","FRI","STA","SUN"};//星期的编码

//*****延时函数

void delay(uchar z)

{

        uchar x,y;

        for(x=z;x>0;x--)

        for(y=110;y>0;y--);        

}

//****写命令函数

void write_com(uchar com)

{

        rs=0;

        lcden=0;

        P0=com;

        delay(5);

        lcden=1;

        delay(5);

        lcden=0;

}

//****写入数据函数

void write_data(uchar date)

{

        rs=1;

        lcden=0;

        P0=date;

        delay(5);

        lcden=1;

        delay(5);

        lcden=0;

}

//****初始化函数

void init()

{

        uchar num;

//        year=year1+year2*10+year3*100+year4*1000;

        wela=0;

        dula=0;

        lcden=0;

        write_com(0x38);

        write_com(0x0c);

        write_com(0x06);

        write_com(0x01);

        write_com(0x80);

        for(num=0;num<15;num++)

        {

                write_data(table1[num]);

                delay(20);

        }

        write_com(0x80+0x40);

        for(num=0;num<12;num++)

        {

                write_data(table2[num]);

                delay(20);

        }

/*        TMOD=0x01;

        TH0=(65536-50000)/256;

        TL0=(65536-50000)%256;

        EA=1;

        ET0=1;

        TR0=1;                */

}

//*****显示时分秒

void write_sfm(uchar add,uchar date1)

{

        uchar shi,ge;

        shi=date1/10;

        ge=date1%10;

        write_com(add+0x80+0x40);

        write_data(0x30+shi);

        write_data(0x30+ge);

}

//*****显示年月日

void write_sfm1(uchar add,uchar date1)

{

        uchar shi,ge;

        shi=date1/10;

        ge=date1%10;

        write_com(add+0x80);

        write_data(0x30+shi);

        write_data(0x30+ge);

}

void key2();

void key3();

//******键盘扫描函数

void keyscan()

{

        rd=0;

        if(s1==0)//第一个键被按下

        {

                delay(5);           //************去除抖动

                if(s1==0)        

                {

                        s1num++;          //***第一个键没被按下一次,s1num就加1

                        while(!s1);                

                        if(s1num==1)         //当被按下一次时,光标停在秒位上并开始闪烁,始终停止

                        {

                                TR0=0;

                                write_com(0x80+0x40+11);

                                write_com(0x0f);

                        }

                        if(s1num==2)          //被按下第二次,光标停在分位上

                        {

                                write_com(0x80+0x40+8);

                        }

                        if(s1num==3)         //被按下第三次,光标停在时位上

                        {

                                write_com(0x80+0x40+5);

                        }

                        if(s1num==4)          //被按下第四次,光标停在显示星期的位上

                        {

                                write_com(0x80+15);

                        }

                        if(s1num==5)          //被按下第五次,光标停在显示日子的位上

                        {

                                write_com(0x80+10);

                        }

                        if(s1num==6)                //被按下第六次,光标停在显示月的位上

                        {

                                write_com(0x80+7);

                        }

                        if(s1num==7)           //被按下第七次,光标停在显示年的个位上

                        {

                                write_com(0x80+4);

                        }

                        if(s1num==8)                        //被按下第八次,光标停在十位上

                        {

                                write_com(0x80+3);

                        }

                        if(s1num==9)                   //被按下第九次,光标停在百位上

                        {

                                write_com(0x80+2);

                        }

                        if(s1num==10)                        //被按下第十次,光标停在千位上

                        {

                                write_com(0x80+1);

                        }

                        if(s1num==11)                        //被按下第十一次,时钟从设置的时刻开始

                        {

                                s1num=0;

                                write_com(0x0c);

                                TR0=1;

                        }

                }

                

推荐阅读

史海拾趣

Allied Wire & Cable Inc公司的发展小趣事

Allied公司深知客户是公司发展的核心动力。因此,公司始终将客户服务放在首位,为客户提供全方位、个性化的服务支持。无论是产品咨询、技术支持还是售后服务,Allied公司都力求做到最好,赢得了客户的信任和好评。同时,公司还积极与合作伙伴建立长期稳定的合作关系,共同开拓市场,实现互利共赢。

Digital Voice Systems Inc公司的发展小趣事

Digital Voice Systems, Inc.(DVSI)于1988年成立,当时正值数字通信技术的兴起阶段。公司创始人凭借对语音编解码技术的深刻理解和前瞻性的市场洞察力,决定投身于这一领域。他们开发出了具有专利保护的基于鲁棒性多带激励模型(MBE Model)的低码率语音压缩算法,如IMBE和AMBE编解码系统。这些算法在当时的市场上独树一帜,为DVSI赢得了第一桶金。

在创立初期,DVSI面临着资金、技术、市场等多方面的挑战。然而,他们凭借着坚定的信念和不懈的努力,逐步克服了这些困难。他们不断投入研发,优化算法,提高产品的性能和稳定性;同时,他们积极开拓市场,与各大通信设备制造商建立合作关系,将产品推向市场。

随着时间的推移,DVSI的产品逐渐在市场上获得了认可。他们的编解码系统被广泛应用于移动通信、卫星通信、军事通信等领域,为客户提供了高效、稳定的语音通信解决方案。DVSI也因此逐渐崭露头角,成为了电子行业中一颗耀眼的明星。

故事二至五框架概述

  1. 技术创新与突破:DVSI在语音编解码技术方面的持续创新,如推出新一代的高效压缩算法,进一步提升了产品的竞争力。
  2. 市场拓展与国际化:随着公司实力的增强,DVSI开始拓展国际市场,与全球多家知名企业建立合作关系,实现了国际化发展。
  3. 合作与竞争:在电子行业中,DVSI与其他企业的合作与竞争并存。他们通过合作共赢的方式,共同推动行业的发展;同时,也面临着来自竞争对手的挑战和竞争压力。
  4. 企业文化与团队建设:DVSI注重企业文化建设,倡导创新、协作、共赢的价值观。他们注重团队建设,吸引了一批优秀人才加入公司,为公司的发展提供了有力的人才保障。

以上故事和框架概述仅供参考,您可以根据这些线索进一步挖掘和编写关于DVSI公司的故事。

High Tech Chips Inc公司的发展小趣事

机顶盒,全称为数字视频变换盒,是连接电视机与外部信号源的重要设备,具有高度的专业性和广泛的应用性。它不仅能接收来自有线电缆、卫星天线、宽带网络及地面广播的数字电视信号,还能将这些信号转换成适合在电视机上播放的格式,极大地丰富了用户的观看体验。

机顶盒分为数字机顶盒和网络机顶盒两大类。数字机顶盒主要实现数模转换功能,使用户能用原有的模拟电视机观看数字电视,包括有线电视、卫星电视和地面广播电视的数字机顶盒。而网络机顶盒则进一步扩展了功能,能接入互联网,提供如IPTV、视频点播、在线游戏、网页浏览等多元化服务,使电视机转变为一个智能互动终端。

机顶盒的工作原理涵盖接收、解码和显示三个关键步骤。通过内置的调谐器接收信号,解调器将信号从载波中提取,解码器再将信号转换为电视可识别的视频和音频流,最终通过电视机呈现给用户。随着技术的不断进步,机顶盒的功能也在不断升级,如支持4K、8K超高清视频播放,搭载智能推荐算法提供个性化内容推荐,以及通过语音识别技术实现便捷操作等。

综上所述,机顶盒作为连接电视与互联网的重要桥梁,其专业性和科普性不言而喻。它不仅为用户提供了丰富多彩的电视节目和娱乐选择,还推动了电视产业的智能化发展,成为现代家庭不可或缺的一部分。

Honda Tsushin Kogyo Co Ltd公司的发展小趣事

为了进一步扩大市场份额,Honda Tsushin Kogyo可能实施了全球化战略。公司积极寻求国际合作机会,与全球范围内的电子产品制造商建立了稳定的合作关系。同时,公司还可能在海外设立生产基地或销售网点,以便更好地服务当地市场。通过全球化战略的实施,Honda Tsushin Kogyo不仅提升了品牌知名度,还增强了企业的国际竞争力。

Eurohm Resistors公司的发展小趣事

在电子行业的早期,Eurohm Resistors公司就以其独特的技术创新能力崭露头角。公司创始人敏锐地察觉到了半导体技术在电子行业中的重要地位,于是投入大量资源研发高精度、高稳定性的电阻器。通过不断的技术迭代和创新,Eurohm Resistors成功推出了一系列性能卓越的电阻器产品,赢得了市场的广泛认可。

Curtis Industries公司的发展小趣事

为了进一步扩大市场份额,Curtis Industries公司积极拓展市场布局。公司在全球范围内设立了多个生产基地和研发中心,以便更好地满足不同地区客户的需求。同时,公司还加强了与上下游企业的合作,形成了完整的产业链。这些举措不仅提升了公司的产能和研发实力,还为公司带来了更多的商业机会。

问答坊 | AI 解惑

EMC

EMC [ 本帖最后由 安_然 于 2010-4-8 17:21 编辑 ]…

查看全部问答>

要添加新的输入法到内核(不是自带的BSP组件),如何修改注册表?

要添加一个手写输入法到内核去,但是不知道要修改哪里的。我编译好WINCE系统后开机在wince添加注册表是可以用的。 我把注册信息加入platform.reg后编译但是不行。不知道是要修改哪个文件,如何修改。烦请大侠指导,谢谢!!…

查看全部问答>

如何选择图形包??

  我现在使用DG9307开发板实现一自动控制系统,需要使用图形包。现在有备选:QT/embedded.MiniGUI,OpenGL,SVGALIB,TINY-X,现在需要考虑速度,价格,大小,在保证速度的前提下,价格要低,应该选择哪个图形包呢?…

查看全部问答>

网卡芯片什么情况下会出现闪断电情况

我用一个网关在测试它的NAT功能 一台PC接WAN口,一台接LAN口 当速率达到一定的程度 就很容易出现WAN口或LAN口瞬间断电,也就是相应的PC机右下角会提示\"网络电缆没有插好\" 请问下这是什么原因所引起的呢…

查看全部问答>

坛里有没有在利尔达上班的朋友?

后天去参加他的宣讲会,以后可能回去那里上班了,利尔达主要是搞430和DSP的吧 以后要学习这些了!~   那个公司大家觉得怎么样?我看网上说的有好有坏!~…

查看全部问答>

紧急求助此51单片机的算法

今天中午才送到的,明天就要用,现在一个头两个大求各位高人分析下这个设计的算法框图,在此先感谢各位了东西在PDF里是个基于单片机的超声波测距仪的关键程序完全没时间分析了,只能希望有哪位大大帮个忙了再次感谢如可能请邮箱我,我的邮箱appleXP ...…

查看全部问答>

用交流电流采样问题

请教各位大侠一个问题,我现在需要用交流电流采样,一般AD输入是0-5V,我要的是-10-10V的输入,这个怎么弄?…

查看全部问答>

am335x evm的rtc供电问题

各位好,请问下AM335x EVM的rtc模块是如何供电的,我现在修改了时间,一断电就又会返回到原始的时间,用的linux系统,怀疑是rtc的供电有问题,我的板子跟EVM的类似,不知道各位有没有遇到过,等待您的指导。…

查看全部问答>

【Energia开发环境】MSP430 LAUNCHPAD学习笔记6--角位移传感器

本帖最后由 qinkaiabc 于 2014-1-2 20:25 编辑 【Energia开发环境】MSP430 LAUNCHPAD学习笔记6--角位移传感器-角度测量 材料:· MSP-EXP430G2 553LaunchPad· WDD35D4角位移传感器角度测量原理      WDD35D4 角位移传感器 ...…

查看全部问答>

IR2110输出驱动波形毛刺很严重

按照图1所示电路焊的电路,IGBT的供电电压未加,直接测得IR2110的高低端输出波形如图2所示。这个毛刺怎么能够消除啊? …

查看全部问答>