在学习的过程 这个网站帮了很多忙 虽然很多资料都要下载  我就把代码直接贴出来吧

#include <reg52.h>
#include <intrins.h>typedef unsigned char uchar;#define DS1302_W_ADDR 0x80
#define DS1302_R_ADDR 0x81
/*******************DS1302********************/
//              Ãë ·Ö Ê±
uchar TIME[3] = {35,16,23};sbit SCLK = P1^0;
sbit IO   = P1^1;
sbit RST  = P1^2;//д×Ö½Ú
void DS1302write_byte(uchar byte)
{uchar i;for(i = 0; i < 8; i++){SCLK = 0;          //À­µÍʱÖÓÏßIO = byte & 0x01; byte >>= 1;     SCLK = 1;          //À­¸ßʱÖÓÏß ²úÉúÉÏÉýÑØ Ð´ÈëÊý¾Ý}
}
//¶Á×Ö½Ú
uchar DS1302read_byte()
{uchar i,dat;for(i = 0; i < 8; i++){SCLK = 0;dat >>= 1;if(IO) dat |= 0x80;SCLK = 1; }  return dat;
}
//дÊý¾Ý
void DS1302write_dat(uchar addr,uchar dat)
{DS1302write_byte(addr);DS1302write_byte(dat);}
//¶ÁÊý¾Ý
uchar DS1302read_dat(uchar addr)
{uchar dat;DS1302write_byte(addr);dat = DS1302read_byte();return dat;
}//Çå³ýд±£»¤
void DS1302clear_wp()
{RST = 0;SCLK = 0;RST = 1;DS1302write_dat(0x8e,0x00);}
//ÉèÖÃд±£»¤
void DS1302set_wp()
{DS1302write_dat(0x8e,0x80);SCLK = 0;RST = 0;
}
// ÉèÖÃÆðʼʱ¼ä
//Ê®½øÖÆתBCD
void DS1302set_time(uchar addr)
{uchar i,j;DS1302clear_wp();for(i = 0; i < 3; i++){j=TIME[i]/10;TIME[i]=TIME[i]%10;TIME[i]=TIME[i]+j*16;  DS1302write_dat(addr,TIME[i]);  addr += 2;}DS1302set_wp();
}
//¶ÁDS1302µÄÊý¾Ý
//¶ÁÈ¡BCDÂë
void DS1302read_time(uchar addr)
{uchar i;DS1302clear_wp();for(i = 0; i < 3; i++){TIME[i] = DS1302read_dat(addr);addr += 2;}DS1302set_wp();
}
/*********************LCD1602ÏÔʾ***********************************/
sbit RS = P3^5;
sbit RW = P3^6;
sbit EN = P3^4;//ÅÐæ
void read_busy()
{uchar busy;RS = 0;RW = 1;P0 = 0xff;do{EN = 1;busy = P0;EN = 0;        }while(busy & 0x80);
}
//дÃüÁî
void write_cmd(uchar cmd)
{read_busy();RS = 0;RW = 0;P0 = cmd;EN = 1;EN = 0;
}
//дÊý¾Ý
void write_dat(uchar dat)
{read_busy();RS = 1;RW = 0;P0 = dat;EN = 1;EN = 0;
}
//ÏÔʾһ¸ö×Ö·û
void dis_onechar(uchar x,uchar y,uchar dat)
{if(y) x |= 0xc0;x |= 0x80;write_cmd(x);write_dat(dat);
}
//ÏÔʾһ¸ö×Ö·û´®
void dis_str(uchar x,uchar y,uchar *str)
{if(y) x |= 0xc0;x |= 0x80;write_cmd(x);while(*str != '\0'){P0 = *str;str++;}
}
void LCD1602_init()
{write_cmd(0x38);write_cmd(0x0c);write_cmd(0x06);write_cmd(0x01);//ÇåÆÁ
}
/**********************Ö÷º¯Êý****************************************/
void main()
{DS1302set_time(0x80);LCD1602_init();while(1){DS1302read_time(0x81);dis_onechar(7,0,TIME[2]/16 + '0'); //ʱdis_onechar(8,0,TIME[2]%16 + '0');dis_onechar(9,0,':');dis_onechar(10,0,TIME[1]/16 + '0'); //·Ödis_onechar(11,0,TIME[1]%16 + '0');dis_onechar(12,0,':');dis_onechar(13,0,TIME[0]/16 + '0');//Ãëdis_onechar(14,0,TIME[0]%16 + '0');}
}

DS1302LCD1602显示相关推荐

  1. ORACLE-SQL笔记

    -- 首先,以超级管理员的身份登录oracle <span id="172_nwp" style="width: auto; height: auto; float ...

  2. Android开发从入门到精通

    Android开发从入门到精通 --Android经典教程 目 录 目 录 1 第一章 什么是Android 1 什么是Android - 嵌入式设备编程的历史-第一章(1) 1 开放手机联盟和And ...

  3. java操作跨页的word cell,“excle如何打印不出现断行“EXCEL中,如何不跨页断行打印或显示,谢谢...

    EXCEL中,如何不跨页断行打印或显示,谢谢 打印预览--页面设置--工作表--网格线(打勾) 试试! java导入excel 判断当前行有没有数据 工作中用到入excel一个方法,你还可以通过一些插 ...

  4. 浅显易懂 Makefile 入门 (08)— 默认 shell (/bin/sh)、命令回显、make参数(-n 只显示命令但不执行,-s 禁止所有回显)、单行命令、多行命令、并发执行

    1. shell 相关 1.1 默认 shell Makefile 所使用的命令是由 shell 命令行组成,他们是一条一条执行的. 多个命令之间要使用分号隔开,Makefile 中的任何命令都要以 ...

  5. Git 常用操作(3)- 本地分之显示、创建、切换、合并和删除操作

    1. 分支简介 Git 的 "master" 分支并不是一个特殊分支.它就跟其它分支完全没有区别.之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创 ...

  6. Python+OpenCV 图像处理系列(1)— Ubuntu OpenCV安装、图片加载、显示和保存

    Ubuntu 16.04 下安装 Opencv sudo apt-get install libopencv-dev sudo apt-get install python-opencv 或者使用 p ...

  7. Linux df -h 显示磁盘空间满,但实际未占用满——问题分析

    问题现象 工作中遇到一个问题,在 TX2 系统上,告警提示磁盘空间不够,如图所示 wohu@wohu:/$ df -h Filesystem Size Used Avail Use% Mounted ...

  8. 1 用python进行OpenCV实战之用OpenCV3实现图片载入、显示和储存

    code 将下面文档存为load_display_save.py #-*- coding:utf-8 -*- from __future__ import print_function #1 impo ...

  9. Visual Studio 中文显示乱码问题

    今天在码云上Fork了一个开源工程,编译环境是Visual Studio C++, 由于自己本地平台主要是进行Linux开发,平时文档编码格式都是utf-8的,编译没问题,但运行起来就是乱码,就像下图 ...

最新文章

  1. LeetCode 1024. 视频拼接
  2. python学习19--生成器
  3. java实现迷宫算法--转
  4. Java面试宝典系列之基础面试题String、变量、类与对象、集合类、SSH(一)
  5. NAnt简单介绍和我第一个例子
  6. BZOJ-2194 快速傅立叶之二
  7. 23种设计模式之门面模式
  8. 百度google关键字优化的小技巧
  9. 7-2 个位数统计 (15 分)
  10. Apollo使用ConfigBean装载配置
  11. C++函数调用时堆栈的变化情况
  12. @ControllerAdvice + @ExceptionHandler 处理 全部Controller层异常
  13. 理解图像中的低频分量和高频分量
  14. 【译】2021年国外十大AI自动写作软件评测
  15. win10分辨率设置正确但屏幕却被拉伸了,如何处理
  16. 如何留住你的员工——员工流失分析
  17. vue中使用ajax全局配置,jQuery和vue 设置ajax全局请求
  18. Apple Pay支付分享
  19. 怎么在数学表达式里输入小数点
  20. RXD与TXD如何连接

热门文章

  1. 零基础新手入门游戏建模,制作3D建模有哪些步骤流程!必备知识
  2. 小米10Pro手机双击android,被迫性价比?小米10pro入手体验
  3. ios上拉下划出现黑色背景的解决办法
  4. 十年前你绝对没有看懂的《大话西游》:十年前你笑了,十年后你哭了
  5. Premiere 1 - 新建项目
  6. 关于“Whitelabel Error Page”问题的解决
  7. 静态时序分析(STA)基础
  8. 2022icpc 济南站 持续补题
  9. 《一条狗的回家路》观后感
  10. 强大的文本编辑器:FSNotes for Mac