-
大小: 80KB文件類(lèi)型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-06-16
- 語(yǔ)言: 其他
- 標(biāo)簽: lcd顯示??數(shù)字時(shí)鐘??
資源簡(jiǎn)介
protues仿真完好通過(guò),程序代碼適合初學(xué)者,lcd采用1602,對(duì)于學(xué)習(xí)液晶和DS1302有很好的幫助

代碼片段和文件信息
/***************************************************/?
#include?????//包含單片機(jī)寄存器的頭文件
#include???//包含_nop_()函數(shù)定義的頭文件
#define?uchar?unsigned?char
#define?uint??unsigned?int
uchar?tempcount=0;
/***********************************************************************
以下是DS1302芯片的操作程序
************************************************************************/
uchar?code?digit[10]={“0123456789“};???//定義字符數(shù)組顯示數(shù)字
uchar?*digit1[]={“SUN““MON““TUS““WEN““THU““FRI““SAT“};?//周日,周一到周六
sbit?DATA=P3^7;???//位定義1302芯片的接口,數(shù)據(jù)輸出端定義在P1.1引腳
sbit?RST=P3^5;????//位定義1302芯片的接口,復(fù)位端口定義在P1.1引腳
sbit?SCLK=P3^6;???//位定義1302芯片的接口,時(shí)鐘輸出端口定義在P1.1引腳
sbit?key1=P3^0; ??//停止按鈕
sbit?key2=P3^1; ??//開(kāi)始按鈕
sbit?add=P2^4; ??//加值
sbit?subtract=P2^5;//減值
sbit?tiaoshi=P3^4;?//定位
/*****************************************************
函數(shù)功能:延時(shí)若干微秒
入口參數(shù):n
***************************************************/?
void?delaynus(uchar?n)
{
?uchar?i;
?for(i=0;i ??????;
}
/*****************************************************
函數(shù)功能:向1302寫(xiě)一個(gè)字節(jié)數(shù)據(jù)
入口參數(shù):x
***************************************************/?
void?Write1302(uchar?dat)
{
??uchar?i;?
??SCLK=0;???????????? //拉低SCLK,為脈沖上升沿寫(xiě)入數(shù)據(jù)做好準(zhǔn)備
??delaynus(2);??????? //稍微等待,使硬件做好準(zhǔn)備
??for(i=0;i<8;i++)?????? //連續(xù)寫(xiě)8個(gè)二進(jìn)制位數(shù)據(jù)
????{
????DATA=dat&0x01;???? //取出dat的第0位數(shù)據(jù)寫(xiě)入1302
delaynus(2);????????//稍微等待,使硬件做好準(zhǔn)備
SCLK=1;?????????????//上升沿寫(xiě)入數(shù)據(jù)
delaynus(2);?????? //稍微等待,使硬件做好準(zhǔn)備
SCLK=0;??????????? //重新拉低SCLK,形成脈沖
dat>>=1;?????????? //將dat的各數(shù)據(jù)位右移1位,準(zhǔn)備寫(xiě)入下一個(gè)數(shù)據(jù)位
??}
?}
/*****************************************************
函數(shù)功能:根據(jù)命令字,向1302寫(xiě)一個(gè)字節(jié)數(shù)據(jù)
入口參數(shù):Cmd,儲(chǔ)存命令字;dat,儲(chǔ)存待寫(xiě)的數(shù)據(jù)
***************************************************/?
void?WriteSet1302(uchar?Cmduchar?dat)
?{
????RST=0;???????????//禁止數(shù)據(jù)傳遞
????SCLK=0;??????????//確保寫(xiě)數(shù)居前SCLK被拉低
RST=1;???????????//啟動(dòng)數(shù)據(jù)傳輸
delaynus(2);?????//稍微等待,使硬件做好準(zhǔn)備
Write1302(Cmd);??//寫(xiě)入命令字
Write1302(dat);??//寫(xiě)數(shù)據(jù)
SCLK=1;??????????//將時(shí)鐘電平置于已知狀態(tài)
RST=0;???????????//禁止數(shù)據(jù)傳遞
?}
/*****************************************************
函數(shù)功能:從1302讀一個(gè)字節(jié)數(shù)據(jù)
入口參數(shù):x
***************************************************/?
?uchar?Read1302(void)
?{
??? uchar?idat;
delaynus(2);???????//稍微等待,使硬件做好準(zhǔn)備
for(i=0;i<8;i++)???//連續(xù)讀8個(gè)二進(jìn)制位數(shù)據(jù)
?{
??? dat>>=1;???????//將dat的各數(shù)據(jù)位右移1位,因?yàn)橄茸x出的是字節(jié)的最低位
if(DATA==1)????//如果讀出的數(shù)據(jù)是1
?dat|=0x80;????//將1取出,寫(xiě)在dat的最高位
?SCLK=1;???????//將SCLK置于高電平,為下降沿讀出
?delaynus(2);??//稍微等待
?SCLK=0;???????//拉低SCLK,形成脈沖下降沿
?delaynus(2);??//稍微等待
??} ?
?? return?dat;????????//將讀出的數(shù)據(jù)返回
}??
/*****************************************************
函數(shù)功能:根據(jù)命令字,從1302讀取一個(gè)字節(jié)數(shù)據(jù)
入口參數(shù):Cmd
***************************************************/?
uchar??ReadSet1302(uchar?Cmd)
?{
??uchar?dat;
??RST=0;?????????????????//拉低RST
??SCLK=0;????????????????//確保寫(xiě)數(shù)居前SCLK被拉低
??RST=1;?????????????????//啟動(dòng)數(shù)據(jù)傳輸
??Write1302(Cmd);????????//寫(xiě)入命令字
??dat=Read1302();????????//讀出數(shù)據(jù)
??SCLK=1;????????????????//將時(shí)鐘電平置于已知狀態(tài)
??RST=0;?????????????????//禁止數(shù)據(jù)傳遞
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-03-30?13:27??LCD數(shù)字時(shí)鐘\
?????文件???????94333??2013-03-29?14:55??LCD數(shù)字時(shí)鐘\Last?Loaded?lcd數(shù)字時(shí)鐘.DBK
?????文件???????17303??2013-03-30?13:27??LCD數(shù)字時(shí)鐘\LCDtimer.c
?????文件???????28353??2013-03-30?13:25??LCD數(shù)字時(shí)鐘\LCDtimer.LST
?????文件???????25469??2013-03-30?13:25??LCD數(shù)字時(shí)鐘\LCDtimer.OBJ
?????文件???????97607??2013-03-30?13:27??LCD數(shù)字時(shí)鐘\lcd數(shù)字時(shí)鐘.DSN
?????文件?????????935??2013-03-30?13:27??LCD數(shù)字時(shí)鐘\lcd數(shù)字時(shí)鐘.PWI
?????文件???????21555??2013-03-30?13:25??LCD數(shù)字時(shí)鐘\數(shù)字時(shí)鐘
?????文件????????5183??2013-03-30?13:25??LCD數(shù)字時(shí)鐘\數(shù)字時(shí)鐘.hex
?????文件??????????48??2013-03-30?13:25??LCD數(shù)字時(shí)鐘\數(shù)字時(shí)鐘.lnp
?????文件???????30721??2013-03-30?13:25??LCD數(shù)字時(shí)鐘\數(shù)字時(shí)鐘.M51
?????文件????????9072??2013-03-30?13:25??LCD數(shù)字時(shí)鐘\數(shù)字時(shí)鐘.plg
?????文件???????56284??2013-03-30?13:27??LCD數(shù)字時(shí)鐘\數(shù)字時(shí)鐘.uvopt
?????文件???????13253??2013-03-29?13:53??LCD數(shù)字時(shí)鐘\數(shù)字時(shí)鐘.uvproj
?????文件???????55777??2013-03-29?14:55??LCD數(shù)字時(shí)鐘\數(shù)字時(shí)鐘_uvopt.bak
?????文件???????????0??2013-03-29?10:04??LCD數(shù)字時(shí)鐘\數(shù)字時(shí)鐘_uvproj.bak
評(píng)論
共有 條評(píng)論