基于stc15f2k60s2芯片单片机编程(时钟DS1302)
**stc15f2k60s2芯片编程(时钟DS1302)**
main.c函数
#include <STC15F2K60S2.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void shumaguan();
uchar code abile[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};unsigned char saomiao[]={0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF};
uchar yi,er,san,si,wu ,liu,qi,ba;
extern uchar shijian[7];
void Delay100us();void readtime();
void dsinit();
void main()
{P2=0XC0;P0=0X01;P2=0XFF;P0=0XFF;P2=P2&0X1F|0XA0;P0=0X00;P2&=0X1F;dsinit();while(1){readtime();yi=shijian[2]/16;er=shijian[2]%16;san=10;si=shijian[1]/16;wu=shijian[1]%16;liu=10;qi=shijian[0]/16;ba=shijian[0]%16;shumaguan();Delay100us();}
}void shumaguan()
{unsigned char i;P2=P2&0x1f|0xe0;P0=0xff;P2=0x1f;P2=P2&0x1f|0xc0;P0=1<<i;P2=0x1f;P2=P2&0x1f|0xe0;P0=saomiao[i];P2=0x1f;i++;if(i==8) i=0;saomiao[0]=abile[yi];saomiao[1]=abile[er];saomiao[2]=abile[san];saomiao[3]=abile[si];saomiao[4]=abile[wu];saomiao[5]=abile[liu];saomiao[6]=abile[qi];saomiao[7]=abile[ba];
}void Delay100us() //@11.0592MHz
{unsigned char i, j;_nop_();_nop_();i = 2;j = 15;do{while (--j);} while (--i);
}
ds1302.c函数
#include <stc15f2k60s2.h>
#include "ds1302.h"
#include <intrins.h>sbit SCK=P1^7;
sbit SDA=P2^3;
sbit RST = P1^3; // DS1302¸´Î» void Write_Ds1302_Byte(unsigned char temp)
{unsigned char i;for (i=0;i<8;i++) { SCK=0;SDA=temp&0x01;temp>>=1; SCK=1;}
} void Write_Ds1302( unsigned char address,unsigned char dat )
{RST=0;_nop_();SCK=0;_nop_();RST=1; _nop_(); Write_Ds1302_Byte(address); Write_Ds1302_Byte(dat); RST=0;
}unsigned char Read_Ds1302 ( unsigned char address )
{unsigned char i,temp=0x00;RST=0;_nop_();SCK=0;_nop_();RST=1;_nop_();Write_Ds1302_Byte(address);for (i=0;i<8;i++) { SCK=0;temp>>=1; if(SDA)temp|=0x80; SCK=1;} RST=0;_nop_();RST=0;SCK=0;_nop_();SCK=1;_nop_();SDA=0;_nop_();SDA=1;_nop_();return (temp);
}void readtime(){unsigned char i;unsigned char address=0x81;Write_Ds1302(0x8e,0x00);for(i=0;i<7;i++){shijian[i]=Read_Ds1302(address);address=address+2;}Write_Ds1302(0x8e,0x80);
}
void dsinit()
{uchar i;uchar address=0x80;Write_Ds1302(0x8e,0x00); for(i=0;i<7;i++){Write_Ds1302(address,ds[i]);address=address+2;}Write_Ds1302(0x8e,0x80);}
ds1302.h函数
#ifndef __DS1302_H
#define __DS1302_H#define uchar unsigned char
#define uint unsigned int void Write_Ds1302_Byte(unsigned char temp);
void Write_Ds1302( unsigned char address,unsigned char dat );
unsigned char Read_Ds1302 ( unsigned char address );
uchar shijian[7];
uchar code ds[]={0x50,0x59,0x23,0x10,0x10,0x01,0x16};#endif
基于stc15f2k60s2芯片单片机编程(时钟DS1302)相关推荐
- 基于stc15f2k60s2芯片单片机编程(数码管)
**蓝桥杯stc15f2k60s2芯片编程(数码管)** ** ** (1)数码管显示01234567 ** ** #include <stc15f2k60s2.h>unsigned ch ...
- 基于stc15f2k60s2芯片单片机编程(串口+超声波)
通过单片机发送当前超声波测量的距离给串口1显示 (感谢广东某大神的帮助) #include <stc15f2k60s2.h> #include <intrins.h>void ...
- 基于stc15f2k60s2芯片单片机编程(闹铃)
用定时器中断写时钟加调节 1)关闭蜂鸣器.继电器等无关外设: 2)设备初始化时钟为 23 时 59 分 50 秒,闹钟提醒时间 0 时 0 分 0 秒. A.时间显示格式 2 3 - 5 9 - 5 ...
- 基于stc15f2k60s2芯片单片机编程(秒表)
用定时器做一个秒表,精确到0.1,S7按下,开始计时,S6按下清零 #include <stc15f2k60s2.h> #include <intrins.h> void Ti ...
- 基于stc15f2k60s2芯片单片机编程(EEPROM24C02实验)
主函数 #include <stc15f2k60s2.h> #include <intrins.h> #include <12.h> void shumaguan( ...
- 基于AVR系列单片机,DS1302时钟芯片的具体用法
一.引脚连接 二.DS1302初始化 void ds1302_init(void) {Pin1设置为低电平: /*RST脚置低*/Pin2设置为低电平 /*SCK脚置低*/Pin1设置为输出 /*RS ...
- 基于微型计算机系统的实时时钟设计,基于单片机的DS12C887时钟芯片应用研究
摘 要: 新型时钟芯片DS12C887具有计时精确.断电情况下运行十年以上不丢失资料等优点,在单片机计时系统中有着广泛应用.本文分析了DS12C887的功能特性,介绍了DS12C887与AT89C51 ...
- 基于Proteus学习单片机系列(七)——实时时钟DS1302
获取更多资源,请关注微信公众号:嵌入式基地 获取项目资源:公众号后台回复:单片机仿真 基于Proteus学习单片机系列(一)--点亮LED 基于Proteus学习单片机系列(二)--驱动数码管 基于P ...
- 【C51单片机学习笔记--DS1302时钟芯片蜂鸣器I2C总线AT24C02存储器】
C51单片机学习笔记–DS1302时钟芯片&&蜂鸣器&&I2C总线&&AT24C02存储器 文章目录 一.DS1302时钟芯片介绍 二.DS1302时钟 ...
最新文章
- 在PHP中模拟asp的response类
- 分布式一致Hash算法
- Python自动化开发学习15-css补充内容
- 一个成功敏捷团队的失败历程
- SQL Server XML性能优化(Best Practices)
- Python爬虫-代理ip池建立
- java基础学习(一)hashcode
- 【Spark Summit East 2017】可扩展性机器学习的特征哈希
- ext2.0 主体皮肤 (xtheme-black)
- python中的shallow copy 和 deep copy
- ios 去掉cell最后一条分割线
- GetHashCode 方法 并不能保证值唯一
- 刘意-Java基础视频(基础部分)笔记(一)
- aes解密流程图_aes流程图(apqp五个阶段流程图)
- 大量大数据如何进行查询
- 一个人的行动力,取决于他的底层信念。
- python将时间戳转换成北京时间、标准格式
- 【工具分享】任意坐标系CAD范围线多点配准及准确导入导入LSV
- java程序设计 秒表计时器_【Java】Java计时器(秒表)
- 网友8年观察楼市得出11大房价经验 高手在民间
热门文章
- C++抽奖(随机数+人名的不停闪烁)
- 新化学物质持久性、生物累积性和毒性的判定及登记要求..
- delphi2010泛型练习
- stm32F407-------RTC实时时钟
- 《趣谈网络协议》学习笔记DAY10
- pcl编译时 Could NOT find ClangFormat
- 易宝支付 下单失败! 失败原因: 业务接口维护中,请您稍候再试!
- 【Presto】URLDecoder: Illegal hex characters in escape (%) pattern 错误处理
- 【无标题】MATLAB引用REFPROP混合物的物性
- 新中大SE(ngpower)反月结、反记账