• 大小: 76KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: 其他
  • 标签: 智能闹钟  

资源简介

这是一个基于STC的智能闹钟程序,实现时间显示与闹钟响铃,闹钟响铃,需摇摆停止停止响铃。可以时间设置、闹钟时间设置,摇摆次数设置。

资源截图

代码片段和文件信息

#include 
#include “DS1302.h“    
#define uchar unsigned char
#define uint unsigned int
sbit SCLK=P1^2;    //DS1302时钟芯片
sbit SDA=P1^3;
sbit RST=P1^4; //秒的第一位控制是否起振   1为停止起振
 //     秒  分   时   日   月  星期  年      //时的第一位选择24/12小时制 1为12小时制BIT5 为AM/PM 位,低电平标示AM,
//uchar code write_addr[]={00x800x820x840x860x880x8a0x8c0x8e0x90};   //写的地址
//uchar code read_addr []={00x810x830x850x870x890x8b0x8d0x8f0x91};   //读的地址
/*************
   函数声明
*************/
uchar DS1302Read(uchar cmd);
void DS1302Write(uchar cmd uchar dat);
void DS1302WriteByte(uchar dat);
uchar DS1302ReadByte();
void DS1302_burst_Read(unsigned char *rstr);
void DS1302_burstWrite(unsigned char *wstr);
void Init_DS1302(void);
void Ht1621_delay_10us(uint n); // - - 1微秒的延时子程序
/*--------------------------------------------------------------
write_addr[8]:
写保护寄存器的BIT7:WP 是写保护位,工作时,出WP 外的其他位都置为
0,对时钟/日历寄存器或RAM 进行写操作之前,WP 必须为0,当WP 为高电
平的时候,不能对任何时钟/日历寄存器或RAM 进行写操作。
--------------------------------------------------------------*/

/*--------------------------------------------------------------
write_addr[9]:
高4位位1010时使用涓流充电,其他则无涓流充电
DS:01则一个二极管,10则两个二极管,如果是00 或11,无涓流充电能力
RS:(00)没电阻、(01)2K电阻、(10)4K电阻、(11)8K电阻
--------------------------------------------------------------*/
void delayus(uint n) // - - 1微秒的延时子程序
{    
while(--n);
}
/************************************************
*名称: uchar DS1302Read()
*说明: 先写地址,后读数据
*功能: 从cmd相应地址中读取一个字节的数据
*调用: DS1302WriteByte()DS1302ReadByte()
*输入: cmd:要写入的控制字节
*输出: dat:读取的数据
*************************************************/
uchar DS1302Read(uchar cmd)
{
uchar dat;
RST=0; //初始 CE线置为0
SCLK=0;//初始时钟线置为0
RST=1; //初始 CE置为 1,传输开始
DS1302WriteByte(cmd);//传输命令字,要读取的时间/日历地址
dat=DS1302ReadByte();//读取要得到的时间/日期
SCLK=1;//时钟线拉高
RST=0; //读取结束,CE置为 0,结束数据的传输
return dat;//返回得到的时间/日期
}
/************************************************
*名称: DS1302Write
*说明: 先写地址,后写数据
*功能: 向cmd相应地址中写一个字节的数据
*调用: DS1302WriteByte()
*输入: cmd:要写入的控制字dat:要写入的数据
*输出: 无
*************************************************/
void DS1302Write(uchar cmd uchar dat)
{
RST=0; //初始 CE线置为 0
SCLK=0; //初始时钟线置为0
RST=1; //初始 CE置为 1,传输开始
DS1302WriteByte(cmd); //传输命令字,要写入的时间/日历地址
DS1302WriteByte(dat); //写入要修改的时间/日期
SCLK=1; //时钟线拉高
RST=0; //读取结束,CE置为0,结束数据的传输
}
/************************************************
*名称: DS1302WriteByte
*说明: 无
*功能: 写入8bit数据
*调用: delayus()
*输入: dat:要写入的数据
*输出: 无
*************************************************/
void DS1302WriteByte(uchar dat)
{
uchar i;
SCLK=0;//初始时钟线置为0
delayus(2);
for(i=0;i<8;i++)//开始传输8个字节的数据
{
SDA=dat&0x01;//取最低位,注意 DS1302的数据和地址都是从最低位开始传输的
delayus(2);
SCLK=1;//时钟线拉高,制造上升沿,SDA的数据被传输
delayus(2);
SCLK=0;//时钟线拉低,为下一个上升沿做准备
dat>>=1;//数据右移一位,准备传输下一位数据
}
}
/************************************************
*名称: DS1302ReadByte()
*说明: 无
*功能: 读取8bit的数据
*调用: delayus()
*输入: 无
*输出: da

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        6271  2018-03-22 19:44  智能闹钟 - 3-22\DS1302.c
     文件         361  2018-03-22 19:44  智能闹钟 - 3-22\DS1302.H
     文件       11308  2018-03-23 15:03  智能闹钟 - 3-22\DS1302.LST
     文件        8575  2018-03-23 15:03  智能闹钟 - 3-22\DS1302.OBJ
     文件        4531  2018-03-22 22:17  智能闹钟 - 3-22\ht1621.c
     文件         532  2018-03-16 19:41  智能闹钟 - 3-22\HT1621.H
     文件        8185  2018-03-23 15:03  智能闹钟 - 3-22\ht1621.LST
     文件        9833  2018-03-23 15:03  智能闹钟 - 3-22\ht1621.OBJ
     文件        8116  2018-03-17 15:05  智能闹钟 - 3-22\main - 副本.c
     文件       15363  2018-03-23 15:08  智能闹钟 - 3-22\main.c
     文件       38651  2018-03-23 15:05  智能闹钟 - 3-22\main.LST
     文件       28125  2018-03-23 15:05  智能闹钟 - 3-22\main.OBJ
     文件       39611  2018-03-23 15:05  智能闹钟 - 3-22\naozhong
     文件        6581  2018-03-23 15:05  智能闹钟 - 3-22\naozhong.hex
     文件          74  2018-03-23 15:05  智能闹钟 - 3-22\naozhong.lnp
     文件       42838  2018-03-23 15:05  智能闹钟 - 3-22\naozhong.M51
     文件        2619  2018-03-23 15:08  智能闹钟 - 3-22\naozhong.plg
     文件       59121  2018-03-23 15:08  智能闹钟 - 3-22\naozhong.uvopt
     文件       13591  2018-03-22 22:33  智能闹钟 - 3-22\naozhong.uvproj
     文件       60105  2018-03-22 22:45  智能闹钟 - 3-22\naozhong_uvopt.bak
     文件       13592  2018-03-22 19:49  智能闹钟 - 3-22\naozhong_uvproj.bak

评论

共有 条评论