欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    计算机硬件技术基础课程设计任务书(10)液晶显示+电子琴_B.doc

    • 资源ID:70326800       资源大小:161KB        全文页数:25页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机硬件技术基础课程设计任务书(10)液晶显示+电子琴_B.doc

    计算机硬件技术基础课程设计任务书 编号:10河北工业大学计算机硬件技术基础(MCS-51单片机原理及应用)课程设计任务书学院 班级 设计人 _ 成绩 _ 一、题目:液晶显示+简易电子琴的设计二、目的与要求1 目的:(1)能够对电子电路、电子元器件、印制电路板等方面的知识有进一步的认识,独立对其进行测试与检查。(2)熟悉8051单片机的内部结构和功能,合理使用其内部寄存器,能够完成相关软件编程设计工作。(3)实现预期功能,能够对系统进行快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件。(4)对软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。2 基本要求:(1)要按任务书的要求认真分析问题,并解决问题;(2)要求用MCS-51单片机知识完成程序的设计;(3)在实验室利用现有的设备,完成题目的设计与调试。3 创新要求在基本要求达到后,可以进行创新设计,如更加完善程序功能。4 书写设计报告的要求设计报告中包含以下几个方面:1、 设计题目2、 总体设计1) 所实现的功能描述。2) 设计方案的描述。3、 硬件系统设计,包括所需设备,接线方式,以及资源分配。4、 软件系统的设计,包括划分功能模块,写出各个功能模块实现的功能。画出程序流程图5、 列出程序清单,并加以必要的注释6、 写出调试程序的方法7、 指出所设计问题的不足和改进方案8、 自评分和收获体会三、设计方法和基本原理1 问题描述:设计一个简易的电子琴,要求用DP-51PROC的按键K1K7作为电子琴的按键,控制蜂鸣器能够发出1、2、3、4、5、6、7等七个音符。电路图如下:2 问题的解决方案:由于一首音乐是由许多不同音阶组成,每个音阶对应不同的频率,这样我们可用不同频率组合,即可构成我们想要的音乐了,当然对单片机产生不同的频率非常方便,我们可用单片机的定时/计数器0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系设定正确即可。对于晶振频率为11.0592MHz的单片机,定时器假如选择工作方式1,那T值便为T216-5*105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值。建立这样一个数据表,然后采用查表程序即可。连线要求:用导线将A2的P3.3 (INT1)与B5区的BUZZ接口相连,用排线将D1区的 J53 与 A2区的J61相连,如上图所示。四、课程设计的考核方式及评分方法1考核方式课程设计结束时,在机房当场验收。(1) 学生演示,老师检查运行结果是否正确。(2) 回答教师提出的问题。(3) 学生提交课程设计报告(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的频率的两倍。 第二个问题:不同乐器的同一个音的振动频率是否相同。 大至相同,但有微小的差别。比如吉他的国际标准音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.6C調音階do, re, mi, fa, so, la, ti, 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电路原理图                                                                           图4.22.13系统板硬件连线 (1).把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;(2).把“单片机系统“区域中的P3.0P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1C4R1R4端口上;4相关程序内容 (1).4X4行列式键盘识别;(2).音乐产生的方法;一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。现在以单片机12MHZ晶振为例,例出高中低音符与单片机计数T0相关的计数值如下表所示音符频率(HZ)简谱码(T值)  音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400  # 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据低音019之间,中音在2039之间,高音在4059之间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,64994,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 02、音乐的音拍,一个节拍为单位(C调)曲调值DELAY  曲调值DELAY调4/4125ms  调4/462ms调3/4187ms  调3/494ms调2/4250ms  调2/4125ms对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。下面就用AT89S51单片机产生一首“生日快乐”歌曲来说明单片机如何产生的。在这个程序中用到了两个定时/计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍。5程序框图图4.22.26汇编源程序 KEYBUF      EQU 30H STH0        EQU 31H STL0        EQU 32H TEMP        EQU 33H             ORG 00H             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             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,#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+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             INC TEMP             MOV A,TEMP             MOVC A,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,#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             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,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             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             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             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             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             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 DK3A:       MOV A,P3             ANL A,#0FH             XRL A,#0FH             JNZ 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             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             LJMP 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             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 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             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             DW 65058,65110,65157,65178             END 7C语言源程序 #include unsigned char code table=0x3f,0x06,0x5b,0x4f,                             0x66,0x6d,0x7d,0x07,                             0x7f,0x6f,0x77,0x7c,                             0x39,0x5e,0x79,0x71; unsigned char temp; 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; void 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;           if (temp!=0x0f)                           temp=P3;               temp=temp & 0x0f;                            switch(temp)                                   case 0x0e:                     key=0;                     break;                   case 0x0d:                     key=1;                     break;                   case 0x0b:                     key=2;                     break;                   case 0x07:                     key=3;                     break;                               temp=P3;               P1_0=P1_0;               P0=tablekey;               STH0=tabkey/256;               STL0=tabkey%6;               TR0=1;               temp=temp & 0x0f;                            while(temp!=0x0f)                                   temp=P3;                   temp=temp & 0x0f;                                            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;           if (temp!=0x0f)                           temp=P3;               temp=temp & 0x0f;                            switch(temp)                                   case 0x0e:                     key=4;                     break;                   case 0x0d:                     key=5;                     break;                   case 0x0b:                     key=6;                     break;                   case 0x07:                     key=7;                     break;                               temp=P3;               P1_0=P1_0;               P0=tablekey;               STH0=tabkey/256;               STL0=tabkey%6;               TR0=1;               temp=temp & 0x0f;                            while(temp!=0x0f)                                   temp=P3;                   temp=temp & 0x0f;                                            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;           if (temp!=0x0f)                           temp=P3;               temp=temp & 0x0f;                            switch(temp)                                   case 0x0e:                     key=8;                     break;                   case 0x0d:                     key=9;                     break;                   case 0x0b:                     key=10;                     break;                   case 0x07:                     key=11;                     break;                               temp=P3;               P1_0=P1_0;               P0=tablekey;               STH0=tabkey/256;               STL0=tabkey%6;               TR0=1;               temp=temp & 0x0f;                            while(temp!=0x0f)                                   temp=P3;                   temp=temp & 0x0f;                                            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 (temp!=0x0f)                           temp=P3;               temp=temp & 0x0f;                            switch(temp)                                   case 0x0e:                     key=12;                     break;                   case 0x0d:                     key=13;                     break;                   case 0x0b:                     key=14;                     break;                   case 0x07:                     key=15;                     break;                               temp=P3;        

    注意事项

    本文(计算机硬件技术基础课程设计任务书(10)液晶显示+电子琴_B.doc)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开