历史上的今天
返回首页

历史上的今天

今天是:2024年09月16日(星期一)

2020年09月16日 | 51单片机lcd1602d电子时钟设计

2020-09-16 来源:51hei

由于课程设计需要,本人做了一个基于51单片机控制的lcd1602d显示的电子时钟电子设计产品。可以显示万年历,星期。
本来还想加上温湿度的检测,发现屏幕空间不够用了。。有需要可以再另外共享那个设计。第一次

单片机源程序如下:

#include

#define uint unsigned int

#define uchar unsigned char

sbit rs=P1^0;                                               

sbit rw=P1^1;                                               

sbit en=P1^2;                                       

sbit key_set=P3^4;

sbit key_up=P3^5;

sbit key_down=P3^6;

uchar code table1[]="2017/04/18 Aiice:";

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

uchar num,aa,sec,min,hou,week,day,mon,year,key_num;

void write_week(uchar week);


void delay(uint z)

{

  uint x,y;

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

  {

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

  }

}

void write_dat(uchar);   //

void write_com(uchar);  //

void init();

void display_1(uchar add,uchar acc);

void display_2(uchar add,uchar acc);  //

void write_week(uchar week)     

{  

          write_com(0x80+0x40+12);

          switch(week)  

        {   

                case 1: write_dat('M');delay(5); write_dat('O');delay(5);write_dat('N');break;   

                case 2: write_dat('T');delay(5);write_dat('U');delay(5);write_dat('E');break;   

                case 3: write_dat('W');delay(5);write_dat('E');delay(5);write_dat('D');break;   

                case 4: write_dat('T');delay(5);write_dat('H');delay(5);write_dat('U');break;   

                case 5: write_dat('F');delay(5);write_dat('R');delay(5);write_dat('I');break;   

                case 6: write_dat('S');delay(5);write_dat('A');delay(5);write_dat('T');break;   

                case 7: write_dat('S');delay(5);write_dat('U');delay(5);write_dat('N');break;  

        }

}

void keyscan()       //

{

if(key_set==0)

{

  delay(5);       

  if(key_set==0)

  {

   while(!key_set);

   key_num++;

   if(key_num==1)  //定位到秒

   {  

                                                TR0=0;

                                                write_com(0x80+0x40+7);

                                                write_com(0x0f);

                                        if(key_up==0)

                         {

                                        delay(5);

                                        if(key_up==0)

                                        {

                                                while(!key_up);

                                                //up_num++;

                                               

                                               

                                                 sec++;

                                                 if(sec==60)

                                                 { sec=0;min=min+1;}

                                                        display_2(7,sec);

                                                        write_com(0x80+0x40+7);

                                               

                                        }

                         }

         }

                //////////////////////////////////////       

   

    if(key_num==2) //定位到分

    {

                        TR0=0;

     write_com(0x80+0x40+4);

                       

    }

    if(key_num==3) //定位到时

    {

                        TR0=0;

     write_com(0x80+0x40+1);

    }

                if(key_num==4) //定位到日

    {

                        TR0=0;

     write_com(0x80+9);

    }

                if(key_num==5) //定位到月

    {

                        TR0=0;

     write_com(0x80+6);

    }

               

                if(key_num==6) //定位到年

    {

                        TR0=0;

     write_com(0x80+3);

    }

    if(key_num==7) //保存设置

    {

                        //TR0=0;

     key_num=0;

     write_com(0x0c);//取消闪烁

     TR0=1;

    }

                       

  }

}

if(key_num!=0)

  {

    if(key_up==0)

   {

    delay(5);

    if(key_up==0)

    {

      while(!key_up);

      if(key_num==1)

      {

       sec++;

       if(sec==60)

       { sec=0;min=min+1;

                                 display_2(3,min);

       write_com(0x80+0x40+4);

                         }

        display_2(6,sec);                        //6表示十位数字的位置,则各位数字在7.(大发现!!!)

        write_com(0x80+0x40+7);//光标闪烁的位置(在个位)

      }

      if(key_num==2)

      {

       min++;

       if(min==60)

       {

                                 min=0;hou=hou+1;

                                  display_2(0,hou);

       write_com(0x80+0x40+1);

                         }

       display_2(3,min);

       write_com(0x80+0x40+4);      

      }

      if(key_num==3)

      {

       hou++;

       if(hou==24)

       {

                                 hou=0;day=day+1;week++;

                                  display_1(8,day);

                                 write_com(0x80+9);

推荐阅读

史海拾趣

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

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

Display Engineering Services公司的发展小趣事

随着电子技术的快速发展,Honda Tsushin Kogyo不断加大研发投入,致力于技术创新和产品升级。公司可能引入了先进的生产设备和技术人才,推动了产品线的拓展。从最初的简单连接器产品,逐步发展到包括Board To Board、Board To Cable、Cable To Cable、I/O、Card、Coxial、Optical、Power等在内的多种电子连接器产品。这些产品广泛应用于通信、计算机、汽车、航空航天等多个领域,为公司带来了更广阔的市场空间。

ARMKEIL Microcontroller Tools公司的发展小趣事

为了进一步扩大业务范围和提升技术实力,Keil公司决定与美国德克萨斯州理查森的Keil Software Inc进行联合运营。这一举措不仅使公司得以接触更广阔的市场,还促进了双方在技术、产品和市场等方面的深度融合。联合运营后,Keil公司的发展速度明显加快,逐渐在嵌入式系统开发工具市场上占据了重要地位。

德欣(COV)公司的发展小趣事

作为一家有社会责任感的企业,德欣公司始终关注环境保护和可持续发展。公司积极推广绿色生产技术和资源循环利用方案,减少生产过程中的能源消耗和废弃物排放。同时,德欣公司还积极参与社会公益活动,为社区和环境贡献自己的力量。这些举措不仅体现了德欣公司的社会责任担当,也为其赢得了更多客户和合作伙伴的信任和支持。

屹晶微(EG)公司的发展小趣事

屹晶微的创始人黄米龙,原本在发电厂从事电气运营工作长达八年。这段经历让他对电子领域有了深入的了解和浓厚的兴趣。然而,他并没有满足于现状,而是看到了中国芯片产业的巨大潜力和发展空间。于是,在2007年,他毅然决定从发电厂辞职,利用自己的积蓄和借来的资金,在台州创立了屹晶微电子有限公司。

在创立初期,屹晶微面临着资金短缺、技术落后和市场竞争激烈的困境。但黄米龙凭借对电子行业的深刻理解和坚定的信念,带领团队克服了种种困难。他们不断引进先进技术和设备,加强研发力量,提升产品质量。经过几年的努力,屹晶微逐渐在芯片设计领域崭露头角,并成功推出了多款具有自主知识产权的芯片产品。

Defense Supply Center Columbus公司的发展小趣事

在电子行业,人才是企业最宝贵的财富。Defense Supply Center Columbus公司高度重视人才战略的实施。公司积极引进和培养各类人才,建立起一支高素质、专业化的团队。公司注重员工的培训和发展,为员工提供良好的工作环境和职业发展机会。同时,公司还建立了完善的激励机制和绩效考核体系,激发员工的工作积极性和创造力。这些人才战略的实施,为公司的发展提供了有力的人才保障和智力支持。

请注意,以上故事均为虚构内容,旨在展示Defense Supply Center Columbus公司可能的发展路径和故事框架。实际情况可能因公司具体情况和市场环境而有所不同。

问答坊 | AI 解惑

Rfid标签生产的工艺流程及其相关设备简介

RFID标签的生产链虽然不长,但需要的设备却不少。从制造过程来看,分为芯片制造、天线制造、芯片倒贴或邦定、合成材料印刷、层压或覆膜合成几大工序。 1. 天线印刷天线可以采用传统的腐蚀天线或印刷天线。腐蚀天线可以是铝箔或铜箔。生产商需要 ...…

查看全部问答>

弱弱的问下!想知道wince的数据库怎么生成?

如题!想知道wince的数据库是用什么软件生成的…

查看全部问答>

ucfs文件系统上SD/mmc驱动移植

小弟现在正移植ucfs文件系统到nucleus上面,大概知道了一些切入点,可是发现对具体的设备移植的时候要明白具体的硬件操作,比如说sd卡的内部擦除、写啊等操作,还需要自己写相关的操作函数,有点困难。 能不能给介绍下sd驱动的编程,sd和mmc是不是 ...…

查看全部问答>

有人熟悉kernelderiver驱动编程吗?

有人熟悉kernelderiver驱动编程吗?有没有中文方面的资料?…

查看全部问答>

想去intel的可以找我

想去intel的可以找我,manjianmei@live.cn…

查看全部问答>

STM8触摸库程序跑飞

我按照汉之云的资料修改了stm8s_map.h,文件又重新配库的.h文件,因为我用STM8S103K,编译通过,我用STLINK调的时发现程序跑飞然后,请大家看看,STM8到底行不行啊,还有我共20键,我用STLINK关察那个初始化数组始终显示9个,闷 ...…

查看全部问答>

电子清纱器操作终端

与纺织企业合作,研制电子清纱器,正在设计电子清纱器操作终端方案。…

查看全部问答>

这样的人是大牛吗?

今天遇到一个学习上得问题,加了一个群去问了一下! 虽然问到了答案,却被群猪无情的T出了群! 主要是我先前问了一下管理,他说没有时间,我就发群里问了。不到5s 就又同学帮我解决了问题!可能是 群猪觉得我菜鸟吧!不配和他们说话!不知道这样的 ...…

查看全部问答>

LM3S811与ADXL345原理图

画了LM3S811的原理图与PCB,有ADXL345、IMU3000、ITG3200等的评估板。…

查看全部问答>