久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3115|回復: 2
打印 上一主題 下一主題
收起左側(cè)

DS1302最簡單的一個小程序 是哪塊不對呢???

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:56673 發(fā)表于 2013-11-24 14:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
前面的讀寫字節(jié) 讀寫程序的都對     應該是主函數(shù)的問題  查了很多資料 對BCD轉(zhuǎn)化還是不懂  是都要轉(zhuǎn)換嗎?

#include<reg52.h>
#define uchar unsigned char
uchar key,key1;
sbit CLK=P2^7;
sbit IO=P2^6;
sbit RES=P2^5;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,
                       0x99,0x92,0x82,0xf8,
                       0x80,0x90};                                                     //0--9代碼
void write_byte(uchar byte)                                                       //寫一個字節(jié)
{
uchar i;
RES=1;
CLK=0;
for(i=8;i>0;i--)
  {
   CLK=0;
   IO=byte&0x01;
   CLK=1;
   byte=byte>>1;
  }

}
uchar read_byte()                                                       //讀一個字節(jié)

{
uchar i,dat;
RES=1;
for(i=0;i<8;i++)
  {
   CLK=1;
   CLK=0;
      if(IO)
    dat=(dat|(0x01<<i));
  }
return( dat);
}
void  write_1302(uchar add,uchar dat)                                     //寫入數(shù)據(jù)
{
RES=0;
RES=1;
CLK=0;
write_byte(add);
    write_byte(dat);
RES=0;
   
}
read_1302(uchar add)                                                                 //讀出數(shù)據(jù)
{
RES=0;
RES=1;
CLK=0;
write_byte(add);
key=read_byte();
RES=0;
return (key);
   
}
   
void main()
{

P1=0x08;                                                     //數(shù)碼管位選
RES=0;
    CLK=0;
    write_1302(0x8e,0x00);                          //允許寫入
write_1302(0x80,0x80);                             //秒寫入0
write_1302(0x8e,0x80);                               //寫保護
while(1)
  {
      read_1302(0x81);                                    //讀出
                                                  
   P0=table[key1];                                             //段選
  }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:56673 發(fā)表于 2013-11-24 14:10 | 只看該作者
如果向秒寄存器 0x80里寫數(shù)據(jù) 0 的話   00H BCD轉(zhuǎn)化完還是00   可秒寄存器第一位如果是0不就停止計時了嗎
回復

使用道具 舉報

板凳
ID:18297 發(fā)表于 2013-12-5 20:05 | 只看該作者
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit timesclk=P2^7;
sbit timeio=P2^6;
sbit timerst=P2^5;
uchar set_time_data[];
void delay(uint z);
/****************************************************
Copyright:      2013-2014
File name:      電子時鐘
Description:    DS1302寫數(shù)據(jù)子程序
Author:         aking   
Version:      1.0
Date:           2013-12-6
History
****************************************************/
void timewrite(uchar dat)
{
uchar i,temp;
delay(1);
temp=dat;
for(i=0;i<8;i++)
{
  timeio=temp&0x01;
  delay(1);
  timesclk=1;
  delay(1);
  timesclk=0;
  temp=temp>>1;
}
}  
/****************************************************
Copyright:      2013-2014
File name:      電子時鐘
Description:    DS1302讀取延時
Author:         aking   
Version:      1.0
Date:           2013-12-6
History
****************************************************/
void delay(uint z)
{
    uint x,y;
    for(x=z;x>0;x--)
       for(y=110;y>0;y--);
}
/****************************************************
Copyright:      2013-2014
File name:      電子時鐘
Description:    DS1302讀數(shù)據(jù)子程序
Author:         aking   
Version:      1.0
Date:           2013-12-6
History
****************************************************/
uchar timeread()
{
uchar i,temp;
delay(1);
temp=0;
for(i=0;i<8;i++)
{
  temp=temp>>1;
  if(timeio==1)temp=temp+0x80;
  delay(1);
  timesclk=1;
  delay(1);
  timesclk=0;
}
return temp;
}
/****************************************************
Copyright:      2013-2014
File name:      電子時鐘
Description:    DS1302向某地址寫數(shù)據(jù)子程序
Author:         aking   
Version:      1.0
Date:           2013-12-6
History
****************************************************/
void timedata(uchar add,uchar dat)
{
timerst=0;
timesclk=0;
timerst=1;
timewrite(add);                 // 地址,命令
timewrite(dat);                 // 寫1Byte數(shù)據(jù)
    timesclk=1;
    timerst=0;
    timeio=0;
}
/****************************************************
Copyright:      2013-2014
File name:      電子時鐘
Description:    DS1302初始化子程序
Author:         aking   
Version:      1.0
Date:           2013-12-6
History
****************************************************/
void timeinit()
{
uchar i;
for(i=0;i<5;i++)
{
  timedata(0x80+i*2,set_time_data[i]);  //初始化秒,時,分,日,月
}
timedata(0x80+6*2,set_time_data[5]);
}
/****************************************************
Copyright:      2013-2014
File name:      電子時鐘
Description:    主函數(shù)程序
Author:         aking   
Version:      1.0
Date:           2013-12-6
History
****************************************************/
void main()
{
uchar i;
timedata(0x8e,0x00);            
timeinit();      //時間初始化
timedata(0x8e,0x80);
timerst=0;
timesclk=0;
while(1)
{
  timerst=1;
  timewrite(0x81);       //先寫地址(秒為0x81,分為0x83等等)
  i=timeread();              //再讀數(shù)據(jù)(i為秒)
  timerst=0;
  delay(1);                 //延時
  P1=i/16;                // P1輸出位秒的高位
  P3=i%16;              //P3輸出位秒的低位
}
}

//以上為完整的程序,經(jīng)過仿真。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久久免费看 | 欧美日韩福利视频 | 波多野结衣一区二区三区 | 天天操精品视频 | 国产精品一区二区久久 | 亚洲精品电影 | 黄色在线观看国产 | 国产日韩视频 | 黄视频网站免费观看 | 精品国产色 | 亚洲精品日韩综合观看成人91 | 五月婷婷丁香 | 国产精品视频一区二区三区四蜜臂 | 日韩精品免费在线观看 | 久久久久国产精品一区 | 午夜小视频在线播放 | 国外成人在线视频网站 | 国产在线资源 | a在线视频观看 | 精品日韩一区二区 | 精品一区二区免费视频 | 精品国产一区三区 | 国产精品久久久久aaaa九色 | 免费黄色的网站 | 亚洲精品一区av在线播放 | 久久的色| 国产精品日韩欧美一区二区三区 | 欧美一区视频在线 | 18成人在线观看 | 五月激情婷婷在线 | 黄色片免费在线观看 | 久久精品 | 免费麻豆视频 | 久久久久久久久久久久一区二区 | 天堂资源最新在线 | 中文字幕一区二区三区乱码在线 | 国产二区三区 | 亚洲精品综合一区二区 | 国产高清免费在线 | 日本天天色 | 亚洲综合无码一区二区 |