資源簡介
這是一個基于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
評論
共有 條評論