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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

兄弟姐妹們請看一下,我寫的1302時鐘芯片程序怎么顯示的全是零,而且不運(yùn)行

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:20025 發(fā)表于 2009-12-17 16:10 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^5;
sbit RW=P2^6;
sbit E=P2^7;
sbit SCLK = P1^6;    //*實(shí)時時鐘時鐘線引腳
sbit IO = P3^5;    //*實(shí)時時鐘數(shù)據(jù)線引腳
sbit RST = P1^7;    //*實(shí)時時鐘復(fù)位線引腳
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;

void delay()
{
 uint x,y;
 for(x=10;x>0;x--)
  for(y=2;y>0;y--);
}
/********************************************************************
* 名稱 : Convert(uchar In_Date)
* 功能 : 因?yàn)殡娐吩O(shè)計時,P0.0--P0.7接法剛好了資料中的相反,所以設(shè)計該函數(shù)。
* 輸入 : 1602資料上的值
* 輸出 : 送到1602的值
***********************************************************************/
uchar convert(uchar In_Date)
{
    uchar i, Out_Date = 0, temp = 0;
    for(i=0; i<8; i++)
    {
        temp = (In_Date >> i) & 0x01;
        Out_Date |= (temp << (7 - i));
    }
    return Out_Date;
}
/********************************************************************
* 名稱 : enable(uchar del)
* 功能 : 1602命令函數(shù)
* 輸入 : 輸入的命令值
* 輸出 : 無
***********************************************************************/
void enable(uchar com)
{
 P0=convert(com);

 RS=0;
 RW=0;
 E=0;
 delay();
 E=1;
 delay();
}
/********************************************************************
* 名稱 : write(uchar del)
* 功能 : 1602寫數(shù)據(jù)函數(shù)
* 輸入 : 需要寫入1602的數(shù)據(jù)
* 輸出 : 無
***********************************************************************/
void write(uchar date)
{
 P0=convert(date);
 RS=1;
 RW=0;
 E=0;
 delay();
 E=1;
 delay();
}
/********************************************************************
* 名稱 : L1602_char(uchar hang,uchar lie,char sign)
* 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符顯示"b" ,調(diào)用該函數(shù)如下
   L1602_char(1,5,'b')
* 輸入 : 行,列,需要輸入1602的數(shù)據(jù)
* 輸出 : 無
***********************************************************************/
void L1602_char(uchar hang,uchar lie,char sign)
{
 uchar a;
 if(hang == 1) a = 0x80;
 if(hang == 2) a = 0xc0;
 a = a + lie - 1;
 enable(a);
 write(sign);

void init_1602()
{
 enable(0x01);
 enable(0x38);
 enable(0x0c);
 enable(0x06);

}
void input_1302(uchar dat) //向1302中寫入1bytes數(shù)據(jù)
{
 uchar i;
 ACC=dat;
 RST=1;
 for(i=8;i>0;i--)
 {
  IO=ACC0;
  SCLK=1;
  
  SCLK=0;
  ACC>>=1;
 }
}
uchar output_1302()  //1302輸出1bytes數(shù)據(jù)
{
 uint i;
 RST=1;
 for(i=8;i>0;i--)
 {
  ACC>>=1;
  ACC7=IO;
  SCLK=1;
  
  SCLK=0;
 }
 return ACC;
}
void write_1302(uchar address,uchar date) //向1302某地址寫入1bytes數(shù)據(jù)
{
 RST=0;
 
 SCLK=0;
 RST=1;
 input_1302(address);
 _nop_();
 _nop_();
 input_1302(date);
 SCLK=1;
 RST=0;

}
uchar read_1302(uchar address)  //從1302讀出1bytes數(shù)據(jù)
{
 uchar date;
 RST=0;
 
 SCLK=0;
 RST=1;
 input_1302(address);
 _nop_();
 _nop_();
 date=output_1302();
 SCLK=1;
 RST=0;
 return date;
}

uchar BCD_to_DEC(uchar bcd)   //二進(jìn)制轉(zhuǎn)換成十進(jìn)制
{
 uchar data1;
 data1 = bcd & 0x0f;     //取BCD低4位
 bcd = bcd & 0x70;       //剔除BCD的最高位和低4位。
 data1 += bcd >> 1;
 data1 += bcd >> 3;      //用位移代替乘法運(yùn)算
 return data1;
}
void init_1302()   //往DS1302中寫入數(shù)據(jù)
{
 write_1302(0x8e,0);
 write_1302(0x80,0x50);//寫入秒
 
 write_1302(0x82,0x59);//寫入分

 write_1302(0x84,0x07);//寫入小時

 write_1302(0x86,0x08);//寫入日

 write_1302(0x88,0x08);//寫入月

 write_1302(0x8a,0x05);//寫入星期

 write_1302(0x8c,0x08);//寫入年
}
void display_1302()    //讀時間并送1602顯示
{
 uchar sec,min,hour,day,month,year;
 while(1)
 {
  write_1302(0x8f,0);
  sec=BCD_to_DEC(read_1302(0x81));
 
  min=BCD_to_DEC(read_1302(0x83));
 
  hour=BCD_to_DEC(read_1302(0x85));
   
  day=BCD_to_DEC(read_1302(0x87));
   
  month=BCD_to_DEC(read_1302(0x89));
 
  year=BCD_to_DEC(read_1302(0x8d));
  
  L1602_char(2, 6, hour/10 + 48);
  L1602_char(2, 7, hour%10 + 48);
  L1602_char(2, 8, ':');
  L1602_char(2, 9, min/10  + 48);
  L1602_char(2, 10, min%10 + 48);
  L1602_char(2, 11, ':');
  L1602_char(2, 12, sec/10 + 48);
  L1602_char(2, 13, sec%10 + 48);
  L1602_char(1, 8, year/10  + 48);
  L1602_char(1, 9, year%10 + 48);
  L1602_char(1, 10, '-');
  L1602_char(1, 11, month/10 + 48);
  L1602_char(1, 12, month%10 + 48);
  L1602_char(1, 13, '-');
  L1602_char(1, 14, day / 10 + 48);
  L1602_char(1, 15, day % 10 + 48);
 }
}
void main()
{
 init_1602();
 init_1302();
 display_1302();
}

 

 

 

 


 

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

使用道具 舉報

沙發(fā)
ID:20219 發(fā)表于 2009-12-23 14:24 | 只看該作者

你的顯示程序都沒有啊  老兄

回復(fù)

使用道具 舉報

板凳
ID:21212 發(fā)表于 2010-1-20 10:06 | 只看該作者

秒的最高位沒有置0

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕在线一区 | 亚洲欧美日韩电影 | 亚洲一区二区av | 日本在线视频中文字幕 | 美国一级片在线观看 | 久久成人精品视频 | 看av网| 日韩视频免费看 | 国产精品九九九 | 91久久精品一区二区二区 | 欧美日韩高清 | 免费一级黄色录像 | 午夜欧美日韩 | 91精品一区二区三区久久久久久 | 国产精品不卡 | 免费观看一级特黄欧美大片 | 视频在线一区二区 | 国产精品美女www爽爽爽 | 特级毛片 | 欧美成人一区二区三区片免费 | 国产精品久久久久久久久久久久午夜片 | 欧美综合久久久 | 欧美不卡一区二区三区 | 欧美日韩一区二区三区在线观看 | 亚洲国产精品久久久 | 国产视频二区 | 在线观看黄色大片 | 国内精品久久久久 | 男人天堂网址 | 国产一级免费视频 | 免费欧美视频 | 丝袜毛片 | 亚洲欧洲在线观看视频 | 盗摄精品av一区二区三区 | 精品一区二区三区中文字幕 | 中文字幕在线一区 | 97人人澡人人爽91综合色 | 精品欧美 | 欧美午夜精品久久久久久浪潮 | 一级大黄色片 | 天堂一区二区三区四区 |