哈尔滨工业大学课程设计说明书(论文)
} return 0; }
void playmusic(int n,int *c) {
int note=0,fre,dur,control; char d; clock_t goal; if(n==1) {
while(song1[note]!=END) {
fre=*c*song1[note]; dur=song1[note+1]; if(kbhit()) break; if(fre)
{ /*若频率值fre非0*/ outportb(0x43,0xb6); /*初始化2号定时器 */ fre=(unsigned)(1193180L/fre); /*计算计数初值 */ outportb(0x42,(char)fre); /*先写计数初值的低8位*/ outportb(0x42,(char)(fre>>8)); /*再写计数初值的高8位*/ control=inportb(0x61); /*读0x61的状态*/
outportb(0x61,control|0x03); /*将第0位,第1位置1,使喇叭发声*/ }
goal=(clock_t)dur+clock( ); while(goal>clock( )); if(dur)
outportb(0x61,control); note+=2; } }else {
while(song2[note]!=END) {
fre=*c*song2[note]; dur=song2[note+1]; if(kbhit()) break; if(fre)
{ /*若频率值fre非0*/ outportb(0x43,0xb6); /*初始化2号定时器 */ fre=(unsigned)(1193180L/fre); /*计算计数初值 */ outportb(0x42,(char)fre); /*先写计数初值的低8位*/ outportb(0x42,(char)(fre>>8)); /*再写计数初值的高8位*/ control=inportb(0x61); /*读0x61的状态*/
outportb(0x61,control|0x03); /*将第0位,第1位置1,使喇叭发声*/ }
哈尔滨工业大学课程设计说明书(论文)
goal=(clock_t)dur+clock( ); while(goal>clock( )); if(dur)
outportb(0x61,control); note+=2; } } getchar();
printf(\ scanf(\ if(d=='r') *c*=2; else if(d=='l') *c*=0.5; else if(d=='n') *c=*c; }
void typemusic() {
char ch; clock_t goal; int fre=0,control,dur=2;
printf(\ printf(\ do {
ch=getch(); if(ch=='/'); else {
switch(ch) {
case 'z':fre=C10;break; case 'x':fre=D10;break; case 'c':fre=E10;break; case 'v':fre=F10;break; case 'b':fre=G10;break; case 'n':fre=A10;break; case 'm':fre=B10;break; case 'a':fre=C0;break; case 's':fre=D0;break; case 'd':fre=E0;break; case 'f':fre=F0;break; case 'g':fre=G0;break; case 'h':fre=A0;break; case 'j':fre=B0;break;
哈尔滨工业大学课程设计说明书(论文)
case 'q':fre=C1;break; case 'w':fre=D1;break; case 'e':fre=E1;break; case 'r':fre=F1;break; case 't':fre=G1;break; case 'y':fre=A1;break; case 'u':fre=B1;break; case '1':fre=C2;break; case '2':fre=D2;break; case '3':fre=E2;break; case '4':fre=F2;break; case '5':fre=G2;break; case '6':fre=A2;break; case '7':fre=B2;break;
default:printf(\ } }
if(fre){ /*若频率值fre非0*/ outportb(0x43,0xb6); /*初始化2号定时器 */ fre=(unsigned)(1193180L/fre); /*计算计数初值 */ outportb(0x42,(char)fre); /*先写计数初值的低8位*/ outportb(0x42,(char)(fre>>8)); /*再写计数初值的高8位*/ control=inportb(0x61); /*读0x61的状态*/
outportb(0x61,control|0x03); /*将第0位,第1位置1,使喇叭发声*/ }
goal=(clock_t)dur+clock( ); /* clock()是计时函数,而与其相关的数据类型是clock_t,返回当前程序占用的CPU时间,用clock()返回的值除于CLOCK_PER_SEC常量可以得到当前程序的运行时间,单位是秒 */ while(goal>clock( )); if(dur)
outportb(0x61,control); }while (ch!='/'); }
1.4 程序运行结果及自评:
哈尔滨工业大学课程设计说明书(论文)
哈尔滨工业大学课程设计说明书(论文)
1.5 程序调试中遇到过的问题及解决办法
在编辑弹奏的程序时,没有弄明白延时函数,无法让按键发声,后来明白了延时函数的原理,把时长设成4,就可以了,还有就是按/时直接退出,后来把if放到前面,就解决了。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库哈工大C语言课程设计(2)在线全文阅读。
相关推荐: