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

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

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

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

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī)的電子測(cè)速里程防盜報(bào)警器設(shè)計(jì)

        基于51單片機(jī)的電子測(cè)速里程防盜報(bào)警器設(shè)計(jì)

        作者: 時(shí)間:2012-09-10 來(lái)源:網(wǎng)絡(luò) 收藏

        //************************************************************

        本文引用地址:http://www.antipu.com.cn/article/170899.htm

        //標(biāo)題:4乘4鍵盤(pán)的輸入函數(shù)
        // 函數(shù)描述: char gotkey(void)
        // 從4*4小鍵盤(pán)輸入數(shù)據(jù),返回0~9,及其它數(shù)據(jù).
        //***********************************************************
        //時(shí)間遲延函數(shù)
        //*********************************************************
        void delay (void)
        {
        unsigned char i,j;
        for(i=0;i5;i++)
        for(j=0;j255;j++);
        }
        //*************************************************
        //檢查是否有按鍵按下
        //*************************************************
        char keypad_scan()
        {
        char key,i;
        p2=0xF0;
        while(p2!=0XF0);
        do{
        for(i=0;i=3;i++)
        { p2=ksp;
        if(p2!=ksp)
        {
        delay();
        key=p2;
        if(key!=ksp)
        {
        return(key);
        }
        }
        }
        }while(1);
        }
        //***************************************
        //取得鍵值
        //***************************************
        char gotkey()
        {
        char temp,i;
        temp=keypad_scan();
        for(i=0;i=15;i++)
        {
        if(temp==key_code)
        return(i);
        }
        }


        //**************************************
        //93c66驅(qū)動(dòng)程序
        //**************************************
        //********************************************

        unsigned char read_byte(int address)
        {int i, command;
        unsigned char temp;
        CS=1;
        command=(READ|address);
        write_command(command);
        for(i=0;i8;i++)
        {SK=1;
        SK=0;
        temp=(temp1);
        if(DO==1)
        temp=(temp|0X01);
        }
        CS=0;
        return(temp);
        }

        //**********************************************

        void write_enable()
        {int command;
        CS=1;
        command=EWEN;
        write_command(command);
        CS=0;
        }

        //***********************************************

        void write_disable()
        {int command;
        CS=1;
        command=EWDS
        write_command(command);
        CS=0;
        }

        //************************************************

        void write_byte(int address,unsigned char write_date)
        {int i,command;
        write_enable();
        CS=1;
        command=(WRITE|address);
        write_command(command);
        for(i=0;i8;i++)
        {if(write_date0X80)}
        DI=1;
        elae
        DI=0;
        SK=1;
        SK=0;
        write_date=(write_data1);
        }
        check_busy();
        write_disable();
        }

        //*************************************************

        void write_command(int command)
        {int i;
        command=(commandshiftbit);
        for(i=0;i12;i++)
        {if(command0X8000)
        DI=1;
        else
        DI=0;
        SK=1;
        SK=0;
        command=(command1);
        }
        }

        //***********************************************

        void check_busy(void)
        {CS=0;
        CS=1;
        while(DO==0);
        }

        //******************************************
        //標(biāo)題:ISD4004驅(qū)動(dòng)法程序
        //功能:語(yǔ)音選段播放
        //******************************************
        void delay(unsigned int time) //延遲n微秒
        {
        while(time!=0)
        {
        time-- ;
        }
        }
        void delayms(unsigned int time) //延遲n毫秒
        { TMOD=0x01;

        for(time;time>0;time--)
        {
        TH0=0xfc;
        TL0=0x18;
        TR0=1;
        while(TF0!=1)
        {;}
        TF0=0;
        TR0=0;
        }

        }

        //************************************
        //ISD4004 spi串行發(fā)送子程序,16位數(shù)據(jù)
        //************************************
        void spi_send(unsigned char isdx)
        { unsigned char isx_counter;
        SS=0; //ss=0,打開(kāi)spi通信端
        SCLK=0;
        for(isx_counter=0;isx_counter8;isx_counter++)
        //先發(fā)低位再發(fā)高位,依次發(fā)送。
        { if ((isdx0x01)==1)
        MOSI=1;
        else
        MOSI=0;
        isdx=isdx>>1;
        SCLK=1;
        delay(2);

        SCLK=0;
        delay(2);
        }
        }

        //*******************************
        //發(fā)送stop指令
        //*******************************
        void isd_stop(void)
        { delay(10);
        spi_send(0x30);
        SS=1;
        delayms(50);
        }
        //*******************************
        //發(fā)送上電指令,并延遲50ms
        //*******************************
        void isd_pu(void)
        { delay(10);
        SS=0;
        spi_send(0x20);
        SS=1;
        delayms(50);
        }
        //*******************************
        //發(fā)送掉電指令,并延遲50ms
        //*******************************

        void isd_pd(void)
        { delay(10);

        spi_send(0x10);
        SS=1;
        delayms(50);
        }


        //*******************************
        //發(fā)送分段語(yǔ)音setplay指令
        //*******************************
        void isd_setplay(unsigned char adl,unsigned char adh)
        {
        isd_pd();
        delayms(1);
        spi_send(adl);
        delay(2);
        spi_send(adh);
        delay(2);
        spi_send(0xe0);
        SS=1;
        spi_send(0xf0);
        SS=1;
        if(ISD_INT==0)
        isd_stop();
        isd_pd();
        }



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉