版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、hefei university微机原理课程设计报告课题名称:基于8086钢琴的程序设计 班 级:09自动化(1)班 报 告 人: 指导教师: 2011 年 12 月 30 日目录摘 要:3关键字:3正 文:3一、总体框图3二、方案的论证3三、电路设计43.1 扬声器接口电路43.2键盘模块43.3 总电路系统5四、软件设计流程图64.1主流程图64.2键盘扫描子程序图7五、c51单片机系统仿真实现9六、总结与体会9参考文献:9附件一、自动化专业微机原理课程设计任务书10附件二:汇编程序清单11附件三:c语言程序清单15基于8086钢琴的程序设计摘 要:本设计以8086为主体,结合使用8255
2、,8253及相关电路设计利用键盘输入发出不同频率的的音调。利用8255检测键盘,根据输入信号驱动数码管显示,控制8253,完成输入与检测;利用8253的分频输出不同的信号,经放大驱动扬声器发出声音。关键字: 8086、8255、8253、键盘正 文:一、总体框图本系统主要有两个功能模块组成:键盘扫描,蜂鸣器发声。围绕这二个功能需要用到三个主要芯片:8086,8255,8253。首先8086主芯片负责数据交换与处理,芯片初始化等。系统开始时对键盘进行扫描,有输入信号时,8255采集信号并输入8086进行处理, 8086接到8255输入的信号时,调用与之相关的初始值n,输入到8253,对clock
3、进行分频输出不同的频率信号,驱动扬声器发出不同的音调,同时8255对8253进行控制并对信号进行采集送到8086,决定发声时间的长短。二、方案的论证扬声器接口由8255、8253、驱动器和低通滤波器等构成,8255做控制器,8253做音频信号源。根据音阶频率表,利用8253可以产生相应频率的脉冲信号,不同频率的脉冲信号经驱动电路放大后,就会发生不同的音调。对于每个按键的音调发音时间由软件延时控制,如键一直按下,就会连续发音各音阶标称频率值:键盘接口采用8255a,使用a、b端口,对键盘的扫描,对8255初始化编程,写入控制字10001011b,方式0,a口作输出,b口和c口为输入。三、电路设计
4、3.1 扬声器接口电路扬声器接口如图所示,该电路主要作用是将8253a的out2端口输出的不同频率的波形经放大器lm386放大并驱动扬声器发出不同音调的声音.3.2键盘模块如图所示是16个按键的键盘,左边8个高音键,右边8个是低音键,8255的pa口对应于键盘的行,pb口键盘的列。利用程序检测键盘,先在pa口全部输出低电平,由二极管的单向导通,在键盘的每个按键的两边都是处于高电平的状态,当有按键按下时,该按键对应的行和列都变为低电平,再由pb口检测键盘两边的信号,低四位检测列,高四位检测行即可确定键值。3.3 总电路系统系统cpu8086工作在最小模式下,通过数据总线给8255写入控制字,使其
5、工作在方式0,a口作输出,b口作输入。系统通过8255检测键盘,检测到键盘的键值后再通过8086给8253写入相应的计数初值,产生需要的波形信号。其中,8255和8253的片选信号是由一片74ls138译码器提供。四、软件设计流程图4.1主流程图4.2键盘扫描子程序图键盘扫描程序流程图如上图所示,上面的键盘扫描包含以下几步:1、检测是否所有键都松开了,若没有则反复检测。2、当所有键都松开了,在检测是否有键压下,若无键压下则反复检测。3、若有键压下,要消除键抖动,再确定是否有键压下。4、对压下的键进行编码,将该键的行列信息转换成16进制码,由此确定哪个键被压下了,如果出现了多键重按的情况,则只有
6、在其他键均释放后,仅剩一个键闭合时,才把此键当做本次压下的键。5、该键释放后,再回到2。程序调试正常,截图如下:五、c51单片机系统仿真实现硬件仿真图六、总结与体会由于之前没有接触过protues仿真软件,所以前几天进展较慢,主要在熟习软件的使用方法,后来在老师的指导下,能够较熟练的应用该软件。通过本次课程设计让我们不仅加深了对8086 8253 8255 芯片的认识,而且汇编语言实际运用能力也得到了提高。本次课程设计让我们从课本的理论知识联系了实际运用。也使我们知道了理论知识的重要性,懂得了实际运用能力是对理论知识的升华。这对我们以后的学习将会有深厚的影响。总之,本次此次项目的实施,不仅有利
7、于提高我们的实际动手操作能力,也是一个将书本理论知识与现实中应用相结合的良好机遇,同时也进一步考验我们的团队协作能力、团队沟通意识等。以后我们会倍加珍惜课程设计让我们更好的学习的机会参考文献:微型计算机原理及接口技术中国科技大学出版社 吴秀清 周荷琴编著汇编语言程序设计南京大学出版社 姚君遗编著微型计算机原理及接口技术实验指导书dj8086系列微机实验指导书 附件一、自动化专业微机原理课程设计任务书论文题目基于8086钢琴的程序设计设计类型导师姓名主要内容及目标1. 掌握利用pc机扬声器发出不同频率声音的方法.2. 学习利用系统功能调用从键盘上读取字符的方法.3.编写程序,程序运行时使pc机成
8、为一架可弹奏的”钢琴”。当按下数字1-8时,依次发出1,2,3,4,5,6,7,i八个音调.按下ctrl-c则退出”钢琴”状态.具有的设计条件1 pc机一台,el教学实验箱一台及汇编程序;计划学生数及任务3人(1):明确课题对程序功能,运算精度等方面的要求。(2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。(3):存储器资源分配(4):编制程序,根据流程图精心选择合适的指令和寻址方式来编制源程序(5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。计划设计进程(按课程设计周计算)第一周设计任务:(1):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。(2):存
9、储器资源分配第二周设计任务:(3):编制程序,根据流程图精心选择合适的指令和寻址方式来编制源程序(4):对程序进行汇编,调试和修改,直到程序运行结果正确为止。参考文献微型计算机原理及接口技术中国科技大学出版社 吴秀清 周荷琴编著16-32位微型计算机技术及应用清华大学出版社 戴梅萼 史嘉权 编著汇编语言程序设计南京大学出版社 姚君遗编著汇编语言程序设计教程清华大学出版社 杨记文编著微型计算机原理及接口技术实验指导书附件二:汇编程序清单data segmentio8255a equ 0f0hio8255b equ 0f2hio8255c equ 0f4hio8255ctr equ 0f6hio8
10、253a equ 84hio8253b equ 86hio8253c equ 88hio8253ctr equ 8ahmsg db please input one number(17):,0dh,0ah,$ ; 1 2 3 4 5 6 7table db 0ebh,0dbh,0bbh,0edh,0ddh,0bdh,0eeh;data ends stack segment stack dw 50 dup(0);top_stac label wordstack endscode segmentassume cs:code,ds:data,ss:stackstart: mov ax,stack m
11、ov ss,ax ;lea sp,top_stack mov ax,data mov ds,ax mov dx,offset msg mov ah,9 int 21h mov dx, io8255ctr mov al,10001011b out dx,al mov dx, io8255a mov al,00h out dx,al mov dx,io8255cwait_open: in al,dx and al,0fh cmp al,0fh je wait_open ;mov al,0feh ;mov cl,al wait_pres: in al,dx and al,0fh cmp al,0fh
12、 je wait_pres mov cx,002ahdelay: loop delay in al,dx and al,0fh cmp al,0fh je wait_pres mov al,0feh mov cl,alnext_row: mov dx, io8255a out dx,al mov dx, io8255c in al,dx and al,0f0h cmp al,0f0h jne camp rol cl,1 mov al,cl jmp next_rowcamp: mov dx, io8255c in al,dx cmp al,0ebh je duo cmp al,0dbh je r
13、uai cmp al,0bbh je mi cmp al,0edh je fa cmp al,0ddh je suo cmp al,0bdh je la cmp al,0eeh je xi jmp startduo: mov bx,262call midojmp startruai: mov bx,294call midojmp startmi:mov bx,330call midojmp startfa:mov bx,349call midojmp startsuo:mov bx,392call midojmp startla:mov bx,440call midojmp startxi:m
14、ov bx,494call midojmp start mido proc near mov dx,io8253ctr mov al,10110110b out dx,al mov dx,0012h mov ax,34dehdiv bx mov dx,io8253aout dx,almov al,ahout dx,al call delay1retmido endpdelay1 proc nearmov dx,01ffhdel1: mov cx,0ffffhdel2: loop del2dec dxjnz del1retdelay1 endpcode endsend start 附件三:c语言
15、程序清单#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,64
16、898,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;i0;i-) for(j=200;j0;j-); temp=p3; temp=temp & 0x0f; if (temp!=0x0f) temp=p3; temp=temp & 0x0f; switch(temp) case 0x0e: key=3; break; case 0x
17、0d: key=2; break; case 0x0b: key=1; break; case 0x07: key=0; break; temp=p3; /多p1_0=p1_0; p0=tablekey; sth0=tabkey/256; stl0=tabkey%256; 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;i0;i-) for(j=200;
18、j0;j-); temp=p3; temp=temp & 0x0f; if (temp!=0x0f) temp=p3; temp=temp & 0x0f; switch(temp) case 0x0e: key=7; break; case 0x0d: key=6; break; case 0x0b: key=5; break; case 0x07: key=4; break; temp=p3; /多p1_0=p1_0; p0=tablekey; sth0=tabkey/256; stl0=tabkey%256; tr0=1; temp=temp & 0x0f; while(temp!=0x0
19、f) temp=p3; temp=temp & 0x0f; tr0=0; p3=0xff; p3_6=0; temp=p3; temp=temp & 0x0f; if (temp!=0x0f) for(i=50;i0;i-) for(j=200;j0;j-); temp=p3; temp=temp & 0x0f; if (temp!=0x0f) temp=p3; temp=temp & 0x0f; switch(temp) case 0x0e: key=11; break; case 0x0d: key=10; break; case 0x0b: key=9; break; case 0x07: key=8; break; tem
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某汽修厂维修工时办法
- 2026年开封市南关区事业单位人员招聘笔试备考题库与答案详解
- 2026江苏省宿迁学院人才招聘27人笔试备考试题及答案解析
- 2026北京化工大学国际教育学院管理岗位招聘1人笔试备考题库及答案解析
- 2026年茂名市茂港区事业单位人员招聘笔试备考题库与答案详解
- 2026年成都市武侯区公务员人员招聘考试备考试题与答案详解
- 2026年西安市雁塔区公务员人员招聘考试试题与答案详解
- 2026年黄山市黄山区公务员人员招聘笔试模拟试题与答案详解
- 2026年随州市妇幼保健院下半年自主招聘卫生专业技术人员8人笔试参考题库及答案解析
- 2026年珠海市前山区公务员人员招聘笔试参考题库与答案详解
- 慢性阻塞性肺疾病科普
- GB/T 12729.1-2026香辛料和调味品名称
- 单病种质量管理指南(2024版)
- 2026中国人工智能辅助心电图诊断准确率验证研究
- 中国慢性肾脏病诊疗指南2025版
- 经皮大脑中动脉支架置入术后护理查房
- 建筑设备自动化 试题
- 2026届辽宁省大连中山区四校联考物理九上期中经典试题含解析
- 超星尔雅学习通《人工智能与创业智慧(北京林业大学)》章节测试含答案
- 解剖学基础课程全册教案
- 大学生劳动教育概论智慧树知到期末考试答案章节答案2024年南昌大学
评论
0/150
提交评论