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. JVM内存管理之GC算法精解(五分钟教你终极算法---分代搜集算法)

    引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极.说不定若干年以后,还会有新的终极算法,而且几乎是一定会有,因为LZ相信高人们的能力. 那么分代搜集算法是怎么处理GC的呢? 对象分 ...

  2. python 笔记2016

    列表,元组(不可添加和修改),字典 3种集合模式 模块----类---函数 要把文件变成双击运行,要把文件的属性选择python安装目录下的python.exe 1,查看数据类型 print(type ...

  3. kafka 常用命令

    Kafka 解压,进入kafka目录下的bin目录 启动zk nohup ./zookeeper-server-start.sh ../config/zookeeper.properties & ...

  4. nginx 作为反向代理实现负载均衡的例子

    以下我们就来举例说明如何使用 nginx 实现负载均衡.因为nginx在处理并发方面的优势,现在这个应用非常常见.nginx 这个轻量级.高性能的 web server 主要可以干两件事情: 〉直接作 ...

  5. mysql 存储过程简单学习

    转载自:http://blog.chinaunix.net/uid-23302288-id-3785111.html ■存储过程Stored Procedure 存储过程就是保存一系列SQL命令的集合 ...

  6. 【洛谷】P3908 异或之和(异或)

    题目描述 求1 \bigoplus 2 \bigoplus\cdots\bigoplus N1⨁2⨁⋯⨁N 的值. A \bigoplus BA⨁B 即AA , BB 按位异或. 输入输出格式 输入格 ...

  7. 【游记】noip2017酱油记

    2017-10-14:初赛 12:00:比赛时间14:30-16:30,由于比赛地点在二附中,我12点就坐上了地铁(无力吐槽,周六中午人还那么多,站了一路). 13:45:到了efz,所有人都被拦在了 ...

  8. 25行 Python 代码实现人脸检测——OpenCV 技术教程

    这是篇是利用 OpenCV 进行人脸识别的技术讲解.阅读本文之前,这是注意事项: 建议先读一遍本文再跑代码——你需要理解这些代码是干什么的.成功跑一遍不是目的,能够举一反三.在新任务上找出 bug 才 ...

  9. Shachar Fleishma的论文,做点云重建的几篇论文都不错

    http://www.sci.utah.edu/~shachar/ 几篇论文都不错,但貌似05年之后就没有什么动作了.

  10. linux 进程通信 :流套接字

    消息队列是可以实现没有共同关系的进程之间的通信.Socket则可以实现不同计算机的不同进程之间的通信. //地址的结构体 struct sockaddr_in{ short int sin_famil ...