找回密碼
         注冊會員
        搜索附件  
        MCU資訊論壇 附件中心 單片機論壇 51單片機論壇 1602加ds1302的實時時鐘.zip

        1602加ds1302的實時時鐘.zip

         

        基于ds1302的1602液晶問題:
        我寫了一個ds1302的程序,用的是proteus仿真,1602顯示。
        當我顯示字符串的時候,仿真是正常的。可是當我要讀回1302的時間的時候,全部都是7?,而且一直都是這個符號,不會改變的。
        奇怪的是當我把程序燒到單片機實驗板測試的時候,運行又是正常的。
        不知道有沒有人遇到過同樣的問題呢?請各位大俠幫個忙呀

        附上程序及仿真文件
        #include<reg52.h>
        #include<stdio.h>
        #include<intrins.h>
        #define uchar unsigned char
        sbit SCK=P3^6;
        sbit SDA=P3^4;
        sbit RST = P3^5;
        uchar l_tmpdateg[7] ,l_tmpdates[7] ;
        unsigned char l_tmpdate[7]={0,20,12,7,3,9,11};//秒分時日月周年08-05-15 12:00:00
        unsigned char l_tmpdisplay[8];
        code unsigned char write_rtc_address[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c}; //秒分時日月周年 最低位讀寫位
        code unsigned char read_rtc_address[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};
        void Write_Ds1302_byte(unsigned char temp);
        void Write_Ds1302( unsigned char address,unsigned char dat );
        unsigned char Read_Ds1302 ( unsigned char address );
        void Read_RTC( );//read RTC
        void Set_RTC( ); //set RTC
        void display();

        sbit RS = P2^4;//Pin4
        sbit RW = P2^5; //Pin5
        sbit E = P2^6;//Pi
        void delay(int i)
        {
        int j,k;
        for(k=0;k<1;k++)
        for(j=0;j<i;j++);
        }
        void write_com(uchar com)
        {
        RS=0;
        RW=0;
        delay(10);
        P0=com;
        delay(10);
        E=1;
        delay(10);
        E=0;
        delay(10);
        }
        void write_dat(uchar dat)
        {
        RS=1;
        RW=0;
        delay(10);
        P0=dat;
        delay(10);
        E=1;
        delay(10);
        E=0;
        delay(10);
        }
        void init()
        { E=0;
        write_com(0x38);
        write_com(0x0c);
        write_com(0x06);
        write_com(0x01);
        }
        ///////////////////////////////////////////////////////////////////////////////////////////////////


        void main()
        {

        init();

        Read_RTC( );
        write_com(0x80+4);
        write_dat(0x30+2);
        write_dat(0x30);
        display();

        while(1)
        {
        Read_RTC( );
        display();
        }
        }



        //////////////////////////////////////////////////////////////////////////////////////////////////
        void Write_Ds1302_Byte(unsigned char temp)
        {
        unsigned char i;
        for (i=0;i<8;i++) //循環8次 寫入數據
        {
        SCK=0;
        SDA=temp&0x01; //每次傳輸低字節
        temp>>=1; //右移一位
        SCK=1;
        }
        }
        /****************************************************************************/
        void Write_Ds1302( unsigned char address,unsigned char dat )
        {
        RST=0;
        _nop_();
        SCK=0;
        _nop_();
        RST=1;
        _nop_(); //啟動
        Write_Ds1302_Byte(address); //發送地址
        Write_Ds1302_Byte(dat); //發送數據
        RST=0; //恢復
        }
        /****************************************************************************/
        unsigned char Read_Ds1302 ( unsigned char address )
        {
        unsigned char i,temp=0x00;
        RST=0;
        _nop_();
        SCK=0;
        _nop_();
        RST=1;
        _nop_();
        Write_Ds1302_Byte(address);
        for (i=0;i<8;i++) //循環8次 讀取數據
        {
        if(SDA)
        temp|=0x80; //每次傳輸低字節
        SCK=0;
        temp>>=1; //右移一位
        SCK=1;
        }
        RST=0;
        _nop_(); //以下為DS1302復位的穩定時間
        RST=0;
        SCK=0;
        _nop_();
        SCK=1;
        _nop_();
        SDA=0;
        _nop_();
        SDA=1;
        _nop_();
        return (temp); //返回
        }
        /****************************************************************************/
        void Read_RTC( ) //讀取 日歷
        {
        unsigned char i,*p;
        p=read_rtc_address; //地址傳遞
        for(i=0;i<7;i++) //分7次讀取 秒分時日月周年
        {
        l_tmpdate=Read_Ds1302(*p);
        p++;
        }
        }
        /***********************************************************************/
        void Set_RTC( ) //設定 日歷
        {
        unsigned char i,*p,tmp;
        for(i=0;i<7;i++){ //BCD處理
        tmp=l_tmpdate/10;
        l_tmpdate=l_tmpdate%10;
        l_tmpdate=l_tmpdate+tmp*16;
        }
        Write_Ds1302(0x8E,0X00);

        p=write_rtc_address; //傳地址
        for(i=0;i<7;i++) //7次寫入 秒分時日月周年
        {
        Write_Ds1302(*p,l_tmpdate);
        p++;
        }
        Write_Ds1302(0x8E,0x80);
        }
        void display()
        {
        uchar i;
        for(i=0;i<7;i++)
        {
        l_tmpdates=l_tmpdate/16;
        l_tmpdateg=l_tmpdate%16;
        }
        write_com(0x80+6);
        write_dat(0x30+l_tmpdates[6]);
        write_dat(0x30+l_tmpdateg[6]);
        write_dat(0xb0);
        write_dat(0x30+l_tmpdates[4]);
        write_dat(0x30+l_tmpdateg[4]);
        write_dat(0xb0);
        write_dat(0x30+l_tmpdates[3]);
        write_dat(0x30+l_tmpdateg[3]);
        write_com(0x80+0x40+6);
        write_dat(0x30+l_tmpdates[2]);
        write_dat(0x30+l_tmpdateg[2]);
        write_dat(0x3a);
        write_dat(0x30+l_tmpdates[1]);
        write_dat(0x30+l_tmpdateg[1]);
        write_dat(0x3a);
        write_dat(0x30+l_tmpdates[0]);
        write_dat(0x30+l_tmpdateg[0]);


        }


        QQ|手機版|MCU資訊論壇 ( 京ICP備18035221號-2 )|網站地圖

        GMT+8, 2025-5-4 15:28 , Processed in 0.041144 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2025 Discuz! Team.

        日本欧美国产精品第一页久久| 97精品久久天干天天天按摩| 精品国产网红福利在线观看 | 中文不卡在线免费观看| 亚洲av永久无码精品表情包| 国产精品亚洲а∨无码播放| 粉嫩精品美女国产在线观看| 日韩精品无码久久一区二区三| 18美女免费网站| 国产亚洲综合成人91精品| 国产三级精品三级在线观看| 影音先锋5566av| 成人精品视频在线观看| 国产乱人伦偷精品视频免观看| 亚洲综合欧美精品一区二区 | 麻豆精品不卡国产免费看| 久久精品国产亚洲Aⅴ蜜臀色欲| 亚洲色精品aⅴ一区区三区| 四虎影视国产精品永久在线| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 国产精品多人p群无码| 国产精品男男视频一区二区三区 | 国产精品免费观看| 鲸鱼传媒绿头鱼实验室之炮机测评日韩精品一级毛 | 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 中文字幕亚洲精品| 阳茎进去女人阳道视频特黄| 成人国内精品久久久久影院| 欧美精品人爱a欧美精品| 99国产精品国产精品九九| 麻豆精品| www.亚洲精品| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 2021年精品国产福利在线| 亚洲麻豆精品国偷自产在线91| 99re这里只有精品国产精品| 亚洲韩精品欧美一区二区三区| 国产精品666| 青青青国产免费手机视频在线观看| 欧美精品/日韩精品/国产精品 | 国产成人亚洲精品青草天美|