在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)C語言程序舉例(三)

            單片機(jī)C語言程序舉例(三)

            作者: 時(shí)間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
            14.音樂播放

            //此程序在硬件上調(diào)試通過
            //本程序的單片機(jī)晶振采用11.0592M
            #include
            sbit speaker=P1^2;
            unsigned char timer0h,timer0l,time;
            //世上只有媽媽好數(shù)據(jù)表
            code unsigned char sszymmh[]={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,
            6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,
            6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,
            5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,
            2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0
            };
            // 音階頻率表 高八位
            code unsigned char FREQH[]={
            0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
            0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
            0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
            0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,
            } ;
            // 音階頻率表 低八位
            code unsigned char FREQL[]={
            0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
            0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
            0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,
            0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
            };
            void delay(unsigned char t)
            {
            unsigned char t1;
            unsigned long t2;
            for(t1=0;t1 {
            for(t2=0;t2<8000;t2++)
            {
            ;
            }
            }
            TR0=0;
            }
            void t0int() interrupt 1
            {
            TR0=0;
            speaker=!speaker;
            TH0=timer0h;
            TL0=timer0l;
            TR0=1;
            }
            void song()
            {
            TH0=timer0h;
            TL0=timer0l;
            TR0=1;
            delay(time);
            }

            本文引用地址:http://www.biyoush.com/article/201611/320073.htm

            void main(void)
            {
            unsigned char k,i;
            TMOD=1; //置CT0定時(shí)工作方式1
            EA=1;
            ET0=1;//IE=0x82 //CPU開中斷,CT0開中斷
            while(1)
            {
            i=0;
            while(i<100){ //音樂數(shù)組長度,唱完從頭再來
            k=sszymmh[i]+7*sszymmh[i+1]-1;
            timer0h=FREQH[k];
            timer0l=FREQL[k];
            time=sszymmh[i+2];
            i=i+3;
            song();
            }
            }
            }

            15.紅外收發(fā)演示


            #include


            sbit LED=P3^3;//紅外發(fā)射
            sbit LED1=P1^3;
            sbit IR=P3^2;//紅外一體化接收

            bit Flag;

            void Init_Timer0(void)
            {
            TMOD |= 0x01;
            TH0=0xf0;
            TL0=0x00;
            EA=1;
            ET0=1;
            TR0=1;
            }

            void Timer0_isr(void) interrupt 1 using 1
            {
            TH0=0x0f;
            TL0=0x00;
            Flag=!Flag;
            }


            main()
            {

            unsigned int j;
            Init_Timer0();


            while(1)
            {

            LED1=IR;//讀取一體化接收頭數(shù)值
            if(Flag)
            {
            for(j=0;j<27;j++)//大約38KHz
            {
            LED=!LED;//發(fā)射管輸出
            }
            }
            }
            }

            16.串口通信

            //打開串口調(diào)試程序,將波特率設(shè)置為2400,無奇偶校驗(yàn)


            #include

            #include


            #ifdef MONITOR51
            char code reserve [3] _at_ 0x23;
            #endif

            sbit KEY=P3^2;

            void delay(unsigned int U)
            {
            while(--U);
            }

            void main (void)
            {


            #ifndef MONITOR51
            SCON = 0x50;
            TMOD |= 0x20;
            TH1 = 0xf3;
            TR1 = 1;
            TI = 1;
            #endif


            while (1)
            {

            if(!KEY)
            {
            delay(10000);
            if(!KEY)
            {
            printf ("This programer test ok!n");
            printf ("12:25:26n");
            }
            }
            }
            }

            17.PWM調(diào)光

            #include

            sbit LED = P1^2;
            unsigned char CYCLE; //定義周期 該數(shù)字X基準(zhǔn)定時(shí)時(shí)間 如果是10 則周期是10 x 0.1ms
            unsigned char PWM_ON ;//定義高電平時(shí)間
            void delay(unsigned int cnt)
            {
            while(--cnt);
            }

            main()
            {
            bit Flag;

            TMOD |=0x01;//定時(shí)器設(shè)置 0.1ms in 12M crystal
            TH0=(65536-100)/256;
            TL0=(65536-100)%256;//定時(shí)0.1mS
            IE= 0x82; //打開中斷
            TR0=1;

            CYCLE = 10;// 時(shí)間可以調(diào)整 這個(gè)是10調(diào)整 8位PWM就是256步
            while(!Flag)
            {
            delay(20000); //延時(shí)時(shí)間,從一個(gè)亮度到下一個(gè)亮度的間隔時(shí)間,速度快就能看到連續(xù)效果
            PWM_ON++; //這個(gè)使用較長延時(shí),以便能看清楚變化過程
            if(PWM_ON == CYCLE)
            { //這個(gè)里可以添加其他程序 如到最亮?xí)r候控制設(shè)備
            Flag=1;
            }
            }

            while(Flag) //亮度遞減 同上,是個(gè)相反的過程
            {
            delay(20000);
            PWM_ON--;
            if(PWM_ON == 0)
            {
            Flag=0;
            }
            }
            }



            void tim(void) interrupt 1 using 1
            {
            static unsigned char count; //
            TH0=(65536-100)/256;
            TL0=(65536-100)%256;//定時(shí)0.1mS

            if (count==PWM_ON)
            {
            LED = 1; //燈滅
            }
            count++;
            if(count == CYCLE)
            {
            count=0;
            if(PWM_ON!=0) //如果左右時(shí)間是0 保持原來狀態(tài)
            LED = 0;//燈亮

            }

            }




            關(guān)鍵詞: 單片機(jī)C語言程序舉

            評論


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

            關(guān)閉