?? sound.c
字號:
#include "spce061a.h"
#include "key.h"
#include "organ.h"
int Key_code;
unsigned char Key_Delay;
/*---本源文件功能------------------------------------------------------------------*/
// 1、將鍵盤掃描碼轉(zhuǎn)換成相應(yīng)的延時。unsigned int KeyDataChange(unsigned int Key_Data);
// 2、控制DA轉(zhuǎn)換,發(fā)聲。void sound();
/*-------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
// 函數(shù)名稱:void sound();
// 函數(shù)功能:控制DA轉(zhuǎn)換發(fā)聲。
// 入口參數(shù):無
// 出口參數(shù):無
// 使用全局變量:Key_code----鍵盤掃描碼 Key_Delay----相應(yīng)延時
// 改變?nèi)肿兞浚簾o
/*-------------------------------------------------------------------------------*/
void sound()
{
int i,j,m;
Key_code = Key_Get(); //掃描鍵盤
if(Key_code!=0)
{
Key_Delay = KeyDataChange(Key_code);
}
if(Key_Delay!=0)
{
for(i=0;i<0xff;i++) //一次循環(huán) cycles
{
*P_DAC_Ctrl=0x0000;
*P_DAC1=j;
*P_DAC2=j;
for(m = 0;m<Key_Delay;m++);
if(j==0x0000)
j=0x8000;
else j=0x0000;
*P_Watchdog_Clear = 0x0001;
}
// *P_DAC1=0x0000;
// *P_DAC2=0x0000;
}
*P_Watchdog_Clear = 0x0001; // 清看門狗
}
///////////////////////////////////////////////////
/*--------------------------------------------------------------------------*/
// 函數(shù)名稱:unsigned int KeyDataChange(unsigned int Key_Data);
// 函數(shù)功能:將鍵盤掃描碼轉(zhuǎn)換成相應(yīng)的延時。
// 入口參數(shù):Key_code-----鍵盤掃描碼
// 出口參數(shù):Key_Delay----相應(yīng)的延時(函數(shù)sound()中for循環(huán)的次數(shù))
// 使用全局變量:Key_code-----鍵盤掃描碼
// 改變?nèi)肿兞浚篕ey_Delay----相應(yīng)的延時
/*-------------------------------------------------------------------------------*/
unsigned int KeyDataChange(unsigned int Key_code)
{
switch(Key_code)
{
case KEY_0: Key_Delay = 0;break;
case KEY_1: Key_Delay = 110;break;
case KEY_2: Key_Delay = 98;break;
case KEY_3: Key_Delay = 87;break;
case KEY_4: Key_Delay = 82;break;
case KEY_5: Key_Delay = 73;break;
case KEY_6: Key_Delay = 64;break;
case KEY_7: Key_Delay = 61;break;
case KEY_8: Key_Delay = 54;break;
case KEY_9: Key_Delay = 48;break;
case KEY_A: Key_Delay = 42;break;
case KEY_B: Key_Delay = 40;break;
case KEY_C: Key_Delay = 0;break;
case KEY_D: Key_Delay = 0;break;
case KEY_E: Key_Delay = 0;break;
case KEY_F: Key_Delay = 0;break;
default: Key_Delay = 0;break;
}
return Key_Delay;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -