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

#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. ubuntu 安装docker_Docker: 教程04 - (初始化安装之在 Ubuntu 安装Docker CE)
  2. UI+Class Object
  3. with...as...
  4. 063_提升Hoisting
  5. java final 变量 回收_在Java中将final用于变量会改善垃圾回收吗?
  6. 手机修图软件测试,照片秒变高清修图软件APP
  7. Linux笔记19.postfix邮件服务器配置安装
  8. ASP实现AJAX的几种方式!
  9. 学习了1!+...10!
  10. 从源码角度分析RocketMQ同步刷盘与异步刷盘的异同
  11. 我的软考高项考试之旅
  12. Theano与其他深度学习框架的比较
  13. 史上最简单的 GitHub 教程
  14. wine android模拟器,Mac  下运行window 软件,(wine 模拟器)
  15. 该去大公司做螺丝钉,还是去小公司发光发热?
  16. dell r620 升级idrac_秋明 | dell 720/720xd服务器centos7下idrac固件升级[ipmi,vnc等相关操作]...
  17. ps、markman、cutterman下载地址
  18. 为什么需要工单系统?
  19. 全志平台boot框架中增加设备驱动过程分析
  20. 视频监控客户端开发(IP Camera)总结

热门文章

  1. 《大话数据结构》pdf
  2. Redis哨兵机制以及发布订阅
  3. proteus数码管共阳共阴区别
  4. ShadowSSdt HOOK
  5. Brat标注工具(本地)安装及使用
  6. 苹果WWDC 2016总结:四大OS更新
  7. 基于matlab的离散系统变换域分析实验,数字信号处理实验 离散时间系统的变换域分析.docx...
  8. Photoshop中怎么画虚线
  9. matlab中cplxpair是什么,colon_HCOLON什么意思
  10. RestFul是什么?怎样理解RestFul?