欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2202|回復: 0
收起左側

單片機時鐘程序DS1302 LCD1602基礎

[復制鏈接]
ID:594757 發表于 2021-5-30 20:35 | 顯示全部樓層 |閱讀模式
#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開放RST
delay10us();
  for(x=0;x<=7;x++)        //寫指令//將8位字節用高低電平方式表現出來
  {
    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++)        //讀數據   //高低電平方儲存將一個字節中
  {
    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)         //指令,寫入數據
{
DS1302_RST=0; //RST置零
DS1302_SCLK=0;//脈沖置零
  delay10us();;
DS1302_RST=1;
delay10us();
for(x=0;x<=7;x++)        //寫指令
{
   delay10us();
   if(ZhiLing & 0x01)  //將8位字節用高低電平方式表現出來
   {DS1302_IO =1;}
   else
   {DS1302_IO =0;}
   DS1302_SCLK=1;
   delay10us();
   DS1302_SCLK=0;
   ZhiLing>>=1;         
               }
  for(x=0;x<=7;x++)        //寫數據
  {
  delay10us();
  if(ShuJu & 0x01)        //將8位字節用高低電平方式表現出來
  {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)//數據處理
{

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

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

   ShiWei=x>>4;                  //提取高4位字節
   ShiWei=ShiWei%10;  //取余,提取數字
   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};//初始數據
DS1302_ZhiLing_XieRu(0x8e,0x00); //關閉寫入保護
DS1302_ZhiLing_XieRu(0x80,0x80); //暫停運行
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]); //小時
DS1302_ZhiLing_XieRu(FenZhong,DS1302_ChuShiShuJu[5]); //分鐘
DS1302_ZhiLing_XieRu(miao,    DS1302_ChuShiShuJu[6]); //秒
DS1302_ZhiLing_XieRu(0x8e,0x80); //開啟寫入保護
}
void DS1302_KaiShiYunXing()//開始運行
{  
   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);

}





時鐘(DS1302)(LCD1602)改進版.zip

84.03 KB, 下載次數: 27, 下載積分: 黑幣 -5

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表