77范文网 - 专业文章范例文档资料分享平台

哈工大C语言课程设计(2)

来源:网络收集 时间:2020-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

哈尔滨工业大学课程设计说明书(论文)

} 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)在线全文阅读。

哈工大C语言课程设计(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/772906.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: