找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2141|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)時(shí)鐘程序DS1302 LCD1602基礎(chǔ)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:594757 發(fā)表于 2021-5-30 20:35 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include"reg52.h"
#include "DS1302.h"
#include "LCD1602.h"


uint x;


extern void delay10us(void)   //誤差 0us
{
    unsigned char a,b;
    for(b=1;b>0;b--)
        for(a=1;a>0;a--);
}




uchar DS1302_ZhiLing_DuQu(uchar dat)        //指令,讀取
{
uchar K;
DS1302_RST=0; //RST置零
DS1302_SCLK=0;//脈沖置零

DS1302_RST=1;          //0x80=10000000開(kāi)放RST
delay10us();
  for(x=0;x<=7;x++)        //寫指令//將8位字節(jié)用高低電平方式表現(xiàn)出來(lái)
  {
    delay10us();
    if(dat & 0x01)
    {DS1302_IO =1;}  
    else
    {DS1302_IO =0;}   
    DS1302_SCLK=1;
    delay10us();
    DS1302_SCLK=0;
    dat>>=1;      }   
  for(x=0;x<=7;x++)        //讀數(shù)據(jù)   //高低電平方儲(chǔ)存將一個(gè)字節(jié)中
  {
    K>>=1;         //必須在前面,只移位7次不是8次,從第0移到7;不能移位8次
    delay10us();
    if(DS1302_IO)
    {K|=0x80;}         
    DS1302_SCLK=1;
    delay10us();
    DS1302_SCLK=0;
    delay10us();
                      }                                       
    DS1302_RST=0;
   return K;
}
void DS1302_ZhiLing_XieRu(uchar ZhiLing,uchar ShuJu)         //指令,寫入數(shù)據(jù)
{
DS1302_RST=0; //RST置零
DS1302_SCLK=0;//脈沖置零
  delay10us();;
DS1302_RST=1;
delay10us();
for(x=0;x<=7;x++)        //寫指令
{
   delay10us();
   if(ZhiLing & 0x01)  //將8位字節(jié)用高低電平方式表現(xiàn)出來(lái)
   {DS1302_IO =1;}
   else
   {DS1302_IO =0;}
   DS1302_SCLK=1;
   delay10us();
   DS1302_SCLK=0;
   ZhiLing>>=1;         
               }
  for(x=0;x<=7;x++)        //寫數(shù)據(jù)
  {
  delay10us();
  if(ShuJu & 0x01)        //將8位字節(jié)用高低電平方式表現(xiàn)出來(lái)
  {DS1302_IO =1;}
  else
  {DS1302_IO =0;}
  DS1302_SCLK=1;
  delay10us();
  DS1302_SCLK=0;  
  ShuJu >>=  1;
               }
  delay10us();
  DS1302_RST=0;              
}


void DS1302_LCD1602_DuQU(uchar MingLing)//數(shù)據(jù)處理
{

   uchar GeiWei,ShiWei,x;
   uchar ShuZi1[]="0123456789";
   x=DS1302_ZhiLing_DuQu(MingLing);// 將命令指令轉(zhuǎn)換成讀取命令

   if(MingLing==0x8B)           //針對(duì)星期,星期用4位BCD可以應(yīng)付
   {
    GeiWei=x&0x0f;
    GeiWei=GeiWei%10;
        LCD1602_XieShuJu(ShuZi1[GeiWei]); }
   else
  {
   GeiWei=x&0x0f;                //必要提取低4位字節(jié)
   GeiWei=GeiWei%10;   //取余,提取數(shù)字

   ShiWei=x>>4;                  //提取高4位字節(jié)
   ShiWei=ShiWei%10;  //取余,提取數(shù)字
   LCD1602_XieShuJu(ShuZi1[GeiWei]);
   LCD1602_XieShuJu(ShuZi1[ShiWei]);
                                           }
}




//2020-04-26  00:00:00
void DS1302_ChuShiHua()          //DS1302初始化
{                         //2020-04-26 星期7 00:00:00
char DS1302_ChuShiShuJu[]={0x20,0x04,0x26,0x07,0x00,0x00,0x00};//初始數(shù)據(jù)
DS1302_ZhiLing_XieRu(0x8e,0x00); //關(guān)閉寫入保護(hù)
DS1302_ZhiLing_XieRu(0x80,0x80); //暫停運(yùn)行
DS1302_ZhiLing_XieRu(Nian,    DS1302_ChuShiShuJu[0]); //年份
DS1302_ZhiLing_XieRu(Yue,     DS1302_ChuShiShuJu[1]); //月
DS1302_ZhiLing_XieRu(Ri,      DS1302_ChuShiShuJu[2]); //日
DS1302_ZhiLing_XieRu(XingQi,  DS1302_ChuShiShuJu[3]);//星期7
DS1302_ZhiLing_XieRu(XiaoShi, DS1302_ChuShiShuJu[4]); //小時(shí)
DS1302_ZhiLing_XieRu(FenZhong,DS1302_ChuShiShuJu[5]); //分鐘
DS1302_ZhiLing_XieRu(miao,    DS1302_ChuShiShuJu[6]); //秒
DS1302_ZhiLing_XieRu(0x8e,0x80); //開(kāi)啟寫入保護(hù)
}
void DS1302_KaiShiYunXing()//開(kāi)始運(yùn)行
{  
   LCD1602_ShuRuMoShi(0,0);
   LCD1602_WeiXuanXianShi(2,15);
   DS1302_LCD1602_DuQU(0x81);

   delay10us();        

   LCD1602_WeiXuanXianShi(2,12);
   DS1302_LCD1602_DuQU(0x83);


   LCD1602_WeiXuanXianShi(2,9);
   DS1302_LCD1602_DuQU(0x85);


   LCD1602_WeiXuanXianShi(2,5);                                                   
   DS1302_LCD1602_DuQU(0x8B);

   LCD1602_WeiXuanXianShi(1,9);
   DS1302_LCD1602_DuQU(0x87);


   LCD1602_WeiXuanXianShi(1,6);
   DS1302_LCD1602_DuQU(0x89);

   LCD1602_WeiXuanXianShi(1,3);
   DS1302_LCD1602_DuQU(0x8D);

}





時(shí)鐘(DS1302)(LCD1602)改進(jìn)版.zip

84.03 KB, 下載次數(shù): 27, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表