新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機+ds1302+ds18b20+1602液晶萬年歷

        51單片機+ds1302+ds18b20+1602液晶萬年歷

        作者: 時間:2016-11-29 來源:網絡 收藏
        這是我寫的單片機小程序,將單片機開發板上的ds1302,ds18b20和1602綜合起來,在1602上顯示年月日周時分秒和溫度;望各位好友指點,此程序僅適用于我的開發板,用在其他開發板上應該改下端口就可以。


        本文引用地址:http://www.104case.com/article/201611/323521.htm
        #include typedef unsigned char uint8;typedef unsigned int uint16;typedef long int uint32;//****************************************************************************************************sbit DQ=P2^2;//********************供18b20使用的變量float T;//****************************************************************************************************uint8 counter_0,counter_1;//*******供1302使用的變量uint8 second=0,minute=0,hour=0,year=0,month=0,day=0,week;uint32 sh;uint8 D[]="wek";uint16 i=0;//****************************************************************************************************//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//****************************************************************************************************void delay_10us(uint8 x)//*********10微秒級別延時{while(x>0)x--;}//****************************************************************************************************void ds18b20_init()//**************ds18b20的初始化{uint16 i;DQ=0;i=103;while(i>0)i--;DQ=1;i=4;while(i>0)i--;;}//****************************************************************************************************bit readbit()//********************讀取一位數據{uint16 i;bit dat;DQ=0;i++;DQ=1;i++;i++;dat=DQ;i=8;while(i>0)i--;return(dat);}//****************************************************************************************************uint8 r_ds18b20()//****************從ds18b20讀取一字節數據{uint8 dat=0,i,j;for(i=1;i<=8;i++){j=readbit();dat=(j<<7)|(dat>>1);}return(dat);}//****************************************************************************************************void w_ds18b20(uint8 dat)//********向ds18b20寫入一字節數據{uint8 j;uint8 i;bit testb;for(i=1;i<=8;i++){testb=dat&0x01;dat>>=1;if(testb){ DQ=0;j++;j++;j++;DQ=1;j=14;while(j>0)j--;}else{ DQ=0;j=14;while(j>0)j--;DQ=1;j++;j++;j++;}}}//****************************************************************************************************void beginchange()//***************開始轉換溫度{ds18b20_init();delay_10us(200);w_ds18b20(0xcc);w_ds18b20(0x44);}//****************************************************************************************************void get_temp()//*****************從ds18b20讀取數據并轉換成十進制{uint8 H,L;uint16 temp;ds18b20_init();delay_10us(200);w_ds18b20(0xcc);w_ds18b20(0xbe);L=r_ds18b20();H=r_ds18b20();temp=H;temp<<=8;temp|=L;T=temp*(0.0625);}				   
        				
                    
                        
        			
        							
        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 平南县| 衡山县| 枣阳市| 兴义市| 班戈县| 介休市| 黑山县| 沽源县| 永年县| 和平区| 抚宁县| 剑河县| 金溪县| 徐州市| 麟游县| 许昌县| 五台县| 大邑县| 尚志市| 台江县| 天镇县| 曲阜市| 昔阳县| 无为县| 甘谷县| 汽车| 修水县| 永善县| 霍州市| 仙游县| 太康县| 天祝| 萝北县| 大庆市| 海林市| 龙井市| 江源县| 牙克石市| 昌平区| 海兴县| 苗栗市|