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. 方法 中 void 的解释

  2. [Java.web][eclipse]经验集

    自动提示部分内容来自:http://www.cnblogs.com/mashuangying2016/p/6549991.html 使用 Eclipse 调试 Tomcat 的设置: Window - ...

  3. 第四章 istio快速入门(快速安装)

    4.1 环境介绍 K8s 1.9 以上版本. 4.2 快速部署Istio 下载:  https://github.com/istio/istio/releases/,  下载 1.1.0-snapsh ...

  4. python学习 (三十四) Python文件操作

    1 写文件 my_list = ["] my_file = open("myfile.txt", "w") for item in my_list: ...

  5. 【POJ】2329 Nearest number - 2(搜索)

    题目 传送门:QWQ 分析 在dp分类里做的,然而并不会$ O(n^3) $ 的$ dp $,怒写一发搜索. 看起来是$ O(n^4) $,但仔细分析了一下好像还挺靠谱的? poj挂了,没在poj交, ...

  6. Asp.net mvc validaterequest无效的问题

    在普通的asp.net下,可以通过在页面上注明 validateRequest=“false" 这个选项来关闭请求对注入攻击的验证,但在mvc下则不行.而且,在asp.net 4.0下,哪怕 ...

  7. zabbix agent主动模式与proxy模式,实现公网zabbix监控私网客户机

    zabbix agent主动模式,实现公网zabbix监控私网客户机 zabbix_server端当主机数量过多的时候,由Server端去收集数据,Zabbix会出现严重的性能问题,主要表现如下:  ...

  8. Docker垃圾回收机制

    由Docker垃圾回收机制引发的一场血案 AlstonWilliams 关注 2017.04.01 19:00* 字数 1398 阅读 253评论 0喜欢 0 今天早晨,在我还没睡醒的时候,我们团队中 ...

  9. 第一章 : Android Studio 介绍 [Learn Android Studio 汉化教程]

    摘自:http://ask.android-studio.org/?/question/789,为便于学习重新整理.. 本章将引导您完成安装和设置开发环境,然后你就可以跟随本书的例子和课程学习. 首先 ...

  10. CentOS7.6安装Nodejs(Npm)

    官网下载地址:https://nodejs.org/en/download/ 第一步:软件下载安装 进行安装目录:cd /opt/software (如果目录不存在,请先创建目录) 下载二进制包:wg ...