如何用c语言编出能用键盘敲出音乐的的程序

如何用c语言编出能用键盘敲出音乐的的程序,第1张

下面用beep函数发音,按键 1,州模唯册培2,3,4,5,6,7,8 对应 多来米发少。。。

按换行键结束。0.3秒一个音,不要按得太快。码御

#include <windows.h>

#include <stdio.h>

#include <stdlib.h>

void main()

{

char p

int i=0

printf("input 12345678..\n")

while ( i <50 ){

p = getch()

if (p == '\r') break

switch(p-'0'){

case 1: Beep(523,300)break

case 2: Beep(587,300)break

case 3: Beep(659,300)break

case 4: Beep(698,300)break

case 5: Beep(784,300)break

case 6: Beep(880,300)break

case 7: Beep(980,300)break

case 8: Beep(1060,300)break

default: break

}

i++

}

exit(0)

}

这是使用实验仪器键盘上的数字键1,2,3,4,5,6,7作为闹数键盘键,按适当的音的问题。 8255 PA.0口音频脉差弯轮冲以驱动扬声器的问题。可以参考一下。

#包括

#定义模式0X82

外部数据无符号字符型控制_at_ 0x8003

外部数据无符号字符型音箱_at_ 0X8000

外部数据无符号字符型OUTBIT _at_ 0x9002

外部数据无符号字符型OUTSEG _at_ 0x9004

外部数据无符号字符型IN _at_ 0x9001

代码无符号字符型KEYTABLE [] = {

0X16,0X15,0X14 ,是0xFF,

0X13,0X12,0X11,0X10,

0X0D,0X0C,0X0B,0X0A,

0X0E,0X03,0X06,0X09,

0x0F的,0X02,0X05,0X08 ,

0X00,0X01,0x04的0X07

}

无符号字符型testkey的()

{

OUTBIT = 0

回报( &0X0F)

}

无符号字符型的getKey()

{

无符号字符位置

无符号字符型

无符号字符K

= 6

POS = 0x20的

{

OUTBIT =位置

POS >>= 1 K = IN&0X0F

}(( - = 0)&&(K == 0))

(k! = 0){ * = 4

(K&2)

+ = 1

其他(K&4)

+ = 2

否则,如果(K&8)

+ = 3

OUTBIT = 0

返回(KEYTABLE [])

}否则返回(0XFF)

}

/ * ================================== ============================================== * / />代码unsigned int类型ToneTable [7] = {

64578,64686,64778,64821,64898,64968,65029

无符号字符型PulseCNT

无符号字符虚信型脉冲

无符号ToneHigh ToneLow

无效计时器()中断1

{

TR0 = 0

TH0 = ToneHigh/ a>TL0 = ToneLow

TR0 = 1,

扬声器=脉冲

脉冲+ +

PulseCNT -

无效的主要()

{

无符号的字符键

控制模式

OUTSEG = 0

脉冲= 0

BR />TMOD = 0X01/ / 1,头脑

IE = 0X82/ / EA = 1,IT0 = 1

(1){

同时(testkey的)/ /按钮

关键的getKey()

((>= 1)&&(<= 7)){

ToneHigh = ToneTable [键1] >>8

ToneLow = ToneTable [1]&0xff的

TH0 = ToneHigh

TL0 = ToneLow

TR0 = 1

PulseCNT = 100

(PulseCNT! = 0)/ / 100脉冲

音箱= 0

TR0 = 0

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12542543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存