找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 774|回复: 0
收起左侧

基于stc89c52单片机的LCD1602液晶屏显示DS1302时钟程序

[复制链接]
ID:934951 发表于 2023-5-25 15:38 | 显示全部楼层 |阅读模式
基于stc89c52单片机的LCD1602液晶屏显示DS1302时钟程序
并且可以按键调节
  1. #include <REG52.H>
  2. #include "stdio.h"
  3. #include "lcd1602.h"
  4. #include "ds1302.h"  

  5. sbit key1 = P3^0;
  6. sbit key2 = P3^1;
  7. sbit key3 = P3^2;
  8. sbit key4 = P3^3;
  9. sbit key5 = P3^4;
  10. sbit key6 = P3^5;
  11. sbit key7 = P3^6;
  12. sbit key8 = P3^7;
  13. void delay_ms(unsigned int ms);

  14. float n = 0,m = 123.56;
  15. xdata unsigned char tab[10];
  16. unsigned char sta;
  17. //unsigned int k = 1234;


  18. //unsigned char int_time;
  19. void main()
  20. {

  21.         LCD_Init();
  22.         Ds1302_Init();
  23.         while(1)
  24.         {
  25.                
  26.                 Ds1302_Read_Time();//先读取DS1302的数据
  27.                 sprintf  (tab,"%02bd:%02bd:%02bd",time_buf1[4],time_buf1[5],time_buf1[6]);                //shi fen miao
  28.                 LCD_Staing(2,5,tab);
  29.                
  30.                 //sprintf  (tab,"20%02bd/%02bd/%02bd",time_buf[1],time_buf[2],time_buf[3]);               
  31.                 //LCD_Staing(1,5,tab);
  32.                
  33.                
  34.                 if(key1 == 0)
  35.                         {
  36.                                  while (!key1);
  37.                                   sta++;
  38.                                 if(sta>5)
  39.                                         sta=0;
  40.                         }
  41.                  if(sta == 0)//时间调整
  42.                  {
  43.                      if(key2 == 0)
  44.                                                         {
  45.                                                                  while (!key1);
  46.                                                                  time_buf1[4]++;
  47.                                                                 if(time_buf1[4]>23)
  48.                                                                 {
  49.                                                                         time_buf1[4] = 0;
  50.                                                                 }
  51.                                                                 Ds1302_Write_Time();
  52.                                                         }
  53.                                                        
  54.                                                 if(key3 == 0)
  55.                                                 {
  56.                                                          while (!key2);
  57.                                                        
  58.                                                         if(time_buf1[4]>0)
  59.                                                         {
  60.                                                                 time_buf1[4] --;
  61.                                                         }else
  62.                                                         {
  63.                                                         time_buf1[4]=23;
  64.                                                         }
  65.                                                         Ds1302_Write_Time();
  66.                                                 }
  67.                                                
  68.                
  69.                  }
  70.                
  71.                  
  72.                  if(sta == 1)
  73.                  {
  74.                  
  75.                  }
  76.                
  77.                
  78.         }

  79. }

  80. void delay_ms(unsigned int ms)
  81. {
  82.         unsigned char i;
  83.         while(ms--)
  84.         {
  85.                 for(i = 0;i<123;i++);
  86.         }


  87. }



复制代码




1602显示DS1302时钟.rar

59.81 KB, 下载次数: 34, 下载积分: 黑币 -5

51单片机

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表