zoukankan      html  css  js  c++  java
  • Linux编程实现蜂鸣器演奏康定情歌

    Linux编程实现蜂鸣器演奏康定情歌

     
    1. #include   <sys/io.h>  
    2. #include   <unistd.h>  
    3. void   play(unsigned   int*   freq,   unsigned   int*   delay);  
    4. main()  
    5. {  
    6.       int   i;  
    7.       unsigned   int   freq[]={   330   ,   392   ,   330   ,   294   ,   330   ,   392   ,  
    8.               330   ,   394   ,   330   ,   330   ,   392   ,   330   ,  
    9.               294   ,   262   ,   294   ,   330   ,   392   ,   294   ,  
    10.               262   ,   262   ,   220   ,   196   ,   196   ,   220   ,  
    11.               262   ,   294   ,   330   ,   262   ,   0   }   ;  
    12.       unsigned   int   time[]={   50   ,   50   ,   50   ,   25   ,   25   ,   50   ,  
    13.               25   ,   25   ,   100,   50   ,   50   ,   25   ,  
    14.               25   ,   50   ,   50   ,   25   ,   25   ,   100,  
    15.               50   ,   25   ,   25   ,   50   ,   25   ,   25   ,  
    16.               50   ,   25   ,   25   ,   100   };  
    17.       unsigned   int   freq2[]={  
    18.               196,262,262,262,330,294,262,294,330,294,262,  
    19.               330,394,440,440,394,330,330,262,294,262,294,  
    20.               330,294,262,230,230,196,262,440,394,330,330,  
    21.               262,294,262,294,440,394,330,330,394,440,523,  
    22.               394,330,330,262,294,262,294,330,294,262,230,  
    23.               230,196,262,440,394,330,330,262,294,262,294,  
    24.               440,394,330,330,394,440,523,394,330,330,262,  
    25.               294,262,294,330,294,262,230,230,196,262,0  
    26.       };  
    27.       unsigned   int   time2[]={  
    28.               25,38,12,25,25,38,12,25,12,12,56,25,25,50,25,  
    29.               38,12,12,12,38,12,25,12,12,38,12,25,25,100,25,  
    30.               38,12,12,12,38,12,25,25,38,12,25,25,100,25,38,  
    31.               12,12,12,38,12,25,12,12,38,12,25,25,100,25,38,  
    32.               12,12,12,38,12,25,25,38,12,25,25,100,25,38,12,  
    33.               12,12,38,12,25,12,12,38,12,25,25,100  
    34.       };  
    35. unsigned   int   freq_alert[]={  
    36.               2000,   2400,   0  
    37.       };  
    38.       unsigned   int   time_alert[]={  
    39.               50,   60  
    40.       };  
    41.       for(i   =   0;   i   <   5;   i++)  
    42.       {  
    43.               play(freq_alert,   time_alert);  
    44.       }  
    45.       play(freq2,   time2);  
    46. }  
    47. void play(unsigned   int*   freq,   unsigned   int*   time)  
    48. {  
    49.       int   i;  
    50.       for(i=0;freq[i]!=0;i++)  
    51.       {  
    52.               speaker(freq[i],   time[i]);  
    53.       }  
    54. }  
    55. int speaker(unsigned   int   freq,unsigned   int   delay)  
    56. {     
    57.     static   int   flag=0,bit;  
    58.     if(fl   ag==0)  
    59.     {  
    60.           flag=1;  
    61.           iopl(3);  
    62.     }  
    63.     outb(0xb6,0x43);  
    64.     outb((freq & 0xff),     0x42);  
    65.     outb((freq>>8), 0x42);  
    66.     bit=inb(0x61);  
    67.     outb(3   |   bit,0x61);  
    68.     usleep(10000*delay);  
    69.     outb(0xfc   |   bit,0x61);  
    70. }   
  • 相关阅读:
    这仅仅是一份工作
    和老总之间的对话
    假设满足怎样的条件,就不去编程
    那都是别人的架构
    程序员狂想曲
    学点经济学知识(三)
    一起来看 HTML 5.2 中新的原生元素 <dialog>
    动态配置页面 之 组件系统
    初识JavaScript EventLoop
    webpack+vue-cli+ElementUI+vue-resource 前端开发
  • 原文地址:https://www.cnblogs.com/LiuYanYGZ/p/10190881.html
Copyright © 2011-2022 走看看