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

摘自:https://blog.csdn.net/jiazhen/article/details/3490979
 
2008年12月10日 15:40:00 jiazhengod 阅读数:1714 标签: linux编程delay
 

  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. }

Linux编程实现蜂鸣器演奏康定情歌的更多相关文章

  1. 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 转载

    基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...

  2. 【转】牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结

    基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...

  3. Linux 编程中的API函数和系统调用的关系【转】

    转自:http://blog.chinaunix.net/uid-25968088-id-3426027.html 原文地址:Linux 编程中的API函数和系统调用的关系 作者:up哥小号 API: ...

  4. linux编程获取本机网络相关参数

    getifaddrs()和struct ifaddrs的使用,获取本机IP 博客分类: Linux C编程   ifaddrs结构体定义如下: struct ifaddrs { struct ifad ...

  5. 面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结

    基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...

  6. Linux编程简介

    Linux编程可以分为Shell(如BASH.TCSH.GAWK.Perl.Tcl和Tk等)编程和高级语言(C语言,C++语言,java语言等)编程,Linux程序需要首先转化为低级机器语言即所谓的二 ...

  7. Linux编程return与exit区别

    Linux编程return与exit区别 exit  是用来结束一个程序的执行的,而return只是用来从一个函数中返回. return return 表示从被调函数返回到主调函数继续执行,返回时可附 ...

  8. linux 编程技术

    linux 编程技术No.1前期准备工作 GCC的编译过程分为预处理.生成汇编代码.生成目标代码和链接成可执行文件等4个步骤. 使用vim编写C 文件 : [lining@localhost prog ...

  9. Linux编程之给你的程序开后门

    这里说的"后门"并不是教你做坏事,而是让你做好事,搭建自己的调试工具更好地进行调试开发.我们都知道,当程序发生异常错误时,我们需要定位到错误,有时我们还想,我们在不修改程序的前提下 ...

随机推荐

  1. WebApi FormData+文件长传 异步+同步实现

    // POST api/values public async Task Post() { try { // 检查该请求是否含有multipart/form-data if (!Request.Con ...

  2. 页面初始加载的是默认刷新一次(f5)

    参考找不到了,不好意思.. 两种可以都试一下,解决问题就好了. 1.----------- <script type="text/javascript"> window ...

  3. 工作JS总结

    获取 <inpout type="checkbox" value="1" /> 多选项的value /*获取checkbox的全部选中项 使用方法: ...

  4. 第十章 Secret & Configmap (上)

    敏感信息,直接保存在容器镜像中显然不妥,比如用户名.密码等.K8s提供的解决方案是Secret. Secret会以密文的方式存储数据,避免了在配置文件中保存敏感信息.Secret会以Volume的形式 ...

  5. [CSAPP] Chapter 1 Overview of Computer

    1.1 information is bits + context All computer programs are just a sequence of bits, each with a val ...

  6. JSR-303 结合spring 校验

    使用注解 一.准备校验时使用的JAR validation-api-1.0.0.GA.jar:JDK的接口: hibernate-validator-4.2.0.Final.jar是对上述接口的实现: ...

  7. spring 声明式事务的坑 @Transactional 注解

    1.首先环境搭建,jar 我就不写了,什么一些spring-core.jar spring-beans.jar spring-content.jar 等等一些包 省略..... 直接上图: sprin ...

  8. python开发_python中for循环操作

    如果你对python中的for循环不是很清楚,请看看这篇文章:”for循环控制语句——菜鸟的Python笔记“ 下面是我做的一些学习记录供大家参考: #基本的for循环语句 test_list = [ ...

  9. 你所不知道的javascript数组特性

    工作中,我们经常使用js的数组,但是,下面的东西你见过吗? 1,文本下标: var a=[]; a[-1]=1; 你想过数组的下标为负数的情况吗?我们对数组的下标规定从0开始.但是上面那么写也还是可以 ...

  10. K2 Blackpearl中从数据库直接删除流程实例之K2ServerLog表

    转:http://www.cnblogs.com/dannyli/archive/2012/11/29/2794845.html /********************************** ...