中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機(jī)電子時鐘完整版

        51單片機(jī)電子時鐘完整版

        作者: 時間:2012-08-02 來源:網(wǎng)絡(luò) 收藏

        點擊瀏覽下一頁

        本程序完全測試通過 按上面的電路圖 用顯示 可調(diào)時間.
        #includereg52.h>
        #define uint unsigned int
        #define uchar unsigned char
        #define w_Sec 0x80
        #define w_Min 0x82
        #define w_Hou 0x84
        #define w_Day 0x86
        #define w_Mou 0x88
        #define w_xi 0x8a
        #define w_Yea 0x8c // DS1302寫數(shù)據(jù)
        #define r_Sec 0x81
        #define r_Min 0x83
        #define r_Hou 0x85
        #define r_Day 0x87
        #define r_Mou 0x89
        #define r_xi 0x8b
        #define r_Yea 0x8d //DS1302讀數(shù)據(jù)
        #define w_protect 0x8e //DS1302寫保護(hù)
        uchar code table[]="11-6-20"; //制作時間
        uchar code time1[]="00:00:00"; //時間模式1,用于普通計時
        uchar code time2[]="00:00:00:00"; //時間模式2,用于秒表計時
        uchar code time3[]="00:00"; //時間模式3,用于鬧鐘設(shè)置
        uchar code miaobiao[]="StopWatch";
        uchar code naozhong[]="Alarm";
        uchar code stuinfo1[]="ZLW0800730203";
        uchar code stuinfo2[]="LWL0807030209";
        uchar code xi1[]="Mon";
        uchar code xi2[]="Tue";
        uchar code xi3[]="Wed";
        uchar code xi4[]="Thu";
        uchar code xi5[]="Fri";
        uchar code xi6[]="Sat";
        uchar code xi7[]="Sun";
        unsigned char code str1[]={"Temperature:"};
        unsigned char code str2[]={" "};
        uchar data disdata[5];
        uint tvalue; //溫度值
        uchar tflag; //溫度正負(fù)標(biāo)志 //18B20
        sbit RS=P2^0;
        sbit RW=P2^1;
        sbit EN=P2^2; //1602控制端定義
        sbit ACC_7 = ACC^7; //位尋址寄存器
        sbit SCK = P1^1; //DS1302時鐘信號
        sbit SDA = P1^0; //DS1302數(shù)據(jù)信號
        sbit RST = P1^2 ; //DS1302片選信號
        sbit k1=P1^4;
        sbit k2=P1^5;
        sbit k3=P1^6;
        sbit k4=P1^7;
        sbit alarm=P3^7;
        sbit DQ = P2^7; //DS18B20
        uint i,shi,fen,miao,haomiao,nian,yue,ri,num,x,menu,n,nshi=0,nfen=1; //nshi、nfen用來判別鬧鐘,與系統(tǒng)時間對比
        uchar sshi,sfen,smiao,snian,syue,sri,sxi;
        /***********************延時程序*********************************/
        void delay(uint z)
        {
        uint x,y;
        for(x=z;x>0;x--)
        for(y=110;y>0;y--);
        }
        /********************************ds1302***************************************/
        //***************向DS1302寫入一字節(jié)數(shù)據(jù)
        void Write1302(uchar addr, uchar d)
        {
        unsigned char i;
        SCK=0;
        RST=1;
        //寫入目標(biāo)地址:addr
        for (i = 0; i 8; i ++)
        {
        if (addr 0x01)
        {
        SDA=1;
        }
        else
        {
        SDA=0;
        } //并口轉(zhuǎn)串口
        SCK=1; //上升沿寫數(shù)據(jù)
        SCK=0;
        addr = addr >> 1;
        }
        //寫入數(shù)據(jù):d
        for (i = 0; i 8; i ++)
        {
        if (d 0x01)
        {
        SDA=1;
        }
        else
        {
        SDA=0;
        }
        SCK=1;
        SCK=0;
        d = d >> 1;
        }
        RST=0; //停止DS1302總線
        }
        //*************************從DS1302讀出一字節(jié)數(shù)據(jù)
        unsigned char Read1302(uchar addr)
        {
        unsigned char i;
        unsigned char temp;
        unsigned char dat1=0;
        unsigned char dat2=0;
        SCK=0;
        RST=1;
        //寫入目標(biāo)地址:addr
        for (i = 0; i 8; i ++)
        {
        if (addr 0x01)
        {
        SDA=1;
        }
        else
        {
        SDA=0;
        }
        SCK=1;
        SCK=0;
        addr = addr >> 1;
        }
        //輸出數(shù)據(jù):temp
        for (i = 0; i 8; i ++)
        {
        temp = temp >> 1;
        if (SDA)
        {
        temp |= 0x80;
        }
        else
        {
        temp = 0x7F;
        }
        SCK=1;
        SCK=0;
        }
        RST=0; //停止DS1302總線
        dat2 = temp/16; // 數(shù)據(jù)進(jìn)制轉(zhuǎn)換
        dat1 = temp%16;
        dat1 = dat2*10+dat1;
        return dat1;
        }
        /*****************************1602顯示******************************************/
        void write_add(uchar add) //1602控制字
        {
        RS=0;
        P0=add;
        EN=1;
        delay(5);
        EN=0;
        }
        void write_date(uchar date) //1602顯示字
        {
        RS=1;
        P0=date;
        EN=1;
        delay(5);
        EN=0;
        }
        void writesfm(uchar add,uchar date) //1602顯示時分秒
        {
        uchar s,g;
        s = date/10;
        g = date%10;
        write_add(0x80+0x40+add);
        write_date(0x30+s);
        write_date(0x30+g);
        }
        void writenyr(uchar add,uchar date) //1602顯示年月日
        {
        uchar s,g;
        s=date/10;
        g=date%10;
        write_add(0x80+0x00+add);
        write_date(0x30+s);
        write_date(0x30+g);
        }
        void writexi(uchar a)
        {
        write_add(0x80+0x00+11);
        if(a==1)
        {
        for(i=0;i3;i++)
        {
        write_date(xi1[i]);
        delay(5);
        }
        }
        if(a==2)
        {
        for(i=0;i3;i++)
        {
        write_date(xi2[i]);
        delay(5);
        }
        }
        if(a==3)
        {
        for(i=0;i3;i++)
        {
        write_date(xi3[i]);
        delay(5);
        }
        }
        if(a==4)
        {
        for(i=0;i3;i++)
        {
        write_date(xi4[i]);
        delay(5);
        }
        }
        if(a==5)
        {
        for(i=0;i3;i++)
        {
        write_date(xi5[i]);
        delay(5);
        }
        }
        if(a==6)
        {
        for(i=0;i3;i++)
        {
        write_date(xi6[i]);
        delay(5);
        }
        }
        if(a==7)
        {
        for(i=0;i3;i++)
        {
        write_date(xi7[i]);
        delay(5);
        }
        }
        }
        void writefuhao(void) //寫符號
        {
        write_add(0x80+0x00+2);
        write_date(table[2]);
        delay(10);
        write_add(0x80+0x00+5);
        write_date(table[2]);
        delay(10);
        write_add(0x80+0x40+2);
        write_date(time1[2]);
        delay(10);
        write_add(0x80+0x40+5);
        write_date(time1[2]);
        delay(10);
        }

        51單片機(jī)相關(guān)文章:51單片機(jī)教程


        單片機(jī)相關(guān)文章:單片機(jī)教程


        單片機(jī)相關(guān)文章:單片機(jī)視頻教程


        單片機(jī)相關(guān)文章:單片機(jī)工作原理



        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉