?? 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 + -