欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      單片機(jī)音樂(lè)盒,1602液晶顯示歌曲名、歌手名、播放時(shí)間,播放時(shí)跑馬燈亮

      時(shí)間:2019-05-15 10:05:46下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《單片機(jī)音樂(lè)盒,1602液晶顯示歌曲名、歌手名、播放時(shí)間,播放時(shí)跑馬燈亮》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《單片機(jī)音樂(lè)盒,1602液晶顯示歌曲名、歌手名、播放時(shí)間,播放時(shí)跑馬燈亮》。

      第一篇:?jiǎn)纹瑱C(jī)音樂(lè)盒,1602液晶顯示歌曲名、歌手名、播放時(shí)間,播放時(shí)跑馬燈亮

      單片機(jī)音樂(lè)盒,1602液晶顯示歌曲名、歌手名、播放時(shí)間,播放時(shí)跑

      馬燈亮

      2010-07-16 19:05:08| 分類(lèi): 單片機(jī) | 標(biāo)簽: |字號(hào)大中小 訂閱

      /**P2.0口到三極管基極之間的限流電阻接1K左右的,要使用無(wú)緣的蜂鳴器或者照片中的小喇叭,用有源的蜂鳴器失真太大,單片機(jī)使用AT89S52**/

      #include #include #define uint unsigned int #define uchar unsigned char

      #define LCD1602_DATA P0 //1602液晶數(shù)據(jù)口

      #define lamp_data P3 //跑馬燈數(shù)據(jù)口 sbit LCD1602_RS=P2^7;//1602液晶寫(xiě)命令/數(shù)據(jù) sbit LCD1602_RW=P2^6;//1602液晶讀/寫(xiě)控制 sbit LCD1602_EN=P2^5;//1602液晶使能控制

      sbit BeepIO = P2^0;//蜂鳴器 sbit esc=P1^2;//取消播放音樂(lè)

      sbit up=P1^0;sbit down=P1^3;sbit play=P1^1;char number;//歌曲編號(hào) bit flag;//播放標(biāo)志

      char t;

      uchar ms50;//跑馬燈用 char count,sec,min;//歌曲時(shí)間顯示

      char code song[][17]={ “1.Fairy Tale ”,“2.Love Transfer ”,“3.Girl With Wing”, “4.The Same Song ”,“5.Two Butterfly ”,“6.Coral Sea ”};char code singer[][12]={ “Guang liang”,“Chen yixun ”,“Rong zuer ”, “Liu chang ”,“Pang long ”,“Zhou jielun”};uchar code lamp[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

      //以下為播放音樂(lè)的設(shè)置 #define SYSTEM_OSC 12000000 #define SOUND_SPACE 4/5 uint code FreTab[12] = { 262,277,294,311,330,349,369,392,415,440,466,494 };//原始頻率表

      uchar code SignTab[7] = { 0,2,4,5,7,9,11 };//1~7在頻率表中的位置

      uchar code LengthTab[7]= { 1,2,4,8,16,32,64 };uchar Sound_Temp_TH0,Sound_Temp_TL0;//音符定時(shí)器初值暫存

      uchar Sound_Temp_TH1,Sound_Temp_TL1;//音長(zhǎng)定時(shí)器初值暫存

      bit stop;/***********************延時(shí)函數(shù)(單位ms)**************************/

      void delay(uint z)

      { uint x;uchar y;for(x=z;x>0;x--)for(y=112;y>0;y--);

      } /*********************************************************** ******************LCD1602驅(qū)動(dòng)程序****************** ************************************************************/ /***********************************************************

      忙檢測(cè)

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

      void LCD1602_check_busy()

      {

      LCD1602_DATA = 0xff;LCD1602_RS = 0;LCD1602_RW = 1;LCD1602_EN = 1;while(LCD1602_DATA & 0x80);

      LCD1602_EN = 0;

      } /**********************************************************

      寫(xiě)指令

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

      void LCD1602_write_cmd(uchar cmd)

      {

      LCD1602_check_busy();LCD1602_RS = 0;LCD1602_RW = 0;LCD1602_DATA = cmd;LCD1602_EN = 1;

      _nop_();LCD1602_EN = 0;

      } /***********************************************************

      寫(xiě)數(shù)據(jù)

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

      void LCD1602_write_data(uchar dat)

      {

      LCD1602_check_busy();LCD1602_RS = 1;LCD1602_RW = 0;LCD1602_DATA = dat;LCD1602_EN = 1;

      _nop_();LCD1602_EN = 0;

      }

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

      1602初始化

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

      void LCD1602_init()

      { LCD1602_write_cmd(0x38);//8位數(shù)據(jù),雙列顯示,5*7字形 LCD1602_write_cmd(0x0c);//開(kāi)顯示,關(guān)光標(biāo),光標(biāo)不閃爍

      LCD1602_write_cmd(0x01);//清屏

      } /************************************************************

      設(shè)置顯示坐標(biāo)

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

      void LCD1602_set_postion(uchar x , uchar y)

      { if(!y)

      LCD1602_write_cmd(0x80+x);

      else if(y)

      LCD1602_write_cmd(0xc0+x);

      } /************************************************************

      指定位置寫(xiě)字符

      *************************************************************/ void LCD1602_write_char(uchar x , uchar y , uchar chardata)

      {

      LCD1602_set_postion(x,y);LCD1602_write_data(chardata);

      } /************************************************************

      指定位置寫(xiě)字符串

      *************************************************************/ void LCD1602_write_string(uchar x , uchar y , uchar *string)

      {

      LCD1602_set_postion(x,y);

      while((*string)!= '