📄 soundl.cpp
字号:
#include "StdAfx.h"
//*-------------------------------------------------------*/
//* SoundL.cpp(声-光报警器接口实验) * /
//* 声-光报警器 Source File */
//* Copyright (c) 2005 by HUST */
//*-------------------------------------------------------*/
#include <conio.h> //kbhit();
#include "myport.h"
void delay(double minisecond)
{
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart;// 获得计数器的时钟频率
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart;// 获得初始值
do
{
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//获得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;// 获得对应的时间值,单位为秒
}while(dfTim * 1e3 < minisecond);
}
void SoundL()
{
int xu[8]={0x81,0x42,0x24,0x18,0x81,0x42,0x24,0x18}; //LED发光顺序
unsigned long int i=0,j=0;
int num = 0;
OpenPortTalk();
outportb(0x303,0x83); //初始化
outportb(0x300,0x00); //LED全灭
outportb(0x303,0x0c); //关闭SPK
// do
// {
outportb(0x300,xu[i]); //按顺序送发光信号
i++;
if(i==8) i=0;
for(j=0;j<=100;j++)
{
outportb(0x303,0x0d); //令PC6=1,发高频音
delay(1);
outportb(0x303,0x0c); //令PC6=0,关闭SPK
delay(1);
}
outportb(0x300,0x00); //LED全灭
for(j=0;j<=10;j++)
{
outportb(0x303,0x0d);
delay(30); //令PC6=1,发低频音
outportb(0x303,0x0c); //令PC6=0,消音
delay(30);
}
// num ++;
// }while(num < 3);
outportb(0x300,0x00); //LED全灭
outportb(0x303,0x0c); //关闭SPK
ClosePortTalk();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -