历史上的今天

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

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

发布者:京玩儿 来源: 51hei关键字:51单片机  lcd1602d  电子时钟 手机看文章 扫描二维码
随时随地手机看文章

由于课程设计需要,本人做了一个基于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);

[1] [2]
关键字:51单片机  lcd1602d  电子时钟 引用地址:51单片机lcd1602d电子时钟设计

上一篇:KEIL-51单片机实现自定义bootloader,用于程序更新
下一篇:用51单片机控制两相四线步进电机

推荐阅读

这次苹果发布会,最吸引人的产品不是iPhone XS,而是Apple Watch Series 4,这款智能手表不是上一代产品的简单升级,可以说是有了革命性的变化,其强大的健康检测功能会进一步提升人们对它的热爱。不过,有一些公司可能要不高兴了,Apple Watch 4的出现势必进一步冲击瑞士手表的市场。苹果Apple Watch Series 4的发布,给智能穿戴设备领域注入了...
上周,苏老湿写过一篇文章叫做《液晶已经落后 德国博世量产 首款3D仪表盘亮相》,引起了很大的共鸣,无非是说,随着汽车与科技、5G的连接越来越紧密,液晶仪表盘变得越来越普遍。相比机械仪表,液晶仪表盘无非更具有科技感,在交互和布局上有更多的延展空间。不过延展自由上并不能算优势,这就是一把双刃剑。液晶仪表盘设计的好,科技感是锦上添花;设计...
将ST-LINK-V2插到电脑上之后会发现上面的D1灯一直在闪烁,这表示此时stlink还没被电脑识别。下载驱动程序:http://pan.baidu.com/s/1dDGHvot如果连接失效可以百度,有的是。之后就是安装问题。在我的电脑(计算机)上右键,选“管理”,“设备管理器”,发现软件设备中有一个带黄叹号的图标,正是我们未识别的stlink,双击后在属性中选择“更新驱动”,选...
STM32F10x系列的MCU复位后,PA13/14/15 以及PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些端口设置为普通I/O口。JTAG对应IOJTMS --> PA13JTCK --> PA14JTDI --> PA15JTDO --> PB3JNRST --> PB4SWD对应IOSWDIO --> PA13SWCLK --> PA14由对应IO关系可以看出,SWD只需用到PA13/JTMS、PA14/JTCK两根线,NREST...

史海拾趣

问答坊 | AI 解惑

lpc1343的USB源码问题

在中断函数里面有一段 if (USB_P_EP[0]) {         USB_P_EP[0](USB_EVT_SETUP);         continue; } 原型在下面: #define P_EP(n) ((USB_EP_EV ...…

查看全部问答∨

wince ADO数据连接问题

请问__Connection的Open函数参数怎么写? 数据库是SQL Server ce2.0 ,数据库名:test.sdf …

查看全部问答∨

高压MOS/IGBT的短路保护电路

高压MOS/IGBT的短路保护电路     电源网讯 个人多年来从事高压脉冲电源的工作的一点经验总结   电路如上: 带短路保护锁定的驱动的3脚为短路信号检测入端;2脚为驱动地;1脚为驱动输出。 当电路存在短 ...…

查看全部问答∨

超炫的一款车视频哈哈哈简直牛到了极点

$(\'swf_HSS\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/sid/XMjIxMTE2MzMy/v.sw ...…

查看全部问答∨

老师说学习msp430g2553最重要的几个PDF

对了,我想求教一下,用msp430g2553+HD16210驱动液晶显示+DS18B20温度传感器  =做超低功数字式耗温度计,就是去年的电子科技大赛题目,不过用这一套怎么没做出来呢…

查看全部问答∨

MSP430F5529学习笔记1-I/O端口

开发版型号:SEED—MSP430F5529A 开发工具   :CCS 5.4v 以下内容是CCS中I/O端口操作的一些简单的demo,现整理如下: 有关MSP430F5529芯片I/O口相关资料,可参考《MSP430x5xx and MSP430x6xx Family User\'s Guide (Rev. M)——Chapte ...…

查看全部问答∨

太阳能手机充电器的电路设计

本帖最后由 yds1024 于 2015-1-19 14:03 编辑 太阳能手机充电器的电路设计 ,有兴趣的朋友可以下载来参考,我是红领巾!! …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved