-
大小: 72KB文件類型: .zip金幣: 2下載: 0 次發布日期: 2021-06-03
- 語言: 其他
- 標簽:
資源簡介
基于DS1302、89C52、LCD1602實時時鐘設計及其Proteus仿真

代碼片段和文件信息
#include?
//DS1302相關的變量和引腳定義
unsigned?char?code?digit[10]={“0123456789“};???//定義字符數組顯示數字
sbit?DATA=P1^7;??????//位定義1302芯片的接口,數據輸出端定義在P1.1引腳
sbit?RST=P1^5;??????//位定義1302芯片的接口,復位端口定義在P1.1引腳
sbit?SCLK=P1^6;????//位定義1302芯片的接口,時鐘輸出端口定義在P1.1引腳
//sbit?DATA=P3^4;??????//位定義1302芯片的接口,數據輸出端定義在P1.1引腳
//sbit?RST=P3^5;??????//位定義1302芯片的接口,復位端口定義在P1.1引腳
//sbit?SCLK=P3^6;????//位定義1302芯片的接口,時鐘輸出端口定義在P1.1引腳
unsigned?char?secondminutehourdaymonthyear;??????//分別儲存秒、分、小時,日,月,年
unsigned?char?ReadValue;???//儲存從1302讀取的數據
?
/*****************************************************
函數功能:延時若干微秒
入口參數:n
***************************************************/?
void?delaynus(unsigned?char?n)
{
?unsigned?char?i;
?for(i=0;i }
/*****************************************************
函數功能:向1302寫一個字節數據
入口參數:x
***************************************************/?
void?Write1302(unsigned?char?dat)
{
??unsigned?char?i;?
??SCLK=0;????????????//拉低SCLK,為脈沖上升沿寫入數據做好準備
??delaynus(2);???????//稍微等待,使硬件做好準備
??for(i=0;i<8;i++)??????//連續寫8個二進制位數據
????{
?????DATA=dat&0x01;????//取出dat的第0位數據寫入1302
?????delaynus(2);???????//稍微等待,使硬件做好準備
?????SCLK=0;???????????
?????delaynus(2);??????//稍微等待,使硬件做好準備
?????SCLK=1;????????? //上升沿寫入數據
??SCLK=0; ?//再拉低,為下一次做準備
?????dat>>=1;??????????//將dat的各數據位右移1位,準備寫入下一個數據位
???}
?
?}
/*****************************************************
函數功能:從1302讀一個字節數據
入口參數:x
***************************************************/?
?unsigned?char?Read1302(void)
?{
???unsigned?char?idat;
???delaynus(2);???????//稍微等待,使硬件做好準備
?for(i=0;i<8;i++)???//連續讀8個二進制位數據
??{
??
????dat>>=1;???????//將dat的各數據位右移1位,因為先讀出的是字節的最低位
????if(DATA==1)????//如果讀出的數據是1
????dat|=0x80;????//將1取出,寫在dat的最高位
??? SCLK=1;???????//將SCLK置于高電平,為下降沿讀出,數據在內存當中故上升沿寫對其無效
????delaynus(2);??//稍微等待
????SCLK=0;???????//拉低SCLK,形成脈沖下降沿
????delaynus(2);??//稍微等待
???}??
??return?dat;????????//將讀出的數據返回
}?
?
/*****************************************************
函數功能:根據命令字,從1302讀取一個字節數據
入口參數:x
***************************************************/?
unsigned?char??ReadSet1302(unsigned?char?Cmd)
?{
??unsigned?char?dat;
??RST=0;?????????????????//拉低RST
??SCLK=0;????????????????//確保寫數居前SCLK被拉低
??RST=1;?????????????????//啟動數據傳輸
??Write1302(Cmd);???????//寫入命令字
??dat=Read1302();???????//讀出數據
??SCLK=1;??????????????//將時鐘電平置于已知狀態
??RST=0;???????????????//禁止數據傳遞
??return?dat;??????????//將讀出的數據返回
}
/**************************************************************
以下是1302數據的顯示程序
**************************************************************/
/*****************************************************
函數功能:顯示秒
入口參數:x
***************************************************/?
void?DisplaySecond(unsigned?char?x)
{
?unsigned?char?ij;?????//jkl分別儲存溫度的百位、十位和個位
?i=x/10;//取十位
?j=x%10;//取個位?????
?WriteAddress(0x4c);????//寫顯示地址將在第2行第7列開始顯示
?WriteData(digit[i]);????//將百位數字的字符常量寫入LCD
?WriteData(digit[j]);????//將
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-06-07?08:49??電子鐘\
?????目錄???????????0??2012-06-07?08:49??電子鐘\51程序\
?????文件????????7474??2012-06-06?21:30??電子鐘\51程序\DS1302.c
?????文件?????????743??2012-06-06?19:43??電子鐘\51程序\DS1302.h
?????文件???????11444??2012-06-06?21:30??電子鐘\51程序\DS1302.LST
?????文件???????13130??2012-06-06?21:30??電子鐘\51程序\DS1302.OBJ
?????文件????????5353??2012-06-06?21:04??電子鐘\51程序\LM1602.c
?????文件?????????494??2012-06-06?19:43??電子鐘\51程序\LM1602.h
?????文件????????8498??2012-06-06?21:30??電子鐘\51程序\LM1602.LST
?????文件????????9147??2012-06-06?21:30??電子鐘\51程序\LM1602.OBJ
?????文件?????????290??2012-06-06?19:45??電子鐘\51程序\main.c
?????文件????????1235??2012-06-06?21:30??電子鐘\51程序\main.LST
?????文件????????3125??2012-06-06?21:30??電子鐘\51程序\main.OBJ
?????文件???????22072??2012-06-06?21:30??電子鐘\51程序\ZOU?DS1302
?????文件????????2646??2012-06-06?21:30??電子鐘\51程序\ZOU?DS1302.hex
?????文件??????????76??2012-06-06?21:30??電子鐘\51程序\ZOU?DS1302.lnp
?????文件???????21189??2012-06-06?21:30??電子鐘\51程序\ZOU?DS1302.M51
?????文件????????1731??2012-06-06?21:27??電子鐘\51程序\ZOU?DS1302.Opt
?????文件???????27899??2012-06-06?21:30??電子鐘\51程序\ZOU?DS1302.plg
?????文件????????2302??2012-06-06?19:46??電子鐘\51程序\ZOU?DS1302.Uv2
?????文件????????1730??2012-06-06?21:17??電子鐘\51程序\ZOU?DS1302_Opt.Bak
?????文件????????2298??2012-06-06?17:38??電子鐘\51程序\ZOU?DS1302_Uv2.Bak
?????目錄???????????0??2012-06-07?08:48??電子鐘\仿真圖\
?????文件??????102169??2012-06-06?20:15??電子鐘\仿真圖\Last?Loaded?ZOU?ds1302.DBK
?????文件??????102964??2012-06-06?22:32??電子鐘\仿真圖\ZOU?ds1302.DSN
?????文件?????????935??2012-06-06?22:32??電子鐘\仿真圖\ZOU?ds1302.PWI
- 上一篇:24to8Colors.zip
- 下一篇:labview實現電壓采集
評論
共有 條評論