Linux编程实现蜂鸣器演奏康定情歌
Linux编程实现蜂鸣器演奏康定情歌
- #include <sys/io.h>
- #include <unistd.h>
- void play(unsigned int* freq, unsigned int* delay);
- main()
- {
- int i;
- unsigned int freq[]={ 330 , 392 , 330 , 294 , 330 , 392 ,
- 330 , 394 , 330 , 330 , 392 , 330 ,
- 294 , 262 , 294 , 330 , 392 , 294 ,
- 262 , 262 , 220 , 196 , 196 , 220 ,
- 262 , 294 , 330 , 262 , 0 } ;
- unsigned int time[]={ 50 , 50 , 50 , 25 , 25 , 50 ,
- 25 , 25 , 100, 50 , 50 , 25 ,
- 25 , 50 , 50 , 25 , 25 , 100,
- 50 , 25 , 25 , 50 , 25 , 25 ,
- 50 , 25 , 25 , 100 };
- unsigned int freq2[]={
- 196,262,262,262,330,294,262,294,330,294,262,
- 330,394,440,440,394,330,330,262,294,262,294,
- 330,294,262,230,230,196,262,440,394,330,330,
- 262,294,262,294,440,394,330,330,394,440,523,
- 394,330,330,262,294,262,294,330,294,262,230,
- 230,196,262,440,394,330,330,262,294,262,294,
- 440,394,330,330,394,440,523,394,330,330,262,
- 294,262,294,330,294,262,230,230,196,262,0
- };
- unsigned int time2[]={
- 25,38,12,25,25,38,12,25,12,12,56,25,25,50,25,
- 38,12,12,12,38,12,25,12,12,38,12,25,25,100,25,
- 38,12,12,12,38,12,25,25,38,12,25,25,100,25,38,
- 12,12,12,38,12,25,12,12,38,12,25,25,100,25,38,
- 12,12,12,38,12,25,25,38,12,25,25,100,25,38,12,
- 12,12,38,12,25,12,12,38,12,25,25,100
- };
- unsigned int freq_alert[]={
- 2000, 2400, 0
- };
- unsigned int time_alert[]={
- 50, 60
- };
- for(i = 0; i < 5; i++)
- {
- play(freq_alert, time_alert);
- }
- play(freq2, time2);
- }
- void play(unsigned int* freq, unsigned int* time)
- {
- int i;
- for(i=0;freq[i]!=0;i++)
- {
- speaker(freq[i], time[i]);
- }
- }
- int speaker(unsigned int freq,unsigned int delay)
- {
- static int flag=0,bit;
- if(fl ag==0)
- {
- flag=1;
- iopl(3);
- }
- outb(0xb6,0x43);
- outb((freq & 0xff), 0x42);
- outb((freq>>8), 0x42);
- bit=inb(0x61);
- outb(3 | bit,0x61);
- usleep(10000*delay);
- outb(0xfc | bit,0x61);
- }
Linux编程实现蜂鸣器演奏康定情歌的更多相关文章
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 转载
基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...
- 【转】牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...
- Linux 编程中的API函数和系统调用的关系【转】
转自:http://blog.chinaunix.net/uid-25968088-id-3426027.html 原文地址:Linux 编程中的API函数和系统调用的关系 作者:up哥小号 API: ...
- linux编程获取本机网络相关参数
getifaddrs()和struct ifaddrs的使用,获取本机IP 博客分类: Linux C编程 ifaddrs结构体定义如下: struct ifaddrs { struct ifad ...
- 面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...
- Linux编程简介
Linux编程可以分为Shell(如BASH.TCSH.GAWK.Perl.Tcl和Tk等)编程和高级语言(C语言,C++语言,java语言等)编程,Linux程序需要首先转化为低级机器语言即所谓的二 ...
- Linux编程return与exit区别
Linux编程return与exit区别 exit 是用来结束一个程序的执行的,而return只是用来从一个函数中返回. return return 表示从被调函数返回到主调函数继续执行,返回时可附 ...
- linux 编程技术
linux 编程技术No.1前期准备工作 GCC的编译过程分为预处理.生成汇编代码.生成目标代码和链接成可执行文件等4个步骤. 使用vim编写C 文件 : [lining@localhost prog ...
- Linux编程之给你的程序开后门
这里说的"后门"并不是教你做坏事,而是让你做好事,搭建自己的调试工具更好地进行调试开发.我们都知道,当程序发生异常错误时,我们需要定位到错误,有时我们还想,我们在不修改程序的前提下 ...
随机推荐
- m'ybatis 一对一 一对多 配置详解
javabean: package com.me.model; import java.io.Serializable; import java.util.Date; import java.util ...
- (转)Java调用SQL Server的存储过程详解
本文转载自:http://dev.yesky.com/128/8088128.shtml 1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序 ...
- kotlin学习二:初步认识kotlin
1. 函数 kotlin中支持顶级函数(文件内直接定义函数),对比JAVA来说,JAVA的程序入口是main方法,kotlin也一样,入口为main函数 首先看下kotlin中main函数的定义. f ...
- Python3中发邮件emal(明文/SSL/TLS三种方式)
#!/usr/bin/env python #-*- coding:utf-8 -*- #Author:lzd import smtplib from email.mime.text import M ...
- python3第一次作业
需要一个文件users,里面有用户名密码以及是否锁定的标识符 lzd--123--1wdl--123--0lw--123--0aaa--123--0bbb--123--0ccc--123--1ddd- ...
- PHP字符串中的变量解析
定义字符串的时候,用单引号或者双引号都是可以的.我个人习惯是用双引号.在输出字符串的时候,若字符串中含有字符串变量,使用单引号和双引号则是有区别的.如下面程序: <?php $website = ...
- 为什么多线程读写 shared_ptr 要加锁?
https://www.cnblogs.com/Solstice/archive/2013/01/28/2879366.html 为什么多线程读写 shared_ptr 要加锁? 陈硕(giantch ...
- java实现二叉树demo
二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的.分别称作这个根的左子树和右子树的二叉树组成. 这个定义是递归的.由于左.右子 ...
- *(ptr++) += 123
*(ptr++) += 123; 等价于:*(ptr) = *(ptr) + 123; ptr++; 而不是:*(ptr++) = *(ptr++) + 123;程序员面试宝典p32 #include ...
- Java规则引擎及JSR-94[转]
规则引擎简介 Java规则引擎是推理引擎的一种,它起源于基于规则的专家系统. Java规则引擎将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.Java规则引擎接 ...