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. 【转】活用软件测试工具之Jmeter活用

    软件测试工具不光能测试用,拿Jmeter来说,使用它可以进行web性能测试. 简单说一下大概使用: 如果要测试某个网页内的功能,首先要录制Jmeter脚本,脚本的录制与运行过程,也就是打开网页,执行被 ...

  2. 学生选课数据库SQL语句练习题

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  3. hadoop Partiton中的字符串Hash函数改进

    最近的MapReduce端的Partition根据map生成的Key来进行哈希,导致哈希出来的Reduce端处理任务数量非常不均匀,有些Reduce端处理的数据量非常小(几分钟就执行完成,而最后的pa ...

  4. MySQL 慢查询日志切换

    low_query_log_file日志变得很大,对它进项分析变得很不方便,我们就想按天每天产生一个slow_query_log_file文件,每天分析这个日志文件. 如何按天切割呢? 我们想到了这么 ...

  5. 卷积神经网络之AlexNet网络模型学习

    ImageNet Classification with Deep Convolutional Neural Networks 论文理解  在ImageNet LSVRC-2010上首次使用大型深度卷 ...

  6. REST理解

    内容摘自:<Spring REST> REST是什么:REST是一种软件架构风格,它由建立规模可扩展的web服务的最佳实践和指南构成. 资源: 一切可被访问和操作的东西.资源标识:URI( ...

  7. 弗雷塞斯 从生物学到生物信息学到机器学习 转录组入门(3):了解fastq测序数据

    sra文件转换为fastq格式 1 fastq-dump -h --split-3 也就是说如果SRA文件中只有一个文件,那么这个参数就会被忽略.如果原文件中有两个文件,那么它就会把成对的文件按*_1 ...

  8. [ Python ] Flask 基于 Web开发 大型程序的结构实例解析

    作为一个编程入门新手,Flask是我接触到的第一个Web框架.想要深入学习,就从<FlaskWeb开发:基于Python的Web应用开发实战>这本书入手,本书由于是翻译过来的中文版,理解起 ...

  9. Swift 修改UITextField.Placeholder颜色

    StoreNameEditTextField.attributedPlaceholder = NSAttributedString(string:"点此处输入门店名称",attri ...

  10. NetworkStream.write只能使用一次,后面再使用无效

    public delegate void ShowMessageMethod2(TcpClient tc); private void ShowMessage2(TcpClient tc) { Str ...