亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? upsd_sound_studio.c

?? 增強(qiáng)型單片機(jī)UPSD33XX系列芯片做音頻發(fā)生器例程。內(nèi)含KEIL源碼和PLD源碼。
?? C
字號:
 /* `=========================================================================`

                    ***************************************
                  ****   *                           *   ****
                            Title: UPSD_SOUND_STUDIO
                         File name: uPSD_Sound_Studio.c
                        Project name: UPSD_SOUND_STUDIO
                  ***                                    ****
                    ****************** * ******************
                  ****                                   ****
                              Author: Petr PFEIFER
                           MPG Prague, Czech Republic
                  ****   *                           *   ****
                    ***************************************

                 $Version:  0.016   Build: 2004-04-17,20:58:46

 
 
 
                                  Description:
                                  ============
                       uPSD Sound Studio  - Beta release

                                     Notes:
                                     ======
                                 -internal copy
                         - requires active src-control



                           ..........................
                          .                          .
                          .      ******************  .
                          .     **PPPPPPPPPPPPPPPP   .
                          .     *PPPP*******PP****   .
                          .    **PPP********PP***    .
                          .    ***PPP******PP****    .
                          .   *****PPP****PP****     .
                          .   *****PPP****PP****     .
                          .  PPPPPPPP****PP****  (R) .
                          .                          .
                           ..........................


                                  =-=-=-=-=-=
                           =-=-=-=-=-=-=-=-=-=-=-=-=
                =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

                     Copyright (c) 2004 ST Microelectronics

             This code/file is provided as is and has no warranty,
     implied or otherwise.  You are free to use/modify any of the provided
    code at your own risk in your applications with the expressed limitation
        of liability (see below) so long as your product using the code
                 contains at least one uPSD products (device).

                            LIMITATION OF LIABILITY:
                            ========================
              NEITHER STMicroelectronics NOR ITS VENDORS OR AGENTS
      SHALL BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF DATA,
       INTERRUPTION OF BUSINESS, NOR FOR INDIRECT, SPECIAL, INCIDENTAL OR
       CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER THIS AGREEMENT OR
         OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

                =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                           =-=-=-=-=-=-=-=-=-=-=-=-=
                                  =-=-=-=-=-=

                   For current information on uPSD products,
                please consult our pages on the World Wide Web:

                                 www.st.com/psm

                            - - - - - - - - - - - -

                     STMicroelectronics GROUP OF COMPANIES
    Australia - Brazil - China - Czech Republic - Finland - France - Germany
   Hong Kong - India - Italy - Japan - Malaysia - Malta - Morocco - Singapore
             Spain - Sweden - Switzerland - United Kingdom - U.S.A.

                               http://www.st.com


 `========================================================================` */


#pragma CODE
#pragma NOAREGS

#include "upsd3200.h"
#include "upsd_hardware.h"


static data unsigned int  uPSDSoundStudio_PlayAddress,uPSDSoundStudio_EndAddress,uPSDSoundStudio_FS,uPSDSoundStudio_DCNT;

static data unsigned char uPSDSoundStudio_PlayPage,uPSDSoundStudio_EndPage;

#define uPSDSoundStudio_ZeroLevel 128

static xdata PSD_REGS uPSD_CSIOPxx_reg _at_ PSD_REG_ADDR;
                                  // Define PSD registers at address "csiop" space




static void MAIN_INT_ISR (void) interrupt TF2_VECTOR using 3             // Timer2
/******************************************************************************
 Function   : static void MAIN_INT_ISR ()
 Parameters : (void)
 Description: The main Sound g. INTerrupt
 ******************************************************************************/
 {
  #pragma asm
              push   PSW
              push   ACC
              push   DPL
              push   DPH
              clr    TF2

              mov    DPTR,#uPSD_CSIOPxx_reg+0XE0                    ;PAGE REG.
              movx   A,@DPTR
              push   ACC
              mov    A,uPSDSoundStudio_PlayPage
              movx   @DPTR,A

              mov    A,uPSDSoundStudio_PlayAddress+0                ;HIGH Byte
              jz     PLAY_STOP                                    ; no sound !

              mov    DPL,uPSDSoundStudio_PlayAddress+1
              mov    DPH,uPSDSoundStudio_PlayAddress+0
              movx   A,@DPTR
              mov    PWM0,A
              inc    uPSDSoundStudio_PlayAddress+1
              mov    A,uPSDSoundStudio_PlayAddress+1
              jnz    PLAY_TESTA

              inc    uPSDSoundStudio_PlayAddress+0
              mov    A,uPSDSoundStudio_PlayAddress+0
              jnz    PLAY_TESTA
              orl    uPSDSoundStudio_PlayAddress+0,#0x80

              inc    uPSDSoundStudio_PlayPage
              anl    uPSDSoundStudio_PlayPage,#0x07
              mov    A,uPSDSoundStudio_PlayPage
              jnz    PLAY_TESTA
PLAY_STOP:    mov    uPSDSoundStudio_PlayAddress+0,#0                  ;STOP !
              mov    uPSDSoundStudio_PlayAddress+1,#0                  ;STOP !
              mov    uPSDSoundStudio_PlayPage,#0
              mov    PWM0,#uPSDSoundStudio_ZeroLevel
              mov    PWM1,#uPSDSoundStudio_ZeroLevel
              jmp    PLAY_END

PLAY_TESTA:   mov    A,uPSDSoundStudio_PlayAddress+1
              cjne   A,uPSDSoundStudio_EndAddress+1,PLAY_END
              mov    A,uPSDSoundStudio_PlayAddress+0
              cjne   A,uPSDSoundStudio_EndAddress+0,PLAY_END
              mov    A,uPSDSoundStudio_PlayPage
              cjne   A,uPSDSoundStudio_EndPage,PLAY_END
              jmp    PLAY_STOP                                    ; no sound !
PLAY_END:
              mov    A,uPSDSoundStudio_DCNT+0
              orl    A,uPSDSoundStudio_DCNT+1
              jz     PINT_END
              mov    A,uPSDSoundStudio_DCNT+1
              dec    uPSDSoundStudio_DCNT+1
              jnz    PINT_END
              dec    uPSDSoundStudio_DCNT+0
PINT_END:
              mov    DPTR,#uPSD_CSIOPxx_reg+0XE0                    ;PAGE REG.
              pop    ACC
              movx   @DPTR,A

              pop    DPH
              pop    DPL
              pop    ACC
              pop    PSW
              reti

  #pragma endasm
 }





void uPSDSoundStudio_Init(void)
/******************************************************************************
 Function   : void InitPlay()
 Parameters : (void)
 Description: Initializes Sound Studio
 ******************************************************************************/
 {
  EA = 0;

  PSCL0L = 0;
  PSCL0H = 0;

  PWM0 = 0;
  PWM1 = 0;
  PWMCON = 0x23;
  P4SFS  |= 0x18;                            //enable PWM4+0+1

  T2MOD  = 0;                                //cnt mode
  T2CON &= 0x30;
  T2CON |= 0x04;

  uPSDSoundStudio_FS = 100;
  RCAP2H =~(((FREQ_OSC/uPSDSoundStudio_FS/12)-1)>>8);
  RCAP2L =~ ((FREQ_OSC/uPSDSoundStudio_FS/12)-1);
  TL2 = 1;
  TH2 = 1;

  PWM0 = uPSDSoundStudio_ZeroLevel;
  PWM1 = uPSDSoundStudio_ZeroLevel;

  IP  = 0x20;                                //Timer2 INT has the highest priprity
  IPA = 0x00;                                //Timer2 INT has the highest priprity

  ET2 = 1;                                   // enable timer 2 interrupt

  uPSDSoundStudio_PlayAddress = 0;
  uPSDSoundStudio_PlayPage = 0;
  uPSDSoundStudio_EndAddress = 0;
  uPSDSoundStudio_EndPage = 0;
  EA = 1;
 }









void uPSDSoundStudio_NoSound(void)
/******************************************************************************
 Function   : void uPSDSoundStudio_NoSound()
 Parameters : (void)
 Description: Stops playing
 ******************************************************************************/
 {
  uPSDSoundStudio_PlayAddress = 0;
  uPSDSoundStudio_PlayPage = 0;
  uPSDSoundStudio_EndAddress = 0;
  uPSDSoundStudio_EndPage = 0;
  uPSDSoundStudio_FS   = 1000;
 }







void uPSDSoundStudio_PlayItemSpec(unsigned char ItemOrder, unsigned int UserData)
/******************************************************************************
 Function   : void uPSDSoundStudio_PlayItemSpec()
 Parameters : unsigned char ItemOrder, unsigned int UserData
 Description: Plays specified item with user data
              ItemOrder = 0   - silence of duration UserData in ms
                        <128  - Item order + waits for end of play
                        >=128 - Item order-128, no wait
 ******************************************************************************/
 {
  if (ItemOrder == 0)
   {
    uPSDSoundStudio_FS   = 1000;
    uPSDSoundStudio_DCNT = UserData;
   }
  else
   {
    uPSDSoundStudio_FS = ItemOrder & 0x7F;
    EA = 0;
    #pragma asm
              push   ACC
              push   DPH
              push   DPL

              mov    DPTR,#uPSD_CSIOPxx_reg+0XE0                    ;PAGE REG.
              clr    A
              movx   @DPTR,A                                          ;PAGE #0

              mov    DPTR,#0x8000
              movx   A,@DPTR
              cjne   A,#0x75,PLAY_INIT_ERROR                         ;wrong ID
              inc    DPTR
              movx   A,@DPTR
              cjne   A,#0x53,PLAY_INIT_ERROR                         ;wrong ID
              inc    DPTR
              movx   A,@DPTR
              cjne   A,#0x53,PLAY_INIT_ERROR                         ;wrong ID
              mov    DPL,#0x08
              jmp    PLAY_INIT_FIND

PLAY_INIT_ERROR:

              mov    uPSDSoundStudio_FS+0,#0
              mov    uPSDSoundStudio_FS+1,#0
              jmp    PLAY_INIT_END

PLAY_INIT_FINDLOOP:
              movx   A,@DPTR
              jz     PLAY_INIT_ERROR                        ;wrong item number
              inc    DPTR
              inc    DPTR
              inc    DPTR
              inc    DPTR
              inc    DPTR
              inc    DPTR
PLAY_INIT_FIND:
              djnz   uPSDSoundStudio_FS+1,PLAY_INIT_FINDLOOP

PLAY_INIT_FIND_END:
              movx   A,@DPTR
              cjne   A,#1,PLAY_INIT_ERROR       ;ONLY PURE WAV, MONO supported

              inc    DPTR
              movx   A,@DPTR
              mov    uPSDSoundStudio_FS+1,A                               ;low
              inc    DPTR
              movx   A,@DPTR
              mov    uPSDSoundStudio_FS+0,A                              ;high

              inc    DPTR
              movx   A,@DPTR
              mov    uPSDSoundStudio_PlayAddress+1,A                      ;low
              inc    DPTR
              movx   A,@DPTR
              mov    uPSDSoundStudio_PlayAddress+0,A                     ;high
              inc    DPTR
              movx   A,@DPTR
              mov    uPSDSoundStudio_PlayPage,A

              inc    DPTR

              inc    DPTR
              inc    DPTR
              inc    DPTR
              movx   A,@DPTR
              mov    uPSDSoundStudio_EndAddress+1,A
              inc    DPTR
              movx   A,@DPTR
              mov    uPSDSoundStudio_EndAddress+0,A
              inc    DPTR
              movx   A,@DPTR
              mov    uPSDSoundStudio_EndPage,A

PLAY_INIT_END:
              pop    DPL
              pop    DPH
              pop    ACC
    #pragma endasm
    EA = 1;

    if (uPSDSoundStudio_FS>22050)
     {
      uPSDSoundStudio_FS = 22050;
     }
    else
    if (uPSDSoundStudio_FS<256)              //Error
     {
      uPSDSoundStudio_NoSound();
     }
   }

  T2CON  = 0x00;
  T2MOD  = 0;

  TL2    = 0;
  TH2    = 255;
  RCAP2H =~(((FREQ_OSC/uPSDSoundStudio_FS/12)-1)>>8);
  RCAP2L =~ ((FREQ_OSC/uPSDSoundStudio_FS/12)-1);
  T2CON |= 0x04;

  ET2 = 1;                                   //enable Timer2 int

  if (ItemOrder == 0)
   {
    while (uPSDSoundStudio_DCNT);
   }
  else
  if (ItemOrder < 128)                       //Wait for end of file
   {

    while (uPSDSoundStudio_PlayAddress | uPSDSoundStudio_PlayPage)
     {
     }
   }
 }




char uPSDSoundStudio_IsPlayActive(void)
/******************************************************************************
 Function   : char uPSDSoundStudio_IsPlayActive()
 Parameters : (void)
 Description: Returns actual state of playback
 ******************************************************************************/
 {
  if (uPSDSoundStudio_PlayAddress | uPSDSoundStudio_PlayPage)
   {
    return(1);                               //play
   }
  else
   {
    return(0);                               //stop
   }
 }




void uPSDSoundStudio_PlayItem(unsigned char ItemOrder)
/******************************************************************************
 Function   : void uPSDSoundStudio_PlayItemSpec()
 Parameters : unsigned char ItemOrder
 Description: Plays the specified WAV file item stored in FLASH
 ******************************************************************************/
 {
  uPSDSoundStudio_PlayItemSpec(ItemOrder,0);
 }





void uPSDSoundStudio_Silence(unsigned int DurationInMiliSeconds)
/******************************************************************************
 Function   : void uPSDSoundStudio_Silence()
 Parameters : DurationInMiliSeconds
 Description: Generates silence of DurationInMiliSeconds
 ******************************************************************************/
 {
  uPSDSoundStudio_PlayItemSpec(0,DurationInMiliSeconds);
 }




/* *************************************************************************
  ***                                                                      ***
  **                         *** End of File ***                            **
  ***                                                                      ***
   *************************************************************************  */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久久久久| 日本视频免费一区| 国产91精品一区二区麻豆网站| 日韩欧美一区电影| 美腿丝袜亚洲色图| 日韩精品一区二区三区在线播放| 激情亚洲综合在线| 久久久精品tv| 99久久国产免费看| 天堂蜜桃一区二区三区| 日韩限制级电影在线观看| 国产中文字幕精品| 成人欧美一区二区三区视频网页| 日本电影亚洲天堂一区| 天天操天天干天天综合网| 日韩午夜小视频| 波多野结衣91| 午夜不卡av免费| 久久色在线视频| 色综合色狠狠天天综合色| 首页国产欧美久久| 久久久精品免费网站| 欧美在线观看一区| 国产综合久久久久久久久久久久| 国产精品不卡在线观看| 欧美日韩精品福利| 国产成人亚洲精品青草天美| 亚洲天天做日日做天天谢日日欢| 91精品欧美综合在线观看最新| 狠狠色狠狠色合久久伊人| 亚洲男人天堂av网| 精品久久久久久亚洲综合网| 99re成人精品视频| 麻豆国产一区二区| 亚洲欧美日韩久久精品| 日韩欧美视频一区| 日本高清不卡视频| 国产九色精品成人porny| 一区二区成人在线视频| 国产三级精品三级| 69av一区二区三区| 色综合久久久久久久久| 国产在线不卡一卡二卡三卡四卡| 夜夜精品浪潮av一区二区三区| 精品久久久久久亚洲综合网 | 欧美一区二区精品| 色综合久久六月婷婷中文字幕| 毛片不卡一区二区| 亚洲高清免费在线| 日韩一区中文字幕| 国产蜜臀97一区二区三区| 在线电影一区二区三区| 91麻豆高清视频| 国产精品小仙女| 免费av网站大全久久| 亚洲激情在线播放| 国产精品家庭影院| 久久久www免费人成精品| 欧美精品欧美精品系列| 91国偷自产一区二区开放时间| 成av人片一区二区| 国产精品一区二区久久不卡 | 激情国产一区二区| 三级久久三级久久| 亚洲一二三四在线观看| 亚洲激情综合网| 亚洲天堂免费在线观看视频| 国产色爱av资源综合区| 精品第一国产综合精品aⅴ| 欧美电影影音先锋| 欧美精品久久久久久久久老牛影院 | 亚洲国产精品激情在线观看| 亚洲精品一区二区三区蜜桃下载 | av福利精品导航| 国产传媒久久文化传媒| 国产乱一区二区| 国产乱国产乱300精品| 国产一区二区视频在线| 韩国精品免费视频| 国产一区二区三区| 国产黄色精品网站| 丁香网亚洲国际| 成人国产精品免费网站| 成人h精品动漫一区二区三区| 99在线精品一区二区三区| av高清久久久| 在线免费av一区| 欧美日韩一区 二区 三区 久久精品| 91麻豆免费看| 欧美天堂亚洲电影院在线播放| 欧美视频中文一区二区三区在线观看| 91高清视频免费看| 69久久夜色精品国产69蝌蚪网| 91精品欧美一区二区三区综合在 | 国产呦精品一区二区三区网站| 国产做a爰片久久毛片| 国产精品一区在线观看乱码 | 99r精品视频| 91福利国产精品| 欧美一级夜夜爽| 久久精品夜色噜噜亚洲a∨| 国产精品素人一区二区| 亚洲一区电影777| 奇米影视在线99精品| 国产a区久久久| 欧美色手机在线观看| 欧美精品在线视频| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产麻豆视频精品| av电影天堂一区二区在线观看| 日本韩国精品在线| 欧美电视剧免费全集观看| 国产精品嫩草久久久久| 首页国产丝袜综合| 国产suv一区二区三区88区| 色婷婷狠狠综合| 久久久无码精品亚洲日韩按摩| 中文字幕一区二区三区四区 | 精品国产一区二区三区久久影院| 国产欧美精品在线观看| 午夜视频久久久久久| 国产成人综合在线观看| 欧美日韩成人综合在线一区二区 | 国产精品久久久久aaaa| 首页综合国产亚洲丝袜| 成人美女视频在线观看| 欧美日韩国产小视频| 国产精品网站在线播放| 裸体歌舞表演一区二区| 91网址在线看| 欧美精品一区二区蜜臀亚洲| 亚洲愉拍自拍另类高清精品| 国产一区二区三区四| 欧美久久久一区| 亚洲欧美另类综合偷拍| 国产真实乱对白精彩久久| 7777精品伊人久久久大香线蕉超级流畅 | 国产精品影视在线观看| 7777精品伊人久久久大香线蕉完整版| 中文字幕中文在线不卡住| 国内精品视频一区二区三区八戒| 色哟哟国产精品| 中文字幕国产精品一区二区| 天堂久久一区二区三区| 91传媒视频在线播放| 亚洲国产高清在线观看视频| 美女一区二区三区在线观看| 欧美日韩日日摸| 亚洲品质自拍视频| 国产高清不卡一区二区| 日韩午夜激情电影| 五月激情六月综合| 色综合天天综合在线视频| 中文字幕欧美三区| 韩国三级在线一区| 欧美xxx久久| 免费在线欧美视频| 欧美日韩成人一区二区| 亚洲综合免费观看高清在线观看| 成人午夜精品一区二区三区| 久久色成人在线| 国产一区二三区| 国产亚洲成年网址在线观看| 国产一区二区精品在线观看| 精品国产亚洲在线| 久久国产精品第一页| 精品久久久久久久一区二区蜜臀| 久久99久久久久久久久久久| 欧美一级精品在线| 美腿丝袜在线亚洲一区| 欧美成人精品高清在线播放 | 国精品**一区二区三区在线蜜桃| 91精品国产免费久久综合| 水野朝阳av一区二区三区| 欧美日精品一区视频| 丝袜a∨在线一区二区三区不卡| 欧美浪妇xxxx高跟鞋交| 天天av天天翘天天综合网| 欧美一区二区视频观看视频| 蜜桃久久av一区| 精品国产污网站| 国产精品123| 亚洲视频在线一区二区| 在线观看免费视频综合| 香港成人在线视频| 欧美v日韩v国产v| 国产成人午夜电影网| 综合久久久久久| 欧美日韩视频第一区| 久久精品国产第一区二区三区| 亚洲精品在线电影| 菠萝蜜视频在线观看一区| 亚洲三级免费电影| 91麻豆精品国产91久久久更新时间| 蜜桃视频一区二区| 日本一区二区三区四区| 色94色欧美sute亚洲线路一ni| 婷婷开心久久网| 久久久精品人体av艺术| 色婷婷精品久久二区二区蜜臂av|