My_Sound.c
上传用户:shyuanyi
上传日期:2008-05-24
资源大小:69k
文件大小:2k
源码类别:

RFID编程

开发平台:

C/C++

  1. #include  "My_head.h"
  2. /*************************************/
  3. #define  BUZZER   P1_0
  4. #define  PLAY     P2_6
  5. #define  PD       P2_7
  6. //======================================
  7. BYTE  code  sound_addr[SOUND_MAX_INDEX+1]=
  8. {
  9.  WELCOME_ADDR,      //0--WELCOME_INDEX
  10.  DEL_CONRECORD_ADDR,//1
  11.  DEL_ALL_ADDR,      //2
  12.  CARD_ERR_ADDR,     //3
  13.  CARD_WRITEERR_ADDR,//4
  14.  CARD_READERR_ADDR, //5
  15.  CARD_VALERR_ADDR,  //6
  16.  KEY_VALERR_ADDR,   //7
  17.  0xff//for test.
  18. };
  19. BYTE  code  err_sound_index[][2]=
  20. {
  21.  {CARD_ERR_CODE,CARD_ERR_INDEX},
  22.  {CARD_WRITEERR_CODE,CARD_WRITEERR_INDEX},
  23.  {CARD_READERR_CODE,CARD_READERR_INDEX},
  24.  {CARD_VALERR_CODE,CARD_VALERR_INDEX},
  25.  {KEY_VALERR_CODE,KEY_VALERR_INDEX},
  26.  {0,0}//注意:错误代码一定要在(1--250)之间。
  27. };
  28. void  Sound_Err(BYTE errcod)
  29. {
  30.   BYTE  ii;
  31.   for(ii=0;err_sound_index[ii][0];ii++)
  32.     if(err_sound_index[ii][0]==errcod)
  33.       {
  34.    Sound_Play(err_sound_index[ii][1]);
  35.        //SendStr(&err_sound_index[ii][1],1);
  36.    break;
  37.   }
  38.   //SendStr(&errcod,1);
  39.   //SendStr(&ii,1);
  40.   return;
  41. }
  42. bit   Sound_Play(BYTE index)
  43. {
  44.   if(index>SOUND_MAX_INDEX)return(FALSE);
  45.   P0 = sound_addr[index];
  46.   PD = 1;delay_ms(10);
  47.   PD = 0;delay_ms(10);
  48.   PLAY = 0;delay_ms(10);
  49.   PLAY = 1;
  50.   //SendStr(&sound_addr[index],1);
  51.   return(TRUE);
  52. }
  53. void  Init_Sound(void)
  54. {
  55.   BUZZER  =  1;
  56.   PLAY = 1;
  57.   PD = 1;delay_ms(10);PD = 0;
  58. }
  59. void  do_buzzer(BYTE  count)
  60. {
  61.   while(count--)
  62.   {
  63.    BUZZER = 0;
  64.    delay_ms(50);
  65.    BUZZER = 1;
  66.    if(!count)break;
  67.    delay_ms(50);
  68.   }
  69. }
  70. void  My_Do_Buzzer(BYTE time,BYTE  count)
  71. {
  72.   while(count--)
  73.   {
  74.    BUZZER = 0;
  75.    delay_ms(time);
  76.    BUZZER = 1;
  77.    if(!count)break;
  78.    delay_ms(time);
  79.   }
  80. }