新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 12864液晶顯示實時時鐘

        12864液晶顯示實時時鐘

        作者: 時間:2016-11-29 來源:網絡 收藏
        DS1302是美國DALLAS公司推出的一種高性能、低功耗的實時時鐘芯片,附加31字節靜態RAM,采用SPI三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號和RAM數據。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小與31天時可以自動調整,且具有閏年補償功能。

        下面是一段鐘的程序:

        本文引用地址:http://www.104case.com/article/201611/323551.htm
        /***************************************************************************************時間:2012.11.30晶振:11.0592MHz芯片:STC89C52RC功能描述:在12864上顯示年、月、日、星期、時、分和秒等時間信息***************************************************************************************/ #include#define uchar unsigned charsbit CLK=P1^4;        //DS1302引腳定義sbit IO=P1^5;sbit CE=P1^6;sbit ACC0=ACC^0;sbit ACC7=ACC^7;sbit RS=P2^4;         //12864引腳定義        數據口為P0sbit RW=P2^5;sbit EN=P2^6;sbit PSB=P2^1;sbit RET=P2^3;void Input_1byte(uchar TD)	//DS1302輸入一字節數據{uchar i;ACC=TD;for(i=8;i>0;i--){IO=ACC0;CLK=1;CLK=0;ACC=ACC>>1;}}uchar Output_1byte(void)       //DS1302輸出一字節數據{uchar i;for(i=8;i>0;i--){ACC=ACC>>1;ACC7=IO;CLK=1;CLK=0;}return(ACC);}void Write_DS1302(uchar add,uchar dat)//向DS1302寫{CE=0;CLK=0;CE=1;Input_1byte(add);Input_1byte(dat);CE=0;}uchar Read_DS1302(uchar add)	//從DS1302讀{uchar inf;	  //信息臨時存儲變量CE=0;CLK=0;CE=1;Input_1byte(add);inf=Output_1byte();CE=0;return(inf);}/**********************DS1302初始化*****************************/void init_1302(){if(Read_DS1302(0xd1)==0x55)               //判斷內存單元的內容,是否進行初始化{        return;  }     else {Write_DS1302(0x8e,0x00); //關閉寫保護Write_DS1302(0x90,0x00); //電池充電設置Write_DS1302(0x80,0x00); //秒Write_DS1302(0x82,0x54); //分Write_DS1302(0x84,0x20); //時Write_DS1302(0x86,0x30); //日Write_DS1302(0x88,0x11); //月Write_DS1302(0x8a,0x05); //星期Write_DS1302(0x8c,0x12); //年Write_DS1302(0xd0,0x55); //寫RAMWrite_DS1302(0x8e,0x80); //打開寫保護  }}/**********************延時函數*****************************/void DelayUs2x(unsigned char t){   while(--t);}void DelayMs(unsigned char t){while(t--){//大致延時1mSDelayUs2x(245);DelayUs2x(245);}}/**********************12864判忙*****************************/void check_busy(){RS=0;RW=1;EN=1;while((P0&0x80)==0x80);EN=0;}				   
        				
                    
                        
        			
        							
        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 贺兰县| 化州市| 绥江县| 枝江市| 高安市| 盐源县| 新竹县| 宁化县| 大渡口区| 英吉沙县| 应用必备| 南乐县| 秦皇岛市| 松江区| 将乐县| 镶黄旗| 城市| 舟曲县| 华阴市| 胶州市| 苏尼特左旗| 益阳市| 瓦房店市| 奉贤区| 美姑县| 扎赉特旗| 汉中市| 铜陵市| 巫山县| 桐乡市| 蒲城县| 扬中市| 珠海市| 黔西| 永嘉县| 东至县| 泰宁县| 濮阳县| 海丰县| 红安县| 钟祥市|