ImageVerifierCode 换一换
格式:DOC , 页数:26 ,大小:151.04KB ,
资源ID:2571693      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2571693.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(计算机硬件技术基础综合性实验任务书电子琴B.doc)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

计算机硬件技术基础综合性实验任务书电子琴B.doc

1、个人收集整理 勿做商业用途 河北工业大学计算机硬件技术基础(MCS—51单片机原理及应用) 综合性实验任务书 学院 班级 设计人 __ 成绩 ____ 一、题目:简易电子琴的设计 二、目的与要求 1. 目的: (1)能够对电子电路、电子元器件、印制电路板等方面的知识有进一步的认识,独立对其进行测试与检查。 (2)熟悉8051单片机的内部结构和功能,合理使用其内部寄存器,能够完成相关软件编程设计工作。 (3)实现预期功能,能够对系统进行快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件. (4)对软件编程、排错调试

2、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。 2. 基本要求: (1)要按任务书的要求认真分析问题,并解决问题; (2)要求用MCS—51单片机知识完成程序的设计; (3)在实验室利用现有的设备,完成题目的设计与调试。 3. 创新要求 在基本要求达到后,可以进行创新设计,如更加完善程序功能。 4. 书写设计报告的要求 设计报告中包含以下几个方面: 1、 设计题目 2、 总体设计 1) 所实现的功能描述. 2) 设计方案的描述. 3、 硬件系统设计,包括所需设备,接线方式,以及资源分配。 4、 软件系统的设计,包括划分功能模块,写出各个功能模块实现

3、的功能。画出程序流程图 5、 列出程序清单,并加以必要的注释 6、 写出调试程序的方法 7、 指出所设计问题的不足和改进方案 8、 自评分和收获体会 三、设计方法和基本原理 1. 问题描述: 设计一个简易的电子琴,要求用DP—51PROC的按键K1~K7作为电子琴的按键,控制蜂鸣器能够发出1、2、3、4、5、6、7等七个音符。 电路图如下: 2. 问题的解决方案: 由于一首音乐是由许多不同音阶组成,每个音阶对应不同的频率,这样我们可用不同频率组合,即可构成我们想要的音乐了,当然对单片机产生不同的频率非常方便,我们可用单片机的定时/计数器0来产生这样的方波频率信号,因此,

4、我们只要把一首歌曲的音阶对应频率关系设定正确即可。 对于晶振频率为11。0592MHz的单片机,定时器假如选择工作方式1,那T值便为T=216-5*105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值。建立这样一个数据表,然后采用查表程序即可。 连线要求:用导线将A2的P3。3 (INT1)与B5区的BUZZ接口相连,用排线将D1区的 J53 与 A2区的J61相连,如上图所示。 四、课程设计的考核方式及评分方法 1.考核方式 课程设计结束时,在机房当场验收. (1) 学生演示,老师检查运行结果是否正确。 (2) 回答教师提出的问题。 (3) 学生提交课程设计报告

5、A4纸打印),并将电子文档和源程序发至知道教师信箱。 2.评分方法 (1) 出勤率 (2) 课程设计准备工作 (3) 课程设计期间纪律 (4) 课程设计运行结果 (5) 课程设计报告 (6)答辩情况 附件1:音节与频率 第一个问题:八度音的频率关系。 每相邻的两个半音,高音频率是低音频率的“2的1/12次方倍”. 例如国际标准音A的频率是440HZ,那么比它高半音的bB,频率就是: 440*2^(1/12)=466.13HZ. 所以,以此类推,一个八度的12个音,连乘下来,结果正好得2。通俗一点儿也就是说,高音1的频率是比他低一个八度的那个1的频率的两倍

6、 第二个问题:不同乐器的同一个音的振动频率是否相同. 大至相同,但有微小的差别。比如吉他的国际标准音A的频率是440HZ,而小提琴的这个A就用441HZ。 音階與頻率的轉換 標準A = 440 Hz 高8度音的頻率為原來音頻率的2倍 下圖為音階圖,每一格為一個半音。 若f1距f2 n個半音,則運算公式:n個半音 = 1/12 * log2(f1/f2),若f1〈f2則n<0,若f1>f2則n>0。 例:C比A低9個半音,計算C的頻率f, —9 = 1/12 * log2(f/440) 得f =261。6 C調音階do, re, mi, fa, so, la, t

7、i, do, 為261。6, 293。7, 329。6, 349。2, 392。0, 440。0, 493.9, 523.2。其中第一個do為261。6Hz,第二個do為523。2Hz是第一個do的2倍。 一拍 = 四分音符,若建議速度=120(BPM),則表示一秒 = 兩拍 = 兩個四分音符,若建議速度=60(BPM),則表示一秒 = 一拍 = 一個四分音符。 电子琴 1.实验任务 (1).由4X4组成16个按钮矩阵,设计成16个音。 (2).可随意弹奏想要表达的音乐. 2.电路原理图                                           

8、                                 图4。22。1 3.系统板硬件连线 (1).把“单片机系统”区域中的P1。0端口用导线连接到“音频放大模块”区域中的SPK IN端口上; (2)。把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上; 4.相关程序内容 (1)。4X4行列式键盘识别; (2).音乐产生的方法; 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以

9、利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可.现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示 音符 频率(HZ) 简谱码(T值)   音符 频率(HZ) 简谱码(T值) 低1 DO 262 63628 # 4 FA# 740 64860 #1 DO# 277 63731 中 5 SO 784 64898 低2 RE 294 63835 # 5 SO# 831 64934 #2 RE# 311 63928 中 6 LA 880 6496

10、8 低 3 M 330 64021 # 6 932 64994 低 4 FA 349 64103 中 7 SI 988 65030 # 4 FA# 370 64185 高 1 DO 1046 65058 低 5 SO 392 64260 # 1 DO# 1109 65085 # 5 SO# 415 64331 高 2 RE 1175 65110 低 6 LA 440 64400   # 2 RE# 1245 65134 # 6 466 64463 高 3 M 1318 65157 低 7 SI 494

11、 64524 高 4 FA 1397 65178 中 1 DO 523 64580 # 4 FA# 1480 65198 # 1 DO# 554 64633 高 5 SO 1568 65217 中 2 RE 587 64684 # 5 SO# 1661 65235 # 2 RE# 622 64732 高 6 LA 1760 65252 中 3 M 659 64777 # 6 1865 65268 中 4 FA 698 64820 高 7 SI 1967 65283 下面我们要为这个音符建立一个表格,有助于单片机通过

12、查表的方式来获得相应的数据 低音0-19之间,中音在20-39之间,高音在40-59之间 TABLE:        DW 0,63628,63835,64021,64103,64260,64400,64524,0,0                    DW 0,63731,63928,0,64185,64331,64463,0,0,0                    DW 0,64580,64684,64777,64820,64898,64968,65030,0,0                    DW 0,64633,64732,0,64860,64934,649

13、94,0,0,0                    DW 0,65058,65110,65157,65178,65217,65252,65283,0,0                    DW 0,65085,65134,0,65198,65235,65268,0,0,0                    DW 0 2、音乐的音拍,一个节拍为单位(C调) 曲调值 DELAY   曲调值 DELAY 调4/4 125ms   调4/4 62ms 调3/4 187ms   调3/4 94ms 调2/4 250ms   调2/4 1

14、25ms 对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。 下面就用AT89S51单片机产生一首“生日快乐”歌曲来说明单片机如何产生的。 在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍. 5.程序框图                       图4。22.2 6.汇编源程序 KEYBUF      EQU 30H STH0        EQU 31H STL0        EQU 32H TEMP        EQU 33H             ORG 00H            

15、LJMP START             ORG 0BH             LJMP INT_T0 START:      MOV TMOD,#01H             SETB ET0             SETB EA WAIT:               MOV P3,#0FFH             CLR P3.4             MOV A,P3             ANL A,#0FH              XRL A,#0FH             JZ NOKEY1         

16、    LCALL DELY10MS             MOV A,P3             ANL A,#0FH             XRL A,#0FH             JZ NOKEY1             MOV A,P3             ANL A,#0FH             CJNE A,#0EH,NK1             MOV KEYBUF,#0             LJMP DK1 NK1:        CJNE A,#0DH,NK2             MOV KEYBUF,

17、1             LJMP DK1 NK2:        CJNE A,#0BH,NK3             MOV KEYBUF,#2             LJMP DK1 1NK3:        CJNE A,#07H,NK4             MOV KEYBUF,#3             LJMP DK1 NK4:        NOP DK1:                MOV A,KEYBUF             MOV DPTR,#TABLE             MOVC A,@A+DP

18、TR             MOV P0,A             MOV A,KEYBUF             MOV B,#2             MUL AB             MOV TEMP,A             MOV DPTR,#TABLE1             MOVC A,@A+DPTR             MOV STH0,A             MOV TH0,A             INC TEMP             MOV A,TEMP             MOVC A,

19、@A+DPTR             MOV STL0,A             MOV TL0,A             SETB TR0 DK1A:       MOV A,P3             ANL A,#0FH             XRL A,#0FH             JNZ DK1A             CLR TR0 NOKEY1:             MOV P3,#0FFH             CLR P3。5             MOV A,P3             ANL A

20、#0FH             XRL A,#0FH             JZ NOKEY2             LCALL DELY10MS             MOV A,P3             ANL A,#0FH             XRL A,#0FH             JZ NOKEY2             MOV A,P3             ANL A,#0FH             CJNE A,#0EH,NK5             MOV KEYBUF,#4            

21、 LJMP DK2 NK5:        CJNE A,#0DH,NK6             MOV KEYBUF,#5             LJMP DK2 NK6:        CJNE A,#0BH,NK7             MOV KEYBUF,#6             LJMP DK2 NK7:        CJNE A,#07H,NK8             MOV KEYBUF,#7             LJMP DK2 NK8:        NOP DK2:                MOV A

22、KEYBUF             MOV DPTR,#TABLE             MOVC A,@A+DPTR             MOV P0,A             MOV A,KEYBUF             MOV B,#2             MUL AB             MOV TEMP,A             MOV DPTR,#TABLE1             MOVC A,@A+DPTR             MOV STH0,A             MOV TH0,A    

23、         INC TEMP             MOV A,TEMP             MOVC A,@A+DPTR             MOV STL0,A             MOV TL0,A             SETB TR0 DK2A:       MOV A,P3             ANL A,#0FH             XRL A,#0FH             JNZ DK2A             CLR TR0 NOKEY2:             MOV P3,#0FFH

24、             CLR P3.6             MOV A,P3             ANL A,#0FH             XRL A,#0FH             JZ NOKEY3             LCALL DELY10MS             MOV A,P3             ANL A,#0FH             XRL A,#0FH             JZ NOKEY3             MOV A,P3             ANL A,#0FH      

25、       CJNE A,#0EH,NK9             MOV KEYBUF,#8             LJMP DK3 NK9:        CJNE A,#0DH,NK10             MOV KEYBUF,#9             LJMP DK3 NK10:       CJNE A,#0BH,NK11             MOV KEYBUF,#10             LJMP DK3 NK11:       CJNE A,#07H,NK12             MOV KEYBUF,#11

26、             LJMP DK3 NK12:       NOP DK3:             MOV A,KEYBUF             MOV DPTR,#TABLE             MOVC A,@A+DPTR             MOV P0,A             MOV A,KEYBUF             MOV B,#2             MUL AB             MOV TEMP,A             MOV DPTR,#TABLE1             MOV

27、C A,@A+DPTR             MOV STH0,A             MOV TH0,A             INC TEMP             MOV A,TEMP             MOVC A,@A+DPTR             MOV STL0,A             MOV TL0,A             SETB TR0 DK3A:       MOV A,P3             ANL A,#0FH             XRL A,#0FH             JNZ

28、 DK3A             CLR TR0 NOKEY3:             MOV P3,#0FFH             CLR P3.7             MOV A,P3             ANL A,#0FH             XRL A,#0FH             JZ NOKEY4             LCALL DELY10MS             MOV A,P3             ANL A,#0FH             XRL A,#0FH            

29、 JZ NOKEY4             MOV A,P3             ANL A,#0FH             CJNE A,#0EH,NK13             MOV KEYBUF,#12             LJMP DK4 NK13:       CJNE A,#0DH,NK14             MOV KEYBUF,#13             LJMP DK4 NK14:       CJNE A,#0BH,NK15             MOV KEYBUF,#14             L

30、JMP DK4 NK15:       CJNE A,#07H,NK16             MOV KEYBUF,#15             LJMP DK4 NK16:       NOP DK4:                MOV A,KEYBUF             MOV DPTR,#TABLE             MOVC A,@A+DPTR             MOV P0,A             MOV A,KEYBUF             MOV B,#2             MUL AB

31、             MOV TEMP,A             MOV DPTR,#TABLE1             MOVC A,@A+DPTR             MOV STH0,A             MOV TH0,A             INC TEMP             MOV A,TEMP             MOVC A,@A+DPTR             MOV STL0,A             MOV TL0,A             SETB TR0 DK4A:       MOV

32、A,P3             ANL A,#0FH             XRL A,#0FH             JNZ DK4A             CLR TR0 NOKEY4:             LJMP WAIT DELY10MS:             MOV R6,#10 D1:         MOV R7,#248             DJNZ R7,$             DJNZ R6,D1             RET INT_T0:             MOV TH0,STH0

33、             MOV TL0,STL0             CPL P1。0             RETI TABLE:      DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H             DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H TABLE1:     DW 64021,64103,64260,64400             DW 64524,64580,64684,64777             DW 64820,64898,64968,65030        

34、     DW 65058,65110,65157,65178             END 7.C语言源程序 #include unsigned char code table[]={0x3f,0x06,0x5b,0x4f,                             0x66,0x6d,0x7d,0x07,                             0x7f,0x6f,0x77,0x7c,                             0x39,0x5e,0x79,0x71}; unsigned char temp;

35、 unsigned char key; unsigned char i,j; unsigned char STH0; unsigned char STL0; unsigned int code tab[]={64021,64103,64260,64400,                           64524,64580,64684,64777,                           64820,64898,64968,65030,                           65058,65110,65157,65178}; v

36、oid main(void) {   TMOD=0x01;   ET0=1;   EA=1;   while(1)     {       P3=0xff;       P3_4=0;       temp=P3;       temp=temp & 0x0f;       if (temp!=0x0f)         {           for(i=50;i〉0;i--)           for(j=200;j>0;j——);           temp=P3;           temp=temp & 0x0f;

37、           if (temp!=0x0f)             {               temp=P3;               temp=temp & 0x0f;                            switch(temp)                 {                   case 0x0e:                     key=0;                     break;                   case 0x0d:             

38、        key=1;                     break;                   case 0x0b:                     key=2;                     break;                   case 0x07:                     key=3;                     break;                 }               temp=P3;               P1_0=~P1_0;    

39、           P0=table[key];               STH0=tab[key]/256;               STL0=tab[key]%6;               TR0=1;               temp=temp & 0x0f;                            while(temp!=0x0f)                 {                   temp=P3;                   temp=temp & 0x0f;             

40、                }               TR0=0;             }         }       P3=0xff;       P3_5=0;       temp=P3;       temp=temp & 0x0f;       if (temp!=0x0f)         {           for(i=50;i>0;i—-)           for(j=200;j>0;j——);           temp=P3;           temp=temp & 0x0f;     

41、      if (temp!=0x0f)             {               temp=P3;               temp=temp & 0x0f;                            switch(temp)                 {                   case 0x0e:                     key=4;                     break;                   case 0x0d:                    

42、 key=5;                     break;                   case 0x0b:                     key=6;                     break;                   case 0x07:                     key=7;                     break;                 }               temp=P3;               P1_0=~P1_0;           

43、    P0=table[key];               STH0=tab[key]/256;               STL0=tab[key]%6;               TR0=1;               temp=temp & 0x0f;                            while(temp!=0x0f)                 {                   temp=P3;                   temp=temp & 0x0f;                     

44、         }               TR0=0;             }         }       P3=0xff;       P3_6=0;       temp=P3;       temp=temp & 0x0f;       if (temp!=0x0f)         {           for(i=50;i>0;i——)           for(j=200;j>0;j-—);           temp=P3;           temp=temp & 0x0f;           i

45、f (temp!=0x0f)             {               temp=P3;               temp=temp & 0x0f;                            switch(temp)                 {                   case 0x0e:                     key=8;                     break;                   case 0x0d:                     key=9;

46、                     break;                   case 0x0b:                     key=10;                     break;                   case 0x07:                     key=11;                     break;                 }               temp=P3;               P1_0=~P1_0;               P

47、0=table[key];               STH0=tab[key]/256;               STL0=tab[key]%6;               TR0=1;               temp=temp & 0x0f;                            while(temp!=0x0f)                 {                   temp=P3;                   temp=temp & 0x0f;                          

48、    }               TR0=0;             }         }         P3=0xff;       P3_7=0;       temp=P3;       temp=temp & 0x0f;       if (temp!=0x0f)         {           for(i=50;i〉0;i-—)           for(j=200;j〉0;j——);           temp=P3;           temp=temp & 0x0f;           if

49、 (temp!=0x0f)             {               temp=P3;               temp=temp & 0x0f;                            switch(temp)                 {                   case 0x0e:                     key=12;                     break;                   case 0x0d:                     key=13

50、                     break;                   case 0x0b:                     key=14;                     break;                   case 0x07:                     key=15;                     break;                 }               temp=P3;               P1_0=~P1_0;              

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服