问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ds1302与1602的一些问题

发布网友 发布时间:2022-08-21 03:35

我来回答

2个回答

热心网友 时间:2023-11-17 08:57

楼主按照你的程序进行了修改,可以完成要求

错误之处

1。   、、//下面是ds1302的驱动程序 

这里不应该有、号,可能是笔误

2。在读函数之中

uchar read_add(uchar add)

{

   uchar i=0,temp=0;

  ce=0;

  sclk=0;

  ce=1;

  for(i=0;i<8;i++)

    {

    io=add&0x01;

    sclk=0;

    sclk=1;

    add>>=1; 

 }

   for(i=0;i<8;i++)

     {

    sclk=1;

    sclk=0;        

    if(io)

      {

     temp|=0x01<<i;

   }                         

                     //这里少了括号

                     //这个括号应该是结束for循环的

  ce=0;

  temp=temp/16*10+temp%16;

  return temp; 

  }           //这个括号位置错误,应该在上面

}

3。读函数的寄存器地址错误

display(1,3,tabb[read_add(0x84)/10]); //应该为0x85

  display(1,4,tabb[read_add(0x84)%10]);//同上

  display(1,5,':');

 display(1,6,tabb[read_add(0x82)/10]);//应该为0x83

  display(1,7,tabb[read_add(0x82)%10]);//同上

  display(1,8,':');

 display(1,9,tabb[read_add(0x80)/10]);//应该为0x81

  display(1,10,tabb[read_add(0x80)%10]);//同上

以下是调试过的程序

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

uchar code tabb[]={'0','1','2','3','4','5','6','7','8','9'};

sbit rs=P2^ 6;

sbit rw=P2^5;

sbit lcde=P2^7;

sbit sclk=P3^6;

sbit io=P3^4;

sbit ce=P3^5; 

              //下面是1602的驱动程序

void delay(uint z)

{

  uint x,y;

  for(x=z;x>0;x--)

   for(y=110;y>0;y--);

}

void write_com(uchar com,bit i)

{

  rs=i;

  P0=com;

  delay(5);

  lcde=1;

  delay(5);

  lcde=0;

}

void lcd1602init()

{ rw=0;

  write_com(0x01,0);

  write_com(0x02,0);

  write_com(0x06,0);

  write_com(0x0c,0);

  write_com(0x38,0);

 

}

void display(uchar x,uchar y,uchar date)

{

 x&=0x01;

 y&=0x0f;

 if(x)

  {

   y+=0x40;

  }

  y+=0x80;

  write_com(y,0);

  write_com(date,1);

}

        //下面是ds1302的驱动程序

void write_add(uchar add,uchar date)

{

  uchar i;

  ce=0;

  sclk=0;

  ce=1;

  for(i=0;i<8;i++)

    {

    io=add&0x01;

    sclk=0;

    sclk=1;

    add>>=1; 

 }

 for(i=0;i<8;i++)

    {

    io=date&0x01;

    sclk=0;

    sclk=1;

    date>>=1; 

 }

   ce=0;

}

uchar read_add(uchar add)

{

   uchar i=0,temp=0;

 

 

  ce=1;

  for(i=0;i<8;i++)

    {

    io=add&0x01;

    sclk=0;

    sclk=1;

    add>>=1; 

 }

   for(i=0;i<8;i++)

     {

    

    sclk=1;

       

 sclk=0;

      if(io)

      {

     temp|=0x01<<i;

      }

   }

   ce=0;

  temp=temp/16*10+temp%16;

  return temp; 

 

}

void ds1302init()

{

  ce=0;

  write_add(0x8e,0x00);

  write_add(0x84,0x00);

  write_add(0x8c,0x10);

  write_add(0x88,0x08);

  write_add(0x86,0x01);

  write_add(0x84,0x21);

  write_add(0x82,0x41);

  write_add(0x80,0x00);

  write_add(0x8a,0x07);

  write_add(0x90,0xa5);

  write_add(0x8e,0x80);

}

void main()

{

 uchar temp=0;

  lcd1602init();

  ds1302init();

  while(1)

  {

    display(0,0,'2');

  display(0,1,'0');

  delay(1);

 display(0,2,tabb[read_add(0x8d)/10]);    //这里显示年

  delay(1);

    display(0,3,tabb[read_add(0x8d)%10]);

  display(0,4,'-');

  delay(1);

  display(0,5,tabb[read_add(0x89)/10]);  //月

  delay(1);  

  display(0,6,tabb[read_add(0x89)%10]);

  display(0,7,'-');

  delay(1);

  display(0,8,tabb[read_add(0x87)/10]);  //日

  delay(1);  

  display(0,9,tabb[read_add(0x87)%10]);

  display(0,11,'D');

  display(0,12,'a');

  display(0,13,'y');

  display(0,14,':');

  delay(1);

  display(0,15,tabb[read_add(0x8b)%10]);    ///星期

  display(1,0,'S');

  display(1,1,'C');

  display(1,2,'F');

  delay(1);

  display(1,3,tabb[read_add(0x85)/10]);

  delay(1);

  display(1,4,tabb[read_add(0x85)%10]);

  delay(1);

  display(1,5,':');

  display(1,6,tabb[read_add(0x83)/10]);

  delay(1);

  display(1,7,tabb[read_add(0x83)%10]);

  display(1,8,':');

  delay(1);

  display(1,9,tabb[read_add(0x81)/10]);

  delay(1);

  display(1,10,tabb[read_add(0x81)%10]);

  

  }

}

热心网友 时间:2023-11-17 08:57

我这有1302,和1602的初始化以及设置的一些函数,把你邮箱给我,我给你发过去看看应该能解决问题
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
钢琴谱一小段有三行怎么弹?最上是高音,然后还是高音,最后是低音?我用来... 请问跨专业考研都需要哪些方面的准备啊? 2013109期福彩双色球开奖号码 vivoy3手机如何长截屏 男友贪污也是网上追逃犯我还可以和他在一起吗 网上追逃犯罪嫌疑人住家里算是窝藏或是包庇吗 ps3海贼无双普通版有下载卡的吗? 关于PS3版海贼王无双和北斗神拳无双 PS3现在海贼无双3.55破解能玩了吗 我看网上说有破解补丁 谁能给个地址... 现在网上下载得到PS3的海贼无双。铁拳6,。高达无双3等游戏吗 JSQ23_D1602S电池盖在哪个位置 D1602到石家庄哪个站 在Excel单元格中怎么画表格 小学四年级数学上册《角的度量》教学反思 急求古诗翻译 为什么说寻陆鸿渐不遇是古体诗 这首诗近体诗还是古体诗啊? 谁知道 寻陆鸿渐不遇 的诗意,简单点 侍其欣悦的&quot;其&quot;什么意思 《送东阳马生序》的门人弟子填其室,未尝稍降辞色帮忙翻译一下 谢谢 翻译:门人弟子填其室。 “门人弟子填其室,未尝稍降辞色”是什么意思? “门人弟子填其室,未尝稍降辞色”怎么翻译 嫉妒心理是双刃剑,如何让小孩远离嫉妒心理? 谁有非主流的电脑壁纸!?寂寞孤单的_觉得好的都来~~~ 嫉妒心理是双刃剑,该如何让小孩远离嫉妒心理? 为什么苹果xr手机一张电信卡一张移动卡,移动卡有信号,电信卡无信号是1X? 寻陆鸿渐不遇这首诗所表达的思想感情 彷徨名词解释 可见光谱条数怎么算 iPhone8玩王者荣耀卡吗 王者归来,华为5G新机入网,搭载鸿蒙3.0系统 华为鸿蒙 HarmonyOS 5G 新机入网信息公布,最高 1TB 存储 自负的危害 自负的危害有哪些? 陈翔六点半一共有几集 谁知道这集是陈翔六点半的哪一季 六点半球球没有穿是哪几集 陈翔六点半哪一集最搞笑 陈翔六点半的节目简介 陈翔六点半王炸跳钢管舞在哪一集里出现 近期央视3套节目回声嘹亮网络唱歌比赛怎么报名? 央视有一个节目,综艺类的,请几个年纪挺大的老艺术家做客,那个节目叫啥 你的家乡最好吃的东西是什么呢? 彬县哪有涮羊肉吃? 彬县早餐那好吃?? 彬州那家兰州牛肉面量足好吃? 彬州市饮食贵,比西安饮食贵,一分面都是10块,量少?味道还极差。吃不惯,尤其刚装修好的饮食市场。 我需要详细的WOW TBC单机安装教程. 魔兽世界单机登陆不上去 有深度的日出文案 有深度的日出文案有哪些